dealerenquiry.php 144 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475
  1. <?php
  2. /****************************
  3. * File : dealerenquiry.php
  4. * Author : Cygnusa
  5. * @2020
  6. ****************************/
  7. //SECURITY
  8. if (!defined('APPLICATION_PATH')) {
  9. exit('No direct script access allowed');
  10. }
  11. //FUNCTION LISTS
  12. function comparator($object1, $object2)
  13. {
  14. return $object1->order > $object2->order;
  15. }
  16. class dealerenquiry
  17. {
  18. private $smpin = '';
  19. public function __construct($parent)
  20. {
  21. //GET PAGE MESSAGE
  22. $this->page_data = globalfunc::getMessage($parent, $parent->lang, 'enquiry'); //ERROR MSG FROM ENQUIRY
  23. if (count($parent->params) == 0) {
  24. // $this->enquirysubmit($parent);
  25. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  26. } else {
  27. $qry_params = explode("?", $parent->params[0]);
  28. $parameter_val = strtolower($qry_params[0]);
  29. switch ($parameter_val) {
  30. case "common":
  31. case "checkunsave":
  32. case "deleteunsave":
  33. case "otp":
  34. case "otpvalidate":
  35. case "dashboard":
  36. case "enquirysales":
  37. case "listdata":
  38. case "enquirysubmit":
  39. case "details":
  40. case "followup":
  41. case "stockavailability":
  42. case "sharebrochure": //NOT COMPLETED
  43. //case "followuphistory":
  44. case "quotation":
  45. case "sharequotation":
  46. //case "getquotation":
  47. case "pricelist":
  48. case "testride":
  49. case 'plannerlist':
  50. // case 'plannersave':
  51. // case 'plannerupdate':
  52. // case 'plannerdelete':
  53. // case "plannertimer":
  54. $this->$parameter_val($parent);
  55. break;
  56. default:
  57. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  58. break;
  59. }
  60. }
  61. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  62. }
  63. private function getdsedetails($parent, $smpin)
  64. {
  65. $data = $parent->selectQuery(DMS_EMPLOYEE, "*", "smpin='" . $smpin . "' AND status=1 AND is_current=1", "1");
  66. if (!$data['nr'] > 0) {
  67. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error1']), 406);
  68. }
  69. return $data['result'][0];
  70. }
  71. /* /////////////////////////////// COMMON //////////////////////////////////////////////// */
  72. private function common($parent)
  73. {
  74. globalfunc::checkMethodType($parent, array('GET'));
  75. globalfunc::checkParamCount($parent, 2);
  76. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  77. projectfunc::authorizedRole($parent, array('14'));
  78. $smpin = escape_str($parent->params[1]);
  79. $dse_details = $this->getdsedetails($parent, $smpin);
  80. $dealer_code = $dse_details->dealer_code;
  81. $segment = $dse_details->segment;
  82. //CHECK SMPIN OTP EXIST
  83. $buyertype_data = $parent->selectQuery(DMS_ENQUIRY_BUYERTYPE, "id,title,title_code", " status='1'", "");
  84. $title_data = $parent->selectQuery(DMS_ENQUIRY_TITLE, "id,title,title_code", " status='1'", "");
  85. $company_data = $parent->selectQuery(DMS_ENQUIRY_ORGANISATION, "id,title,title_code", " status='1'", "");
  86. $communicate_data = $parent->selectQuery(DMS_ENQUIRY_COMMUNICATE, "id,title,title_code", " status='1'", "");
  87. $action_data = $parent->selectQuery(DMS_ENQUIRY_ACTIONPLAN, "id,title,title_code", " status='1'", "");
  88. $purpose_data = $parent->selectQuery(DMS_ENQUIRY_PURPOSE, "id,title,title_code", " status='1'", ""); //STAGE SAME ONLY
  89. switch ($segment) {
  90. case '0':$segmentcond = " ";
  91. break;
  92. case '1':$segmentcond = " AND segment='1'";
  93. break;
  94. case '2':$segmentcond = " AND segment='2'";
  95. break;
  96. }
  97. $model_data = $parent->selectQuery(DMS_ENQUIRY_MODEL, "title,title_code", " status='1' AND enq_yn='Y' " . $segmentcond . " GROUP BY title_code", "");
  98. $profession_data = $parent->selectQuery(DMS_ENQUIRY_PROFESSION, "title,title_code", " status='1' ", "");
  99. $sdata = array();
  100. $dealer_data = $parent->selectQuery(DMS_DEALER, "dealer_map_cd", "dealer_code='" . $dealer_code . "' AND status='1' AND is_deleted=0 AND dealer_map_cd!=''", "1");
  101. //dealer_map_cd
  102. if ($dealer_data['nr'] > 0) {
  103. $p_dealer = $dealer_data['result'][0]->dealer_map_cd;
  104. //GET SOURCE
  105. $url = SUZ_DMS_URL;
  106. $post = array("query" => "BEGIN pkg_smipl_star_app.sp_enquiry_source(:p_dealer, :list_cursor, :p_err_cd, :p_err_msg); END;", "params" => '[{"title":"p_dealer","value":"' . $p_dealer . '","type":""},{"title":"list_cursor","value":"","type":"cursor"},{"title":"p_err_cd","value":"0","type":""},{"title":"p_err_msg","value":"","type":""}]');
  107. $header = array('Authorization:Bearer ' . SUZ_TOKEN);
  108. //LOG
  109. $obj = new stdClass();
  110. $obj->type = 'callsource';
  111. $obj->apirequest = $post['params'];
  112. $log_id = projectfunc::cronLog($parent, $obj);
  113. // $ch = curl_init();
  114. // curl_setopt($ch, CURLOPT_URL, $url);
  115. // curl_setopt($ch, CURLOPT_POST, 1);
  116. // curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //Post Fields
  117. // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  118. // curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  119. // $response = curl_exec($ch);
  120. // $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  121. // curl_close($ch);
  122. $httpcode = '200';
  123. $response="";
  124. $error = 1;
  125. $count = 0;
  126. //REPSONSE SAVE
  127. $obj = new stdClass();
  128. $obj->id = $log_id;
  129. $obj->apiresponse = $response;
  130. projectfunc::updateCronLog($parent, $obj);
  131. if ($httpcode == '200' && $response != '') {
  132. $json = json_decode($response);
  133. if (isset($json->response) && $json->response == 'success' && isset($json->data) && count($json->data) > 0) {
  134. foreach ($json->data as $res) {
  135. $new = new stdClass();
  136. $new->title = $res->ETYPE_DESC;
  137. $new->title_code = $res->ETYPE_CD;
  138. $sdata[] = $new;
  139. }
  140. $source_data['nr'] = count($sdata);
  141. $source_data['result'] = $sdata;
  142. //LOG UPDATE
  143. $obj = new stdClass();
  144. $obj->id = $log_id;
  145. $obj->insert_count = $source_data['nr'];
  146. $obj->status = 1;
  147. projectfunc::updateCronLog($parent, $obj);
  148. }
  149. }
  150. }
  151. if (count($sdata) == 0) {
  152. $source_data = $parent->selectQuery(DMS_ENQUIRY_SOURCE, "title,title_code", " status='1' ", "");
  153. }
  154. $custtype_data = $parent->selectQuery(DMS_ENQUIRY_CUSTTYPE, "title,title_code", " status='1' ", "");
  155. $custage_data = $parent->selectQuery(DMS_ENQUIRY_CUSTAGE, "title,title_code", " status='1' ", "");
  156. $modeofcontact_data = $parent->selectQuery(DMS_ENQUIRY_MODE, "title,title_code", " status='1' ", "");
  157. $brochure_arr = array();
  158. $brochure_url = SITE_URL . "explore_assets/model/";
  159. $expmodel_data = $parent->selectQuery(TABLE_COMPARE_MODEL, "model_id,CASE WHEN model_brochure!='' THEN CONCAT('" . $brochure_url . "',model_brochure) ELSE '' END AS 'model_brochure', CASE WHEN model_image!='' THEN CONCAT('" . SITE_URL . "hypermupload/model/',model_image) ELSE '" . NOIMAGE_URL . "' END as model_image ", "is_deleted=0 AND is_other=0 AND `model_type` = '0'", "");
  160. if ($expmodel_data['nr'] > 0) {
  161. $arr_id = array_column($expmodel_data['result'], 'model_id');
  162. $arr_name = array_column($expmodel_data['result'], 'model_brochure');
  163. $brochure_arr = array_combine($arr_id, $arr_name);
  164. $arr_image = array_column($expmodel_data['result'], 'model_image');
  165. $img_arr = array_combine($arr_id, $arr_image);
  166. }
  167. //MODEL DATA BUILD
  168. if ($model_data['nr'] > 0) {
  169. foreach ($model_data['result'] as $key => $res) {
  170. $variant_data = $parent->selectQuery(DMS_ENQUIRY_MODEL, "variant title,variant_code title_code", " status='1' AND title_code='" . $res->title_code . "' AND enq_yn='Y' " . $segmentcond . " GROUP BY variant_code", "");
  171. if ($variant_data['nr'] > 0) {
  172. foreach ($variant_data['result'] as $nkey => $resm) {
  173. $color_data = $parent->selectQuery(DMS_ENQUIRY_MODEL, "color title,color_code title_code", " status='1' AND title_code='" . $res->title_code . "' AND variant_code='" . $resm->title_code . "' AND enq_yn='Y' " . $segmentcond . " GROUP BY color_code", "");
  174. $variant_data['result'][$nkey]->color = ($color_data['nr'] > 0) ? $color_data['result'] : array();
  175. $variant_data['result'][$nkey]->model_image = NOIMAGE_URL;
  176. $brochure_url = '';
  177. $model_image = NOIMAGE_URL;
  178. switch ($res->title_code) {
  179. case 'GSX': //GIXXER
  180. $id = (strpos($resm->title_code, 'GSX250') !== false || strpos($resm->title, 'GIXXER 250') !== false) ? GIXXER_250_ID : GIXXER_ID;
  181. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  182. $model_image = isset($img_arr[$id]) ? $img_arr[$id] : NOIMAGE_URL;
  183. break;
  184. case 'GSXSF': //GIXXER SF
  185. $id = (strpos($resm->title_code, 'GSXF250') !== false || strpos($resm->title, 'GIXXER SF 250') !== false) ? GIXXER_SF_250_ID : GIXXER_SF_ID;
  186. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  187. $model_image = isset($img_arr[$id]) ? $img_arr[$id] : NOIMAGE_URL;
  188. break;
  189. case 'GL': //INTRUDER
  190. $id = INTRUDER_ID;
  191. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  192. $model_image = isset($img_arr[$id]) ? $img_arr[$id] : NOIMAGE_URL;
  193. break;
  194. case 'UB125': //BURGMAN
  195. $id = BURGMAN_ID;
  196. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  197. $model_image = isset($img_arr[$id]) ? $img_arr[$id] : NOIMAGE_URL;
  198. break;
  199. case 'AC':
  200. case 'ACZ':
  201. $id = ACCESS_ID;
  202. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  203. $model_image = isset($img_arr[$id]) ? $img_arr[$id] : NOIMAGE_URL;
  204. break;
  205. default:
  206. $brochure_url = '';
  207. break;
  208. }
  209. $variant_data['result'][$nkey]->brochure = $brochure_url;
  210. $variant_data['result'][$nkey]->model_image = $model_image;
  211. }
  212. }
  213. $model_data['result'][$key]->variant = ($variant_data['nr'] > 0) ? $variant_data['result'] : array();
  214. }
  215. }
  216. $buyertype_arr = ($buyertype_data['nr'] > 0) ? $buyertype_data['result'] : array();
  217. $title_arr = ($title_data['nr'] > 0) ? $title_data['result'] : array();
  218. $company_arr = ($company_data['nr'] > 0) ? $company_data['result'] : array();
  219. $communicate_arr = ($communicate_data['nr'] > 0) ? $communicate_data['result'] : array();
  220. $action_arr = ($action_data['nr'] > 0) ? $action_data['result'] : array();
  221. $purpose_arr = ($purpose_data['nr'] > 0) ? $purpose_data['result'] : array();
  222. $model_arr = ($model_data['nr'] > 0) ? $model_data['result'] : array();
  223. $profession_arr = ($profession_data['nr'] > 0) ? $profession_data['result'] : array();
  224. $source_arr = ($source_data['nr'] > 0) ? $source_data['result'] : array();
  225. $custtype_arr = ($custtype_data['nr'] > 0) ? $custtype_data['result'] : array();
  226. $custage_arr = ($custage_data['nr'] > 0) ? $custage_data['result'] : array();
  227. $modeofcontact_arr = ($modeofcontact_data['nr'] > 0) ? $modeofcontact_data['result'] : array();
  228. $t_arr = array("00", "30");
  229. for ($i = 9; $i < 19; $i++) {
  230. $m = ($i < 10) ? "0" . $i : $i;
  231. foreach ($t_arr as $tstr) {
  232. //$t=($tstr<10)?"0".$tstr:$tstr;
  233. $tvalue = $m . ":" . $tstr;
  234. $time_arr[] = array('title' => $tvalue, 'title_code' => $tvalue);
  235. }
  236. }
  237. $gender = array(0 => array('title' => "Male", "title_code" => "M"), 1 => array('title' => "Female", "title_code" => "F"), 2 => array('title' => "Transgender", "title_code" => "T"));
  238. $data = array('gender' => $gender, 'buyertype' => $buyertype_arr, 'title' => $title_arr, 'company' => $company_arr, 'communicate' => $communicate_arr, 'actionplan' => $action_arr, 'purpose' => $purpose_arr, 'model' => $model_arr, 'profession' => $profession_arr, 'source' => $source_arr, 'custtype' => $custtype_arr, 'custage' => $custage_arr, 'time' => $time_arr, 'modeofcontact' => $modeofcontact_arr);
  239. //LOG
  240. $logstr = 'ENQUIRY COMMON';
  241. globalfunc::insertUserLog($parent, $logstr);
  242. $parent->response(array('response' => 'success', 'data' => $data, 'message' => $this->page_data['success1']), 200);
  243. }
  244. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  245. /* /////////////////////////////// CHECKUNSAVE //////////////////////////////////////////////// */
  246. private function checkunsave($parent)
  247. {
  248. globalfunc::checkMethodType($parent, array('GET'));
  249. globalfunc::checkParamCount($parent, 2);
  250. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  251. projectfunc::authorizedRole($parent, array('14'));
  252. $smpin = escape_str($parent->params[1]);
  253. $dse_details = $this->getdsedetails($parent, $smpin);
  254. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "id", "save_level!=0 AND smpin='" . $smpin . "' AND is_starapp=1 AND is_dms=0 AND is_deleted=0 ", "1");
  255. $total = ($check_arr['nr'] > 0) ? 1 : 0;
  256. // $total_arr=$parent->getQueryValue("SELECT FOUND_ROWS() as total_record");
  257. // $total=(count($total_arr)>0)?$total_arr[0]->total_record:0;
  258. //EXIST CHECK
  259. $is_exist = ($check_arr['nr'] > 0) ? 1 : 0;
  260. $data = new stdClass();
  261. $data->details = array();
  262. if ($is_exist == 1) {
  263. foreach ($check_arr['result'] as $res) {
  264. $data->details[] = $this->getEnquirydata($parent, $res->id);
  265. }
  266. }
  267. $data->is_exist = $is_exist;
  268. //LOG
  269. $logstr = 'ENQUIRY CHECKUNSAVE';
  270. globalfunc::insertUserLog($parent, $logstr);
  271. $last_page = 0;
  272. //$last_page=($total)?ceil($total/$parent->current_limit)-1:0;
  273. $parent->response(array('response' => 'success', 'data' => $data, 'total' => $total, 'last_page' => $last_page, 'current_page' => $parent->current_page, 'message' => $this->page_data['success1']), 200);
  274. }
  275. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  276. /* /////////////////////////////// DELETE UNSAVE //////////////////////////////////////////////// */
  277. private function deleteunsave($parent)
  278. {
  279. globalfunc::checkMethodType($parent, array('DELETE'));
  280. globalfunc::checkParamCount($parent, 3);
  281. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  282. projectfunc::authorizedRole($parent, array('14'));
  283. $smpin = escape_str($parent->params[1]);
  284. $dse_details = $this->getdsedetails($parent, $smpin);
  285. $id = escape_str($parent->params[2]);
  286. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "id,is_deleted", " smpin='" . $smpin . "' AND is_dms=0 AND id='" . $id . "' ", "1");
  287. if ($check_arr['nr'] == 1) {
  288. $update_str = "UPDATE " . DMS_ENQUIRY_MASTER . " SET is_deleted=1 ,`modified_on`='" . NOW . "' WHERE id='" . $id . "'";
  289. $parent->executeQuery($update_str);
  290. //LOG
  291. $logstr = 'ENQUIRY UNSAVE DELETE';
  292. globalfunc::insertUserLog($parent, $logstr);
  293. $parent->response(array('response' => 'success', 'message' => $this->page_data['success1']), 200);
  294. } else {
  295. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error6']), 406);
  296. }
  297. }
  298. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  299. /* /////////////////////////////// OTP //////////////////////////////////////////////// */
  300. private function otp($parent)
  301. {
  302. globalfunc::checkMethodType($parent, array('POST'));
  303. globalfunc::checkParamCount($parent, 2);
  304. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  305. projectfunc::authorizedRole($parent, array('14'));
  306. $smpin = escape_str($parent->params[1]);
  307. $dse_details = $this->getdsedetails($parent, $smpin);
  308. $REQUEST_KEYS = array('mobile' => 'string');
  309. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  310. $mobile = escape_str($parent->_request['mobile']);
  311. $otp_expiry = globalfunc::generateExpiryTime($parent, ENQUIRY_OTP_EXPIRY_MIN);
  312. $otp = globalfunc::generateOTP();
  313. //CHECK SMPIN OTP EXIST
  314. $query_arr = $parent->selectQuery(TABLE_ENQUIRY_OTP, "id", " smpin='" . $smpin . "' AND is_checked=0 AND mobile='" . $mobile . "'", "1");
  315. if ($query_arr['nr'] > 0) {
  316. $update_str = "UPDATE " . TABLE_ENQUIRY_OTP . " SET `otp`='" . $otp . "', otp_expiry='" . $otp_expiry . "', `modified_on`='" . NOW . "' WHERE id='" . $query_arr['result'][0]->id . "'";
  317. $parent->executeQuery($update_str);
  318. } else {
  319. $insert_str = "INSERT INTO " . TABLE_ENQUIRY_OTP . " ( `smpin`, `mobile`, `otp`, `otp_expiry`, `created_on`, `modified_on`) VALUES ('" . $smpin . "', '" . $mobile . "', '" . $otp . "', '" . $otp_expiry . "', '" . NOW . "', '" . NOW . "')";
  320. $parent->executeQuery($insert_str);
  321. }
  322. $sms_message = "Your one time password is " . $otp;
  323. // globalfunc::sendSMS($parent, $mobile, $sms_message);
  324. $mobile_exist = 0;
  325. $enq_data = new stdClass();
  326. //AND dealer_code='".$parent->current_user_data->dealer_code."'
  327. $mobile_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER . " e JOIN " . DMS_EMPLOYEE . " p ON e.smpin=p.smpin JOIN " . DMS_ENQUIRY_MODEL . " m ON e.model1=m.title_code", "m.title as model,m.variant,m.color,e.newvechicledate", "e.mobile='" . $mobile . "' AND p.dealer_code='" . $parent->current_user_data->dealer_code . "' AND e.is_dms=1 AND e.is_deleted=0 ORDER BY e.newvechicledatatime DESC", "1");
  328. if ($mobile_arr['nr'] > 0) {
  329. $mobile_exist = 1;
  330. $enq_data = $mobile_arr['result'][0];
  331. }
  332. //LOG
  333. $logstr = 'ENQUIRY OTP';
  334. globalfunc::insertUserLog($parent, $logstr);
  335. $parent->response(array('response' => 'success', 'data' => array('otp_expiry' => ENQUIRY_OTP_EXPIRY_MIN, 'mobile_exist' => $mobile_exist, 'enq_data' => $enq_data), 'message' => $this->page_data['success1']), 200);
  336. }
  337. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  338. /* /////////////////////////////// OTP VALIDATE //////////////////////////////////////////////// */
  339. private function otpvalidate($parent)
  340. {
  341. globalfunc::checkMethodType($parent, array('POST'));
  342. globalfunc::checkParamCount($parent, 2);
  343. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  344. projectfunc::authorizedRole($parent, array('14'));
  345. $smpin = escape_str($parent->params[1]);
  346. $dse_details = $this->getdsedetails($parent, $smpin);
  347. $REQUEST_KEYS = array('mobile' => 'string', 'otp' => 'string');
  348. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  349. $mobile = escape_str($parent->_request['mobile']);
  350. $otp = escape_str($parent->_request['otp']);
  351. //CHECK SMPIN OTP EXIST
  352. $query_arr = $parent->selectQuery(TABLE_ENQUIRY_OTP, "*", " smpin='" . $smpin . "' AND mobile='" . $mobile . "' AND is_checked=0 ORDER BY id DESC", "1");
  353. if (!$query_arr['nr'] > 0) {
  354. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error2']), 406);
  355. }
  356. if ($query_arr['result'][0]->otp != $otp) {
  357. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error3']), 406);
  358. }
  359. if (strtotime($query_arr['result'][0]->otp_expiry) < strtotime(NOW)) {
  360. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error4']), 406);
  361. }
  362. $parent->executeQuery("UPDATE " . TABLE_ENQUIRY_OTP . " SET is_checked=1 WHERE id='" . $query_arr['result'][0]->id . "'");
  363. /*
  364. $data_check=array();
  365. $check_arr=$parent->selectQuery(DMS_ENQUIRY_MASTER,"*"," mobile='".$mobile."' ORDER BY id DESC","1");
  366. $enquiry_avaliable=0;
  367. if($check_arr['nr']>0)
  368. {
  369. $enquiry_avaliable=(strtolower($check_arr['result'][0]->status)=='lost' || strtolower($check_arr['result'][0]->enquiry_stage)=='invoiced')?"0":"1";
  370. $data=($enquiry_avaliable=='1')?$check_arr['result'][0]:new stdClass();
  371. }
  372. */
  373. $data = new stdClass();
  374. $data_check = array("enquiry_avaliable" => $enquiry_avaliable, 'data' => $data);
  375. //LOG
  376. $logstr = 'ENQUIRY VALIDATE';
  377. globalfunc::insertUserLog($parent, $logstr);
  378. $parent->response(array('response' => 'success', 'data' => $data_check, 'message' => $this->page_data['success1']), 200);
  379. }
  380. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  381. /* /////////////////////////////// ENQUIRY SUBMIT //////////////////////////////////////////////// */
  382. private function getEnquirydata($parent, $id)
  383. {
  384. $data_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, " `id`, `enq_num`, `transaction_id`, `enq_salesman_cd`, `smpin`, `mobile`, `email`, `buyer_type`, `title`, `first_name`, `middle_name`, `last_name`, `ind_sex`, `address1`, `address2`, `address3`, `city`, `state`, `ofc_address1`, `ofc_address2`, `ofc_address3`, `ofc_city`, `ofc_state`, `workplace_id`, `company`, `work_place_name`, `communicate`, `newvechicledatatime`, `newvechicletactionplan`, `oldvechicledate`, `oldvechicletime`, `oldvechicletactionplan`, `model1`, `variant1`, `color1`, `model2`, `variant2`, `color2`, `oldvechiclemaker`, `oldvechiclemodel`, `profession`, `source`, `custtype`, `custage`, `modeofcontact`, `enquiry_stage`, `lik_pur_days`, `followup_remark`, `status`, `save_level`, `is_dms`, `is_starapp`, `created_on`, `modified_on`,ind_sex as gender,DATE_FORMAT(newvechicledatatime, '%d-%m-%Y') newvechicledate,newvechicletime,enquiry_stage as newvechicletpurpose,is_starapp,license,license_expiry,is_testride ", "id='" . $id . "'", "1");
  385. $data_arr['result'][0]->model_image_url = NOIMAGE_URL;
  386. if ($data_arr['result'][0]->model1 != '' && $data_arr['result'][0]->variant1 != '') {
  387. $data_arr['result'][0]->mobile = ($parent->current_user_role != 14) ? maskenquiry($data_arr['result'][0]->mobile) : $data_arr['result'][0]->mobile;
  388. $data_arr['result'][0]->license_expiry = ($data_arr['result'][0]->is_testride == 1 && $data_arr['result'][0]->license_expiry != '0000-00-00') ? date('d-m-Y', strtotime($data_arr['result'][0]->license_expiry)) : '';
  389. $res = $data_arr['result'][0];
  390. $model_arr = $parent->selectQuery(DMS_ENQUIRY_MODEL, "title as model_name,variant as variant_name,color as color_name", "title_code='" . $res->model1 . "' AND variant_code='" . $res->variant1 . "' AND color_code='" . $res->color1 . "'", "");
  391. $data_arr['result'][0]->model_name = ($model_arr['nr'] > 0) ? $model_arr['result'][0]->model_name : $res->model1;
  392. $data_arr['result'][0]->variant_name = ($model_arr['nr'] > 0) ? $model_arr['result'][0]->variant_name : $res->variant1;
  393. $data_arr['result'][0]->color_name = ($model_arr['nr'] > 0) ? $model_arr['result'][0]->color_name : $res->color1;
  394. $data_arr['result'][0]->enq_through = ($res->is_starapp == 1) ? "HYPER-M App" : "DMS";
  395. $data_arr['result'][0]->newvechicledatatime_str = projectfunc::enqdatediff($parent, NOW, $res->newvechicledatatime);
  396. $obj = new stdClass();
  397. $obj->model = $data_arr['result'][0]->model1;
  398. $obj->variant = $data_arr['result'][0]->variant1;
  399. $obj->variantname = $data_arr['result'][0]->variant_name;
  400. $data_arr['result'][0]->model_image_url = projectfunc::modelimage($parent, $obj);
  401. //enquiry type, source,profession,age group
  402. $enquiry_arr = $parent->selectQuery(DMS_ENQUIRY_STAGETYPE, "title", "title_code='" . $res->enquiry_stage . "'", "1");
  403. $data_arr['result'][0]->enquiry_str = ($enquiry_arr['nr'] > 0) ? $enquiry_arr['result'][0]->title : '';
  404. $profession_arr = $parent->selectQuery(DMS_ENQUIRY_PROFESSION, "title", "title_code='" . $res->profession . "'", "1");
  405. $data_arr['result'][0]->profession_str = ($profession_arr['nr'] > 0) ? $profession_arr['result'][0]->title : '';
  406. $age_arr = $parent->selectQuery(DMS_ENQUIRY_CUSTAGE, "title", "title_code='" . $res->custage . "'", "1");
  407. $data_arr['result'][0]->agegroup_str = ($age_arr['nr'] > 0) ? $age_arr['result'][0]->title : '';
  408. $title_arr = $parent->selectQuery(DMS_ENQUIRY_TITLE, "title", "title_code='" . $res->title . "'", "1");
  409. $data_arr['result'][0]->title_str = ($title_arr['nr'] > 0) ? $title_arr['result'][0]->title : '';
  410. $source_arr = $parent->selectQuery(DMS_ENQUIRY_SOURCE, "title", "title_code='" . $res->source . "'", "1");
  411. $data_arr['result'][0]->source_str = ($source_arr['nr'] > 0) ? $source_arr['result'][0]->title : '';
  412. $status_arr = $parent->selectQuery(DMS_ENQUIRY_STATUS, "title", "title_code='" . $res->status . "'", "1");
  413. $data_arr['result'][0]->status_str = ($status_arr['nr'] > 0) ? $status_arr['result'][0]->title : '';
  414. $action_arr = $parent->selectQuery(DMS_ENQUIRY_ACTIONPLAN, "title", "title_code='" . $res->newvechicletactionplan . "'", "1");
  415. $data_arr['result'][0]->action_str = ($action_arr['nr'] > 0) ? $action_arr['result'][0]->title : '';
  416. $checkdate = date('Y-m-d', strtotime($res->newvechicledatatime));
  417. //0-overdue,1-current day,2-future
  418. switch (true) {
  419. case (strtotime($checkdate) < strtotime(CUR_DATE)): $data_arr['result'][0]->enq_date_type = 0;
  420. break;
  421. case (strtotime($checkdate) == strtotime(CUR_DATE)): $data_arr['result'][0]->enq_date_type = 1;
  422. break;
  423. case (strtotime($checkdate) > strtotime(CUR_DATE)): $data_arr['result'][0]->enq_date_type = 2;
  424. break;
  425. }
  426. ///PENDING ENQUIRY MASTER
  427. if (strtoupper($res->enquiry_stage) == 'T') {
  428. $data_arr['result'][0]->icon_type = 1;
  429. } else if (strtoupper($res->modeofcontact) == 'S' || strtoupper($res->modeofcontact) == 'V') {
  430. $data_arr['result'][0]->icon_type = 2;
  431. } else if (in_array(strtoupper($res->modeofcontact), array('E', 'F', 'O', 'T'))) {
  432. $data_arr['result'][0]->icon_type = 3;
  433. } else {
  434. $data_arr['result'][0]->icon_type = 0;
  435. }
  436. //visit,call,testdrive
  437. }
  438. return ($data_arr['nr'] > 0) ? $data_arr['result'][0] : new stdClass();
  439. }
  440. /* /////////////////////////////// ENQUIRY SUBMIT //////////////////////////////////////////////// */
  441. private function enquirysave($parent, $save_level)
  442. {
  443. $smpin = $this->smpin; //p_mspin
  444. $dse_details = $this->getdsedetails($parent, $smpin);
  445. $dealer_code = $dse_details->dealer_code;
  446. switch ($save_level) {
  447. case '1':
  448. $REQUEST_KEYS = array('buyer_type' => 'string', 'title' => 'string', 'first_name' => 'string', 'company' => 'string');
  449. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  450. $id = escape_str($parent->_request['id']);
  451. $edit = 0;
  452. $econd = '';
  453. //CHECK EXITS
  454. if ($id != '') {
  455. $edit = 1;
  456. }
  457. if ($edit == 1) {
  458. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "id", " smpin='" . $smpin . "' AND id='" . $id . "' AND is_starapp=1 AND is_dms=0 AND is_deleted=0 ", "1");
  459. if ($check_arr['nr'] == 0) {
  460. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error6']), 406);
  461. }
  462. $econd = " AND id!='" . $id . "'";
  463. }
  464. //CHECK ALREDY EXIST
  465. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "id", "smpin='" . $smpin . "' " . $econd . " AND is_starapp=1 AND is_dms=0 AND is_deleted=0 ", "1");
  466. if ($check_arr['nr'] > 0) {
  467. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error7']), 406);
  468. }
  469. $buyer_type = escape_str($parent->_request['buyer_type']); //buyer_type
  470. $title = escape_str($parent->_request['title']); //p_title
  471. $first_name = escape_str($parent->_request['first_name']); //fname
  472. $middle_name = escape_str($parent->_request['middle_name']); //mid_name
  473. $last_name = escape_str($parent->_request['last_name']); //l_name
  474. $gender = ($parent->_request['gender']) ? escape_str($parent->_request['gender']) : ""; //gender
  475. $email = escape_str($parent->_request['email']); //p_email
  476. if ($email != '') {
  477. if (!globalfunc::isValidEmail($email)) {
  478. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error12']), 406);
  479. }
  480. }
  481. $address1 = escape_str($parent->_request['address1']); //address1
  482. $address1 = str_replace(array("\n", "\r"), ' ', $address1);
  483. $address2 = escape_str($parent->_request['address2']); //address2
  484. $address3 = escape_str($parent->_request['address3']); //address3
  485. $city = escape_str($parent->_request['city']); //city
  486. $state = escape_str($parent->_request['state']); //state
  487. //GET DEALER
  488. $getdealerarr = $parent->selectQuery(DMS_DEALER, "city_cd,state_cd", "dealer_code='" . $dse_details->dealer_code . "' ", "1");
  489. if ($getdealerarr['nr'] > 0) {
  490. $city = ($getdealerarr['result'][0]->city_cd != '') ? $getdealerarr['result'][0]->city_cd : '';
  491. $state = ($getdealerarr['result'][0]->state_cd != '') ? $getdealerarr['result'][0]->state_cd : '';
  492. }
  493. $company = escape_str($parent->_request['company']); //p_work_place_id
  494. $work_place_name = escape_str($parent->_request['work_place_name']); //p_work_place_name
  495. if ($edit == 0) {
  496. $parent->executeQuery("INSERT INTO `" . DMS_ENQUIRY_MASTER . "` ( smpin, dealer_code, `buyer_type`, `title`, `first_name`, `middle_name`, `last_name`, `ind_sex`, `email`, `address1`, `address2`, `address3`, `city`, `state`, `company`, `work_place_name`,save_level,is_dms,is_starapp ,`created_on`, `modified_on`) VALUES ('" . $smpin . "','" . $dealer_code . "','" . $buyer_type . "','" . $title . "','" . $first_name . "','" . $middle_name . "','" . $last_name . "','" . $gender . "','" . $email . "','" . $address1 . "','" . $address2 . "','" . $address3 . "','" . $city . "', '" . $state . "','" . $company . "','" . $work_place_name . "',1,0,1,'" . NOW . "', '" . NOW . "')");
  497. $id = $parent->lastInsertId();
  498. } else {
  499. $parent->executeQuery("UPDATE `" . DMS_ENQUIRY_MASTER . "` SET dealer_code='" . $dealer_code . "', `buyer_type`='" . $buyer_type . "', `title`='" . $title . "', `first_name`='" . $first_name . "', `middle_name`='" . $middle_name . "', `last_name`='" . $last_name . "', `ind_sex`='" . $gender . "', `email`='" . $email . "', `address1`='" . $address1 . "', `address2`='" . $address2 . "', `address3`='" . $address3 . "', `city`='" . $city . "', `state`='" . $state . "', `company`='" . $company . "', `work_place_name`='" . $work_place_name . "' WHERE id='" . $id . "'");
  500. }
  501. //GET DATA
  502. $data_arr = $this->getEnquirydata($parent, $id);
  503. //LOG
  504. $logstr = 'ENQUIRY SAVE LEVEL 1';
  505. globalfunc::insertUserLog($parent, $logstr, $id);
  506. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  507. break;
  508. case '2':
  509. $REQUEST_KEYS = array('id' => 'number', 'mobile' => 'number', 'communicate' => 'string', 'model1' => 'string', 'variant1' => 'string', 'color1' => 'string');
  510. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  511. $id = escape_str($parent->_request['id']);
  512. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "id,save_level", " id='" . $id . "' AND save_level>=1 AND smpin='" . $smpin . "' AND is_starapp=1 AND is_dms=0 AND is_deleted=0", "1");
  513. if ($check_arr['nr'] != 1) {
  514. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error8']), 406);
  515. }
  516. $query_arr = $parent->selectQuery(TABLE_ENQUIRY_OTP, "*", " smpin='" . $smpin . "' AND mobile='" . $mobile . "' AND is_checked=0 ORDER BY id DESC", "1");
  517. if ($query_arr['nr'] > 0) {
  518. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error9']), 406);
  519. }
  520. $mobile = escape_str($parent->_request['mobile']); //mobile_no
  521. $communicate = escape_str($parent->_request['communicate']); //mod_of_com
  522. $model1 = escape_str($parent->_request['model1']); //model
  523. $variant1 = escape_str($parent->_request['variant1']); //variant
  524. $color1 = escape_str($parent->_request['color1']); //colour
  525. //IF ONLY Level one need to update
  526. if ($check_arr['result'][0]->save_level == 1) {
  527. $updcond = ",save_level='2'";
  528. }
  529. $parent->executeQuery("UPDATE `" . DMS_ENQUIRY_MASTER . "` SET mobile='" . $mobile . "',`model1`='" . $model1 . "', `variant1`='" . $variant1 . "', `color1`='" . $color1 . "',`communicate`='" . $communicate . "' " . $updcond . " WHERE id='" . $id . "'");
  530. //GET DATA
  531. $data_arr = $this->getEnquirydata($parent, $id);
  532. //LOG
  533. $logstr = 'ENQUIRY SAVE LEVEL 2';
  534. globalfunc::insertUserLog($parent, $logstr, $id);
  535. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  536. break;
  537. case '3':
  538. $REQUEST_KEYS = array('id' => 'number', 'source' => 'string', 'profession' => 'string', 'custtype' => 'string', 'custage' => 'string');
  539. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  540. $id = escape_str($parent->_request['id']);
  541. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "id,save_level", " id='" . $id . "' AND save_level>=2 AND smpin='" . $smpin . "' AND is_starapp=1 AND is_dms=0 AND is_deleted=0", "1");
  542. if ($check_arr['nr'] != 1) {
  543. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error8']), 406);
  544. }
  545. $source = escape_str($parent->_request['source']); //enq_soruce
  546. $profession = escape_str($parent->_request['profession']); //occupation
  547. $custtype = escape_str($parent->_request['custtype']); //cust_type
  548. $custage = escape_str($parent->_request['custage']); //p_cust_age_group
  549. if ($check_arr['result'][0]->save_level == 2) {
  550. $updcond = ",save_level='3'";
  551. }
  552. $parent->executeQuery("UPDATE `" . DMS_ENQUIRY_MASTER . "` SET `source`='" . $source . "', `profession`='" . $profession . "', `custtype`='" . $custtype . "', `custage`='" . $custage . "' " . $updcond . " WHERE id='" . $id . "'");
  553. //GET DATA
  554. $data_arr = $this->getEnquirydata($parent, $id);
  555. //LOG
  556. $logstr = 'ENQUIRY SAVE LEVEL 3';
  557. globalfunc::insertUserLog($parent, $logstr, $id);
  558. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  559. break;
  560. default:
  561. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error10']), 406);
  562. break;
  563. }
  564. }
  565. /* /////////////////////////////// ENQUIRY SUBMIT //////////////////////////////////////////////// */
  566. private function enquirysubmit($parent)
  567. {
  568. globalfunc::checkParamCount($parent, 2);
  569. globalfunc::checkMethodType($parent, array('POST'));
  570. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  571. projectfunc::authorizedRole($parent, array('14'));
  572. $id = escape_str($parent->_request['id']);
  573. $save_level = escape_str($parent->_request['save_level']);
  574. //$smpin = $parent->current_user_data->smpin; //p_mspin
  575. $smpin = escape_str($parent->params[1]);
  576. $dse_details = $this->getdsedetails($parent, $smpin);
  577. $this->smpin = $smpin;
  578. $dealer_code = $dse_details->dealer_code; //dealer
  579. $dealer_arr = $parent->selectQuery(DMS_DEALER, "*", "is_enquirymodule=1 AND dealer_code='" . $dealer_code . "'", "1");
  580. if (!$dealer_arr['nr'] > 0) {
  581. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error22']), 406);
  582. }
  583. $is_edit = 0;
  584. switch ($save_level) {
  585. case '1':
  586. case '2':
  587. case '3':
  588. $is_edit = 1; //FOR SAVE
  589. $this->enquirysave($parent, $save_level);
  590. break;
  591. case '4': //final level submit
  592. $REQUEST_KEYS = array('id' => 'number', 'newvechicledate' => 'string', 'newvechicletime' => 'string', 'newvechicletactionplan' => 'string', 'newvechicletpurpose' => 'string');
  593. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  594. // $check_arr=$parent->selectQuery(DMS_ENQUIRY_MASTER ,"id","save_level>=3 AND smpin='".$smpin."' AND is_starapp=1 AND is_dms=0 AND is_deleted=0","1");
  595. // if($check_arr['nr']>0) $parent->response(array('response'=>'failed','message'=>$this->page_data['error7']),406);
  596. $is_edit = 1;
  597. $is_submit = escape_str($parent->_request['is_submit']);
  598. $is_submit = ($is_submit == '1') ? 1 : 0;
  599. break;
  600. default: //do nothing //DIRECT SUBMIT
  601. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "id", "save_level<=4 AND smpin='" . $smpin . "' AND is_dms=0 AND is_deleted=0", "1");
  602. $update_str = "UPDATE " . DMS_ENQUIRY_MASTER . " SET is_deleted=1 ,`modified_on`='" . NOW . "' WHERE smpin='" . $smpin . "' AND id='" . $check_arr['result'][0]->id . "'";
  603. $parent->executeQuery($update_str);
  604. $REQUEST_KEYS = array('title' => 'string', 'first_name' => 'string', 'company' => 'string', 'communicate' => 'string', 'newvechicledate' => 'string', 'newvechicletime' => 'string', 'custage' => 'string');
  605. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  606. break;
  607. }
  608. $enq_salesman_cd = '';
  609. $p_enq = '';
  610. $mobile = escape_str($parent->_request['mobile']); //mobile_no
  611. if ($is_edit == 0) {
  612. $query_arr = $parent->selectQuery(TABLE_ENQUIRY_OTP, "*", " smpin='" . $smpin . "' AND mobile='" . $mobile . "' ORDER BY id DESC", "1");
  613. if ($query_arr['nr'] == 0 || (isset($query_arr['result'][0]) && $query_arr['result'][0]->is_checked == 0)) {
  614. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error9']), 406);
  615. }
  616. }
  617. $newvechicletactionplan = escape_str($parent->_request['newvechicletactionplan']); //p_action
  618. $first_name = escape_str($parent->_request['first_name']); //fname
  619. $middle_name = escape_str($parent->_request['middle_name']); //mid_name
  620. $last_name = escape_str($parent->_request['last_name']); //l_name
  621. $gender = ($parent->_request['gender']) ? escape_str($parent->_request['gender']) : ""; //gender
  622. $profession = escape_str($parent->_request['profession']); //occupation
  623. $email = escape_str($parent->_request['email']); //p_email
  624. if ($is_edit == 0 && $email != '') {
  625. if (!globalfunc::isValidEmail($email)) {
  626. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error12']), 406);
  627. }
  628. }
  629. $address1 = escape_str($parent->_request['address1']); //address1
  630. $address1 = str_replace(array("\n", "\r"), ' ', $address1);
  631. $address2 = escape_str($parent->_request['address2']); //address2
  632. $address3 = escape_str($parent->_request['address3']); //address3
  633. $city = escape_str($parent->_request['city']); //city
  634. $state = escape_str($parent->_request['state']); //state
  635. //GET DEALER
  636. $getdealerarr = $parent->selectQuery(DMS_DEALER, "city_cd,state_cd", "dealer_code='" . $dse_details->dealer_code . "' ", "1");
  637. if ($getdealerarr['nr'] > 0) {
  638. $city = ($getdealerarr['result'][0]->city_cd != '') ? $getdealerarr['result'][0]->city_cd : '';
  639. $state = ($getdealerarr['result'][0]->state_cd != '') ? $getdealerarr['result'][0]->state_cd : '';
  640. }
  641. $ofc_address1 = escape_str($parent->_request['ofc_address1']); //ofc_address1
  642. $ofc_address2 = escape_str($parent->_request['ofc_address2']); //ofc_address2
  643. $ofc_address3 = escape_str($parent->_request['ofc_address3']); //ofc_address3
  644. $ofc_city = escape_str($parent->_request['ofc_city']); //ofc_city
  645. $ofc_state = escape_str($parent->_request['ofc_state']); //ofc_state
  646. $model1 = escape_str($parent->_request['model1']); //model
  647. $variant1 = escape_str($parent->_request['variant1']); //variant
  648. $color1 = escape_str($parent->_request['color1']); //colour
  649. $communicate = escape_str($parent->_request['communicate']); //mod_of_com
  650. $modeofcontact = $newvechicletactionplan;
  651. $custtype = escape_str($parent->_request['custtype']); //cust_type
  652. $buyer_type = escape_str($parent->_request['buyer_type']); //buyer_type
  653. //$lik_pur_days=escape_str($parent->_request['lik_pur_days']); //lik_pur_days
  654. $lik_pur_days = '0';
  655. $source = escape_str($parent->_request['source']); //enq_soruce
  656. $model_cd = '';
  657. $variant_cd = '';
  658. $newvechicledate_str = escape_str($parent->_request['newvechicledate']);
  659. $newvechicletime = escape_str($parent->_request['newvechicletime']);
  660. $date_arr = @explode('-', $newvechicledate_str);
  661. $date_str = $date_arr[2] . "-" . $date_arr[1] . "-" . $date_arr[0];
  662. $newvechicledatatime = $date_str . " " . $newvechicletime;
  663. $p_pmc = '2';
  664. $title = escape_str($parent->_request['title']); //p_title
  665. $company = escape_str($parent->_request['company']); //p_work_place_id
  666. $work_place_name = escape_str($parent->_request['work_place_name']); //p_work_place_name
  667. $enquiry_stage = escape_str($parent->_request['newvechicletpurpose']); //p_stage
  668. $oldvechicledate = '';
  669. $oldvechicletime = '';
  670. $oldvechicletactionplan = '';
  671. $oldvechicletpurpose = '';
  672. // $oldvechicledate=escape_str($parent->_request['oldvechicledate']);
  673. // $oldvechicletime=escape_str($parent->_request['oldvechicletime']);
  674. // $oldvechicletactionplan=escape_str($parent->_request['oldvechicletactionplan']);
  675. // $oldvechicletpurpose=escape_str($parent->_request['oldvechicletpurpose']);
  676. $model2 = escape_str($parent->_request['model2']);
  677. $variant2 = escape_str($parent->_request['variant2']);
  678. $color2 = escape_str($parent->_request['color2']);
  679. $oldvechiclemaker = escape_str($parent->_request['oldvechiclemaker']);
  680. $oldvechiclemodel = escape_str($parent->_request['oldvechiclemodel']);
  681. $custage = escape_str($parent->_request['custage']); //p_cust_age_group
  682. $p_eval_code = escape_str($parent->_request['p_eval_code']);
  683. $p_old_car_make = escape_str($parent->_request['p_old_car_make']);
  684. $p_old_car_model = escape_str($parent->_request['p_old_car_model']);
  685. $p_old_car_submodel = escape_str($parent->_request['p_old_car_submodel']);
  686. $p_ad_cd = escape_str($parent->_request['p_ad_cd']);
  687. $p_event_cd = escape_str($parent->_request['p_event_cd']);
  688. $p_enq_ref_mode = escape_str($parent->_request['p_enq_ref_mode']);
  689. $p_referred_by = escape_str($parent->_request['p_referred_by']);
  690. $is_testride = '0';
  691. $license = escape_str($parent->_request['license']);
  692. $license_expiry = escape_str($parent->_request['license_expiry']);
  693. if ($license_expiry != '' || $license != '') {
  694. $REQUEST_KEYS = array('license' => 'string', 'license_expiry' => 'date|d-m-Y');
  695. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  696. $is_testride = '1';
  697. $ldate_arr = @explode('-', $license_expiry);
  698. $ldate_str = $ldate_arr[2] . "-" . $ldate_arr[1] . "-" . $ldate_arr[0];
  699. $license_expiry = $ldate_str;
  700. }
  701. $status = "H"; //p_statusid
  702. $date1 = new DateTime(CUR_DATE);
  703. $date2 = $date1->diff(new DateTime($date_str));
  704. $diff_days = $date2->days;
  705. if ($diff_days <= 7) {
  706. $status = "H"; //HOT
  707. } elseif ($diff_days > 7 && $diff_days <= 21) {
  708. $status = "W"; //WARM
  709. } elseif ($diff_days > 21) {
  710. $status = "P"; //COLD
  711. }
  712. $p_km_drive_month = escape_str($parent->_request['p_km_drive_month']);
  713. $p_mode_of_purchase = escape_str($parent->_request['p_mode_of_purchase']);
  714. $p_any_other_car = escape_str($parent->_request['p_any_other_car']);
  715. $p_ref_type = escape_str($parent->_request['p_ref_type']);
  716. $p_ref_no = escape_str($parent->_request['p_ref_no']);
  717. $p_ref_phone_no = escape_str($parent->_request['p_ref_phone_no']);
  718. $leadid = 'starenq' . uniqid(); //p_transaction_id
  719. //FOR SAVE
  720. if ($is_edit == 1) {
  721. if ($is_submit == 0) {
  722. $parent->executeQuery("UPDATE `" . DMS_ENQUIRY_MASTER . "` SET newvechicledate='" . $date_str . "',newvechicletime='" . $newvechicletime . "',newvechicledatatime='" . $newvechicledatatime . "',newvechicletactionplan='" . $newvechicletactionplan . "',enquiry_stage='" . $enquiry_stage . "',save_level='" . $save_level . "',license='" . $license . "',license_expiry='" . $license_expiry . "',is_testride='" . $is_testride . "' WHERE id='" . $id . "'");
  723. $data_arr = $this->getEnquirydata($parent, $id);
  724. //LOG
  725. $logstr = 'ENQUIRY SAVE LEVEL 4';
  726. globalfunc::insertUserLog($parent, $logstr);
  727. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  728. } else {
  729. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "*", "id='" . $id . "' AND smpin='" . $smpin . "' AND is_dms=0 AND is_deleted=0", "1");
  730. if ($check_arr['nr'] != 1) {
  731. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error6']), 406);
  732. }
  733. $first_name = $check_arr['result'][0]->first_name;
  734. $middle_name = $check_arr['result'][0]->middle_name;
  735. $last_name = $check_arr['result'][0]->last_name;
  736. $gender = $check_arr['result'][0]->ind_sex;
  737. $profession = $check_arr['result'][0]->profession;
  738. $p_email = $check_arr['result'][0]->email;
  739. $mobile = $check_arr['result'][0]->mobile;
  740. $address1 = $check_arr['result'][0]->address1;
  741. $address2 = $check_arr['result'][0]->address2;
  742. $address3 = $check_arr['result'][0]->address3;
  743. $ofc_address1 = $check_arr['result'][0]->ofc_address1;
  744. $ofc_address2 = $check_arr['result'][0]->ofc_address2;
  745. $ofc_address3 = $check_arr['result'][0]->ofc_address3;
  746. $ofc_city = $check_arr['result'][0]->ofc_city;
  747. $ofc_state = $check_arr['result'][0]->ofc_state;
  748. $model1 = $check_arr['result'][0]->model1;
  749. $variant1 = $check_arr['result'][0]->variant1;
  750. $color1 = $check_arr['result'][0]->color1;
  751. $communicate = $check_arr['result'][0]->communicate;
  752. //$modeofcontact=$check_arr['result'][0]->modeofcontact;
  753. $custtype = $check_arr['result'][0]->custtype;
  754. $buyer_type = $check_arr['result'][0]->buyer_type;
  755. $source = $check_arr['result'][0]->source;
  756. $company = $check_arr['result'][0]->company;
  757. $work_place_name = $check_arr['result'][0]->work_place_name;
  758. $title = $check_arr['result'][0]->title;
  759. $custage = $check_arr['result'][0]->custage;
  760. }
  761. }
  762. //CALL DMS ORACLE
  763. $url = SUZ_DMS_URL;
  764. $enq_soruce = $source;
  765. $post = array("query" => "BEGIN pkg_smipl_star_app.sp_enq(:p_mspin, :p_enq, :p_action, :p_stage, :fname, :mid_name, :l_name, :mobile_no, :gender, :occupation, :p_email, :address1, :address2, :address3, :city, :state, :ofc_address1, :ofc_address2, :ofc_address3, :ofc_city, :ofc_state, :model, :variant, :colour, :mod_of_com, :cust_type, :buyer_type, :lik_pur_days, :enq_soruce, :model_cd, :variant_cd, :next_follwowup_date, :p_pmc, :p_work_place_id, :p_work_place_name, :p_transaction_id, :p_eval_code, :p_old_car_make, :p_old_car_model, :p_old_car_submodel, :p_ad_cd, :p_event_cd, :p_enq_ref_mode, :p_referred_by, :p_statusid, :p_km_drive_month, :p_mode_of_purchase, :p_any_other_car, :p_ref_type, :p_ref_no, :p_ref_phone_no, :p_title, :p_village, :p_tehsil, :p_district, :p_pin, :p_ofc_village, :p_ofc_tehsil, :p_ofc_district, :p_ofc_pin, :p_cust_age_group, :enq_number, :p_err_msg, :p_error); END;", "params" => '[{"title":"p_mspin","value":"' . $smpin . '","type":""},{"title":"p_enq","value":"' . $p_enq . '","type":""},{"title":"p_action","value":"' . $newvechicletactionplan . '","type":""},{"title":"p_stage","value":"' . $enquiry_stage . '","type":""},{"title":"fname","value":"' . $first_name . '","type":""},{"title":"mid_name","value":"' . $middle_name . '","type":""},{"title":"l_name","value":"' . $last_name . '","type":""},{"title":"mobile_no","value":"' . $mobile . '","type":""},{"title":"gender","value":"' . $gender . '","type":""},{"title":"occupation","value":"' . $profession . '","type":""},{"title":"p_email","value":"' . $email . '","type":""},{"title":"address1","value":"' . $address1 . '"},{"title":"address2","value":"' . $address2 . '","type":""},{"title":"address3","value":"' . $address3 . '","type":""},{"title":"city","value":"' . $city . '","type":""},{"title":"state","value":"' . $state . '","type":""},{"title":"ofc_address1","value":"' . $ofc_address1 . '","type":""},{"title":"ofc_address2","value":"' . $ofc_address2 . '","type":""},{"title":"ofc_address3","value":"' . $ofc_address3 . '","type":""},{"title":"ofc_city","value":"' . $ofc_city . '","type":""},{"title":"ofc_state","value":"' . $ofc_state . '","type":""},{"title":"model","value":"' . $model1 . '","type":""},{"title":"variant","value":"' . $variant1 . '","type":""},{"title":"colour","value":"' . $color1 . '","type":""},{"title":"mod_of_com","value":"' . $communicate . '","type":""},{"title":"cust_type","value":"' . $custtype . '","type":""},{"title":"buyer_type","value":"' . $buyer_type . '","type":""},{"title":"lik_pur_days","value":"' . $lik_pur_days . '","type":""},{"title":"enq_soruce","value":"' . $enq_soruce . '","type":""},{"title":"model_cd","value":"' . $model_cd . '","type":""},{"title":"variant_cd","value":"' . $variant_cd . '","type":""},{"title":"next_follwowup_date","value":"' . date('d-M-Y', strtotime($newvechicledatatime)) . '","type":""},{"title":"p_pmc","value":2,"type":""},{"title":"p_work_place_id","value":"' . $company . '","type":""},{"title":"p_work_place_name","value":"' . $work_place_name . '","type":""},{"title":"p_transaction_id","value":"' . $leadid . '","type":""},{"title":"p_eval_code","value":"' . $p_eval_code . '","type":""},{"title":"p_old_car_make","value":"' . $p_old_car_make . '","type":""},{"title":"p_old_car_model","value":"' . $p_old_car_model . '","type":""},{"title":"p_old_car_submodel","value":"' . $p_old_car_submodel . '","type":""},{"title":"p_ad_cd","value":"' . $p_ad_cd . '","type":""},{"title":"p_event_cd","value":"' . $p_event_cd . '","type":""},{"title":"p_enq_ref_mode","value":"' . $p_enq_ref_mode . '","type":""},{"title":"p_referred_by","value":"' . $p_referred_by . '","type":""},{"title":"p_statusid","value":"' . $status . '","type":""},{"title":"p_km_drive_month","value":"' . $p_km_drive_month . '","type":""},{"title":"p_mode_of_purchase","value":"' . $p_mode_of_purchase . '","type":""},{"title":"p_any_other_car","value":"' . $p_any_other_car . '","type":""},{"title":"p_ref_type","value":"' . $p_ref_type . '","type":""},{"title":"p_ref_no","value":"' . $p_ref_no . '","type":""},{"title":"p_ref_phone_no","value":"' . $p_ref_phone_no . '","type":""},{"title":"p_title","value":"' . $title . '","type":""},{"title":"p_village","value":"' . $p_village . '","type":""},{"title":"p_tehsil","value":"' . $p_tehsil . '","type":""},{"title":"p_district","value":"' . $p_district . '","type":""},{"title":"p_pin","value":"' . $p_pin . '","type":""},{"title":"p_ofc_village","value":"' . $p_ofc_village . '","type":""},{"title":"p_ofc_tehsil","value":"' . $p_ofc_tehsil . '","type":""},{"title":"p_ofc_district","value":"' . $p_ofc_district . '","type":""},{"title":"p_ofc_pin","value":"' . $p_ofc_pin . '","type":""},{"title":"p_cust_age_group","value":"' . $custage . '","type":""},{"title":"enq_number","value":"","type":"string","length":200},{"title":"p_err_msg","value":"","type":"string","length":1000},{"title":"p_error","value":"","type":"string","length":200}]');
  766. //LOG
  767. $obj = new stdClass();
  768. $obj->type = 'enqsubmit';
  769. $obj->apirequest = $post['params'];
  770. $log_id = projectfunc::cronLog($parent, $obj);
  771. $header = array('Authorization:Bearer ' . SUZ_TOKEN);
  772. // $ch = curl_init();
  773. // curl_setopt($ch, CURLOPT_URL, $url);
  774. // curl_setopt($ch, CURLOPT_POST, 1);
  775. // curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //Post Fields
  776. // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  777. // curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  778. // $response = curl_exec($ch);
  779. // $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  780. // curl_close($ch);
  781. $httpcode = '200';
  782. $response="";
  783. $error = 1;
  784. $count = 0;
  785. $emsg = '';
  786. //REPSONSE SAVE
  787. $obj = new stdClass();
  788. $obj->id = $log_id;
  789. $obj->apiresponse = $response;
  790. projectfunc::updateCronLog($parent, $obj);
  791. if ($httpcode == '200' && $response != '') {
  792. $json = json_decode($response);
  793. if (isset($json->response) && $json->response == 'success' && isset($json->data) && isset($json->data->enq_number) && $json->data->enq_number != '') {
  794. $error = 0;
  795. if ($is_edit == 0) {
  796. $parent->executeQuery("INSERT INTO `" . DMS_ENQUIRY_MASTER . "` ( transaction_id, `enq_salesman_cd`, `smpin`, dealer_code, `mobile`, `email`, `buyer_type`, `title`, `first_name`, `middle_name`, `last_name`, `ind_sex`, `address1`, `address2`, `address3`, `city`, `state`, `ofc_address1`, `ofc_address2`, `ofc_address3`, `ofc_city`, `ofc_state`, `company`, `work_place_name`, `communicate`, `newvechicledate`, `newvechicletime`, `newvechicledatatime`, `newvechicletactionplan`,`model1`, `variant1`, `color1`, `profession`, `source`, `custtype`, `custage`, `modeofcontact`, `enquiry_stage`, `lik_pur_days`,license,license_expiry,is_testride , `status`,save_level, is_dms, is_starapp,is_dealersubmit, `created_on`, `modified_on`) VALUES ('" . $leadid . "','" . $enq_salesman_cd . "','" . $smpin . "','" . $dealer_code . "', '" . $mobile . "','" . $email . "','" . $buyer_type . "','" . $title . "','" . $first_name . "','" . $middle_name . "','" . $last_name . "','" . $gender . "','" . $address1 . "','" . $address2 . "','" . $address3 . "','" . $city . "', '" . $state . "','" . $ofc_address1 . "','" . $ofc_address2 . "', '" . $ofc_address3 . "', '" . $ofc_city . "', '" . $ofc_state . "','" . $company . "','" . $work_place_name . "','" . $communicate . "','" . $date_str . "','" . $newvechicletime . "','" . $newvechicledatatime . "','" . $newvechicletactionplan . "', '" . $model1 . "','" . $variant1 . "','" . $color1 . "','" . $profession . "','" . $source . "','" . $custtype . "','" . $custage . "','" . $modeofcontact . "','" . $enquiry_stage . "','" . $lik_pur_days . "','" . $license . "','" . $license_expiry . "','" . $is_testride . "','" . $status . "',5 ,1 ,1,1,'" . NOW . "', '" . NOW . "')");
  797. $id = $parent->lastInsertId();
  798. } else {
  799. //'id'=>'number','newvechicledate'=>'string','newvechicletime'=>'string','newvechicletactionplan'=>'string','newvechicletpurpose'=>'string'
  800. $parent->executeQuery("UPDATE `" . DMS_ENQUIRY_MASTER . "` SET dealer_code='" . $dealer_code . "',transaction_id='" . $leadid . "',`city`='" . $city . "', `state`='" . $state . "',newvechicledate='" . $date_str . "',newvechicletime='" . $newvechicletime . "',newvechicledatatime='" . $newvechicledatatime . "',modeofcontact='" . $modeofcontact . "',newvechicletactionplan='" . $newvechicletactionplan . "',enquiry_stage='" . $enquiry_stage . "',lik_pur_days='" . $lik_pur_days . "',license='" . $license . "',license_expiry='" . $license_expiry . "',is_testride='" . $is_testride . "', `status`='" . $status . "',save_level='" . $save_level . "',is_dms='1',is_dealersubmit=1 WHERE id='" . $id . "'");
  801. }
  802. $parent->executeQuery("UPDATE " . DMS_ENQUIRY_MASTER . " SET enq_num='" . $json->data->enq_number . "' WHERE id='" . $id . "'");
  803. //$data_arr=$parent->selectQuery(DMS_ENQUIRY_MASTER ,"*","id='".$id."'","1");
  804. $data_arr = $this->getEnquirydata($parent, $id);
  805. //LOG UPDATE
  806. $obj = new stdClass();
  807. $obj->id = $log_id;
  808. $obj->insert_count = 1;
  809. $obj->status = 1;
  810. //$obj->apiresponse=$response;
  811. projectfunc::updateCronLog($parent, $obj);
  812. //LOG
  813. $logstr = 'ENQUIRY SUBMIT';
  814. globalfunc::insertUserLog($parent, $logstr);
  815. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  816. }
  817. if ($json->response == 'success' && $json->data->p_err_msg != '') {
  818. $emsg = $json->data->p_err_msg;
  819. }
  820. }
  821. if ($error == 1) {
  822. $emsg = ($emsg != '') ? $emsg : "Error to connect DMS. Please try after sometime";
  823. $parent->response(array('response' => 'failed', 'message' => $emsg), 406);
  824. }
  825. }
  826. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  827. /* /////////////////////////////// DASHBOARD //////////////////////////////////////////////// */
  828. private function dashboard($parent)
  829. {
  830. globalfunc::checkMethodType($parent, array('GET'));
  831. globalfunc::checkParamCount($parent, 2);
  832. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  833. projectfunc::authorizedRole($parent, array('14'));
  834. $smpin = escape_str($parent->params[1]);
  835. if ($smpin == 'all') {
  836. $cond = " smpin IN (SELECT e.smpin FROM " . DMS_EMPLOYEE . " e JOIN " . TABLE_USER . " u ON e.smpin=u.smpin WHERE e.dealer_code='" . $parent->current_user_data->dealer_code . "' AND e.status=1 AND e.is_current=1 AND u.status='1' AND u.is_deleted = 0 )";
  837. } else {
  838. $dse_details = $this->getdsedetails($parent, $smpin);
  839. $cond = "smpin='" . $smpin . "'";
  840. }
  841. //TODAY ENQUIRY MASTER
  842. //VISIT
  843. $today_visit_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND DATE(newvechicledatatime)= '" . CUR_DATE . "' AND modeofcontact IN ('S','V') AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')", "1");
  844. //TESTRIDE
  845. $today_testride_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND DATE(newvechicledatatime)= '" . CUR_DATE . "' AND enquiry_stage='T' AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')", "1");
  846. //CALL
  847. $today_call_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND DATE(newvechicledatatime)= '" . CUR_DATE . "' AND modeofcontact IN ('E','F','O','T') AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')", "1");
  848. $today_visit = $today_visit_arr['result'][0]->data_count;
  849. $today_testride = $today_testride_arr['result'][0]->data_count;
  850. $today_call = $today_call_arr['result'][0]->data_count;
  851. //pending task last 10 days only
  852. $last_ten_date = date('Y-m-d', strtotime('-10 day', strtotime(NOW)));
  853. //PENDING ENQUIRY MASTER
  854. $pending_visit_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND newvechicledatatime<'" . CUR_DATE . " 00:00:00' AND newvechicledatatime>'" . $last_ten_date . " 00:00:00' AND modeofcontact IN ('S','V') AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')", "1");
  855. $pending_testride_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND newvechicledatatime<'" . CUR_DATE . " 00:00:00' AND newvechicledatatime>'" . $last_ten_date . " 00:00:00' AND enquiry_stage='T' AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')", "1");
  856. $pending_call_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND newvechicledatatime<'" . CUR_DATE . " 00:00:00' AND newvechicledatatime>'" . $last_ten_date . " 00:00:00' AND modeofcontact IN ('E','F','O','T') AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')", "1");
  857. $pending_visit = $pending_visit_arr['result'][0]->data_count;
  858. $pending_testride = $pending_testride_arr['result'][0]->data_count;
  859. $pending_call = $pending_call_arr['result'][0]->data_count;
  860. //TOMORROW ENQUIRY MASTER
  861. $tomorrow_date = date('Y-m-d', strtotime('+1 day', strtotime(NOW)));
  862. //VISIT
  863. $tomorrow_visit_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND DATE(newvechicledatatime)= '" . $tomorrow_date . "' AND modeofcontact IN ('S','V') AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')", "1");
  864. //TESTRIDE
  865. $tomorrow_testride_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND DATE(newvechicledatatime)= '" . $tomorrow_date . "' AND enquiry_stage='T' AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')", "1");
  866. //CALL
  867. $tomorrow_call_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND DATE(newvechicledatatime)= '" . $tomorrow_date . "' AND modeofcontact IN ('E','F','O','T') AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')", "1");
  868. $tomorrow_visit = $tomorrow_visit_arr['result'][0]->data_count;
  869. $tomorrow_testride = $tomorrow_testride_arr['result'][0]->data_count;
  870. $tomorrow_call = $tomorrow_call_arr['result'][0]->data_count;
  871. $today = array('visit' => $today_visit, 'testride' => $today_testride, 'call' => $today_call);
  872. $pending = array('visit' => $pending_visit, 'testride' => $pending_testride, 'call' => $pending_call);
  873. $tomorrow = array('visit' => $tomorrow_visit, 'testride' => $tomorrow_testride, 'call' => $tomorrow_call);
  874. $data = array('today' => $today, 'pending' => $pending, 'tomorrow' => $tomorrow);
  875. //LOG
  876. $logstr = 'DEALER ENQUIRY DASHBOARD';
  877. globalfunc::insertUserLog($parent, $logstr);
  878. $parent->response(array('response' => 'success', 'data' => $data, 'message' => $this->page_data['success1']), 200);
  879. }
  880. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  881. /* /////////////////////////////// DASHBOARD SALES //////////////////////////////////////////////// */
  882. private function enquirysales($parent)
  883. {
  884. //sales/2018/2
  885. globalfunc::checkMethodType($parent, array('GET'));
  886. globalfunc::checkParamCount($parent, 4);
  887. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  888. projectfunc::authorizedRole($parent, array('14'));
  889. $smpin = escape_str($parent->params[1]);
  890. if ($smpin == 'all') {
  891. $cond = " smpin IN (SELECT e.smpin FROM " . DMS_EMPLOYEE . " e JOIN " . TABLE_USER . " u ON e.smpin=u.smpin WHERE e.dealer_code='" . $parent->current_user_data->dealer_code . "' AND e.status=1 AND e.is_current=1 AND u.status='1' AND u.is_deleted = 0)";
  892. } else {
  893. $dse_details = $this->getdsedetails($parent, $smpin);
  894. $cond = "smpin='" . $smpin . "'";
  895. }
  896. $year_data = escape_str($parent->params[2]);
  897. $last_data = escape_str($parent->params[3]);
  898. $last_data_arr = explode('?', $last_data);
  899. $month_data = escape_str(trim($last_data_arr[0]));
  900. //$smpin = $parent->current_user_data->smpin;
  901. //*****************SALES
  902. if ($smpin == 'all') {
  903. $arr = projectfunc::managersalesEnquiryDashboard($parent, 14, $year_data, $month_data, '');
  904. $user_target = $arr['target'];
  905. $user_achieved = $arr['achieved'];
  906. } else {
  907. //TARGET
  908. $user_target = projectfunc::userSmpinSalesTarget($parent, $smpin, '', $year_data, $month_data);
  909. //ACHIEVED
  910. $user_achieved = projectfunc::userSmpinSalesAchieved($parent, $smpin, '', $year_data, $month_data);
  911. }
  912. $sales = array('target' => $user_target, 'achieved' => $user_achieved, 'month' => date('M', strtotime('2018-' . $month_data . "-01")), 'year' => $year_data);
  913. //****************ENQUIRY
  914. $achieved_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND created_on LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND is_dms=1 AND is_deleted=0", "1");
  915. //TARGET
  916. //$enquiry_target = (string) ($user_target * 3); //SALES TARGET multiple by 3
  917. if ($smpin == 'all') {
  918. $enqtarget_arr = projectfunc::managerEnquiryTarget($parent, 14, $year_data, $month_data, '');
  919. $enquiry_target = $enqtarget_arr['target'];
  920. } else {
  921. $emp_arr = $parent->selectQuery(DMS_EMPLOYEE, "segment", "smpin='" . $smpin . "'", "1");
  922. $segment = ($emp_arr['nr'] > 0) ? $emp_arr['result'][0]->segment : 0;
  923. switch ($segment) {
  924. case '1': //TARGET
  925. $enquiry_target = (string) ($user_target * 5); //SALES TARGET multiple by 5
  926. break;
  927. case '2': //TARGET
  928. $enquiry_target = (string) ($user_target * 3); //SALES TARGET multiple by 3
  929. break;
  930. default:
  931. $enquiry_target = (string) ($user_target * 3); //SALES TARGET multiple by 3
  932. break;
  933. }
  934. }
  935. //ACHIEVED
  936. $enquiry_achieved = $achieved_arr['result'][0]->data_count;
  937. $enquiry = array('target' => $enquiry_target, 'achieved' => $enquiry_achieved, 'month' => date('M', strtotime('2018-' . $month_data . "-01")), 'year' => $year_data);
  938. //*****************STATUS
  939. $hot_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND created_on LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND status='H' AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')", "1");
  940. $warm_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND created_on LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND status='W' AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')", "1");
  941. $cold_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND created_on LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND status='P' AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')", "1");
  942. $hot = $hot_arr['result'][0]->data_count;
  943. $warm = $warm_arr['result'][0]->data_count;
  944. $cold = $cold_arr['result'][0]->data_count;
  945. $status_arr = array("hot" => $hot, "warm" => $warm, "cold" => $cold);
  946. //*****************STAGE
  947. $testride_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND created_on LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND enquiry_stage='T' AND is_dms=1 AND is_deleted=0 ", "1");
  948. $booked_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND created_on LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND enquiry_stage='O' AND is_dms=1 AND is_deleted=0 ", "1");
  949. $invoiced_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND created_on LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND enquiry_stage IN('Z','P') AND is_dms=1 AND is_deleted=0 ", "1");
  950. $lost_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND created_on LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND status='L' AND is_dms=1 AND is_deleted=0 ", "1");
  951. $postponed_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND created_on LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND status='E' AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V') ", "1");
  952. $delivered_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) data_count", $cond . " AND created_on LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND enquiry_stage IN ('O','V') AND is_dms=1 AND is_deleted=0 ", "1");
  953. $testride = $testride_arr['result'][0]->data_count;
  954. $booked = $booked_arr['result'][0]->data_count;
  955. $invoiced = $invoiced_arr['result'][0]->data_count;
  956. $lost = $lost_arr['result'][0]->data_count;
  957. $postponed = $postponed_arr['result'][0]->data_count;
  958. $delivered = $delivered_arr['result'][0]->data_count;
  959. $stage_arr = array("testride" => $testride, 'booked' => $booked, 'invoiced' => $invoiced, 'lost' => $lost, 'postponed' => $postponed, 'delivered' => $delivered);
  960. $data = array('enquiry' => $enquiry, 'sales' => $sales, 'status' => $status_arr, 'stage' => $stage_arr);
  961. //LOG
  962. $logstr = 'SALES DASHBOARD';
  963. globalfunc::insertUserLog($parent, $logstr);
  964. $parent->response(array('response' => 'success', 'data' => $data, 'message' => $this->page_data['success1']), 200);
  965. }
  966. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  967. /* /////////////////////////////// LIST DATA //////////////////////////////////////////////// */
  968. private function listdata($parent)
  969. {
  970. //sales/2018/2
  971. globalfunc::checkMethodType($parent, array('POST'));
  972. globalfunc::checkParamCount($parent, 2);
  973. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  974. projectfunc::authorizedRole($parent, array('3', '4', '5', '6', '7', '14'));
  975. $smpin_str = @explode('?', escape_str($parent->params[1]));
  976. $smpin = $smpin_str[0];
  977. $dse_details = $this->getdsedetails($parent, $smpin);
  978. //$smpin = $parent->current_user_data->smpin;
  979. try {
  980. //PAGINATION SETTINGS
  981. $limit_cond = '';
  982. $data_arr = array();
  983. $limit_str = globalfunc::setPageLimit($parent, $parent->params[1]);
  984. $limit_cond = ($limit_str) ? " LIMIT " . $limit_str : '';
  985. $REQUEST_KEYS = array('listtype' => 'string');
  986. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  987. $listtype = escape_str($parent->_request['listtype']);
  988. $cond = '';
  989. switch ($listtype) {
  990. case 'today':
  991. $todaytype = escape_str($parent->_request['todaytype']);
  992. if (strtolower($todaytype) == 'visit') {
  993. $cond = " AND e.modeofcontact IN ('S','V') ";
  994. } else if (strtolower($todaytype) == 'test drive') {
  995. $cond = " AND e.enquiry_stage='T'";
  996. } else if (strtolower($todaytype) == 'call') {
  997. $cond = " AND e.modeofcontact IN ('E','F','O','T')";
  998. }
  999. $cond .= " AND enquiry_stage NOT IN ('Z','O','P','V') AND DATE(e.newvechicledatatime)= '" . CUR_DATE . "'";
  1000. break;
  1001. case 'tomorrow':
  1002. $todaytype = escape_str($parent->_request['todaytype']);
  1003. if (strtolower($todaytype) == 'visit') {
  1004. $cond = " AND e.modeofcontact IN ('S','V')";
  1005. } else if (strtolower($todaytype) == 'test drive') {
  1006. $cond = " AND e.enquiry_stage='T'";
  1007. } else if (strtolower($todaytype) == 'call') {
  1008. $cond = " AND e.modeofcontact IN ('E','F','O','T')";
  1009. }
  1010. $tomorrow_date = date('Y-m-d', strtotime('+1 day', strtotime(NOW)));
  1011. $cond .= " AND enquiry_stage NOT IN ('Z','O','P','V') AND DATE(e.newvechicledatatime)= '" . $tomorrow_date . "'";
  1012. break;
  1013. case 'date':
  1014. $REQUEST_KEYS = array('date' => 'date|Y-m-d');
  1015. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  1016. $date = escape_str($parent->_request['date']);
  1017. $todaytype = escape_str($parent->_request['todaytype']);
  1018. if (strtolower($todaytype) == 'visit') {
  1019. $cond = " AND e.modeofcontact IN ('S','V')";
  1020. } else if (strtolower($todaytype) == 'test drive') {
  1021. $cond = " AND e.enquiry_stage='T'";
  1022. } else if (strtolower($todaytype) == 'call') {
  1023. $cond = " AND e.modeofcontact IN ('E','F','O','T')";
  1024. }
  1025. $cond .= " AND enquiry_stage NOT IN ('Z','O','P','V') AND DATE(newvechicledatatime)= '" . $date . "'";
  1026. break;
  1027. case 'pending':
  1028. $REQUEST_KEYS = array('pendingtype' => 'string');
  1029. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  1030. $pendingtype = escape_str($parent->_request['pendingtype']);
  1031. if (strtolower($pendingtype) == 'visit') {
  1032. $cond = " AND e.modeofcontact IN ('S','V')";
  1033. } else if (strtolower($pendingtype) == 'test drive') {
  1034. $cond = "AND e.enquiry_stage='T'";
  1035. } else if (strtolower($pendingtype) == 'call') {
  1036. $cond = " AND e.modeofcontact IN ('E','F','O','T')";
  1037. }
  1038. $last_ten_date = date('Y-m-d', strtotime('-10 day', strtotime(NOW)));
  1039. $cond .= " AND enquiry_stage NOT IN ('Z','O','P','V') AND e.newvechicledatatime<'" . CUR_DATE . " 00:00:00' AND newvechicledatatime>'" . $last_ten_date . " 00:00:00'";
  1040. //$cond.=(in_array(strtolower($pendingtype),array("visit","test drive","call")))?" AND enquiry_stage='".$pendingtype."'":$parent->response(array('response'=>'failed', 'message' => $this->page_data['error5']), 406);
  1041. //$cond.= " AND enquiry_stage='".$pendingtype."'";
  1042. //$cond.= " AND enquiry_stage='".$pendingtype."'";
  1043. break;
  1044. case 'hot':
  1045. case 'warm':
  1046. case 'cold':
  1047. case 'testride':
  1048. case 'booked':
  1049. case 'invoiced':
  1050. case 'lost':
  1051. case 'postponed':
  1052. $REQUEST_KEYS = array('month' => 'string', 'year' => 'string');
  1053. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  1054. $month_data = escape_str($parent->_request['month']);
  1055. $year_data = escape_str($parent->_request['year']);
  1056. if (in_array($listtype, array("hot", "warm", "cold", 'lost', 'postponed'))) {
  1057. switch ($listtype) {
  1058. case 'hot':$listtype_str = 'H';
  1059. break;
  1060. case 'warm':$listtype_str = 'W';
  1061. break;
  1062. case 'cold':$listtype_str = 'P';
  1063. break;
  1064. case 'lost':$listtype_str = 'L';
  1065. break;
  1066. case 'postponed':$listtype_str = 'E';
  1067. break;
  1068. }
  1069. if ($listtype != 'lost') {
  1070. $cond .= " AND enquiry_stage NOT IN ('Z','O','P','V')";
  1071. }
  1072. $cond .= " AND e.status='" . $listtype_str . "'";
  1073. } else {
  1074. // $str=($listtype=='testride')?"T":$listtype;
  1075. switch ($listtype) {
  1076. case 'testride':$str = 'T';
  1077. break;
  1078. case 'booked':$str = 'O';
  1079. break;
  1080. case 'invoiced':$str = 'Z';
  1081. break;
  1082. }
  1083. $cond = " AND e.enquiry_stage='" . $str . "'";
  1084. }
  1085. $cond .= "AND e.created_on LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%'";
  1086. break;
  1087. case 'model':
  1088. $REQUEST_KEYS = array('month' => 'string', 'year' => 'number', 'model' => 'string');
  1089. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  1090. $month_data = escape_str($parent->_request['month']);
  1091. $year_data = escape_str($parent->_request['year']);
  1092. $model = escape_str($parent->_request['model']);
  1093. switch ($model) {
  1094. case 'INTRUDER':$cond .= " AND e.model1='GL'";
  1095. break;
  1096. case 'BURGMAN':$cond .= " AND e.model1='UB125'";
  1097. break;
  1098. case 'ACCESS 125':$cond .= " AND e.model1 IN ('AC','ACZ')";
  1099. break;
  1100. case 'GIXXER 250':$cond .= " AND e.model1 IN ('GSX','GSXSF') AND e.variant1 IN (SELECT variant_code FROM " . DMS_ENQUIRY_MODEL . " WHERE title_code IN ('GSX','GSXSF') AND variant LIKE '%250%')";
  1101. break;
  1102. case 'GIXXER':$cond .= " AND e.model1 IN ('GSX','GSXSF') AND e.variant1 IN (SELECT variant_code FROM " . DMS_ENQUIRY_MODEL . " WHERE title_code IN ('GSX','GSXSF') AND variant NOT LIKE '%250%')";
  1103. break;
  1104. case 'OTHERS':$cond .= " AND e.model1 NOT IN ('GSX','GSXSF','GL','UB125','AC','ACZ')";
  1105. break;
  1106. default:$parent->response(array('response' => 'failed', 'message' => $this->page_data['error6']), 406);
  1107. }
  1108. $cond .= " AND e.created_on LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%'";
  1109. break;
  1110. default:$parent->response(array('response' => 'failed', 'message' => $this->page_data['error6']), 406);
  1111. break;
  1112. }
  1113. //SEARCH
  1114. $model_cond = '';
  1115. $search = escape_str($parent->_request['search']);
  1116. if ($search != '') {
  1117. $model = $parent->getQueryValue("SELECT title_code FROM " . DMS_ENQUIRY_MODEL . " WHERE title LIKE '%" . $search . "%'");
  1118. if (count($model) > 0) {
  1119. $model_arr = array_column($model, 'title_code');
  1120. $model_quotes = array_map("quotes_array", $model_arr);
  1121. $model_cond = (count($model_quotes) > 0) ? " OR e.model1 IN (" . @implode(',', $model_quotes) . ")" : '';
  1122. }
  1123. $cond = " AND (e.enq_num LIKE '%" . $search . "%' OR e.first_name LIKE '%" . $search . "%' OR e.mobile LIKE '%" . $search . "%' " . $model_cond . ") ";
  1124. }
  1125. //$pending_testride_arr=$parent->selectQuery(DMS_ENQUIRY_MASTER,"COUNT(id) data_count"," smpin='".$smpin."' AND newvechicledatatime<'".CUR_DATE." 00:00:00' AND enquiry_stage='T' AND is_dms=1 AND is_deleted=0 AND enquiry_stage NOT IN ('Z','O','P','V')","1");
  1126. //echo "smpin='".$smpin."' ".$cond." ORDER BY newvechicledatatime ASC, id DESC ".$limit_cond; exit;
  1127. $data_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER . " e ", "SQL_CALC_FOUND_ROWS e.*", "e.smpin='" . $smpin . "' AND e.is_dms=1 AND e.is_deleted=0 " . $cond . " ORDER BY e.newvechicledatatime ASC, id DESC " . $limit_cond, "");
  1128. $total_arr = $parent->getQueryValue("SELECT FOUND_ROWS() as total_record");
  1129. $total = (count($total_arr) > 0) ? $total_arr[0]->total_record : 0;
  1130. //DATE TO STRING
  1131. if ($data_arr['nr'] > 0) {
  1132. foreach ($data_arr['result'] as $key => $res) {
  1133. //LEFT JOIN ".DMS_ENQUIRY_MODEL." m ON m.title_code=e.model1
  1134. //,m.title as model_name_str
  1135. $model_arr = $parent->selectQuery(DMS_ENQUIRY_MODEL, "title as model_name,variant as variant_name,color as color_name", "title_code='" . $res->model1 . "' AND variant_code='" . $res->variant1 . "' AND color_code='" . $res->color1 . "'", "");
  1136. $data_arr['result'][$key]->model_name = ($model_arr['nr'] > 0) ? $model_arr['result'][0]->model_name : $res->model1;
  1137. $data_arr['result'][$key]->variant_name = ($model_arr['nr'] > 0) ? $model_arr['result'][0]->variant_name : $res->variant1;
  1138. $data_arr['result'][$key]->color_name = ($model_arr['nr'] > 0) ? $model_arr['result'][0]->color_name : $res->color1;
  1139. $data_arr['result'][$key]->enq_through = ($res->is_starapp == 1) ? "HYPER-M App" : "DMS";
  1140. $data_arr['result'][$key]->newvechicledatatime_str = projectfunc::enqdatediff($parent, NOW, $res->newvechicledatatime);
  1141. $checkdate = date('Y-m-d', strtotime($res->newvechicledatatime));
  1142. //0-overdue,1-current day,2-future
  1143. switch (true) {
  1144. case (strtotime($checkdate) < strtotime(CUR_DATE)): $data_arr['result'][$key]->enq_date_type = 0;
  1145. break;
  1146. case (strtotime($checkdate) == strtotime(CUR_DATE)): $data_arr['result'][$key]->enq_date_type = 1;
  1147. break;
  1148. case (strtotime($checkdate) > strtotime(CUR_DATE)): $data_arr['result'][$key]->enq_date_type = 2;
  1149. break;
  1150. }
  1151. ///PENDING ENQUIRY MASTER
  1152. if (strtoupper($res->enquiry_stage) == 'T') {
  1153. $data_arr['result'][$key]->icon_type = 1;
  1154. } else if (strtoupper($res->modeofcontact) == 'S' || strtoupper($res->modeofcontact) == 'V') {
  1155. $data_arr['result'][$key]->icon_type = 2;
  1156. } else if (in_array(strtoupper($res->modeofcontact), array('E', 'F', 'O', 'T'))) {
  1157. $data_arr['result'][$key]->icon_type = 3;
  1158. } else {
  1159. $data_arr['result'][$key]->icon_type = 0;
  1160. }
  1161. //visit,call,testdrive
  1162. }
  1163. }
  1164. //LOG
  1165. $logstr = 'DEALER DSE ENQUIRY LIST';
  1166. globalfunc::insertUserLog($parent, $logstr);
  1167. $last_page = ($total) ? ceil($total / $parent->current_limit) - 1 : 0;
  1168. $parent->response(array('response' => 'success', 'data' => $data_arr['result'], 'total' => $total, 'last_page' => $last_page, 'current_page' => $parent->current_page, 'message' => $this->page_data['success1']), 200);
  1169. } catch (PDOException $e) {
  1170. $parent->response(array('response' => 'failed', 'message' => $e->getMessage()), 500);
  1171. } catch (Exception $e) {
  1172. $parent->response(array('response' => 'failed', 'message' => $e->getMessage()), 500);
  1173. }
  1174. }
  1175. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1176. /* /////////////////////////////// FOLLOWUP //////////////////////////////////////////////// */
  1177. private function followup($parent)
  1178. {
  1179. globalfunc::checkParamCount($parent, 2);
  1180. globalfunc::checkMethodType($parent, array('POST'));
  1181. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  1182. projectfunc::authorizedRole($parent, array('14'));
  1183. $smpin = escape_str($parent->params[1]);
  1184. $dse_details = $this->getdsedetails($parent, $smpin);
  1185. //$smpin = $parent->current_user_data->smpin;
  1186. $REQUEST_KEYS = array('id' => 'number', 'status' => 'string');
  1187. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  1188. $status = strtoupper(escape_str($parent->_request['status']));
  1189. $reason = '';
  1190. $subreason = '';
  1191. $lostdealer = '';
  1192. $lostmodel = '';
  1193. switch ($status) {
  1194. case 'L': //Lost
  1195. $REQUEST_KEYS = array('reason' => 'string', 'subreason' => 'string');
  1196. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  1197. $reason = escape_str($parent->_request['reason']);
  1198. $subreason = escape_str($parent->_request['subreason']);
  1199. $lostdealer = escape_str($parent->_request['lostdealer']);
  1200. $lostmodel = escape_str($parent->_request['lostmodel']);
  1201. break;
  1202. case 'E': //Postponed
  1203. $REQUEST_KEYS = array('reason' => 'string', 'newvechicledate' => 'date|d-m-Y', 'newvechicletime' => 'string', 'modeofcontact' => 'string', 'nextfollowup' => 'string');
  1204. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  1205. $reason = escape_str($parent->_request['reason']);
  1206. break;
  1207. case 'P': //Cold
  1208. case 'H': //Hot
  1209. case 'W': //Warm
  1210. $REQUEST_KEYS = array('newvechicledate' => 'date|d-m-Y', 'newvechicletime' => 'string', 'modeofcontact' => 'string', 'nextfollowup' => 'string');
  1211. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  1212. break;
  1213. }
  1214. $id = escape_str($parent->_request['id']);
  1215. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "id,enq_num,newvechicledatatime,enquiry_stage,newvechicletactionplan", " smpin='" . $smpin . "' AND id='" . $id . "' AND is_dms=1 AND is_deleted=0 ", "1");
  1216. if (!$check_arr['nr'] > 0) {
  1217. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error6']), 406);
  1218. }
  1219. $newvechicledate = escape_str($parent->_request['newvechicledate']);
  1220. $newvechicletime = escape_str($parent->_request['newvechicletime']);
  1221. $date_arr = @explode("-", $newvechicledate);
  1222. $date_str = $date_arr[2] . "-" . $date_arr[1] . "-" . $date_arr[0];
  1223. $newvechicledatatime = $date_str . " " . $newvechicletime;
  1224. $followup_remark = escape_str($parent->_request['followup_remark']);
  1225. $followup_remark = str_replace(array("\n", "\r"), ' ', $followup_remark);
  1226. $modeofcontact = escape_str($parent->_request['modeofcontact']);
  1227. $nextfollowup = escape_str($parent->_request['nextfollowup']);
  1228. //$status=escape_str($parent->_request['status']);
  1229. $p_act_follow_date = date('m/d/Y', strtotime($check_arr['result'][0]->newvechicledatatime));
  1230. if ($status == 'L') {
  1231. $p_next_stage_date = date('m/d/Y', strtotime(CUR_DATE));
  1232. $modeofcontact = '';
  1233. $nextfollowup = '';
  1234. } else {
  1235. $p_next_stage_date = date('m/d/Y', strtotime($date_str));
  1236. }
  1237. $post = array("query" => "BEGIN pkg_smipl_star_app.sp_followup_update(:p_mspin, :p_enq_num, :p_act_follow_date, :p_enq_actual_stage, :p_status, :p_enq_actual_action, :p_enq_reas_cd, :p_enq_sub_reas_cd, :p_enq_lost_dlr, :p_enq_lost_mod, :p_at_remarks, :p_next_stage_date, :p_enq_next_action, :p_enq_next_stage, :p_financer_code, :p_competition_manufacture, :p_competition_model, :p_error, :p_err_msg ); END;", "params" => '[{"title":"p_mspin","value":"' . $smpin . '","type":""},{"title":"p_enq_num","value":"' . $check_arr['result'][0]->enq_num . '","type":""}, {"title":"p_act_follow_date","value":"' . $p_act_follow_date . '","type":""}, {"title":"p_enq_actual_stage","value":"' . $check_arr['result'][0]->enquiry_stage . '","type":""},{"title":"p_status","value":"' . $status . '","type":""},{"title":"p_enq_actual_action","value":"' . $check_arr['result'][0]->newvechicletactionplan . '","type":""},{"title":"p_enq_reas_cd","value":"' . $reason . '","type":""},{"title":"p_enq_sub_reas_cd","value":"' . $subreason . '","type":""},{"title":"p_enq_lost_dlr","value":"' . $lostdealer . '","type":""},{"title":"p_enq_lost_mod","value":"' . $lostmodel . '","type":""},{"title":"p_at_remarks","value":"' . $followup_remark . '","type":""},{"title":"p_next_stage_date","value":"' . $p_next_stage_date . '","type":""},{"title":"p_enq_next_action","value":"' . $modeofcontact . '","type":""},{"title":"p_enq_next_stage","value":"' . $nextfollowup . '","type":""},{"title":"p_financer_code","value":"","type":""},{"title":"p_competition_manufacture","value":"","type":""},{"title":"p_competition_model","value":"","type":""},{"title":"p_error","value":"2","type":"string","length":200},{"title":"p_err_msg","value":"","type":"string","length":1000}]');
  1238. $url = SUZ_DMS_URL;
  1239. $header = array('Authorization:Bearer ' . SUZ_TOKEN);
  1240. //LOG
  1241. $obj = new stdClass();
  1242. $obj->type = 'followupdate';
  1243. $obj->apirequest = $post['params'];
  1244. $log_id = projectfunc::cronLog($parent, $obj);
  1245. // $ch = curl_init();
  1246. // curl_setopt($ch, CURLOPT_URL, $url);
  1247. // curl_setopt($ch, CURLOPT_POST, 1);
  1248. // curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //Post Fields
  1249. // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  1250. // curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  1251. // $response = curl_exec($ch);
  1252. // $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  1253. // curl_close($ch);
  1254. $httpcode = '200';
  1255. $response="";
  1256. $error = 1;
  1257. $count = 0;
  1258. //LOG UPDATE
  1259. $obj = new stdClass();
  1260. $obj->id = $log_id;
  1261. $obj->apiresponse = $response;
  1262. projectfunc::updateCronLog($parent, $obj);
  1263. if ($httpcode == '200' && $response != '') {
  1264. $json = json_decode($response);
  1265. //LOG UPDATE
  1266. $obj = new stdClass();
  1267. $obj->id = $log_id;
  1268. $obj->insert_count = 0;
  1269. $obj->status = 1;
  1270. //$obj->apiresponse=$response;
  1271. projectfunc::updateCronLog($parent, $obj);
  1272. if (isset($json->response) && $json->response == 'success' && isset($json->data) && count($json->data) > 0) {
  1273. if ($json->data->p_err_msg == '') {
  1274. $error = 0;
  1275. }
  1276. }
  1277. $emsg = $json->data->p_err_msg;
  1278. }
  1279. //LOG
  1280. $logstr = 'DEALER DSE ENQUIRY FOLLOWUP SUBMIT';
  1281. globalfunc::insertUserLog($parent, $logstr, $check_arr['result'][0]->id);
  1282. if ($error == 0) {
  1283. if ($status != 'L') {
  1284. //UPDATE FOLLOW UP
  1285. $update_str = "UPDATE " . DMS_ENQUIRY_MASTER . " SET newvechicledate='" . $date_str . "', newvechicletime='" . $newvechicletime . "', newvechicledatatime='" . $newvechicledatatime . "' WHERE id='" . $check_arr['result'][0]->id . "'";
  1286. $parent->executeQuery($update_str);
  1287. }
  1288. $parent->response(array('response' => 'success', 'message' => $this->page_data['success2']), 200);
  1289. } else {
  1290. $emsg = ($emsg != '') ? $emsg : "Error to connect DMS. Please try after sometime";
  1291. $parent->response(array('response' => 'failed', 'message' => $emsg), 406);
  1292. }
  1293. }
  1294. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1295. /* /////////////////////////////// STOCK AVAILABILITY //////////////////////////////////////////////// */
  1296. private function stockavailability($parent)
  1297. {
  1298. globalfunc::checkParamCount($parent, 2);
  1299. globalfunc::checkMethodType($parent, array('POST'));
  1300. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  1301. projectfunc::authorizedRole($parent, array('14'));
  1302. $smpin = escape_str($parent->params[1]);
  1303. $dse_details = $this->getdsedetails($parent, $smpin);
  1304. $model = escape_str($parent->_request['model']);
  1305. $variant = escape_str($parent->_request['variant']);
  1306. $color = escape_str($parent->_request['color']);
  1307. //$smpin=$parent->current_user_data->smpin;
  1308. $url = SUZ_DMS_URL;
  1309. $post = array("query" => "BEGIN pkg_smipl_star_app.sp_available_stock(:p_mspin, :p_pmc, :p_model_cd, :p_variant_cd, :p_color_cd, :p_list_cursor, :p_err_cd, :p_err_msg); END;", "params" => '[{"title":"p_mspin","value":"' . $smpin . '","type":""},{"title":"p_pmc","value":"2","type":""},{"title":"p_model_cd","value":"' . $model . '","type":""},{"title":"p_variant_cd","value":"' . $variant . '","type":""},{"title":"p_color_cd","value":"' . $color . '","type":""},{"title":"p_list_cursor","value":"","type":"cursor"},{"title":"p_err_cd","value":"","type":"string","length":200},{"title":"p_err_msg","value":"","type":"string","length":1000}]');
  1310. $header = array('Authorization:Bearer ' . SUZ_TOKEN);
  1311. //LOG
  1312. $obj = new stdClass();
  1313. $obj->type = 'callmodelstock';
  1314. $obj->apirequest = $post['params'];
  1315. $log_id = projectfunc::cronLog($parent, $obj);
  1316. // $ch = curl_init();
  1317. // curl_setopt($ch, CURLOPT_URL, $url);
  1318. // curl_setopt($ch, CURLOPT_POST, 1);
  1319. // curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //Post Fields
  1320. // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  1321. // curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  1322. // $response = curl_exec($ch);
  1323. // $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  1324. // curl_close($ch);
  1325. $httpcode = '200';
  1326. $response="";
  1327. $error = 1;
  1328. $count = 0;
  1329. //LOG UPDATE
  1330. $obj = new stdClass();
  1331. $obj->id = $log_id;
  1332. $obj->apiresponse = $response;
  1333. projectfunc::updateCronLog($parent, $obj);
  1334. //LOG
  1335. $logstr = 'DEALER DSE ENQUIRY STOCK';
  1336. globalfunc::insertUserLog($parent, $logstr);
  1337. if ($httpcode == '200' && $response != '') {
  1338. $json = json_decode($response);
  1339. if (isset($json->response) && $json->response == 'success' && isset($json->data) && count($json->data) > 0) {
  1340. $data = $json->data;
  1341. $count = count($json->data);
  1342. //0-Data not Found,1-Available,2-Since Transfer,3-Not Available
  1343. $status = array('title' => 'Not Available', 'status' => 0);
  1344. if ($count > 0) {
  1345. if ($data[0]->AVAILABLE_STOCK > 0) {
  1346. $status = array('title' => 'Available', 'status' => 1);
  1347. }
  1348. if ($data[0]->AVAILABLE_STOCK == 0 && $data[0]->INTRANSIT_STOCK > 0) {
  1349. $status = array('title' => 'In Transit', 'status' => 2);
  1350. }
  1351. }
  1352. //LOG UPDATE
  1353. $obj = new stdClass();
  1354. $obj->id = $log_id;
  1355. $obj->insert_count = 1;
  1356. $obj->status = 1;
  1357. //$obj->apiresponse=$response;
  1358. projectfunc::updateCronLog($parent, $obj);
  1359. $parent->response(array('response' => 'success', 'data' => $status, 'message' => $this->page_data['success1']), 200);
  1360. }
  1361. }
  1362. $status = array('title' => 'Not Available', 'status' => 0);
  1363. $parent->response(array('response' => 'success', 'data' => $status, 'message' => $this->page_data['success1']), 200);
  1364. }
  1365. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1366. /* /////////////////////////////// DETAILS //////////////////////////////////////////////// */
  1367. private function details($parent)
  1368. {
  1369. globalfunc::checkParamCount($parent, 3);
  1370. globalfunc::checkMethodType($parent, array('GET'));
  1371. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  1372. projectfunc::authorizedRole($parent, array('3', '4', '5', '6', '7', '14'));
  1373. $smpin = escape_str($parent->params[1]);
  1374. $dse_details = $this->getdsedetails($parent, $smpin);
  1375. $id = escape_str($parent->params[2]);
  1376. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "id", " smpin='" . $smpin . "' AND is_deleted=0 AND id='" . $id . "'", "1");
  1377. if ($check_arr['nr'] != '1') {
  1378. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error6']), 406);
  1379. }
  1380. //GET DATA
  1381. $data_arr = $this->getEnquirydata($parent, $id);
  1382. //BROCHURE
  1383. $brochure_arr = array();
  1384. $brochure_url = SITE_URL . "explore_assets/model/";
  1385. $expmodel_data = $parent->selectQuery(TABLE_COMPARE_MODEL, "model_id,CASE WHEN model_brochure!='' THEN CONCAT('" . $brochure_url . "',model_brochure) ELSE '' END AS 'model_brochure' ", "is_deleted=0 AND is_other=0 AND `model_type` = '0'", "");
  1386. if ($expmodel_data['nr'] > 0) {
  1387. $arr_id = array_column($expmodel_data['result'], 'model_id');
  1388. $arr_name = array_column($expmodel_data['result'], 'model_brochure');
  1389. $brochure_arr = array_combine($arr_id, $arr_name);
  1390. }
  1391. // `model1`, `variant1`, `color1`
  1392. switch ($data_arr->model1) {
  1393. case 'GSX': //GIXXER
  1394. $id = (strpos($data_arr->variant1, 'GSX250') !== false || strpos($data_arr->variant_name, 'GIXXER 250') !== false) ? GIXXER_250_ID : GIXXER_ID;
  1395. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  1396. break;
  1397. case 'GSXSF': //GIXXER SF
  1398. $id = (strpos($data_arr->variant1, 'GSXF250') !== false || strpos($data_arr->variant_name, 'GIXXER SF 250') !== false) ? GIXXER_SF_250_ID : GIXXER_SF_ID;
  1399. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  1400. break;
  1401. case 'GL': //INTRUDER
  1402. $id = INTRUDER_ID;
  1403. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  1404. break;
  1405. case 'UB125': //BURGMAN
  1406. $id = BURGMAN_ID;
  1407. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  1408. break;
  1409. case 'AC':
  1410. case 'ACZ':
  1411. $id = ACCESS_ID;
  1412. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  1413. break;
  1414. default:
  1415. $brochure_url = '';
  1416. break;
  1417. }
  1418. $data_arr->brochure = $brochure_url;
  1419. //CALL HISTORY
  1420. $data_arr->history = array();
  1421. $url = SUZ_DMS_URL;
  1422. $post = array("query" => "BEGIN pkg_smipl_star_app.sp_followup_history(:p_mspin, :p_enq_num, :p_pmc, :p_cust_name, :p_mobile, :p_email, :p_model_cd, :p_model, :p_variant_cd, :p_variant, :p_status_cd, :p_status, :p_color_cd, :p_color, :p_make, :p_makemodel_cd, :p_makemodel, :p_evaluatorid, :p_evaluator_name, :p_expectedprice, :p_evaluatedprice, :p_buying_price, :p_buyertype, :p_enquiry_source, :p_enquiry_date, :list_cursor, :p_error, :p_err_msg, :p_remarks, :p_km_drive_month, :p_mode_of_purchase, :p_financer_code, :p_financer_name, :p_tl_remarks, :p_comp_manuf_cd, :p_comp_manuf_name, :p_comp_model_cd, :p_comp_model_name, :p_corporate_code, :p_rm_evaluator_remark, :p_evaluator_remark); END;", "params" => '[{"title":"p_mspin","value":"' . $smpin . '","type":""},{"title":"p_enq_num","value":"' . $data_arr->enq_num . '","type":""},{"title":"p_pmc","value":2,"type":""},{"title":"p_cust_name","value":"","type":"string","length":200},{"title":"p_mobile","value":"","type":"string","length":200},{"title":"p_email","value":"","type":"string","length":200},{"title":"p_model_cd","value":"","type":"string","length":200},{"title":"p_model","value":"","type":"string","length":200},{"title":"p_variant_cd","value":"","type":"string","length":200},{"title":"p_variant","value":"","type":"string","length":200},{"title":"p_status_cd","value":"","type":"string","length":200},{"title":"p_status","value":"","type":"string","length":200},{"title":"p_color_cd","value":"","type":"string","length":200},{"title":"p_color","value":"","type":"string","length":200},{"title":"p_make","value":"","type":"string","length":200},{"title":"p_makemodel_cd","value":"","type":"string","length":200},{"title":"p_makemodel","value":"","type":"string","length":200},{"title":"p_evaluatorid","value":"","type":"string","length":200},{"title":"p_evaluator_name","value":"","type":"string","length":200},{"title":"p_expectedprice","value":"","type":"string","length":200},{"title":"p_evaluatedprice","value":"","type":"string","length":200},{"title":"p_buying_price","value":"","type":"string","length":200},{"title":"p_buyertype","value":"","type":"string","length":200},{"title":"p_enquiry_source","value":"","type":"string","length":200},{"title":"p_enquiry_date","value":"","type":"string","length":200},{"title":"list_cursor","value":"","type":"cursor"},{"title":"p_error","value":"","type":"string","length":20 },{"title":"p_err_msg","value":"","type":"string","length":1000},{"title":"p_remarks","value":"","type":"string","length":1000},{"title":"p_km_drive_month","value":"","type":"string","length":200},{"title":"p_mode_of_purchase","value":"","type":"string","length":200},{"title":"p_financer_code","value":"","type":"string","length":200},{"title":"p_financer_name","value":"","type":"string","length":200},{"title":"p_tl_remarks","value":"","type":"string","length":200},{"title":"p_comp_manuf_cd","value":"","type":"string","length":200},{"title":"p_comp_manuf_name","value":"","type":"string","length":200},{"title":"p_comp_model_cd","value":"","type":"string","length":200},{"title":"p_comp_model_name","value":"","type":"string","length":200},{"title":"p_corporate_code","value":"","type":"string","length":200},{"title":"p_rm_evaluator_remark","value":"","type":"string","length":200},{"title":"p_evaluator_remark","value":"","type":"string","length":200}]');
  1423. $header = array('Authorization:Bearer ' . SUZ_TOKEN);
  1424. //LOG
  1425. $obj = new stdClass();
  1426. $obj->type = 'followhistory';
  1427. $obj->apirequest = $post['params'];
  1428. $log_id = projectfunc::cronLog($parent, $obj);
  1429. // $ch = curl_init();
  1430. // curl_setopt($ch, CURLOPT_URL, $url);
  1431. // curl_setopt($ch, CURLOPT_POST, 1);
  1432. // curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //Post Fields
  1433. // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  1434. // curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  1435. // $response = curl_exec($ch);
  1436. // $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  1437. // curl_close($ch);
  1438. $httpcode = '200';
  1439. $response="";
  1440. $error = 1;
  1441. $count = 0;
  1442. //LOG UPDATE
  1443. $obj = new stdClass();
  1444. $obj->id = $log_id;
  1445. $obj->apiresponse = $response;
  1446. projectfunc::updateCronLog($parent, $obj);
  1447. // $hobj=new stdClass();
  1448. // $hobj->title='Enquiry Created';
  1449. // $hobj->remarks=trim($parent->current_user_data->fname." ".$parent->current_user_data->lname);
  1450. // $hobj->created_on=date('Y-m-d',strtotime($data_arr->created_on));
  1451. // $hobj->created_on_str=date('d-M-Y',strtotime($data_arr->created_on));
  1452. // $hobj->image='';
  1453. // $hobj->type='';//testride
  1454. // $hobj->colorcode='#FFFF00';// Hexcode
  1455. // $hobj->type=$data_arr->action_str; //Testride
  1456. // $hobj->stage=$data_arr->enquiry_str;
  1457. // $hobj->status=$data_arr->status_str;
  1458. // $hobj->order=1;
  1459. // $data_arr->history[]=$hobj;
  1460. if ($httpcode == '200' && $response != '') {
  1461. //LOG UPDATE
  1462. $obj = new stdClass();
  1463. $obj->id = $log_id;
  1464. $obj->insert_count = count($json->data);
  1465. $obj->status = 1;
  1466. //$obj->apiresponse=$response;
  1467. projectfunc::updateCronLog($parent, $obj);
  1468. $json = json_decode($response);
  1469. if (isset($json->response) && $json->response == 'success' && isset($json->data) && count($json->data) > 0) {
  1470. $error = 0;
  1471. if (count($json->data)) {
  1472. foreach ($json->data as $res) {
  1473. $hobj = new stdClass();
  1474. $hobj->title = $res->ACTION_PLAN;
  1475. $hobj->remarks = ($res->REMARKS) ? $res->REMARKS : '';
  1476. $hobj->created_on = date('Y-m-d', strtotime($res->FOLLOW_PLAN_DATE));
  1477. $hobj->created_on_str = date('d-M-Y', strtotime($res->FOLLOW_PLAN_DATE));
  1478. $hobj->order = strtotime($res->FOLLOW_PLAN_DATE);
  1479. $hobj->image = '';
  1480. $hobj->type = ($res->ACTION_PLAN) ? $res->ACTION_PLAN : '';
  1481. $hobj->stage = ($res->STAGE_PLAN) ? $res->STAGE_PLAN : $res->STAGE_ACTUAL;
  1482. $hobj->status = ($res->FOLLOWSTATUS) ? $res->FOLLOWSTATUS : '';
  1483. // Hexcode
  1484. switch (trim($hobj->stage)) {
  1485. case 'Invoiced':
  1486. case 'Order Booking':
  1487. case 'Vehicle Delivered':
  1488. case 'Proforma Invoice':
  1489. $hobj->colorcode = '#008000'; //green
  1490. break;
  1491. case 'Lost':
  1492. $hobj->colorcode = '#FF0000'; //RED
  1493. break;
  1494. default:
  1495. $hobj->colorcode = '#FF8C00'; //orange
  1496. break;
  1497. }
  1498. $data_arr->history[] = $hobj;
  1499. }
  1500. }
  1501. }
  1502. }
  1503. //SORT
  1504. // if (count($data_arr->history) > 0) {
  1505. // usort($data_arr->history, 'comparator');
  1506. // }
  1507. //LOG
  1508. $logstr = 'DEALER DSE ENQUIRY DETAILS';
  1509. globalfunc::insertUserLog($parent, $logstr, $id);
  1510. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  1511. }
  1512. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1513. /* /////////////////////////////// Share //////////////////////////////////////////////// */
  1514. private function sharebrochure($parent)
  1515. {
  1516. globalfunc::checkParamCount($parent, 2);
  1517. globalfunc::checkMethodType($parent, array('POST'));
  1518. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  1519. projectfunc::authorizedRole($parent, array('14'));
  1520. $smpin = escape_str($parent->params[1]);
  1521. $dse_details = $this->getdsedetails($parent, $smpin);
  1522. $email = escape_str($parent->_request['email']);
  1523. $REQUEST_KEYS = array('name' => 'string', 'email' => 'string', 'model' => 'string', 'variant' => 'string');
  1524. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  1525. if (!globalfunc::isValidEmail($email)) {
  1526. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error12']), 406);
  1527. }
  1528. $name = escape_str($parent->_request['name']);
  1529. $model = escape_str($parent->_request['model']);
  1530. $variant = escape_str($parent->_request['variant']);
  1531. $checkmodel_data = $parent->selectQuery(DMS_ENQUIRY_MODEL, "id,title,variant", " status='1' AND enq_yn='Y' AND title_code='" . $model . "' AND variant_code='" . $variant . "'", "1");
  1532. if ($checkmodel_data['nr'] == 0) {
  1533. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error13']), 406);
  1534. }
  1535. $brochure_arr = array();
  1536. $brochure_url = SITE_URL . "explore_assets/model/";
  1537. $expmodel_data = $parent->selectQuery(TABLE_COMPARE_MODEL, "model_id,CASE WHEN model_brochure!='' THEN CONCAT('" . $brochure_url . "',model_brochure) ELSE '' END AS 'model_brochure' ", "is_deleted=0 AND is_other=0 AND `model_type` = '0'", "");
  1538. if ($expmodel_data['nr'] > 0) {
  1539. $arr_id = array_column($expmodel_data['result'], 'model_id');
  1540. $arr_name = array_column($expmodel_data['result'], 'model_brochure');
  1541. $brochure_arr = array_combine($arr_id, $arr_name);
  1542. }
  1543. $brochure_url = '';
  1544. switch (strtoupper($model)) {
  1545. case 'GSX': //GIXXER
  1546. $id = (strpos($variant, 'GSX250') !== false || strpos($checkmodel_data['result'][0]->title, 'GIXXER 250') !== false) ? GIXXER_250_ID : GIXXER_ID;
  1547. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  1548. break;
  1549. case 'GSXSF': //GIXXER SF
  1550. $id = (strpos($variant, 'GSXF250') !== false || strpos($checkmodel_data['result'][0]->title, 'GIXXER SF 250') !== false) ? GIXXER_SF_250_ID : GIXXER_SF_ID;
  1551. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  1552. break;
  1553. case 'GL': //INTRUDER
  1554. $id = INTRUDER_ID;
  1555. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  1556. break;
  1557. case 'UB125': //BURGMAN
  1558. $id = BURGMAN_ID;
  1559. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  1560. break;
  1561. case 'AC':
  1562. case 'ACZ':
  1563. $id = ACCESS_ID;
  1564. $brochure_url = isset($brochure_arr[$id]) ? $brochure_arr[$id] : '';
  1565. break;
  1566. default:
  1567. $brochure_url = '';
  1568. break;
  1569. }
  1570. if ($brochure_url == '') {
  1571. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error14']), 406);
  1572. }
  1573. // $id=escape_str($parent->params[1]);
  1574. // $check_arr=$parent->selectQuery(DMS_ENQUIRY_MASTER ,"id,email,share_token"," smpin='".$smpin."' AND is_deleted=0 AND id='".$id."'","1");
  1575. // if($check_arr['nr']!='1') $parent->response(array('response'=>'failed', 'message'=>$this->page_data['error6']),406);
  1576. //
  1577. // $email=$check_arr['result'][0]->email;
  1578. // if($email!='') $parent->response(array('response'=>'failed', 'message'=>$this->page_data['error11']),406);
  1579. //
  1580. // if($check_arr['result'][0]->share_token!='')
  1581. // {
  1582. // //SHARE TOKEN UPDATE
  1583. // $access_token=globalfunc::generateToken($parent,'enquiry',128);
  1584. // $update_str = "UPDATE ".DMS_ENQUIRY_MASTER." SET share_token='".$access_token."' WHERE id='".$id."'";
  1585. // $parent->executeQuery($update_str);
  1586. // }
  1587. $obj = array();
  1588. $obj['from'] = SUPPORT_EMAIL;
  1589. $obj['FromName'] = 'HYPER-M';
  1590. $obj['to'] = $email;
  1591. $obj['subject'] = 'HYPER-M - Brochure for ' . $checkmodel_data['result'][0]->title . ' ' . $checkmodel_data['result'][0]->variant;
  1592. $explore_url = $brochure_url;
  1593. $cond_mail_str1 = "Thank you for showing your interest in HYPER-M.";
  1594. $cond_mail_str2 = "We hope you had a great experience in exploring our range of motorcycles & Scooters";
  1595. $email_link = '<a href="' . $explore_url . '" style="font-weight:bold " >Click Here</a> to download the product e-brochure of ' . $checkmodel_data['result'][0]->title . ' ' . $checkmodel_data['result'][0]->variant . '<br>';
  1596. $message = '<table width="100%" bgcolor="#dfdfdf" border="0" cellspacing="10" cellpadding="0" style="padding-top:10px;">
  1597. <tbody>
  1598. <tr>
  1599. <td>
  1600. <table width="700" border="0" align="center" cellpadding="0" cellspacing="0" style="background:#ffffff; margin-top:0px;">
  1601. <tbody>
  1602. <tr>
  1603. <td bgcolor="#2d2d2d" height="36" style="font-size:12px; font-family:Arial, Helvetica, sans-serif; color:#e4e4e4; text-align:left; font-weight:bold; padding-left:14px; border-bottom:2px solid black">HYPER-M </td>
  1604. </tr>
  1605. <tr>
  1606. <td>
  1607. <table width="85%" align="center">
  1608. <tbody>
  1609. <tr>
  1610. <td height="30" style="font-size:11px; font-family:Arial, Helvetica, sans-serif; color:#3f3f3f; text-align:left;padding-left: 10px;
  1611. line-height: 1.5;">
  1612. <div style="font-family:arial; color:#333; font-size:12px; padding:5px;">Dear ' . $name . ',</div>
  1613. </td>
  1614. </tr>
  1615. <tr>
  1616. <td height="30" style="font-size:11px; font-family:Arial, Helvetica, sans-serif; color:#3f3f3f; text-align:left;padding-left: 10px;
  1617. line-height: 1.5;">
  1618. <div style="font-family:arial; color:#333; font-size:12px; padding:5px;">Greetings of the Day..!<br>
  1619. ' . $cond_mail_str1 . '<br>
  1620. ' . $cond_mail_str2 . '<br><br>
  1621. ' . $email_link . '
  1622. Thank you again for your visit and we look forward to see you soon.
  1623. </div>
  1624. </td>
  1625. </tr>
  1626. <tr>
  1627. <td height="30" style="font-size:11px; font-family:Arial, Helvetica, sans-serif; color:#3f3f3f; text-align:left;padding-left: 10px;
  1628. line-height: 1.5;"><div style="font-family:arial; color:#333; font-size:12px; padding:5px;">
  1629. Visit us at: <a href="">LINK<a><br>
  1630. Toll Free Number: 0000-0000-00 (Mon-Sat 9AM - 5:30PM)</p>
  1631. <p>This is a system generated e-mail, please do not reply to this mail. </p>
  1632. </div>
  1633. </td>
  1634. </tr>
  1635. </tbody>
  1636. </table>
  1637. </td>
  1638. </tr>
  1639. <tr>
  1640. <td style="padding-top:0px; padding-bottom:10px;"></td>
  1641. </tr>
  1642. <tr>
  1643. <td style="font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#3f3f3f; background:#fafafa; line-height:20px; border-bottom:2px solid black">
  1644. &nbsp;
  1645. </td>
  1646. </tr>
  1647. </tbody>
  1648. </table>
  1649. </td>
  1650. </tr>
  1651. </tbody>
  1652. </table>';
  1653. $obj['message'] = $message;
  1654. // globalfunc::sendMai($parent, $obj);
  1655. $parent->executeQuery("INSERT INTO `" . TABLE_ENQBROCHURESHARE . "` (`smpin`, `name`,email, `model`, `variant`, `created_on`) VALUES ('" . $smpin . "','" . $name . "','" . $email . "','" . $model . "','" . $variant . "' , '" . NOW . "')");
  1656. //LOG
  1657. $logstr = 'DEALER DSE ENQUIRY SHARE BROCHURE';
  1658. globalfunc::insertUserLog($parent, $logstr);
  1659. $parent->response(array('response' => 'success', 'message' => $this->page_data['success7']), 200);
  1660. }
  1661. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1662. /* /////////////////////////////// QUOTATION //////////////////////////////////////////////// */
  1663. private function quotation($parent)
  1664. {
  1665. globalfunc::checkParamCount($parent, 2);
  1666. globalfunc::checkMethodType($parent, array('POST'));
  1667. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  1668. projectfunc::authorizedRole($parent, array('14'));
  1669. $smpin = escape_str($parent->params[1]);
  1670. $dse_details = $this->getdsedetails($parent, $smpin);
  1671. $model = escape_str($parent->_request['model']);
  1672. $variant = escape_str($parent->_request['variant']);
  1673. $REQUEST_KEYS = array('model' => 'string', 'variant' => 'string');
  1674. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  1675. //DMS_ENQUIRY_MODEL
  1676. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MODEL, "title,title_code,variant,variant_code", " title_code='" . $model . "' AND variant_code='" . $variant . "' AND enq_yn='Y' AND status=1 ", "1");
  1677. if (!$check_arr['nr'] > 0) {
  1678. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error15']), 406);
  1679. }
  1680. //echo $parent->current_user_data->dealer_code;
  1681. //DEALER
  1682. $check_arr = $parent->selectQuery(DMS_DEALER, "dealer_code,for_cd", "dealer_code='" . $dse_details->dealer_code . "' AND for_cd!='' AND is_deleted=0 ", "1");
  1683. if (!$check_arr['nr'] > 0) {
  1684. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error16']), 406);
  1685. }
  1686. $for_cd = $check_arr['result'][0]->for_cd;
  1687. //CALL DMS
  1688. $url = SUZ_DMS_URL;
  1689. $post = array("query" => "BEGIN pkg_smipl_star_app.sp_vehicle_model_price(:p_model, :p_for, :p_pmc, :list_cursor, :p_err_cd, :p_err_msg); END;", "params" => '[{"title":"p_model","value":"' . $model . '","type":""},{"title":"p_for","value":"' . $for_cd . '","type":""},{"title":"p_pmc","value":"2","type":""},{"title":"list_cursor","value":"","type":"cursor"},{"title":"p_err_cd","value":"","type":""},{"title":"p_err_msg","value":"","type":""}]');
  1690. $header = array('Authorization:Bearer ' . SUZ_TOKEN);
  1691. //LOG
  1692. $obj = new stdClass();
  1693. $obj->type = 'modelprice';
  1694. $obj->apirequest = $post['params'];
  1695. $log_id = projectfunc::cronLog($parent, $obj);
  1696. // $ch = curl_init();
  1697. // curl_setopt($ch, CURLOPT_URL, $url);
  1698. // curl_setopt($ch, CURLOPT_POST, 1);
  1699. // curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //Post Fields
  1700. // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  1701. // curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  1702. // $response = curl_exec($ch);
  1703. // $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  1704. // curl_close($ch);
  1705. $httpcode = '200';
  1706. $response="";
  1707. $error = 1;
  1708. $count = 0;
  1709. //LOG UPDATE
  1710. $obj = new stdClass();
  1711. $obj->id = $log_id;
  1712. $obj->apiresponse = $response;
  1713. projectfunc::updateCronLog($parent, $obj);
  1714. if ($httpcode == '200' && $response != '') {
  1715. $json = json_decode($response);
  1716. if (isset($json->response) && $json->response == 'success' && isset($json->data) && count($json->data) > 0) {
  1717. //LOG UPDATE
  1718. $obj = new stdClass();
  1719. $obj->id = $log_id;
  1720. $obj->insert_count = count($json->data);
  1721. $obj->status = 1;
  1722. //$obj->apiresponse=$response;
  1723. projectfunc::updateCronLog($parent, $obj);
  1724. foreach ($json->data as $res) {
  1725. if (strtolower($variant) == strtolower($res->VARIANT_CD)) {
  1726. $error = 0;
  1727. $data = array('exsh_price' => $res->EXSH_PRICE);
  1728. $parent->response(array('response' => 'success', 'data' => $data, 'message' => $this->page_data['success1']), 200);
  1729. break;
  1730. }
  1731. }
  1732. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error17']), 406);
  1733. }
  1734. if ($json->response == 'success' && $json->data->p_err_msg != '') {
  1735. $emsg = $json->data->p_err_msg;
  1736. }
  1737. }
  1738. //LOG
  1739. $logstr = 'DEALER DSE ENQUIRY QUOTATION';
  1740. globalfunc::insertUserLog($parent, $logstr, $id);
  1741. if ($error == 1) {
  1742. $emsg = ($emsg != '') ? $emsg : "Error to connect DMS. Please try after sometime";
  1743. $parent->response(array('response' => 'failed', 'message' => $emsg), 406);
  1744. } else {
  1745. $parent->response(array('response' => 'success', 'message' => $this->page_data['success1']), 200);
  1746. }
  1747. }
  1748. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1749. /* /////////////////////////////// SHARE QUOTATION //////////////////////////////////////////////// */
  1750. private function sharequotation($parent)
  1751. {
  1752. globalfunc::checkParamCount($parent, 2);
  1753. globalfunc::checkMethodType($parent, array('POST'));
  1754. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  1755. projectfunc::authorizedRole($parent, array('14'));
  1756. $smpin = escape_str($parent->params[1]);
  1757. $dse_details = $this->getdsedetails($parent, $smpin);
  1758. $dealer_code = $dse_details->dealer_code;
  1759. $REQUEST_KEYS = array('name' => 'string', 'email' => 'string', 'mobile' => 'string', 'email' => 'string', 'model' => 'string', 'variant' => 'string', 'exsh_price' => 'number', 'total_price' => 'number');
  1760. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  1761. $name = escape_str($parent->_request['name']);
  1762. $email = escape_str($parent->_request['email']);
  1763. $mobile = escape_str($parent->_request['mobile']);
  1764. $model = escape_str($parent->_request['model']);
  1765. $variant = escape_str($parent->_request['variant']);
  1766. //DMS_ENQUIRY_MODEL
  1767. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MODEL, "title,title_code,variant,variant_code", " title_code='" . $model . "' AND variant_code='" . $variant . "' AND enq_yn='Y' AND status=1 ", "1");
  1768. if (!$check_arr['nr'] > 0) {
  1769. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error17']), 406);
  1770. }
  1771. $exsh_price = escape_str($parent->_request['exsh_price']);
  1772. $exsh_remark = escape_str($parent->_request['exsh_remark']);
  1773. $rto_price = escape_str($parent->_request['rto_price']);
  1774. $rto_remark = escape_str($parent->_request['rto_remark']);
  1775. $insurance_price = escape_str($parent->_request['insurance_price']);
  1776. $insurance_remark = escape_str($parent->_request['insurance_remark']);
  1777. $access_price = escape_str($parent->_request['access_price']);
  1778. $access_remark = escape_str($parent->_request['access_remark']);
  1779. $exwarr_price = escape_str($parent->_request['exwarr_price']);
  1780. $exwarr_remark = escape_str($parent->_request['exwarr_remark']);
  1781. $other_price = escape_str($parent->_request['other_price']);
  1782. $other_remark = escape_str($parent->_request['other_remark']);
  1783. $total_price = escape_str($parent->_request['total_price']);
  1784. $total_remark = escape_str($parent->_request['total_remark']);
  1785. $discount = escape_str($parent->_request['offer_price']);
  1786. $final_price = escape_str($parent->_request['after_discound']);
  1787. $validity_date = escape_str($parent->_request['valid_date']);
  1788. if (!$validity_date != '') {
  1789. $valid_day = 10;
  1790. $validity_date = date('Y-m-d', strtotime('+ ' . $valid_day . ' day', strtotime(CUR_DATE)));
  1791. }
  1792. $sharetoken = TIMETOKEN . globalfunc::generateToken($parent, '', 32);
  1793. $parent->executeQuery("INSERT INTO `" . TABLE_QUOTATIONSHARE . "` ( `smpin`, dealer_code, `sharetoken`, `name`, `mobile`, `email`, `model`, `variant`, `exsh_price`, `exsh_remark`, `rto_price`, `rto_remark`, `insurance_price`, `insurance_remark`, `access_price`, `access_remark`, `exwarr_price`, `exwarr_remark`, `other_price`, `other_remark`, `total_price`, `total_remark`, discount,final_price,`validity_date`,is_dealersubmit, `created_on`, `modified_on`) VALUES ('" . $smpin . "','" . $dealer_code . "','" . $sharetoken . "', '" . $name . "', '" . $mobile . "', '" . $email . "', '" . $model . "', '" . $variant . "', '" . $exsh_price . "', '" . $exsh_remark . "', '" . $rto_price . "', '" . $rto_remark . "', '" . $insurance_price . "', '" . $insurance_remark . "', '" . $access_price . "', '" . $access_remark . "', '" . $exwarr_price . "', '" . $exwarr_remark . "', '" . $other_price . "', '" . $other_remark . "', '" . $total_price . "', '" . $total_remark . "','" . $discount . "','" . $final_price . "','" . $validity_date . "',1,'" . NOW . "', '" . NOW . "')");
  1794. //LOG
  1795. $logstr = 'DEALER DSE SHARE QUOTATION';
  1796. globalfunc::insertUserLog($parent, $logstr);
  1797. $url = SITE_URL . "quotation/" . $sharetoken;
  1798. //GET DEALER DETAILS
  1799. $dealer_arr = $parent->selectQuery(DMS_DEALER, "*", "dealer_code='" . $dealer_code . "' AND is_deleted=0 ", "1");
  1800. $dealer_email = ($dealer_arr['nr'] > 0) ? $dealer_arr['result'][0]->email : '';
  1801. $obj = array();
  1802. $obj['from'] = SUPPORT_EMAIL;
  1803. $obj['FromName'] = 'HYPER-M';
  1804. $obj['to'] = $email;
  1805. if ($dealer_email != '') {
  1806. $obj['cc'] = $dealer_email;
  1807. }
  1808. $obj['subject'] = 'HYPER-M - Quotation for ' . $check_arr['result'][0]->title . ' ' . $check_arr['result'][0]->variant;
  1809. $explore_url = $url;
  1810. $cond_mail_str1 = "Thank you for showing your interest in HYPER-M.";
  1811. $cond_mail_str2 = "We hope you had a great experience in exploring our range of products";
  1812. $email_link = '<a href="' . $explore_url . '" style="font-weight:bold " >Click Here</a> to view the Quotation for ' . $check_arr['result'][0]->title . ' ' . $check_arr['result'][0]->variant . '<br>';
  1813. $dealer_details = '';
  1814. if ($dealer_arr['nr'] > 0) {
  1815. $dealer_details = $dealer_arr['result'][0]->dealer_name;
  1816. $dealer_details .= ($dealer_arr['result'][0]->address != '') ? '<br>' . $dealer_arr['result'][0]->address : '';
  1817. $dealer_details .= ($dealer_arr['result'][0]->phone != '') ? '<br>Mob : ' . $dealer_arr['result'][0]->phone : '';
  1818. $dealer_details .= ($dealer_arr['result'][0]->email != '') ? '<br>Email : ' . $dealer_arr['result'][0]->email : '';
  1819. }
  1820. $message = '<table width="100%" bgcolor="#dfdfdf" border="0" cellspacing="10" cellpadding="0" style="padding-top:10px;">
  1821. <tbody>
  1822. <tr>
  1823. <td>
  1824. <table width="700" border="0" align="center" cellpadding="0" cellspacing="0" style="background:#ffffff; margin-top:0px;">
  1825. <tbody>
  1826. <tr>
  1827. <td bgcolor="#2d2d2d" height="36" style="font-size:12px; font-family:Arial, Helvetica, sans-serif; color:#e4e4e4; text-align:left; font-weight:bold; padding-left:14px; border-bottom:2px solid black">HYPER-M </td>
  1828. </tr>
  1829. <tr>
  1830. <td>
  1831. <table width="85%" align="center">
  1832. <tbody>
  1833. <tr>
  1834. <td height="30" style="font-size:11px; font-family:Arial, Helvetica, sans-serif; color:#3f3f3f; text-align:left;padding-left: 10px;
  1835. line-height: 1.5;">
  1836. <div style="font-family:arial; color:#333; font-size:12px; padding:5px;">Dear ' . $name . ',</div>
  1837. </td>
  1838. </tr>
  1839. <tr>
  1840. <td height="30" style="font-size:11px; font-family:Arial, Helvetica, sans-serif; color:#3f3f3f; text-align:left;padding-left: 10px;
  1841. line-height: 1.5;">
  1842. <div style="font-family:arial; color:#333; font-size:12px; padding:5px;">Greetings of the Day..!<br>
  1843. ' . $cond_mail_str1 . '<br>
  1844. ' . $cond_mail_str2 . '<br><br>
  1845. ' . $email_link . '
  1846. Thank you again for your visit and we look forward to see you soon.
  1847. <br><br>Regards,<br>' . $dealer_details . '
  1848. </div>
  1849. </td>
  1850. </tr>
  1851. <tr>
  1852. <td height="30" style="font-size:11px; font-family:Arial, Helvetica, sans-serif; color:#3f3f3f; text-align:left;padding-left: 10px;
  1853. line-height: 1.5;"><div style="font-family:arial; color:#333; font-size:12px; padding:5px;">
  1854. Visit us at: <a href="">click here<a><br>
  1855. Toll Free Number: 1800-121-7996 (Mon-Sat 9AM - 5:30PM)</p>
  1856. <p>This is a system generated e-mail, please do not reply to this mail. </p>
  1857. </div>
  1858. </td>
  1859. </tr>
  1860. </tbody>
  1861. </table>
  1862. </td>
  1863. </tr>
  1864. <tr>
  1865. <td style="padding-top:0px; padding-bottom:10px;"></td>
  1866. </tr>
  1867. <tr>
  1868. <td style="font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#3f3f3f; background:#fafafa; line-height:20px; border-bottom:2px solid black">
  1869. &nbsp;
  1870. </td>
  1871. </tr>
  1872. </tbody>
  1873. </table>
  1874. </td>
  1875. </tr>
  1876. </tbody>
  1877. </table>';
  1878. $obj['message'] = $message;
  1879. // globalfunc::sendMai($parent, $obj);
  1880. $parent->response(array('response' => 'success', 'data' => $url, 'message' => $this->page_data['success6']), 200);
  1881. }
  1882. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1883. /* /////////////////////////////// SHARE QUOTATION //////////////////////////////////////////////// */
  1884. // private function getquotation($parent)
  1885. // {
  1886. // globalfunc::checkParamCount($parent,2);
  1887. // globalfunc::checkMethodType($parent,array('GET'));
  1888. // globalfunc::checkAuthrozation($parent,array('type'=>'user'));
  1889. // projectfunc::authorizedRole($parent,array('14'));
  1890. //
  1891. // $token=escape_str($parent->params[1]);
  1892. //
  1893. // //DMS_ENQUIRY_MODEL
  1894. // $check_arr=$parent->selectQuery(TABLE_QUOTATIONSHARE ,"*","sharetoken='".$token."'","1");
  1895. // if(!$check_arr['nr']>0)
  1896. // {
  1897. // $client_ip=globalfunc::getIp($parent);
  1898. // $sec=LOCK_ACCESS_MINUTES*60;
  1899. // $expiry_time=date('Y-m-d H:i:s',strtotime('-'.$sec.' seconds',strtotime(NOW)));
  1900. // $lock_qry_str="SELECT SUM(lock_count) lock_count FROM ".TABLE_LOCK_ACCESS." WHERE is_deleted='0' AND modified_on>='".$expiry_time."' AND ip='".$client_ip."' GROUP BY ip LIMIT 1";
  1901. // $lock_value=$parent->getQueryValue($lock_qry_str);
  1902. // if(count($lock_value)>0 && $lock_value[0]->lock_count>=3)
  1903. // {
  1904. // $parent->response(array('response'=>'failed', 'message'=>'Sorry Invalid Access. Access Blocked For 10 min.'), 401);
  1905. // }
  1906. // globalfunc::insertLockLog($parent,$token);
  1907. // $parent->response(array('response'=>'failed','message'=>$this->page_data['error6']),406);
  1908. // }
  1909. // $id=$check_arr['result'][0]->id;
  1910. // $model_arr=$parent->selectQuery(DMS_ENQUIRY_MODEL ,"title,title_code,variant,variant_code"," title_code='".$check_arr['result'][0]->model."' AND variant_code='".$check_arr['result'][0]->variant."' ","1");
  1911. // $check_arr['result'][0]->model_str=($check_arr['nr']>0)?$model_arr['result'][0]->title:'';
  1912. // $check_arr['result'][0]->variant_str=($check_arr['nr']>0)?$model_arr['result'][0]->variant:'';
  1913. //
  1914. // $data_arr=$check_arr['result'][0];
  1915. //
  1916. // //LOG
  1917. // $logstr='GET QUOTATION';
  1918. // globalfunc::insertUserLog($parent,$logstr,$id);
  1919. //
  1920. //
  1921. // $parent->response(array('response'=>'success','data'=>$data_arr, 'message'=>$this->page_data['success1']),200);
  1922. // }
  1923. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1924. /* /////////////////////////////// PRICELIST //////////////////////////////////////////////// */
  1925. private function pricelist($parent)
  1926. {
  1927. globalfunc::checkParamCount($parent, 2);
  1928. globalfunc::checkMethodType($parent, array('POST'));
  1929. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  1930. projectfunc::authorizedRole($parent, array('14'));
  1931. $smpin = escape_str($parent->params[1]);
  1932. $dse_details = $this->getdsedetails($parent, $smpin);
  1933. $model = escape_str($parent->_request['model']);
  1934. $REQUEST_KEYS = array('model' => 'string');
  1935. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  1936. //DMS_ENQUIRY_MODEL
  1937. $check_arr = $parent->selectQuery(DMS_ENQUIRY_MODEL, "variant,variant_code", " title_code='" . $model . "' AND enq_yn='Y' AND status=1 GROUP BY variant_code ", "");
  1938. if (!$check_arr['nr'] > 0) {
  1939. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error15']), 406);
  1940. }
  1941. $model_arr = $check_arr['result'];
  1942. //DEALER
  1943. $check_arr = $parent->selectQuery(DMS_DEALER, "dealer_code,for_cd", "dealer_code='" . $dse_details->dealer_code . "' AND for_cd!='' AND is_deleted=0 ", "1");
  1944. if (!$check_arr['nr'] > 0) {
  1945. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error16']), 406);
  1946. }
  1947. $for_cd = $check_arr['result'][0]->for_cd;
  1948. //CALL DMS
  1949. $url = SUZ_DMS_URL;
  1950. $post = array("query" => "BEGIN pkg_smipl_star_app.sp_vehicle_model_price(:p_model, :p_for, :p_pmc, :list_cursor, :p_err_cd, :p_err_msg); END;", "params" => '[{"title":"p_model","value":"' . $model . '","type":""},{"title":"p_for","value":"' . $for_cd . '","type":""},{"title":"p_pmc","value":"2","type":""},{"title":"list_cursor","value":"","type":"cursor"},{"title":"p_err_cd","value":"","type":""},{"title":"p_err_msg","value":"","type":""}]');
  1951. $header = array('Authorization:Bearer ' . SUZ_TOKEN);
  1952. //LOG
  1953. $obj = new stdClass();
  1954. $obj->type = 'modelprice';
  1955. $obj->apirequest = $post['params'];
  1956. $log_id = projectfunc::cronLog($parent, $obj);
  1957. // $ch = curl_init();
  1958. // curl_setopt($ch, CURLOPT_URL, $url);
  1959. // curl_setopt($ch, CURLOPT_POST, 1);
  1960. // curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //Post Fields
  1961. // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  1962. // curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  1963. // $response = curl_exec($ch);
  1964. // $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  1965. // curl_close($ch);
  1966. $httpcode = '200';
  1967. $response="";
  1968. $error = 1;
  1969. $count = 0;
  1970. $vari_arr = array();
  1971. //LOG UPDATE
  1972. $obj = new stdClass();
  1973. $obj->id = $log_id;
  1974. $obj->apiresponse = $response;
  1975. projectfunc::updateCronLog($parent, $obj);
  1976. if ($httpcode == '200' && $response != '') {
  1977. $json = json_decode($response);
  1978. if (isset($json->response) && $json->response == 'success' && isset($json->data) && count($json->data) > 0) {
  1979. //LOG UPDATE
  1980. $obj = new stdClass();
  1981. $obj->id = $log_id;
  1982. $obj->insert_count = count($json->data);
  1983. $obj->status = 1;
  1984. //$obj->apiresponse=$response;
  1985. projectfunc::updateCronLog($parent, $obj);
  1986. foreach ($json->data as $res) {
  1987. $code = strtolower($res->VARIANT_CD);
  1988. $vari_arr[$code] = $res->EXSH_PRICE;
  1989. }
  1990. foreach ($model_arr as $mkey => $val) {
  1991. $error = 0;
  1992. $variant_code = strtolower($model_arr[$mkey]->variant_code);
  1993. $model_arr[$mkey]->exsh_price = (isset($vari_arr[$variant_code])) ? $vari_arr[$variant_code] : '';
  1994. $obj = new stdClass();
  1995. $obj->model = $model;
  1996. $obj->variant = $variant_code;
  1997. $obj->variantname = $model_arr[0]->variant;
  1998. //print_r($obj);
  1999. $model_arr[$mkey]->model_image = projectfunc::modelimage($parent, $obj);
  2000. }
  2001. }
  2002. if ($json->response == 'success' && $json->data->p_err_msg != '') {
  2003. $emsg = $json->data->p_err_msg;
  2004. }
  2005. }
  2006. //LOG
  2007. $logstr = 'DEALER DSE ENQUIRY PRICE LIST';
  2008. globalfunc::insertUserLog($parent, $logstr, $id);
  2009. $parent->response(array('response' => 'success', 'data' => $model_arr, 'message' => $this->page_data['success1']), 200);
  2010. }
  2011. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  2012. /* /////////////////////////////// TEST RIDE //////////////////////////////////////////////// */
  2013. // private function testride($parent)
  2014. // {
  2015. // globalfunc::checkParamCount($parent,2);
  2016. // globalfunc::checkMethodType($parent,array('POST'));
  2017. // globalfunc::checkAuthrozation($parent,array('type'=>'user'));
  2018. // projectfunc::authorizedRole($parent,array('14'));
  2019. //
  2020. // $smpin = $parent->current_user_data->smpin;
  2021. // $id=escape_str($parent->params[1]);
  2022. // $check_arr=$parent->selectQuery(DMS_ENQUIRY_MASTER ,"id"," smpin='".$smpin."' AND is_deleted=0 AND is_dms=1 AND id='".$id."'","1");
  2023. // if($check_arr['nr']!='1') $parent->response(array('response'=>'failed', 'message'=>$this->page_data['error6']),406);
  2024. //
  2025. // //CALL DMS
  2026. //
  2027. //
  2028. // //LOG
  2029. // $logstr='ENQUIRY TESTRIDE';
  2030. // globalfunc::insertUserLog($parent,$logstr,$id);
  2031. // $parent->response(array('response'=>'success', 'message'=>$this->page_data['success1']),200);
  2032. //
  2033. // }
  2034. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  2035. /* /////////////////////////////// PLANNER LIST //////////////////////////////////////////////// */
  2036. private function plannerlist($parent)
  2037. {
  2038. globalfunc::checkParamCount($parent, 2);
  2039. globalfunc::checkMethodType($parent, array('POST'));
  2040. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  2041. projectfunc::authorizedRole($parent, array('3', '4', '5', '6', '7', '14'));
  2042. $smpin = escape_str($parent->params[1]);
  2043. $dse_details = $this->getdsedetails($parent, $smpin);
  2044. $data = $parent->selectQuery(TABLE_USER, "userid", "smpin='" . $smpin . "' AND is_deleted='0' AND status='1' AND role>7 AND role<14", "1");
  2045. $userid = ($data['nr'] > 0) ? $data['result'][0]->userid : '';
  2046. //$userid = $parent->current_user_id;
  2047. $type = escape_str($parent->_request['type']);
  2048. $monthdata = array();
  2049. $todaydata = array();
  2050. $date_arr = array();
  2051. $REQUEST_KEYS = array('type' => 'string');
  2052. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  2053. if ($type == 'month') {
  2054. $REQUEST_KEYS = array('month' => 'number', 'year' => 'number');
  2055. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  2056. $month = escape_str($parent->_request['month']);
  2057. $year = escape_str($parent->_request['year']);
  2058. if (!globalfunc::isValidDateTimeString($year . '-' . $month . '-01', 'Y-m-d', 'Asia/Kolkata')) {
  2059. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error21']), 406);
  2060. }
  2061. $start_date = date('Y-m-d', strtotime($year . '-' . $month . '-01'));
  2062. $end_date = date('Y-m-t', strtotime($year . '-' . $month . '-01'));
  2063. $temp = $start_date;
  2064. while (strtotime($temp) <= strtotime($end_date)) {
  2065. $date_str = @explode('-', $temp);
  2066. $value = $date_str[2];
  2067. $monthdata[$value] = array('date' => $temp, 'data' => array());
  2068. $temp = date('Y-m-d', strtotime('+ 1 day', strtotime($temp)));
  2069. }
  2070. $get_list_arr = $parent->selectQuery(TABLE_ENQUIRYPLANNER, "*,DATE_FORMAT(plan_date, '%d-%m-%Y')plandate,DATE_FORMAT(plan_fromtime, '%H:%i') fromtime,DATE_FORMAT(plan_totime, '%H:%i') totime", " is_deleted='0' AND userid='" . $userid . "' AND plan_date>='" . $start_date . "' AND plan_date<='" . $end_date . "' ORDER BY plan_fromtime ASC", "");
  2071. if ($get_list_arr['nr'] > 0) {
  2072. foreach ($get_list_arr['result'] as $res) {
  2073. $value = date('d', strtotime($res->plan_date));
  2074. $monthdata[$value]['data'][] = $res;
  2075. }
  2076. }
  2077. } else if ($type == 'today') {
  2078. $start_date = CUR_DATE;
  2079. $end_date = CUR_DATE;
  2080. $get_list_arr = $parent->selectQuery(TABLE_ENQUIRYPLANNER, "*,DATE_FORMAT(plan_date, '%d-%m-%Y')plandate,DATE_FORMAT(plan_fromtime, '%H:%i') fromtime,DATE_FORMAT(plan_totime, '%H:%i') totime", " is_deleted='0' AND userid='" . $userid . "' AND plan_date>='" . $start_date . "' AND plan_date<='" . $end_date . "' ORDER BY plan_fromtime ASC", "");
  2081. $todaydata = ($get_list_arr['nr'] > 0) ? $get_list_arr['result'] : array();
  2082. $monthdata = new stdClass();
  2083. } else if ($type == 'date') {
  2084. $REQUEST_KEYS = array('date' => 'date|Y-m-d');
  2085. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  2086. $date = escape_str($parent->_request['date']);
  2087. $start_date = $date;
  2088. $end_date = $date;
  2089. $get_list_arr = $parent->selectQuery(TABLE_ENQUIRYPLANNER, "*,DATE_FORMAT(plan_date, '%d-%m-%Y')plandate,DATE_FORMAT(plan_fromtime, '%H:%i') fromtime,DATE_FORMAT(plan_totime, '%H:%i') totime", " is_deleted='0' AND userid='" . $userid . "' AND plan_date>='" . $start_date . "' AND plan_date<='" . $end_date . "' ORDER BY plan_fromtime ASC", "");
  2090. $date_arr = ($get_list_arr['nr'] > 0) ? $get_list_arr['result'] : array();
  2091. } else {
  2092. $parent->response(array('response' => 'failed', 'message' => "Invalid type format"), 406);
  2093. }
  2094. $data = array('month' => $monthdata, 'today' => $todaydata, 'date' => $date_arr);
  2095. //LOG
  2096. $logstr = 'DEALER DSE PLANNER LIST';
  2097. globalfunc::insertUserLog($parent, $logstr, $id);
  2098. $parent->response(array('response' => 'success', 'data' => $data, 'message' => $this->page_data['success1']), 200);
  2099. }
  2100. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  2101. }