dashboard.php 82 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616
  1. <?php
  2. /****************************
  3. * File : dashboard.php
  4. * Author : Cygnusa
  5. * @2018
  6. ****************************/
  7. //SECURITY
  8. if (!defined('APPLICATION_PATH')) {
  9. exit('No direct script access allowed');
  10. }
  11. class dashboard
  12. {
  13. //FUNCTION LISTS
  14. public function __construct($parent)
  15. {
  16. //GET PAGE MESSAGE
  17. $this->page_data = globalfunc::getMessage($parent, $parent->lang, 'dashboard');
  18. if (count($parent->params) == 0) {
  19. $this->dashboardfunc($parent);
  20. } else {
  21. $qry_params = explode("?", $parent->params[0]);
  22. $parameter_val = strtolower($qry_params[0]);
  23. switch ($parameter_val) {
  24. case "language":
  25. case "sales":
  26. case "learning":
  27. case "rewardpoints":
  28. case "redeemhistory":
  29. case "walletcredit":
  30. case "walletdebit":
  31. case "learnpath":
  32. case "managerdashboard":
  33. case "dashboardleaderboard":
  34. case "areamanagerdashboard":
  35. case "orderhistory":
  36. case "changempin":
  37. case "changeepin":
  38. case "newareamanagerdashboard":
  39. case "areamanagerdashboardapp":
  40. case "enquiry":
  41. case "dealerenquiry":
  42. case "dealerenquirysales":
  43. $this->$parameter_val($parent);
  44. break;
  45. default:
  46. $this->dashboardfunc($parent);
  47. break;
  48. }
  49. }
  50. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  51. }
  52. /* /////////////////////////////// DASHBOARD //////////////////////////////////////////////// */
  53. private function language($parent)
  54. {
  55. //dashboard/2018/2
  56. globalfunc::checkMethodType($parent, array('GET'));
  57. globalfunc::checkParamCount($parent, 1);
  58. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  59. //LANGUAGE
  60. $get_lang_str = "SELECT `language_id`,`language_code`, `language_title` FROM " . TABLE_MASTER_LANGUAGE . " WHERE is_active='1' AND is_deleted='0' ORDER BY is_default DESC,language_title ASC";
  61. $get_lang_arr = $parent->getQueryValue($get_lang_str);
  62. //LOG
  63. $logstr = 'LANGUAGE';
  64. globalfunc::insertUserLog($parent, $logstr);
  65. $parent->response(array('response' => 'success', 'data' => $get_lang_arr, 'message' => $this->page_data['success1']), 200);
  66. }
  67. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  68. /* /////////////////////////////// DASHBOARD //////////////////////////////////////////////// */
  69. private function dashboardfunc($parent)
  70. {
  71. //dashboard/2018/2
  72. globalfunc::checkMethodType($parent, array('GET'));
  73. globalfunc::checkParamCount($parent, 2);
  74. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  75. $year_data = escape_str($parent->params[0]);
  76. $last_data = escape_str($parent->params[1]);
  77. $last_data_arr = explode('?', $last_data);
  78. $month_data = escape_str(trim($last_data_arr[0]));
  79. //LEARNING
  80. $learning = projectfunc::userLearningLevel($parent, $parent->current_user_id);
  81. //if($parent->current_user_role>7 && $parent->current_user_role!=14 && $parent->current_user_role!=16)
  82. if (in_array($parent->current_user_role, $parent->dse_roles)) {
  83. //CREATE USER TABLES
  84. projectfunc::userTableCreate($parent, $parent->current_smpin);
  85. }
  86. //GET REWARD POINTS
  87. $query_rewardpointarr = $parent->selectQuery(TABLE_USER_EPOINTS, "*", "smpin='" . $parent->current_smpin . "' ", "1");
  88. $earning = ($query_rewardpointarr['nr'] > 0) ? (string) $query_rewardpointarr['result'][0]->points : '0';
  89. //TARGET
  90. $user_target = projectfunc::userSalesTarget($parent, $parent->current_user_id, '', $year_data, $month_data);
  91. //ACHIEVED
  92. $user_achieved = projectfunc::userSalesAchieved($parent, $parent->current_user_id, '', $year_data, $month_data);
  93. $sales = array('target' => $user_target, 'achieved' => $user_achieved, 'month' => date('M', strtotime('2018-' . $month_data . "-01")), 'year' => $year_data);
  94. //LANGUAGE
  95. $get_lang_str = "SELECT `language_id`,`language_code`, `language_title` FROM " . TABLE_MASTER_LANGUAGE . " WHERE is_active='1' AND is_deleted='0' ORDER BY is_default DESC,language_title ASC";
  96. $get_lang_arr = $parent->getQueryValue($get_lang_str);
  97. $query_getarr = $parent->selectQuery(DMS_EMPLOYEE_SALES, "*", "smpin='" . $parent->current_smpin . "' ORDER BY created_on DESC", "1");
  98. $sales_last_update = ($query_getarr['nr'] > 0) ? (string) $query_getarr['result'][0]->created_on : '0000-00-00 00:00:00';
  99. //REDEEM POINT
  100. $wallet_amount = '0';
  101. $unapproved_amount = '0';
  102. $is_redeem_point = (projectfunc::checkValidReedem($parent)) ? "1" : "0";
  103. if (in_array($parent->current_user_role, $parent->dse_roles)) {
  104. $wallet_amount = projectfunc::userWalletamount($parent, $parent->current_smpin);
  105. $unapproved_amount = projectfunc::userUnapprovedamount($parent, $parent->current_smpin);
  106. }
  107. //MIN REDEEM
  108. $data['setting'] = 'REDEEM';
  109. $data = globalfunc::getSiteSetting($parent, $data);
  110. $min_redeem_point = $data->REDEEM_MIN_VALUE;
  111. $data_arr = array('learning' => $learning, 'earning' => $earning, 'sales' => $sales, 'languages' => $get_lang_arr, 'sales_last_update' => $sales_last_update, 'is_redeem_point' => $is_redeem_point, 'wallet_amount' => $wallet_amount, 'min_redeem_point' => $min_redeem_point, 'unapproved_amount' => $unapproved_amount);
  112. //LOG
  113. $logstr = 'DASHBOARD';
  114. globalfunc::insertUserLog($parent, $logstr);
  115. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  116. }
  117. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  118. /* /////////////////////////////// SALES //////////////////////////////////////////////// */
  119. private function sales($parent)
  120. {
  121. //dashboard/2018/2
  122. globalfunc::checkMethodType($parent, array('GET'));
  123. globalfunc::checkParamCount($parent, 3);
  124. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  125. $year_data = escape_str($parent->params[1]);
  126. $last_data = escape_str($parent->params[2]);
  127. $last_data_arr = explode('?', $last_data);
  128. $month_data = escape_str(trim($last_data_arr[0]));
  129. $data_arr = array();
  130. //GET MODEL
  131. $model_cond = ($parent->current_user_role > 7 && $parent->current_user_role < 14) ? " AND user_type=0 " : " AND user_type=1 ";
  132. //GET SEGMENT
  133. //$segment= projectfunc::userSegment($parent,$parent->current_smpin);
  134. $segment = $parent->current_user_data->segment;
  135. $salemodel_arr = array();
  136. $query_salesmodelarr = $parent->selectQuery(DMS_EMPLOYEE_SALES, " model ", "smpin='" . $parent->current_smpin . "' AND sale_date>='" . date('Y-m-d', strtotime($year_data . "-" . $month_data . "-01")) . "' AND sale_date<='" . date('Y-m-t', strtotime($year_data . "-" . $month_data . "-01")) . "' GROUP BY model ", "");
  137. if ($query_salesmodelarr['nr']) {
  138. foreach ($query_salesmodelarr['result'] as $res) {
  139. $salemodel_arr[] = $res->model;
  140. }
  141. $salemodel_quotes = array_map("quotes_array", $salemodel_arr);
  142. $model_cond .= " AND ( (segment='" . $segment . "' OR segment='0' AND model_is_target=1)OR (model_name IN (" . @implode(',', $salemodel_quotes) . ")) )";
  143. } else {
  144. $model_cond .= " AND (segment='" . $segment . "' OR segment='0' )";
  145. }
  146. $query_modelarr = $parent->selectQuery(TABLE_MODEL, " model_name,model_image ", " user_type=0 " . $model_cond . " ORDER BY model_id", "");
  147. if ($query_modelarr['nr']) {
  148. foreach ($query_modelarr['result'] as $res) {
  149. $res->model_image_url = ($res->model_image != '') ? SITE_URL . "hypermupload/model/" . $res->model_image : NOIMAGE_URL;
  150. $user_target = projectfunc::userSalesTarget($parent, $parent->current_user_id, $res->model_name, $year_data, $month_data);
  151. // if($user_target>0)
  152. // {
  153. $res->target = ($user_target) ? $user_target : 0;
  154. $res->achieved = projectfunc::userSalesAchieved($parent, $parent->current_user_id, $res->model_name, $year_data, $month_data);
  155. $res->achieved = ($res->achieved) ? $res->achieved : 0;
  156. $data_arr[] = $res;
  157. // }
  158. }
  159. }
  160. //LOG
  161. $logstr = 'SALES LIST';
  162. globalfunc::insertUserLog($parent, $logstr);
  163. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  164. }
  165. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  166. /* /////////////////////////////// LEARNING //////////////////////////////////////////////// */
  167. /*private function learning($parent)
  168. {
  169. //dashboard/2018/2
  170. globalfunc::checkMethodType($parent,array('GET'));
  171. globalfunc::checkParamCount($parent,2);
  172. globalfunc::checkAuthrozation($parent,array('type'=>'user'));
  173. $year_data=escape_str($parent->params[0]);
  174. $last_data = escape_str($parent->params[1]);
  175. $last_data_arr= explode('?',$last_data);
  176. $month_data=trim($last_data_arr[0]);
  177. $parent->response(array('response'=>'success', 'data'=>$data_arr,'message'=>$this->page_data['success1']),200);
  178. }
  179. */
  180. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  181. /* /////////////////////////////// REWARDPOINTS //////////////////////////////////////////////// */
  182. private function rewardpoints($parent)
  183. {
  184. globalfunc::checkMethodType($parent, array('GET'));
  185. globalfunc::checkParamCount($parent, 1);
  186. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  187. //PAGINATION SETTINGS
  188. $limit_cond = '';
  189. $data_arr = array();
  190. $limit_str = globalfunc::setPageLimit($parent, $parent->params[0]);
  191. $limit_cond = ($limit_str) ? " LIMIT " . $limit_str : '';
  192. $data = @explode('?', $parent->params[1]);
  193. $query_rewardpointarr = $parent->selectQuery(TABLE_USER_EPOINTS_HISTORY, "*", "smpin='" . $parent->current_smpin . "' AND transaction_type='C' ORDER BY created_on DESC " . $limit_cond, "");
  194. if ($query_rewardpointarr['nr']) {
  195. // foreach($query_rewardpointarr['result'] as $res)
  196. // {
  197. // $data_arr[]=$res;
  198. // }
  199. $data_arr = $query_rewardpointarr['result'];
  200. }
  201. //LOG
  202. $logstr = 'REWARDPOINTS';
  203. globalfunc::insertUserLog($parent, $logstr);
  204. //GET COUNT
  205. $get_rewardpoint_count = $parent->selectQuery(TABLE_USER_EPOINTS_HISTORY, "COUNT(hid)as e_count", " smpin='" . $parent->current_smpin . "' AND transaction_type='C' ", "1");
  206. $total = ($get_rewardpoint_count['nr'] > 0) ? $get_rewardpoint_count['result'][0]->e_count : '0';
  207. //TOTAL REWARD POINTS
  208. $total_rewardpoint_arr = $parent->selectQuery(TABLE_USER_EPOINTS_HISTORY, "SUM(points) as total_point", " smpin='" . $parent->current_smpin . "' AND transaction_type='C' ORDER BY created_on DESC ", "");
  209. $total_point = ($total_rewardpoint_arr['nr'] > 0 && $total_rewardpoint_arr['result'][0]->total_point) ? $total_rewardpoint_arr['result'][0]->total_point : '0';
  210. //TOTAL POINTS
  211. $total_currentpoint_arr = $parent->selectQuery(TABLE_USER_EPOINTS, "points", " smpin='" . $parent->current_smpin . "'", "1");
  212. $current_point = ($total_currentpoint_arr['nr'] > 0) ? $total_currentpoint_arr['result'][0]->points : '0';
  213. //REDEEM POINT
  214. $is_redeem_point = (projectfunc::checkValidReedem($parent)) ? "1" : "0";
  215. $last_page = ($total) ? ceil($total / $parent->current_limit) - 1 : 0;
  216. //MIN REDEEM
  217. $data['setting'] = 'REDEEM';
  218. $data = globalfunc::getSiteSetting($parent, $data);
  219. $min_redeem_point = $data->REDEEM_MIN_VALUE;
  220. $parent->response(array('response' => 'success', 'data' => $data_arr, 'total' => $total, 'total_point' => $total_point, 'current_point' => $current_point, 'is_redeem_point' => $is_redeem_point, 'min_redeem_point' => $min_redeem_point, 'last_page' => $last_page, 'current_page' => $parent->current_page, 'message' => $this->page_data['success1']), 200);
  221. }
  222. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  223. /* /////////////////////////////// REDEEMHISTORY //////////////////////////////////////////////// */
  224. private function redeemhistory($parent)
  225. {
  226. globalfunc::checkMethodType($parent, array('GET'));
  227. globalfunc::checkParamCount($parent, 1);
  228. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  229. //PAGINATION SETTINGS
  230. $limit_cond = '';
  231. $data_arr = array();
  232. $limit_str = globalfunc::setPageLimit($parent, $parent->params[0]);
  233. $limit_cond = ($limit_str) ? " LIMIT " . $limit_str : '';
  234. $data = @explode('?', $parent->params[1]);
  235. $query_rewardpointarr = $parent->selectQuery(TABLE_USER_EPOINTS_HISTORY, "*", "smpin='" . $parent->current_smpin . "' AND transaction_type='D' ORDER BY created_on DESC " . $limit_cond, "");
  236. if ($query_rewardpointarr['nr']) {
  237. foreach ($query_rewardpointarr['result'] as $res) {
  238. $data_arr[] = $res;
  239. }
  240. }
  241. //LOG
  242. $logstr = 'REDEEMHISTORY';
  243. globalfunc::insertUserLog($parent, $logstr);
  244. //GET COUNT
  245. $get_rewardpoint_count = $parent->selectQuery(TABLE_USER_EPOINTS_HISTORY, "COUNT(hid)as e_count", " smpin='" . $parent->current_smpin . "' AND transaction_type='D' ", "1");
  246. $total = ($get_rewardpoint_count['nr']) ? $get_rewardpoint_count['result'][0]->e_count : '0';
  247. //TOTAL REWARD POINTS
  248. $total_rewardpoint_arr = $parent->selectQuery(TABLE_USER_EPOINTS_HISTORY, "SUM(points) as total_point", " smpin='" . $parent->current_smpin . "' AND transaction_type='D' ORDER BY created_on DESC ", "");
  249. $total_point = ($total_rewardpoint_arr['nr'] > 0 && $total_rewardpoint_arr['result'][0]->total_point) ? $total_rewardpoint_arr['result'][0]->total_point : '0';
  250. //TOTAL POINTS
  251. $total_currentpoint_arr = $parent->selectQuery(TABLE_USER_EPOINTS, "points", " smpin='" . $parent->current_smpin . "'", "1");
  252. $current_point = ($total_currentpoint_arr['nr'] > 0) ? $total_currentpoint_arr['result'][0]->points : '0';
  253. //REDEEM POINT
  254. $is_redeem_point = (projectfunc::checkValidReedem($parent)) ? "1" : "0";
  255. $last_page = ($total) ? ceil($total / $parent->current_limit) - 1 : 0;
  256. //MIN REDEEM
  257. $data['setting'] = 'REDEEM';
  258. $data = globalfunc::getSiteSetting($parent, $data);
  259. $min_redeem_point = $data->REDEEM_MIN_VALUE;
  260. $parent->response(array('response' => 'success', 'data' => $data_arr, 'total' => $total, 'total_point' => $total_point, 'current_point' => $current_point, 'is_redeem_point' => $is_redeem_point, 'min_redeem_point' => $min_redeem_point, 'last_page' => $last_page, 'current_page' => $parent->current_page, 'message' => $this->page_data['success1']), 200);
  261. }
  262. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  263. /* /////////////////////////////// LEARNPATH //////////////////////////////////////////////// */
  264. private function learnpath($parent)
  265. {
  266. globalfunc::checkMethodType($parent, array('GET'));
  267. globalfunc::checkParamCount($parent, 1);
  268. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  269. //GET LEVEL BASED ASSESSMENTS
  270. $data_arr = array();
  271. // $assessment_str = "SELECT a.assessmentid,a.lvl_id,a.assessmentname,au.highscore,au.highscorearid,au.lvl_status,l.lvl_name FROM ".TABLE_ASSESSMENT." as a JOIN ".TABLE_ASSESSMENT_USER." as au on a.assessmentid=au.assessmentid LEFT JOIN ".TABLE_TRAINING_LEVEL." l ON l.lvl_id=a.lvl_id WHERE a.status='1' AND a.atype='1' AND au.userid='".$parent->current_user_id."' AND au.status='1' AND highscorearid!='0' AND a.publisheddate<='".NOW."' ORDER BY a.lvl_id ASC,au.created_on ASC ";
  272. // $assessment_arr=$parent->getQueryValue($assessment_str);
  273. // if(count($assessment_arr)>0)
  274. // {
  275. // foreach($assessment_arr as $res)
  276. // {
  277. // //GET REWARD
  278. // $get_exam_time=$parent->selectQuery(TABLE_ASSESSMENTRESULT,"*"," arid='".$res->highscorearid."' AND userid='".$parent->current_user_id."'" ,"1");
  279. // $res->examtime=($get_exam_time['nr']>0)?$get_exam_time['result'][0]->enddatetime:'';
  280. // $data_arr[]=$res;
  281. // }
  282. // }
  283. $learning = (object) projectfunc::userLearningLevel($parent, $parent->current_user_id);
  284. //BASIC
  285. if ($learning->basic == 3) {
  286. $get_date = $parent->selectQuery(TABLE_USER_LEARNING, "created_on", " lvl_id='1' AND smpin='" . $parent->current_user_data->smpin . "'", "1");
  287. $examtime = ($get_date['nr'] > 0) ? $get_date['result'][0]->created_on : '';
  288. $res = (object) array('assessmentid' => 0, 'lvl_id' => 1, 'assessmentname' => "Base", 'highscore' => '100', 'highscorearid' => 0, 'lvl_status' => 3, 'lvl_name' => "Base", 'examtime' => $examtime);
  289. $data_arr[] = $res;
  290. }
  291. //BRONZE
  292. if ($learning->bronze == 3) {
  293. $get_date = $parent->selectQuery(TABLE_USER_LEARNING, "created_on", " lvl_id='2' AND smpin='" . $parent->current_user_data->smpin . "'", "1");
  294. $examtime = ($get_date['nr'] > 0) ? $get_date['result'][0]->created_on : '';
  295. $res = (object) array('assessmentid' => 0, 'lvl_id' => 2, 'assessmentname' => "Bronze", 'highscore' => '100', 'highscorearid' => 0, 'lvl_status' => 3, 'lvl_name' => "Bronze", 'examtime' => $examtime);
  296. $data_arr[] = $res;
  297. }
  298. //SILVER
  299. if ($learning->silver > 0) {
  300. $get_date = $parent->selectQuery(TABLE_USER_LEARNING, "created_on", " lvl_id IN (3,4) OR AND smpin='" . $parent->current_user_data->smpin . "'", "1");
  301. $examtime = ($get_date['nr'] > 0) ? $get_date['result'][0]->created_on : '';
  302. switch ($learning->silver) {
  303. case '3':$res = (object) array('assessmentid' => 0, 'lvl_id' => 3, 'assessmentname' => "Silver", 'highscore' => '100', 'highscorearid' => 0, 'lvl_status' => 3, 'lvl_name' => "Silver", 'examtime' => $examtime);
  304. $data_arr[] = $res;
  305. break;
  306. case '7':
  307. case '4':
  308. case '2':
  309. $res = (object) array('assessmentid' => 0, 'lvl_id' => 3, 'assessmentname' => "Silver", 'highscore' => '50', 'highscorearid' => 0, 'lvl_status' => $learning->silver, 'lvl_name' => "Silver", 'examtime' => $examtime);
  310. $data_arr[] = $res;
  311. break;
  312. }
  313. }
  314. //GOLD
  315. if ($learning->gold > 0) {
  316. $get_date = $parent->selectQuery(TABLE_USER_LEARNING, "created_on", " lvl_id IN (5,6) AND smpin='" . $parent->current_user_data->smpin . "'", "1");
  317. $examtime = ($get_date['nr'] > 0) ? $get_date['result'][0]->created_on : '';
  318. switch ($learning->gold) {
  319. case '3':$res = (object) array('assessmentid' => 0, 'lvl_id' => 4, 'assessmentname' => "Gold", 'highscore' => '100', 'highscorearid' => 0, 'lvl_status' => 3, 'lvl_name' => "Gold", 'examtime' => $examtime);
  320. $data_arr[] = $res;
  321. break;
  322. case '7':
  323. case '4':
  324. case '2':
  325. $res = (object) array('assessmentid' => 0, 'lvl_id' => 4, 'assessmentname' => "Gold", 'highscore' => '50', 'highscorearid' => 0, 'lvl_status' => $learning->silver, 'lvl_name' => "Gold", 'examtime' => $examtime);
  326. $data_arr[] = $res;
  327. break;
  328. }
  329. }
  330. //LOG
  331. $logstr = 'LEARNPATH';
  332. globalfunc::insertUserLog($parent, $logstr);
  333. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  334. }
  335. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  336. /* /////////////////////////////// MANAGER DASHBOARD //////////////////////////////////////////////// */
  337. private function managerdashboard($parent)
  338. {
  339. globalfunc::checkMethodType($parent, array('GET'));
  340. globalfunc::checkParamCount($parent, 3);
  341. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  342. projectfunc::authorizedRole($parent, array(3, 4, 5, 6, 7, 14));
  343. $year_data = escape_str($parent->params[1]);
  344. $last_data = escape_str($parent->params[2]);
  345. $last_data_arr = explode('?', $last_data);
  346. $month_data = escape_str(trim($last_data_arr[0]));
  347. //LEARNING
  348. $learning_arr = projectfunc::managerLearningDashboard($parent, $parent->current_user_role, $parent->current_user_id); //NOT BASED ON YEAR OR MONTH
  349. $assessment_arr = projectfunc::managerAssessmentDashboard($parent, $parent->current_user_role, $parent->current_user_id); //NOT BASED ON YEAR OR MONTH
  350. $sales_arr = projectfunc::managersalesDashboard($parent, $parent->current_user_role, $year_data, $month_data, $parent->current_user_id); // BASED ON YEAR OR MONTH
  351. //LANGUAGE
  352. $get_lang_str = "SELECT `language_id`,`language_code`, `language_title` FROM " . TABLE_MASTER_LANGUAGE . " WHERE is_active='1' AND is_deleted='0' ORDER BY is_default DESC,language_title ASC";
  353. $get_lang_arr = $parent->getQueryValue($get_lang_str);
  354. $data_arr = array('sales' => $sales_arr, 'learning' => $learning_arr, 'assessment' => $assessment_arr, 'languages' => $get_lang_arr);
  355. //LOG
  356. $logstr = 'MANAGER DASHBOARD';
  357. globalfunc::insertUserLog($parent, $logstr);
  358. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  359. }
  360. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  361. /* /////////////////////////////// AREA MANAGER DASHBOARD //////////////////////////////////////////////// */
  362. private function areamanagerdashboard($parent)
  363. {
  364. globalfunc::checkMethodType($parent, array('POST'));
  365. globalfunc::checkParamCount($parent, 3);
  366. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  367. projectfunc::authorizedRole($parent, array(3, 4, 5, 6, 7, 14));
  368. $year_data = escape_str($parent->params[1]);
  369. $last_data = escape_str($parent->params[2]);
  370. $last_data_arr = explode('?', $last_data);
  371. $month_data = escape_str(trim($last_data_arr[0]));
  372. //FIELDS VALIDATION
  373. $REQUEST_KEYS = array('area' => 'string');
  374. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  375. $area_manager = escape_str($parent->_request["area"]);
  376. $get_role = (in_array($parent->current_user_role, array(7, 14))) ? $parent->current_user_role : "7";
  377. //LEARNING
  378. $learning_arr = projectfunc::newmanagerLearningDashboard($parent, $get_role, $area_manager); //NOT BASED ON YEAR OR MONTH
  379. $assessment_arr = projectfunc::newmanagerAssessmentDashboard($parent, $get_role, $area_manager); //NOT BASED ON YEAR OR MONTH
  380. $sales_arr = projectfunc::newmanagersalesDashboard($parent, $get_role, $year_data, $month_data, $area_manager); // BASED ON YEAR OR MONTH
  381. //LANGUAGE
  382. $get_lang_str = "SELECT `language_id`,`language_code`, `language_title` FROM " . TABLE_MASTER_LANGUAGE . " WHERE is_active='1' AND is_deleted='0' ORDER BY is_default DESC,language_title ASC";
  383. $get_lang_arr = $parent->getQueryValue($get_lang_str);
  384. $data_arr = array('sales' => $sales_arr, 'learning' => $learning_arr, 'assessment' => $assessment_arr, 'languages' => $get_lang_arr);
  385. //LOG
  386. $logstr = 'AREA MANAGER DASHBOARD';
  387. globalfunc::insertUserLog($parent, $logstr);
  388. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  389. }
  390. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  391. /* /////////////////////////////// dashboard leaderboard //////////////////////////////////////////////// */
  392. private function dashboardleaderboard($parent)
  393. {
  394. globalfunc::checkMethodType($parent, array('POST'));
  395. globalfunc::checkParamCount($parent, 1);
  396. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  397. $start_date = date('Y-m-d', strtotime(NOW));
  398. $end_date = date('Y-m-t', strtotime(NOW));
  399. $userdata = projectfunc::getuserdata($parent, $parent->current_user_id);
  400. $dealer_code_cond = '';
  401. if ($parent->current_user_role < 7) {
  402. //FIELDS VALIDATION
  403. $REQUEST_KEYS = array('area' => 'string');
  404. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  405. $area_manager = escape_str($parent->_request["area"]);
  406. } else if ($parent->current_user_role == '7') {
  407. $area_manager = $userdata->emailid;
  408. } else if ($parent->current_user_role == '14') {
  409. //FIELDS VALIDATION
  410. $REQUEST_KEYS = array('area' => 'string');
  411. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  412. $area_manager = escape_str($parent->_request["area"]);
  413. $dealer_code = $userdata->current_user_data->dealer_code;
  414. $dealer_code_cond = " AND dealer_code='" . $dealer_code . "'";
  415. } else {
  416. $parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  417. }
  418. $user_cond = "";
  419. $role = $parent->current_user_role;
  420. $get_dealer_str = "SELECT dealer_code,city,zone FROM " . DMS_DEALER . " WHERE am_email='" . $area_manager . "' " . $dealer_code_cond . " GROUP BY dealer_code ";
  421. $dealer_arr = $parent->getQueryValue($get_dealer_str);
  422. if (count($dealer_arr) > 0) {
  423. $zone_arr = array();
  424. $city_arr = array();
  425. foreach ($dealer_arr as $res_dealer) {
  426. if (!in_array($res_dealer->zone, $zone_arr)) {
  427. $zone_arr[] = $res_dealer->zone;
  428. }
  429. if (!in_array($res_dealer->city, $city_arr)) {
  430. $city_arr[] = $res_dealer->city;
  431. }
  432. $dealer_cond_arr[] = " filter_dealer LIKE '%" . $res_dealer->dealer_code . "%'";
  433. }
  434. $user_cond .= " AND ( filter_dealer='' OR " . @implode(" OR ", $dealer_cond_arr) . " ) ";
  435. if (count($zone_arr) > 0) {
  436. foreach ($zone_arr as $zone) {
  437. $zone_cond_arr[] = " filter_zone LIKE '%" . $zone . "%'";
  438. }
  439. $user_cond .= " AND (filter_zone='' OR " . @implode(" OR ", $zone_cond_arr) . " ) ";
  440. } else {
  441. $user_cond .= " AND (filter_zone='') ";
  442. }
  443. if (count($city_arr) > 0) {
  444. foreach ($city_arr as $city) {
  445. $city_cond_arr[] = " filter_region LIKE '%" . $city . "%'";
  446. }
  447. $user_cond .= " AND (filter_region='' OR " . @implode(" OR ", $city_cond_arr) . " ) ";
  448. } else {
  449. $user_cond .= " AND (filter_region='') ";
  450. }
  451. } else {
  452. $user_cond .= " AND (filter_dealer='') ";
  453. }
  454. $user_table_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $area_manager . "' " . $dealer_code_cond . ")";
  455. $user_cond .= " AND a.user_type=0";
  456. $assessment_str = "SELECT a.* FROM `" . TABLE_ASSESSMENT . "` as a WHERE a.atype='0' AND a.assettypeid='1' " . $lcond . " AND a.publisheddate<='" . NOW . "' " . $user_cond;
  457. $assessment_arr = $parent->getQueryValue($assessment_str);
  458. $assessment_data_arr = array();
  459. if (count($assessment_arr) > 0) {
  460. foreach ($assessment_arr as $res_assess) {
  461. $assessmentid_arr[] = $res_assess->assessmentid;
  462. }
  463. //GET ALL 3 USER RANK
  464. $parent->executeQuery("SET @rownum := 0");
  465. //AND u.status=1
  466. $get_user_rank_str = "SELECT * FROM ( SELECT @rownum := @rownum + 1 AS rank,COALESCE(user_score,'0')as user_score,CASE WHEN user_score IS NULL THEN 0 ELSE (user_score/" . count($assessment_arr) . ") END as percentage_score,userid,total_time,last_modified FROM (SELECT SUM(highscore)as user_score,u.userid,COALESCE(ar.total_time,'0')as total_time,MAX(au.modified_on) as last_modified FROM " . TABLE_USER . " as u JOIN (SELECT * FROM " . TABLE_ASSESSMENT_USER . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") AND highscorearid!=0 ) as au ON u.userid=au.userid LEFT JOIN (SELECT SUM(time_taken)as total_time,assessmentid,userid FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") GROUP BY userid )as ar ON u.userid=ar.userid WHERE u.role>='3' AND u.is_deleted=0 " . $user_table_cond . " GROUP BY u.userid ORDER BY user_score DESC,ar.total_time ASC,last_modified ASC,u.userid ASC )as a )as b LIMIT 3 ";
  467. $q1 = $get_user_rank_str;
  468. $get_user_rank_arr = $parent->getQueryValue($get_user_rank_str);
  469. if ($get_user_rank_arr) {
  470. foreach ($get_user_rank_arr as $res_user) {
  471. $user_data_arr = new stdClass();
  472. $get_time_str = "SELECT * FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") AND userid='" . $res_user->userid . "'";
  473. $get_time_arr = $parent->getQueryValue($get_time_str);
  474. $user_data_arr->user = projectfunc::getuserdata($parent, $res_user->userid);
  475. $user_data_arr->rank = (count($get_time_arr) > 0) ? $res_user->rank : '-';
  476. $user_data_arr->tot_user_score = (count($get_time_arr) > 0) ? $res_user->user_score : '-';
  477. $user_data_arr->percentage_score = (count($get_time_arr) > 0) ? round($res_user->percentage_score) : '-';
  478. $user_data_arr->percentage = $user_data_arr->percentage_score;
  479. $user_data_arr->total_time = $res_user->total_time;
  480. $user_data_arr->last_time = (count($get_time_arr) > 0) ? $res_user->last_modified : '-';
  481. $assessment_data_arr[] = $user_data_arr;
  482. }
  483. }
  484. }
  485. $sales_data_arr = array();
  486. $parent->executeQuery("SET @rownum := 0");
  487. $get_user_rank_str = "SELECT * FROM (SELECT @rownum := @rownum + 1 AS rank, salecount,targetcount,smpin,userid,last_sale,first_sale,sale_per FROM (SELECT c.*, CASE WHEN targetcount=0 THEN 0 ELSE (salecount/targetcount)*100 END as 'sale_per' FROM ( SELECT a.userid,a.smpin,a.salecount,b.targetcount,a.last_sale,a.first_sale FROM (SELECT COALESCE(COUNT(s.id),'0') as scount, COALESCE(SUM(s.sales_count),'0') as salecount, u.smpin,u.userid,MAX(s.sale_date) last_sale,MIN(s.sale_date) first_sale FROM " . TABLE_USER . " as u LEFT JOIN (SELECT id,smpin,sale_date,sales_count FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $start_date . "' AND sale_date<='" . $end_date . "') as s ON s.smpin=u.smpin WHERE u.is_deleted=0 AND u.status=1 " . $user_table_cond . " GROUP BY u.smpin ) as a JOIN (SELECT COALESCE(SUM(t.target),'0') as targetcount,u.smpin,u.userid FROM " . TABLE_USER . " as u LEFT JOIN (SELECT id,smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $start_date . "' AND sale_month<='" . $end_date . "')as t ON t.smpin=u.smpin WHERE u.is_deleted=0 AND u.status=1 " . $user_table_cond . " GROUP BY u.smpin ) as b ON a.userid=b.userid )c ORDER BY sale_per DESC,last_sale ASC,first_sale ASC,userid ASC)as a )as d LIMIT 3";
  488. $q2 = $get_user_rank_str;
  489. $get_user_rank_arr = $parent->getQueryValue($get_user_rank_str);
  490. if (count($get_user_rank_arr) > 0) {
  491. foreach ($get_user_rank_arr as $key => $value) {
  492. $get_user_rank_arr[$key]->user = projectfunc::getuserdata($parent, $value->userid);
  493. $get_user_rank_arr[$key]->percentage = round($value->sale_per);
  494. }
  495. $sales_data_arr = $get_user_rank_arr;
  496. }
  497. $data_arr = array('sales' => $sales_data_arr, 'assessment' => $assessment_data_arr);
  498. //LOG
  499. $logstr = 'MANAGER DASHBOARD LEADERBOARD';
  500. globalfunc::insertUserLog($parent, $logstr);
  501. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  502. }
  503. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  504. /* /////////////////////////////// WALLETCREDIT //////////////////////////////////////////////// */
  505. private function walletcredit($parent)
  506. {
  507. globalfunc::checkMethodType($parent, array('GET'));
  508. globalfunc::checkParamCount($parent, 1);
  509. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  510. //PAGINATION SETTINGS
  511. $limit_cond = '';
  512. $data_arr = array();
  513. $limit_str = globalfunc::setPageLimit($parent, $parent->params[0]);
  514. $limit_cond = ($limit_str) ? " LIMIT " . $limit_str : '';
  515. $data = @explode('?', $parent->params[1]);
  516. $query_walletarr = $parent->selectQuery(TABLE_USER_WALLET_HISTORY, "*", "smpin='" . $parent->current_smpin . "' AND transaction_type='C' ORDER BY created_on DESC " . $limit_cond, "");
  517. if ($query_walletarr['nr']) {
  518. // foreach($query_walletarr['result'] as $res)
  519. // {
  520. // $data_arr[]=$res;
  521. // }
  522. $data_arr = $query_walletarr['result'];
  523. }
  524. //LOG
  525. $logstr = 'WALLET CREDIT';
  526. globalfunc::insertUserLog($parent, $logstr);
  527. //GET COUNT
  528. $get_wallet_count = $parent->selectQuery(TABLE_USER_WALLET_HISTORY, "COUNT(hid)as e_count", " smpin='" . $parent->current_smpin . "' AND transaction_type='C' ", "1");
  529. $total = ($get_wallet_count['nr'] > 0) ? $get_wallet_count['result'][0]->e_count : '0';
  530. //TOTAL WALLET POINTS
  531. $total_wallet_arr = $parent->selectQuery(TABLE_USER_WALLET_HISTORY, "SUM(amount) as total_amount", " smpin='" . $parent->current_smpin . "' AND transaction_type='C' ORDER BY created_on DESC ", "");
  532. $total_amount = ($total_wallet_arr['nr'] > 0 && $total_wallet_arr['result'][0]->total_amount) ? $total_wallet_arr['result'][0]->total_amount : '0';
  533. //TOTAL WALLET
  534. $currentwallet_arr = $parent->selectQuery(TABLE_USER_WALLET, "amount", " smpin='" . $parent->current_smpin . "'", "1");
  535. $current_amount = ($currentwallet_arr['nr'] > 0) ? $currentwallet_arr['result'][0]->amount : '0';
  536. $last_page = ($total) ? ceil($total / $parent->current_limit) - 1 : 0;
  537. $parent->response(array('response' => 'success', 'data' => $data_arr, 'total' => $total, 'total_amount' => $total_amount, 'current_amount' => $current_amount, 'last_page' => $last_page, 'current_page' => $parent->current_page, 'message' => $this->page_data['success1']), 200);
  538. }
  539. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  540. /* /////////////////////////////// WALLETDEBIT //////////////////////////////////////////////// */
  541. private function walletdebit($parent)
  542. {
  543. globalfunc::checkMethodType($parent, array('GET'));
  544. globalfunc::checkParamCount($parent, 1);
  545. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  546. //PAGINATION SETTINGS
  547. $limit_cond = '';
  548. $data_arr = array();
  549. $limit_str = globalfunc::setPageLimit($parent, $parent->params[0]);
  550. $limit_cond = ($limit_str) ? " LIMIT " . $limit_str : '';
  551. $data = @explode('?', $parent->params[1]);
  552. $query_walletarr = $parent->selectQuery(TABLE_USER_WALLET_HISTORY, "*", "smpin='" . $parent->current_smpin . "' AND transaction_type='D' ORDER BY created_on DESC " . $limit_cond, "");
  553. if ($query_walletarr['nr']) {
  554. /*foreach($query_walletarr['result'] as $res)
  555. {
  556. $data_arr[]=$res;
  557. }*/
  558. $data_arr = $query_walletarr['result'];
  559. }
  560. //LOG
  561. $logstr = 'WALLET DEBIT';
  562. globalfunc::insertUserLog($parent, $logstr);
  563. //GET COUNT
  564. $get_wallet_count = $parent->selectQuery(TABLE_USER_WALLET_HISTORY, "COUNT(hid)as e_count", " smpin='" . $parent->current_smpin . "' AND transaction_type='D' ", "1");
  565. $total = ($get_wallet_count['nr']) ? $get_wallet_count['result'][0]->e_count : '0';
  566. //TOTAL WALLET POINTS
  567. $total_wallet_arr = $parent->selectQuery(TABLE_USER_WALLET_HISTORY, "SUM(amount) as total_amount", " smpin='" . $parent->current_smpin . "' AND transaction_type='D' ORDER BY created_on DESC ", "");
  568. $total_amount = ($total_wallet_arr['nr'] > 0 && $total_wallet_arr['result'][0]->total_amount) ? $total_wallet_arr['result'][0]->total_amount : '0';
  569. //TOTAL WALLET
  570. $total_wallet_arr = $parent->selectQuery(TABLE_USER_WALLET, "amount", " smpin='" . $parent->current_smpin . "'", "1");
  571. $current_amount = ($total_wallet_arr['nr'] > 0) ? $total_wallet_arr['result'][0]->amount : '0';
  572. //REDEEM WALLET
  573. $is_redeem_point = (projectfunc::checkValidReedem($parent)) ? "1" : "0";
  574. $last_page = ($total) ? ceil($total / $parent->current_limit) - 1 : 0;
  575. $parent->response(array('response' => 'success', 'data' => $data_arr, 'total' => $total, 'total_amount' => $total_amount, 'current_amount' => $current_amount, 'last_page' => $last_page, 'current_page' => $parent->current_page, 'message' => $this->page_data['success1']), 200);
  576. }
  577. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  578. /* /////////////////////////////// ORDERHISTORY //////////////////////////////////////////////// */
  579. private function orderhistory($parent)
  580. {
  581. globalfunc::checkMethodType($parent, array('GET'));
  582. globalfunc::checkParamCount($parent, 1);
  583. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  584. //PAGINATION SETTINGS
  585. $limit_cond = '';
  586. $data_arr = array();
  587. $limit_str = globalfunc::setPageLimit($parent, $parent->params[0]);
  588. $limit_cond = ($limit_str) ? " LIMIT " . $limit_str : '';
  589. $data = @explode('?', $parent->params[1]);
  590. $query_arr = $parent->selectQuery(TABLE_ORDER, "*", " smpin='" . $parent->current_smpin . "' ORDER BY order_id DESC " . $limit_cond, "");
  591. if ($query_arr['nr']) {
  592. foreach ($query_arr['result'] as $key => $res) {
  593. if ($res->is_success == '1') {
  594. $query_arr['result'][$key]->status = '1';
  595. } else if ($res->is_success == '0' && $res->is_refund == '1') {
  596. $query_arr['result'][$key]->status = '0';
  597. } else if ($res->is_success == '0' && $res->is_refund == '0') {
  598. $query_arr['result'][$key]->status = '2';
  599. }
  600. if ($res->card_data) {
  601. $query_arr['result'][$key]->card_data = json_decode(stripslashesFull($res->card_data));
  602. if (!isset($query_arr['result'][$key]->card_data->cardnumber)) {
  603. $query_arr['result'][$key]->card_data->cardnumber = $query_arr['result'][$key]->card_data->cardNumber;
  604. }
  605. if (!isset($query_arr['result'][$key]->card_data->card_price)) {
  606. $query_arr['result'][$key]->card_data->card_price = $query_arr['result'][$key]->card_data->amount;
  607. }
  608. if (!isset($query_arr['result'][$key]->card_data->expiry_date)) {
  609. $query_arr['result'][$key]->card_data->expiry_date = date('Y-m-d', strtotime($query_arr['result'][$key]->card_data->validity));
  610. }
  611. if (!isset($query_arr['result'][$key]->card_data->activation_code)) {
  612. $query_arr['result'][$key]->card_data->activation_code = $query_arr['result'][$key]->card_data->activationCode;
  613. }
  614. if (!isset($query_arr['result'][$key]->card_data->name)) {
  615. $query_arr['result'][$key]->card_data->name = $query_arr['result'][$key]->card_data->productName;
  616. }
  617. if (!isset($query_arr['result'][$key]->card_data->card_pin)) {
  618. $query_arr['result'][$key]->card_data->card_pin = $query_arr['result'][$key]->card_data->cardPin;
  619. }
  620. if (!isset($query_arr['result'][$key]->card_data->pin_or_url)) {
  621. $query_arr['result'][$key]->card_data->pin_or_url = $query_arr['result'][$key]->card_data->activationUrl;
  622. }
  623. if (isset($query_arr['result'][$key]->card_data->cardNumber)) {
  624. unset($query_arr['result'][$key]->card_data->cardNumber);
  625. }
  626. } else {
  627. $query_arr['result'][$key]->card_data = new stdClass();
  628. }
  629. if (!$res->images != '') {
  630. $query_arr['result'][$key]->images = NOIMAGE_URL;
  631. }
  632. }
  633. $data_arr = $query_arr['result'];
  634. }
  635. //LOG
  636. $logstr = 'ORDER HISTORY';
  637. globalfunc::insertUserLog($parent, $logstr);
  638. //GET COUNT
  639. $get_order_count = $parent->selectQuery(TABLE_ORDER, "COUNT(id)as ord_count", " smpin='" . $parent->current_smpin . "' AND is_success='1' ", "1");
  640. $total = ($get_order_count['nr']) ? $get_order_count['result'][0]->ord_count : '0';
  641. //TOTAL WALLET POINTS
  642. $total_wallet_arr = $parent->selectQuery(TABLE_USER_WALLET_HISTORY, "SUM(amount) as total_amount", " smpin='" . $parent->current_smpin . "' AND transaction_type='D' ORDER BY created_on DESC ", "");
  643. $total_amount = ($total_wallet_arr['nr'] > 0 && $total_wallet_arr['result'][0]->total_amount) ? $total_wallet_arr['result'][0]->total_amount : '0';
  644. //TOTAL WALLET
  645. $total_wallet_arr = $parent->selectQuery(TABLE_USER_WALLET, "amount", " smpin='" . $parent->current_smpin . "'", "1");
  646. $current_amount = ($total_wallet_arr['nr'] > 0) ? $total_wallet_arr['result'][0]->amount : '0';
  647. $unapproved_amount = projectfunc::userUnapprovedamount($parent, $parent->current_smpin);
  648. //REDEEM POINT
  649. $is_redeem_point = (projectfunc::checkValidReedem($parent)) ? "1" : "0";
  650. $last_page = ($total) ? ceil($total / $parent->current_limit) - 1 : 0;
  651. $parent->response(array('response' => 'success', 'data' => $data_arr, 'total' => $total, 'total_amount' => $total_amount, 'current_amount' => $current_amount, 'unapproved_amount' => $unapproved_amount, 'last_page' => $last_page, 'current_page' => $parent->current_page, 'message' => $this->page_data['success1']), 200);
  652. }
  653. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  654. /* /////////////////////////////// CHANGE MPIN //////////////////////////////////////////////// */
  655. private function changempin($parent)
  656. {
  657. globalfunc::checkMethodType($parent, array('POST'));
  658. globalfunc::checkParamCount($parent, 1);
  659. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  660. $REQUEST_KEYS = array('mpin' => 'string');
  661. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  662. $mpin = escape_str($parent->_request["mpin"]);
  663. //LOG
  664. $logstr = 'CHANGE MPIN';
  665. globalfunc::insertUserLog($parent, $logstr);
  666. $parent->executeQuery("UPDATE " . TABLE_USER . " SET mpin='" . $mpin . "' WHERE userid='" . $parent->current_user_id . "' ");
  667. $parent->response(array('response' => 'success', 'message' => $this->page_data['success1']), 200);
  668. }
  669. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  670. /* /////////////////////////////// CHANGE EPIN //////////////////////////////////////////////// */
  671. private function changeepin($parent)
  672. {
  673. globalfunc::checkMethodType($parent, array('POST'));
  674. globalfunc::checkParamCount($parent, 1);
  675. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  676. $REQUEST_KEYS = array('epin' => 'string');
  677. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  678. $epin = escape_str($parent->_request["epin"]);
  679. //LOG
  680. $logstr = 'CHANGE EPIN';
  681. globalfunc::insertUserLog($parent, $logstr);
  682. $parent->executeQuery("UPDATE " . TABLE_USER . " SET epin='" . $epin . "' WHERE userid='" . $parent->current_user_id . "' ");
  683. $parent->response(array('response' => 'success', 'message' => $this->page_data['success1']), 200);
  684. }
  685. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  686. /* /////////////////////////////// AREA MANAGER DASHBOARD //////////////////////////////////////////////// */
  687. private function newareamanagerdashboard($parent)
  688. {
  689. globalfunc::checkMethodType($parent, array('POST'));
  690. globalfunc::checkParamCount($parent, 4);
  691. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  692. projectfunc::authorizedRole($parent, array(3, 4, 5, 6, 7, 14));
  693. $year_data = escape_str($parent->params[1]);
  694. $last_data = escape_str($parent->params[2]);
  695. $last_data_arr = explode('?', $last_data);
  696. $month_data = escape_str(trim($last_data_arr[0]));
  697. $qry_params = explode("?", $parent->params[3]);
  698. $type = strtolower($qry_params[0]);
  699. $user_cond = "";
  700. switch ($type) {
  701. case "zm":
  702. if ($parent->current_user_role == '3') {
  703. $REQUEST_KEYS = array('zmemail' => 'string');
  704. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  705. $emailid = $parent->_request["zmemail"];
  706. if ($emailid != 'all') {
  707. //$user_cond.=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE zm_email='". $emailid."')";
  708. $get_role = '4';
  709. $manageremail = $emailid;
  710. } else {
  711. //$user_cond.="";
  712. $get_role = '3';
  713. $manageremail = '';
  714. }
  715. } else {
  716. $parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  717. }
  718. break;
  719. case "rm":
  720. if ($parent->current_user_role < '7') {
  721. if ($parent->current_user_role == '5') {
  722. $REQUEST_KEYS = array('rmemail' => 'string');
  723. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  724. $emailid = $parent->_request["rmemail"];
  725. if ($emailid == 'all') {
  726. // $zone_cond.=(count($trainer_arr)>0)?" zone='".$trainer_arr[0]->zone."'":" zone='0'";
  727. //$user_cond.=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE ".$zone_cond.")";
  728. $get_role = '5';
  729. $manageremail = $trainer_arr[0]->emailid;
  730. } else {
  731. //$user_cond.=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE rm_email='".$emailid."')";
  732. $get_role = '6';
  733. $manageremail = $emailid;
  734. }
  735. } else {
  736. $REQUEST_KEYS = array('rmemail' => 'string');
  737. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  738. $emailid = $parent->_request["rmemail"];
  739. if ($emailid == 'all') {
  740. $REQUEST_KEYS = array('zmemail' => 'string');
  741. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  742. $emailid = $parent->_request["zmemail"];
  743. // $user_cond.=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE zm_email='". $emailid."')";
  744. $get_role = '4';
  745. $manageremail = $emailid;
  746. } else {
  747. //$user_cond.=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE rm_email='".$emailid."')";
  748. $get_role = '6';
  749. $manageremail = $emailid;
  750. }
  751. }
  752. } else {
  753. $parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  754. }
  755. break;
  756. case "am":
  757. if ($parent->current_user_role == '14') {
  758. //$dealer_code_cond=" dealer_code='".$parent->current_user_data->dealer_code."'";
  759. $get_role = '14';
  760. $manageremail = '';
  761. } else {
  762. $REQUEST_KEYS = array('amemail' => 'string');
  763. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  764. $emailid = $parent->_request["amemail"];
  765. if ($emailid == 'all') {
  766. $REQUEST_KEYS = array('rmemail' => 'string');
  767. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  768. $emailid = $parent->_request["rmemail"];
  769. //$user_cond.=" rm_email='".$emailid."'";
  770. $get_role = '6';
  771. $manageremail = $emailid;
  772. } else {
  773. //$dealer_code_cond=" am_email='".$emailid."'";
  774. $get_role = '7';
  775. $manageremail = $emailid;
  776. }
  777. }
  778. //$user_cond.=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE ".$dealer_code_cond.")";
  779. break;
  780. default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  781. break;
  782. }
  783. //FIELDS VALIDATION
  784. //$REQUEST_KEYS=array('area'=>'string');
  785. //globalfunc::mandatoryKey($parent,$REQUEST_KEYS);
  786. //$area_manager = escape_str($parent->_request["area"]);
  787. //$get_role=(in_array($parent->current_user_role,array(7,14)))?$parent->current_user_role:"7";
  788. //LEARNING
  789. $learning_arr = projectfunc::newmanagerLearningDashboard($parent, $get_role, $manageremail); //NOT BASED ON YEAR OR MONTH
  790. $assessment_arr = projectfunc::newmanagerAssessmentDashboard($parent, $get_role, $manageremail); //NOT BASED ON YEAR OR MONTH
  791. $sales_arr = projectfunc::newmanagersalesDashboard($parent, $get_role, $year_data, $month_data, $manageremail); // BASED ON YEAR OR MONTH
  792. //LANGUAGE
  793. $get_lang_str = "SELECT `language_id`,`language_code`, `language_title` FROM " . TABLE_MASTER_LANGUAGE . " WHERE is_active='1' AND is_deleted='0' ORDER BY is_default DESC,language_title ASC";
  794. $get_lang_arr = $parent->getQueryValue($get_lang_str);
  795. $data_arr = array('sales' => $sales_arr, 'learning' => $learning_arr, 'assessment' => $assessment_arr, 'languages' => $get_lang_arr);
  796. //LOG
  797. $logstr = 'AREA MANAGER DASHBOARD';
  798. globalfunc::insertUserLog($parent, $logstr);
  799. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  800. }
  801. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  802. /* /////////////////////////////// AREA MANAGER DASHBOARD //////////////////////////////////////////////// */
  803. private function areamanagerdashboardapp($parent)
  804. {
  805. globalfunc::checkMethodType($parent, array('POST'));
  806. globalfunc::checkParamCount($parent, 3);
  807. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  808. projectfunc::authorizedRole($parent, array(3, 4, 5, 6, 7, 14));
  809. $userdata = projectfunc::getuserdata($parent, $parent->current_user_id);
  810. $year_data = escape_str($parent->params[1]);
  811. $last_data = escape_str($parent->params[2]);
  812. $last_data_arr = explode('?', $last_data);
  813. $month_data = escape_str(trim($last_data_arr[0]));
  814. $zmemailid = (isset($parent->_request["zmemail"])) ? escape_str($parent->_request["zmemail"]) : 'all';
  815. $rmemailid = (isset($parent->_request["rmemail"])) ? escape_str($parent->_request["rmemail"]) : 'all';
  816. $amemailid = (isset($parent->_request["amemail"])) ? escape_str($parent->_request["amemail"]) : 'all';
  817. if ($parent->current_user_role == '3') //HO
  818. {
  819. if ($amemailid != 'all') {
  820. $get_role = '7';
  821. $manageremail = $amemailid;
  822. } else if ($rmemailid != 'all') {
  823. $get_role = '6';
  824. $manageremail = $rmemailid;
  825. } else if ($zmemailid != 'all') {
  826. $get_role = '4';
  827. $manageremail = $zmemailid;
  828. } else {
  829. $get_role = '3';
  830. $manageremail = '';
  831. }
  832. } else if ($parent->current_user_role == '4') //ZM
  833. {
  834. if ($amemailid != 'all') {
  835. $get_role = '7';
  836. $manageremail = $amemailid;
  837. } else if ($rmemailid != 'all') {
  838. $get_role = '6';
  839. $manageremail = $rmemailid;
  840. } else if ($zmemailid != 'all') {
  841. $get_role = '4';
  842. $manageremail = $zmemailid;
  843. } else {
  844. $parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  845. }
  846. } else if ($parent->current_user_role == '5') //TRAINER
  847. {
  848. if ($amemailid != 'all') {
  849. $get_role = '7';
  850. $manageremail = $amemailid;
  851. } else if ($rmemailid != 'all') {
  852. $get_role = '6';
  853. $manageremail = $rmemailid;
  854. } else {
  855. $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1";
  856. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  857. $get_role = '5';
  858. $manageremail = $trainer_arr[0]->emailid;
  859. }
  860. } else if ($parent->current_user_role == '6') //RM
  861. {
  862. if ($amemailid != 'all') {
  863. $get_role = '7';
  864. $manageremail = $amemailid;
  865. } else if ($rmemailid != 'all') {
  866. $get_role = '6';
  867. $manageremail = $rmemailid;
  868. } else {
  869. $get_role = '6';
  870. $manageremail = $userdata->emailid;
  871. }
  872. } else if ($parent->current_user_role == '7') //AM
  873. {
  874. if ($amemailid != 'all') {
  875. $get_role = '7';
  876. $manageremail = $amemailid;
  877. } else {
  878. $get_role = '7';
  879. $manageremail = $userdata->emailid;
  880. }
  881. } else if ($parent->current_user_role == '14') //DEALER
  882. {
  883. $get_role = '14';
  884. $manageremail = '';
  885. }
  886. //LEARNING
  887. $learning_arr = projectfunc::newmanagerLearningDashboard($parent, $get_role, $manageremail); //NOT BASED ON YEAR OR MONTH
  888. $assessment_arr = projectfunc::newmanagerAssessmentDashboard($parent, $get_role, $manageremail); //NOT BASED ON YEAR OR MONTH
  889. $sales_arr = projectfunc::newmanagersalesDashboard($parent, $get_role, $year_data, $month_data, $manageremail); // BASED ON YEAR OR MONTH
  890. //LANGUAGE
  891. $get_lang_str = "SELECT `language_id`,`language_code`, `language_title` FROM " . TABLE_MASTER_LANGUAGE . " WHERE is_active='1' AND is_deleted='0' ORDER BY is_default DESC,language_title ASC";
  892. $get_lang_arr = $parent->getQueryValue($get_lang_str);
  893. $data_arr = array('sales' => $sales_arr, 'learning' => $learning_arr, 'assessment' => $assessment_arr, 'languages' => $get_lang_arr);
  894. //LOG
  895. $logstr = 'AREA MANAGER DASHBOARD';
  896. globalfunc::insertUserLog($parent, $logstr);
  897. $parent->response(array('response' => 'success', 'data' => $data_arr, 'test' => $get_role, 'mail' => $manageremail, 'message' => $this->page_data['success1']), 200);
  898. }
  899. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  900. /* /////////////////////////////// ENQUIRY //////////////////////////////////////////////// */
  901. private function enquiry($parent)
  902. {
  903. //dashboard/2018/2
  904. globalfunc::checkMethodType($parent, array('GET'));
  905. globalfunc::checkParamCount($parent, 3);
  906. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  907. $year_data = escape_str($parent->params[1]);
  908. $last_data = escape_str($parent->params[2]);
  909. $last_data_arr = explode('?', $last_data);
  910. $month_data = escape_str(trim($last_data_arr[0]));
  911. $data_arr = array();
  912. $datecond = " AND created_on>='" . date('Y-m-d', strtotime($year_data . "-" . $month_data . "-01")) . " 00:00:00' AND created_on<='" . date('Y-m-t', strtotime($year_data . "-" . $month_data . "-01")) . " 23:59:59'";
  913. //GIXXER 250
  914. //$query_salesmodelarr=$parent->selectQuery(DMS_ENQUIRY_MASTER,"COUNT(id) as achieved ","smpin='".$parent->current_smpin."' ".$datecond." AND is_dms=1 AND is_deleted=0 AND model1 IN ('GSX','GSXSF') AND variant1 IN (SELECT variant_code FROM ".DMS_ENQUIRY_MODEL." WHERE title_code IN ('GSX','GSXSF') AND variant LIKE '%250%') GROUP BY model1 ","");
  915. $query_salesmodelarr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) as achieved,model1,variant1 ", "smpin='" . $parent->current_smpin . "' " . $datecond . " AND is_dms=1 AND is_deleted=0 AND model1 IN ('GSX','GSXSF') AND variant1 IN (SELECT variant_code FROM " . DMS_ENQUIRY_MODEL . " WHERE title_code IN ('GSX','GSXSF') AND variant LIKE '%250%') ", "1");
  916. $target = projectfunc::userSalesTarget($parent, $parent->current_user_id, 'GIXXER 250', $year_data, $month_data) * 3;
  917. if ($query_salesmodelarr['nr'] > 0 && $query_salesmodelarr['result'][0]->achieved > 0) {
  918. $res = $query_salesmodelarr['result'][0];
  919. $mobj = new stdClass();
  920. $mobj->achieved = $res->achieved;
  921. $obj = new stdClass();
  922. $obj->model = $res->model1;
  923. $obj->variant = $res->variant1;
  924. $obj->variantname = '';
  925. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  926. $mobj->target = $target;
  927. $mobj->modelname = "GIXXER 250";
  928. //$obj->modelname=($model=='GSX')? "GIXXER 250":"GIXXER SF 250";
  929. $data_arr[] = $mobj;
  930. } else if ($target > 0) {
  931. $mobj = new stdClass();
  932. $mobj->achieved = 0;
  933. $obj = new stdClass();
  934. $obj->model = 'GSX';
  935. $obj->variant = '';
  936. $obj->variantname = '';
  937. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  938. $mobj->target = $target;
  939. $mobj->modelname = "GIXXER 250";
  940. //$obj->modelname=($model=='GSX')? "GIXXER 250":"GIXXER SF 250";
  941. $data_arr[] = $mobj;
  942. }
  943. //GIXXER 150
  944. $query_salesmodelarr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) as achieved,model1,variant1 ", "smpin='" . $parent->current_smpin . "' " . $datecond . " AND is_dms=1 AND is_deleted=0 AND model1 IN ('GSX','GSXSF') AND variant1 IN (SELECT variant_code FROM " . DMS_ENQUIRY_MODEL . " WHERE title_code IN ('GSX','GSXSF') AND variant NOT LIKE '%250%') ", "1");
  945. $target = projectfunc::userSalesTarget($parent, $parent->current_user_id, 'GIXXER', $year_data, $month_data) * 3;
  946. if ($query_salesmodelarr['nr'] > 0 && $query_salesmodelarr['result'][0]->achieved > 0) {
  947. $res = $query_salesmodelarr['result'][0];
  948. $mobj = new stdClass();
  949. $mobj->achieved = $res->achieved;
  950. $obj = new stdClass();
  951. $obj->model = $res->model1;
  952. $obj->variant = $res->variant1;
  953. $obj->variantname = '';
  954. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  955. $mobj->target = $target;
  956. $mobj->modelname = 'GIXXER';
  957. //$mobj->modelname=($model=='GSX')? "GIXXER":"GIXXER SF 150";
  958. $data_arr[] = $mobj;
  959. } else if ($target > 0) {
  960. $mobj = new stdClass();
  961. $mobj->achieved = 0;
  962. $obj = new stdClass();
  963. $obj->model = 'GSX';
  964. $obj->variant = '';
  965. $obj->variantname = '';
  966. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  967. $mobj->target = $target;
  968. $mobj->modelname = "GIXXER 250";
  969. //$obj->modelname=($model=='GSX')? "GIXXER 250":"GIXXER SF 250";
  970. $data_arr[] = $mobj;
  971. }
  972. //ACCESS
  973. $query_salesmodelarr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) as achieved,model1,variant1 ", "smpin='" . $parent->current_smpin . "' " . $datecond . " AND is_dms=1 AND is_deleted=0 AND model1 IN ('AC','ACZ')", "1");
  974. $target = projectfunc::userSalesTarget($parent, $parent->current_user_id, 'ACCESS 125', $year_data, $month_data) * 3;
  975. if ($query_salesmodelarr['nr'] > 0 && $query_salesmodelarr['result'][0]->achieved > 0) {
  976. $res = $query_salesmodelarr['result'][0];
  977. $mobj = new stdClass();
  978. $mobj->achieved = $res->achieved;
  979. $obj = new stdClass();
  980. $obj->model = $res->model1;
  981. $obj->variant = $res->variant1;
  982. $obj->variantname = '';
  983. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  984. $mobj->target = $target;
  985. $mobj->modelname = 'ACCESS 125';
  986. //$mobj->modelname=($model=='GSX')? "GIXXER":"GIXXER SF 150";
  987. $data_arr[] = $mobj;
  988. } else if ($target > 0) {
  989. $mobj = new stdClass();
  990. $mobj->achieved = 0;
  991. $obj = new stdClass();
  992. $obj->model = 'AC';
  993. $obj->variant = '';
  994. $obj->variantname = '';
  995. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  996. $mobj->target = $target;
  997. $mobj->modelname = "ACCESS 125";
  998. //$obj->modelname=($model=='GSX')? "GIXXER 250":"GIXXER SF 250";
  999. $data_arr[] = $mobj;
  1000. }
  1001. $is_intruder = 0;
  1002. $is_burgman = 0;
  1003. //$is_access=0;
  1004. //OTHER LISTED MODEL THAN GIXXER
  1005. $query_salesmodelarr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) as achieved,model1,variant1 ", "smpin='" . $parent->current_smpin . "' " . $datecond . " AND is_dms=1 AND is_deleted=0 AND model1 IN ('GL','UB125' ) GROUP BY model1 ", "");
  1006. if ($query_salesmodelarr['nr'] > 0) {
  1007. foreach ($query_salesmodelarr['result'] as $res) {
  1008. $mobj = new stdClass();
  1009. $mobj->achieved = $res->achieved;
  1010. $obj = new stdClass();
  1011. $obj->model = $res->model1;
  1012. $obj->variant = $res->variant1;
  1013. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  1014. switch ($obj->model) {
  1015. case 'GL': //INTRUDER
  1016. $mobj->modelname = 'INTRUDER';
  1017. $mobj->target = projectfunc::userSalesTarget($parent, $parent->current_user_id, 'INTRUDER', $year_data, $month_data) * 3;
  1018. $is_intruder = 1;
  1019. break;
  1020. case 'UB125': //BURGMAN
  1021. $mobj->modelname = 'BURGMAN';
  1022. $mobj->target = projectfunc::userSalesTarget($parent, $parent->current_user_id, 'BURGMAN', $year_data, $month_data) * 3;
  1023. $is_burgman = 1;
  1024. break;
  1025. }
  1026. //$mobj->target=0;
  1027. $data_arr[] = $mobj;
  1028. }
  1029. }
  1030. if ($is_intruder == 0) //INTRUDER
  1031. {
  1032. $target = projectfunc::userSalesTarget($parent, $parent->current_user_id, 'INTRUDER', $year_data, $month_data) * 3;
  1033. if ($target > 0) {
  1034. $mobj = new stdClass();
  1035. $mobj->achieved = 0;
  1036. $obj = new stdClass();
  1037. $obj->model = 'GL';
  1038. $obj->variant = '';
  1039. $obj->variantname = '';
  1040. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  1041. $mobj->target = $target;
  1042. $mobj->modelname = 'INTRUDER';
  1043. //$obj->modelname=($model=='GSX')? "GIXXER 250":"GIXXER SF 250";
  1044. $data_arr[] = $mobj;
  1045. }
  1046. }
  1047. if ($is_burgman == 0) //BURGMAN
  1048. {
  1049. $target = projectfunc::userSalesTarget($parent, $parent->current_user_id, 'BURGMAN', $year_data, $month_data) * 3;
  1050. if ($target > 0) {
  1051. $mobj = new stdClass();
  1052. $mobj->achieved = 0;
  1053. $obj = new stdClass();
  1054. $obj->model = 'UB125';
  1055. $obj->variant = '';
  1056. $obj->variantname = '';
  1057. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  1058. $mobj->target = $target;
  1059. $mobj->modelname = 'BURGMAN';
  1060. $data_arr[] = $mobj;
  1061. }
  1062. }
  1063. //OTHER MODEL
  1064. $query_salesmodelarr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) as achieved ", "smpin='" . $parent->current_smpin . "' " . $datecond . " AND is_dms=1 AND is_deleted=0 AND model1 NOT IN ('GSX','GSXSF','GL','UB125','AC','ACZ') ", "");
  1065. if ($query_salesmodelarr['nr'] > 0 && $query_salesmodelarr['result'][0]->achieved > 0) {
  1066. $res = $query_salesmodelarr['result'][0];
  1067. $mobj = new stdClass();
  1068. $mobj->achieved = $res->achieved;
  1069. $mobj->model_image_url = NOIMAGE_URL;
  1070. $mobj->modelname = 'OTHERS';
  1071. //$mobj->target=projectfunc::userSalesTarget($parent,$parent->current_user_id,'OTHERS',$year_data,$month_data)*3;
  1072. $mobj->target = 0;
  1073. $data_arr[] = $mobj;
  1074. }
  1075. //LOG
  1076. $logstr = 'ENQUIRY MODEL WISE LIST';
  1077. globalfunc::insertUserLog($parent, $logstr);
  1078. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  1079. }
  1080. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1081. /* /////////////////////////////// DEALER ENQUIRY //////////////////////////////////////////////// */
  1082. private function dealerenquiry($parent)
  1083. {
  1084. //dashboard/2018/2
  1085. globalfunc::checkMethodType($parent, array('GET'));
  1086. globalfunc::checkParamCount($parent, 4);
  1087. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  1088. $smpin = escape_str($parent->params[1]);
  1089. $dse_details = $this->getdsedetails($parent, $smpin);
  1090. $year_data = escape_str($parent->params[2]);
  1091. $last_data = escape_str($parent->params[3]);
  1092. $last_data_arr = explode('?', $last_data);
  1093. $month_data = escape_str(trim($last_data_arr[0]));
  1094. $data_arr = array();
  1095. $datecond = " AND created_on>='" . date('Y-m-d', strtotime($year_data . "-" . $month_data . "-01")) . " 00:00:00' AND created_on<='" . date('Y-m-t', strtotime($year_data . "-" . $month_data . "-01")) . " 23:59:59'";
  1096. //GIXXER 250
  1097. //$query_salesmodelarr=$parent->selectQuery(DMS_ENQUIRY_MASTER,"COUNT(id) as achieved ","smpin='".$parent->current_smpin."' ".$datecond." AND is_dms=1 AND is_deleted=0 AND model1 IN ('GSX','GSXSF') AND variant1 IN (SELECT variant_code FROM ".DMS_ENQUIRY_MODEL." WHERE title_code IN ('GSX','GSXSF') AND variant LIKE '%250%') GROUP BY model1 ","");
  1098. $query_salesmodelarr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) as achieved,model1,variant1 ", "smpin='" . $smpin . "' " . $datecond . " AND is_dms=1 AND is_deleted=0 AND model1 IN ('GSX','GSXSF') AND variant1 IN (SELECT variant_code FROM " . DMS_ENQUIRY_MODEL . " WHERE title_code IN ('GSX','GSXSF') AND variant LIKE '%250%') ", "1");
  1099. $target = projectfunc::userSmpinSalesTarget($parent, $smpin, 'GIXXER 250', $year_data, $month_data) * 3;
  1100. if ($query_salesmodelarr['nr'] > 0 && $query_salesmodelarr['result'][0]->achieved > 0) {
  1101. $res = $query_salesmodelarr['result'][0];
  1102. $mobj = new stdClass();
  1103. $mobj->achieved = $res->achieved;
  1104. $obj = new stdClass();
  1105. $obj->model = $res->model1;
  1106. $obj->variant = $res->variant1;
  1107. $obj->variantname = '';
  1108. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  1109. $mobj->target = $target;
  1110. $mobj->modelname = "GIXXER 250";
  1111. //$obj->modelname=($model=='GSX')? "GIXXER 250":"GIXXER SF 250";
  1112. $data_arr[] = $mobj;
  1113. } else if ($target > 0) {
  1114. $mobj = new stdClass();
  1115. $mobj->achieved = 0;
  1116. $obj = new stdClass();
  1117. $obj->model = 'GSX';
  1118. $obj->variant = '';
  1119. $obj->variantname = '';
  1120. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  1121. $mobj->target = $target;
  1122. $mobj->modelname = "GIXXER 250";
  1123. //$obj->modelname=($model=='GSX')? "GIXXER 250":"GIXXER SF 250";
  1124. $data_arr[] = $mobj;
  1125. }
  1126. //GIXXER 150
  1127. $query_salesmodelarr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) as achieved,model1,variant1 ", "smpin='" . $smpin . "' " . $datecond . " AND is_dms=1 AND is_deleted=0 AND model1 IN ('GSX','GSXSF') AND variant1 IN (SELECT variant_code FROM " . DMS_ENQUIRY_MODEL . " WHERE title_code IN ('GSX','GSXSF') AND variant NOT LIKE '%250%') ", "1");
  1128. $target = projectfunc::userSmpinSalesTarget($parent, $smpin, 'GIXXER', $year_data, $month_data) * 3;
  1129. if ($query_salesmodelarr['nr'] > 0 && $query_salesmodelarr['result'][0]->achieved > 0) {
  1130. $res = $query_salesmodelarr['result'][0];
  1131. $mobj = new stdClass();
  1132. $mobj->achieved = $res->achieved;
  1133. $obj = new stdClass();
  1134. $obj->model = $res->model1;
  1135. $obj->variant = $res->variant1;
  1136. $obj->variantname = '';
  1137. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  1138. $mobj->target = $target;
  1139. $mobj->modelname = 'GIXXER';
  1140. //$mobj->modelname=($model=='GSX')? "GIXXER":"GIXXER SF 150";
  1141. $data_arr[] = $mobj;
  1142. } else if ($target > 0) {
  1143. $mobj = new stdClass();
  1144. $mobj->achieved = 0;
  1145. $obj = new stdClass();
  1146. $obj->model = 'GSX';
  1147. $obj->variant = '';
  1148. $obj->variantname = '';
  1149. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  1150. $mobj->target = $target;
  1151. $mobj->modelname = "GIXXER";
  1152. //$obj->modelname=($model=='GSX')? "GIXXER 250":"GIXXER SF 250";
  1153. $data_arr[] = $mobj;
  1154. }
  1155. //ACCESS
  1156. $query_salesmodelarr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) as achieved,model1,variant1 ", "smpin='" . $smpin . "' " . $datecond . " AND is_dms=1 AND is_deleted=0 AND model1 IN ('AC','ACZ')", "1");
  1157. $target = projectfunc::userSmpinSalesTarget($parent, $smpin, 'ACCESS 125', $year_data, $month_data) * 3;
  1158. if ($query_salesmodelarr['nr'] > 0 && $query_salesmodelarr['result'][0]->achieved > 0) {
  1159. $res = $query_salesmodelarr['result'][0];
  1160. $mobj = new stdClass();
  1161. $mobj->achieved = $res->achieved;
  1162. $obj = new stdClass();
  1163. $obj->model = $res->model1;
  1164. $obj->variant = $res->variant1;
  1165. $obj->variantname = '';
  1166. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  1167. $mobj->target = $target;
  1168. $mobj->modelname = 'ACCESS 125';
  1169. //$mobj->modelname=($model=='GSX')? "GIXXER":"GIXXER SF 150";
  1170. $data_arr[] = $mobj;
  1171. } else if ($target > 0) {
  1172. $mobj = new stdClass();
  1173. $mobj->achieved = 0;
  1174. $obj = new stdClass();
  1175. $obj->model = 'AC';
  1176. $obj->variant = '';
  1177. $obj->variantname = '';
  1178. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  1179. $mobj->target = $target;
  1180. $mobj->modelname = "ACCESS 125";
  1181. //$obj->modelname=($model=='GSX')? "GIXXER 250":"GIXXER SF 250";
  1182. $data_arr[] = $mobj;
  1183. }
  1184. $is_intruder = 0;
  1185. $is_burgman = 0;
  1186. //$is_access=0;
  1187. //OTHER LISTED MODEL THAN GIXXER
  1188. $query_salesmodelarr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) as achieved,model1,variant1 ", "smpin='" . $smpin . "' " . $datecond . " AND is_dms=1 AND is_deleted=0 AND model1 IN ('GL','UB125') GROUP BY model1 ", "");
  1189. if ($query_salesmodelarr['nr'] > 0) {
  1190. foreach ($query_salesmodelarr['result'] as $res) {
  1191. $mobj = new stdClass();
  1192. $mobj->achieved = $res->achieved;
  1193. $obj = new stdClass();
  1194. $obj->model = $res->model1;
  1195. $obj->variant = $res->variant1;
  1196. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  1197. switch ($obj->model) {
  1198. case 'GL': //INTRUDER
  1199. $mobj->modelname = 'INTRUDER';
  1200. $mobj->target = projectfunc::userSmpinSalesTarget($parent, $smpin, 'INTRUDER', $year_data, $month_data) * 3;
  1201. $is_intruder = 1;
  1202. break;
  1203. case 'UB125': //BURGMAN
  1204. $mobj->modelname = 'BURGMAN';
  1205. $mobj->target = projectfunc::userSmpinSalesTarget($parent, $smpin, 'BURGMAN', $year_data, $month_data) * 3;
  1206. $is_burgman = 1;
  1207. break;
  1208. // case 'AC':
  1209. // case 'ACZ':
  1210. // $mobj->modelname='ACCESS';
  1211. // $mobj->target=projectfunc::userSmpinSalesTarget($parent,$smpin,'ACCESS 125',$year_data,$month_data)*3;
  1212. // $is_access=1;
  1213. // break;
  1214. }
  1215. //$mobj->target = 0;
  1216. $data_arr[] = $mobj;
  1217. }
  1218. }
  1219. if ($is_intruder == 0) //INTRUDER
  1220. {
  1221. $target = projectfunc::userSmpinSalesTarget($parent, $smpin, 'INTRUDER', $year_data, $month_data) * 3;
  1222. if ($target > 0) {
  1223. $mobj = new stdClass();
  1224. $mobj->achieved = 0;
  1225. $obj = new stdClass();
  1226. $obj->model = 'GL';
  1227. $obj->variant = '';
  1228. $obj->variantname = '';
  1229. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  1230. $mobj->target = $target;
  1231. $mobj->modelname = 'INTRUDER';
  1232. //$obj->modelname=($model=='GSX')? "GIXXER 250":"GIXXER SF 250";
  1233. $data_arr[] = $mobj;
  1234. }
  1235. }
  1236. if ($is_burgman == 0) //BURGMAN
  1237. {
  1238. $target = projectfunc::userSmpinSalesTarget($parent, $smpin, 'BURGMAN', $year_data, $month_data) * 3;
  1239. if ($target > 0) {
  1240. $mobj = new stdClass();
  1241. $mobj->achieved = 0;
  1242. $obj = new stdClass();
  1243. $obj->model = 'UB125';
  1244. $obj->variant = '';
  1245. $obj->variantname = '';
  1246. $mobj->model_image_url = projectfunc::modelimage($parent, $obj);
  1247. $mobj->target = $target;
  1248. $mobj->modelname = 'BURGMAN';
  1249. //$obj->modelname=($model=='GSX')? "GIXXER 250":"GIXXER SF 250";
  1250. $data_arr[] = $mobj;
  1251. }
  1252. }
  1253. // if($is_access==0) //ACCESS
  1254. // {
  1255. // $target=projectfunc::userSmpinSalesTarget($parent,$smpin,'ACCESS 125',$year_data,$month_data)*3;
  1256. // if($target>0)
  1257. // {
  1258. // $mobj=new stdClass();
  1259. // $mobj->achieved=0;
  1260. // $obj=new stdClass();
  1261. // $obj->model='AC';
  1262. // $obj->variant='';
  1263. // $obj->variantname='';
  1264. //
  1265. // $mobj->model_image_url=projectfunc::modelimage($parent, $obj);
  1266. //
  1267. // $mobj->target=$target;
  1268. // $mobj->modelname='ACCESS 125';
  1269. // //$obj->modelname=($model=='GSX')? "GIXXER 250":"GIXXER SF 250";
  1270. // $data_arr[]=$mobj;
  1271. // }
  1272. // }
  1273. //OTHER MODEL
  1274. $query_salesmodelarr = $parent->selectQuery(DMS_ENQUIRY_MASTER, "COUNT(id) as achieved ", "smpin='" . $smpin . "' " . $datecond . " AND is_dms=1 AND is_deleted=0 AND model1 NOT IN ('GSX','GSXSF','GL','UB125','AC','ACZ') ", "");
  1275. if ($query_salesmodelarr['nr'] > 0 && $query_salesmodelarr['result'][0]->achieved > 0) {
  1276. $res = $query_salesmodelarr['result'][0];
  1277. $mobj = new stdClass();
  1278. $mobj->achieved = $res->achieved;
  1279. $mobj->model_image_url = NOIMAGE_URL;
  1280. $mobj->modelname = 'OTHERS';
  1281. //$mobj->target=projectfunc::userSmpinSalesTarget($parent,$smpin,'OTHERS',$year_data,$month_data)*3;
  1282. $mobj->target = 0;
  1283. $data_arr[] = $mobj;
  1284. }
  1285. //LOG
  1286. $logstr = 'DEALER ENQUIRY MODEL WISE LIST';
  1287. globalfunc::insertUserLog($parent, $logstr);
  1288. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  1289. }
  1290. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1291. /* /////////////////////////////// DSEDETAILS //////////////////////////////////////////////// */
  1292. private function getdsedetails($parent, $smpin)
  1293. {
  1294. $data = $parent->selectQuery(DMS_EMPLOYEE, "*", "smpin='" . $smpin . "' AND status=1 AND is_current=1", "1");
  1295. if (!$data['nr'] > 0) {
  1296. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error2']), 406);
  1297. }
  1298. return $data['result'][0];
  1299. }
  1300. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1301. /* /////////////////////////////// SALES //////////////////////////////////////////////// */
  1302. private function dealerenquirysales($parent)
  1303. {
  1304. //dashboard/2018/2
  1305. globalfunc::checkMethodType($parent, array('GET'));
  1306. globalfunc::checkParamCount($parent, 4);
  1307. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  1308. $smpin = escape_str($parent->params[1]);
  1309. $dse_details = $this->getdsedetails($parent, $smpin);
  1310. $year_data = escape_str($parent->params[2]);
  1311. $last_data = escape_str($parent->params[3]);
  1312. $last_data_arr = explode('?', $last_data);
  1313. $month_data = escape_str(trim($last_data_arr[0]));
  1314. $data_arr = array();
  1315. //GET MODEL
  1316. $model_cond = " AND user_type=0 ";
  1317. //GET SEGMENT
  1318. //$segment= projectfunc::userSegment($parent,$parent->current_smpin);
  1319. $segment = $dse_details->segment;
  1320. $salemodel_arr = array();
  1321. $query_salesmodelarr = $parent->selectQuery(DMS_EMPLOYEE_SALES, " model ", "smpin='" . $smpin . "' AND sale_date>='" . date('Y-m-d', strtotime($year_data . "-" . $month_data . "-01")) . "' AND sale_date<='" . date('Y-m-t', strtotime($year_data . "-" . $month_data . "-01")) . "' GROUP BY model ", "");
  1322. if ($query_salesmodelarr['nr']) {
  1323. foreach ($query_salesmodelarr['result'] as $res) {
  1324. $salemodel_arr[] = $res->model;
  1325. }
  1326. $salemodel_quotes = array_map("quotes_array", $salemodel_arr);
  1327. $model_cond .= " AND ( (segment='" . $segment . "' OR segment='0' AND model_is_target=1)OR (model_name IN (" . @implode(',', $salemodel_quotes) . ")) )";
  1328. } else {
  1329. $model_cond .= " AND (segment='" . $segment . "' OR segment='0' )";
  1330. }
  1331. $query_modelarr = $parent->selectQuery(TABLE_MODEL, " model_name,model_image ", " user_type=0 " . $model_cond . " ORDER BY model_id", "");
  1332. if ($query_modelarr['nr']) {
  1333. foreach ($query_modelarr['result'] as $res) {
  1334. $res->model_image_url = ($res->model_image != '') ? SITE_URL . "hypermupload/model/" . $res->model_image : NOIMAGE_URL;
  1335. $user_target = projectfunc::userSmpinSalesTarget($parent, $smpin, $res->model_name, $year_data, $month_data);
  1336. // if($user_target>0)
  1337. // {
  1338. $res->target = ($user_target) ? $user_target : 0;
  1339. $res->achieved = projectfunc::userSmpinSalesAchieved($parent, $smpin, $res->model_name, $year_data, $month_data);
  1340. $res->achieved = ($res->achieved) ? $res->achieved : 0;
  1341. $data_arr[] = $res;
  1342. // }
  1343. }
  1344. }
  1345. //LOG
  1346. $logstr = 'DEALER DSE SALES LIST';
  1347. globalfunc::insertUserLog($parent, $logstr);
  1348. $parent->response(array('response' => 'success', 'data' => $data_arr, 'message' => $this->page_data['success1']), 200);
  1349. }
  1350. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1351. }