report_enquiry.php 104 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439
  1. <?php
  2. /* * **************************
  3. * File : report_enquiry.php
  4. * Author : Cygnusa
  5. * @2020
  6. * ************************** */
  7. // included in report.php
  8. /* /////////////////////////////////// RATIO /////////////////////////////////// */
  9. function ratio($x, $y)
  10. {
  11. $ratio = ' : ';
  12. if ($y > 0 && $x > 0) {
  13. $val = round(($x / $y), 2);
  14. $val = (is_float($val * 1)) ? $val : (int) $val;
  15. $ratio = '1 : ' . $val;
  16. }
  17. return $ratio;
  18. }
  19. /* ///////////////////////////////////////////////////////////////////////////////////// */
  20. /* /////////////////////////////////// ROUND /////////////////////////////////// */
  21. function floatround($val)
  22. {
  23. if ($val != '-' || $val != '') {
  24. $val = (is_float($val * 1)) ? round($val, 2) : $val;
  25. }
  26. return $val;
  27. }
  28. /* ///////////////////////////////////////////////////////////////////////////////////// */
  29. function enquiry_report()
  30. {
  31. global $conn;
  32. $reporttype = escape_str($_REQUEST["reporttype"]);
  33. switch ($reporttype) {
  34. case 'enquirystatus':
  35. case 'enquirytestride':
  36. case 'conversionratio':
  37. case 'productivity':
  38. //case 'convertedsales':
  39. //case 'achievedvstarget':
  40. //case 'productivity':
  41. $reporttype();
  42. break;
  43. default:
  44. $conn->message(false, "PAGE NOT FOUND");exit;
  45. break;
  46. }
  47. }
  48. function enquirystatus()
  49. {
  50. global $conn;
  51. try {
  52. $lang = "en_us";
  53. $pageData = $conn->loadJSON($lang);
  54. //$_SESSION["userid"] = 1;
  55. if (isset($_SESSION["userid"])) {
  56. $zone = escape_str($_REQUEST["zone"]);
  57. $zm_email = escape_str($_REQUEST["zm_email"]);
  58. $rm_email = escape_str($_REQUEST["rm_email"]);
  59. $am_email = escape_str($_REQUEST["am_email"]);
  60. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  61. $smpin = escape_str($_REQUEST["smpin"]);
  62. $segment = escape_str($_REQUEST["segment"]);
  63. $start = escape_str($_REQUEST["start"]);
  64. $end = escape_str($_REQUEST["end"]);
  65. if (!($start != '' && $end != '')) {
  66. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  67. }
  68. $from_date = date('Y-m', strtotime($start . "-01")) . "-01";
  69. $to_date = date('Y-m-t', strtotime($end . "-01"));
  70. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  71. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  72. }
  73. $user_cond = '';
  74. if ($smpin != 'all' && $smpin != '') {
  75. //AM
  76. $type = "smpin";
  77. } else if ($dealer_code != 'all' && $dealer_code != '') {
  78. //AM
  79. $type = "dealer";
  80. } else if ($am_email != 'all' && $am_email != '') {
  81. //AM
  82. $type = "am";
  83. } else if ($rm_email != 'all' && $rm_email != '') {
  84. //RM
  85. $type = "rm";
  86. } else if ($zm_email != 'all' && $zm_email != '') {
  87. //ZM
  88. $type = "zm";
  89. } else if ($zone != 'all' && $zone != '') {
  90. //PAN
  91. $user_cond = '';
  92. $type = "zone";
  93. } else {
  94. //PAN
  95. $user_cond = '';
  96. $type = "pan";
  97. }
  98. $mcond = '';
  99. if (($smpin != 'all' && $smpin != '') || ($dealer_code != 'all' && $dealer_code != '') || ($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '') || ($zone != 'all' && $zone != '')) {
  100. $mcond = '';
  101. $mcond .= ($smpin != 'all' && $smpin != '') ? " AND e.smpin='" . $smpin . "'" : '';
  102. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND d.dealer_code='" . $dealer_code . "'" : '';
  103. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  104. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  105. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  106. $mcond .= ($zone != 'all' && $zone != '') ? " AND d.zone='" . $zone . "'" : '';
  107. }
  108. $returnarr = array();
  109. $tablejoin = '';
  110. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  111. if ($regtype == '1') {
  112. $user_cond .= ' AND e.is_current=1 ';
  113. }
  114. if ($segment != '' && $segment > 0) {
  115. $user_cond .= " AND e.segment='" . $segment . "' ";
  116. }
  117. if ($type == 'pan') {
  118. $header = array('Zone', 'Total Dealer', 'Total DSE', 'Registered DSE', 'Total Enquiries', 'Hot', 'Warm', 'Cold', 'Postponed', 'Lost', 'Sales');
  119. //GET ALL ZM
  120. $getzmquery_str = "SELECT zone FROM " . DMS_DEALER . " d WHERE status=1 AND is_deleted='0' GROUP BY zone ORDER BY zone ASC";
  121. $getzm_data = $conn->getQueryValue($getzmquery_str);
  122. if (count($getzm_data) > 0) {
  123. foreach ($getzm_data as $val) {
  124. $manager_cond = " AND d.zone='" . $val->zone . "'" . $user_cond;
  125. $dealer_cond = "AND d.zone='" . $val->zone . "'";
  126. $dealer_str = "SELECT COUNT(d.id) data_count FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' " . $dealer_cond . " LIMIT 1";
  127. $dealer_arr = $conn->getQueryValue($dealer_str);
  128. $dealer_count = (count($dealer_arr) > 0) ? $dealer_arr[0]->data_count : '0';
  129. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  130. $dse_arr = $conn->getQueryValue($dse_str);
  131. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  132. $user_str = "SELECT COUNT(u.userid) data_count FROM " . TABLE_USER . " u JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND u.is_deleted=0 AND u.role>7 AND u.role<14 " . $manager_cond . " LIMIT 1";
  133. $user_arr = $conn->getQueryValue($user_str);
  134. $user_count = (count($user_arr) > 0) ? $user_arr[0]->data_count : '0';
  135. $tot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  136. $tot_arr = $conn->getQueryValue($tot_enq_str);
  137. $tot_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  138. $hot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='H' AND enq.enquiry_stage NOT IN ('Z','O','P','V')" . $manager_cond;
  139. $hot_arr = $conn->getQueryValue($hot_enq_str);
  140. $hot_count = (count($hot_arr) > 0) ? $hot_arr[0]->data_count : '0';
  141. $warm_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='W' AND enq.enquiry_stage NOT IN ('Z','O','P','V')" . $manager_cond;
  142. $warm_arr = $conn->getQueryValue($warm_enq_str);
  143. $warm_count = (count($warm_arr) > 0) ? $warm_arr[0]->data_count : '0';
  144. $cold_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='P' AND enq.enquiry_stage NOT IN ('Z','O','P','V')" . $manager_cond;
  145. $cold_arr = $conn->getQueryValue($cold_enq_str);
  146. $cold_count = (count($cold_arr) > 0) ? $cold_arr[0]->data_count : '0';
  147. $postponed_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='E' AND enq.enquiry_stage NOT IN ('Z','O','P','V')" . $manager_cond;
  148. $postponed_arr = $conn->getQueryValue($postponed_enq_str);
  149. $postponed_count = (count($postponed_arr) > 0) ? $postponed_arr[0]->data_count : '0';
  150. $lost_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='L' " . $manager_cond;
  151. $lost_arr = $conn->getQueryValue($lost_enq_str);
  152. $lost_count = (count($lost_arr) > 0) ? $lost_arr[0]->data_count : '0';
  153. $sales_str = "SELECT COALESCE(SUM(s.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " s JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=s.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND s.sale_date>='" . $from_date . "' AND s.sale_date<='" . $to_date . "' " . $manager_cond;
  154. $sales_arr = $conn->getQueryValue($sales_str);
  155. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  156. $returnarr[] = array($val->zone, $dealer_count, $dse_count, $user_count, $tot_count, $hot_count, $warm_count, $cold_count, $postponed_count, $lost_count, $tot_sales);
  157. }
  158. }
  159. } else if (($type == 'zone') || ($type == 'zm') || ($type == 'rm') || ($type == 'am')) {
  160. $header = array('Total Dealer', 'Total DSE', 'Registered DSE', 'Total Enquiries', 'Hot', 'Warm', 'Cold', 'Postponed', 'Lost', 'Sales');
  161. $manager_cond = $mcond . $user_cond;
  162. $dealer_cond = $mcond;
  163. $dealer_str = "SELECT COUNT(d.id) data_count FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' " . $dealer_cond . " LIMIT 1";
  164. $dealer_arr = $conn->getQueryValue($dealer_str);
  165. $dealer_count = (count($dealer_arr) > 0) ? $dealer_arr[0]->data_count : '0';
  166. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  167. $dse_arr = $conn->getQueryValue($dse_str);
  168. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  169. $user_str = "SELECT COUNT(u.userid) data_count FROM " . TABLE_USER . " u JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND u.is_deleted=0 AND u.role>7 AND u.role<14 " . $manager_cond . " LIMIT 1";
  170. $user_arr = $conn->getQueryValue($user_str);
  171. $user_count = (count($user_arr) > 0) ? $user_arr[0]->data_count : '0';
  172. $tot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  173. $tot_arr = $conn->getQueryValue($tot_enq_str);
  174. $tot_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  175. $hot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='H' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  176. $hot_arr = $conn->getQueryValue($hot_enq_str);
  177. $hot_count = (count($hot_arr) > 0) ? $hot_arr[0]->data_count : '0';
  178. $warm_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='W' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  179. $warm_arr = $conn->getQueryValue($warm_enq_str);
  180. $warm_count = (count($warm_arr) > 0) ? $warm_arr[0]->data_count : '0';
  181. $cold_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='P' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  182. $cold_arr = $conn->getQueryValue($cold_enq_str);
  183. $cold_count = (count($cold_arr) > 0) ? $cold_arr[0]->data_count : '0';
  184. $postponed_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='E' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  185. $postponed_arr = $conn->getQueryValue($postponed_enq_str);
  186. $postponed_count = (count($postponed_arr) > 0) ? $postponed_arr[0]->data_count : '0';
  187. $lost_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='L' " . $manager_cond;
  188. $lost_arr = $conn->getQueryValue($lost_enq_str);
  189. $lost_count = (count($lost_arr) > 0) ? $lost_arr[0]->data_count : '0';
  190. $sales_str = "SELECT COALESCE(SUM(s.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " s JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=s.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND s.sale_date>='" . $from_date . "' AND s.sale_date<='" . $to_date . "' " . $manager_cond;
  191. $sales_arr = $conn->getQueryValue($sales_str);
  192. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  193. $returnarr[] = array($dealer_count, $dse_count, $user_count, $tot_count, $hot_count, $warm_count, $cold_count, $postponed_count, $lost_count, $tot_sales);
  194. } else if ($type == 'dealer') {
  195. $header = array('Total DSE', 'Registered DSE', 'Total Enquiries', 'Hot', 'Warm', 'Cold', 'Postponed', 'Lost', 'Sales');
  196. $manager_cond = $mcond . $user_cond;
  197. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  198. $dse_arr = $conn->getQueryValue($dse_str);
  199. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  200. $user_str = "SELECT COUNT(u.userid) data_count FROM " . TABLE_USER . " u JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND u.is_deleted=0 AND u.role>7 AND u.role<14 " . $manager_cond . " LIMIT 1";
  201. $user_arr = $conn->getQueryValue($user_str);
  202. $user_count = (count($user_arr) > 0) ? $user_arr[0]->data_count : '0';
  203. $tot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  204. $tot_arr = $conn->getQueryValue($tot_enq_str);
  205. $tot_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  206. $hot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='H' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  207. $hot_arr = $conn->getQueryValue($hot_enq_str);
  208. $hot_count = (count($hot_arr) > 0) ? $hot_arr[0]->data_count : '0';
  209. $warm_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='W' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  210. $warm_arr = $conn->getQueryValue($warm_enq_str);
  211. $warm_count = (count($warm_arr) > 0) ? $warm_arr[0]->data_count : '0';
  212. $cold_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='P' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  213. $cold_arr = $conn->getQueryValue($cold_enq_str);
  214. $cold_count = (count($cold_arr) > 0) ? $cold_arr[0]->data_count : '0';
  215. $postponed_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='E' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  216. $postponed_arr = $conn->getQueryValue($postponed_enq_str);
  217. $postponed_count = (count($postponed_arr) > 0) ? $postponed_arr[0]->data_count : '0';
  218. $lost_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='L' " . $manager_cond;
  219. $lost_arr = $conn->getQueryValue($lost_enq_str);
  220. $lost_count = (count($lost_arr) > 0) ? $lost_arr[0]->data_count : '0';
  221. $sales_str = "SELECT COALESCE(SUM(s.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " s JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=s.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND s.sale_date>='" . $from_date . "' AND s.sale_date<='" . $to_date . "' " . $manager_cond;
  222. $sales_arr = $conn->getQueryValue($sales_str);
  223. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  224. $returnarr[] = array($dse_count, $user_count, $tot_count, $hot_count, $warm_count, $cold_count, $postponed_count, $lost_count, $tot_sales);
  225. } else if ($type == 'smpin') {
  226. $header = array('Total Enquiries', 'Hot', 'Warm', 'Cold', 'Postponed', 'Lost', 'Sales');
  227. $manager_cond = " AND e.smpin ='" . $smpin . "'";
  228. $tot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  229. $tot_arr = $conn->getQueryValue($tot_enq_str);
  230. $tot_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  231. $hot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='H' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  232. $hot_arr = $conn->getQueryValue($hot_enq_str);
  233. $hot_count = (count($hot_arr) > 0) ? $hot_arr[0]->data_count : '0';
  234. $warm_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='W' AND enq.enquiry_stage NOT IN ('Z','O','P','V')" . $manager_cond;
  235. $warm_arr = $conn->getQueryValue($warm_enq_str);
  236. $warm_count = (count($warm_arr) > 0) ? $warm_arr[0]->data_count : '0';
  237. $cold_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='P' AND enq.enquiry_stage NOT IN ('Z','O','P','V')" . $manager_cond;
  238. $cold_arr = $conn->getQueryValue($cold_enq_str);
  239. $cold_count = (count($cold_arr) > 0) ? $cold_arr[0]->data_count : '0';
  240. $postponed_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='E' AND enq.enquiry_stage NOT IN ('Z','O','P','V')" . $manager_cond;
  241. $postponed_arr = $conn->getQueryValue($postponed_enq_str);
  242. $postponed_count = (count($postponed_arr) > 0) ? $postponed_arr[0]->data_count : '0';
  243. $lost_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.status='L' " . $manager_cond;
  244. $lost_arr = $conn->getQueryValue($lost_enq_str);
  245. $lost_count = (count($lost_arr) > 0) ? $lost_arr[0]->data_count : '0';
  246. $sales_str = "SELECT COALESCE(SUM(s.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " s JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=s.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND s.sale_date>='" . $from_date . "' AND s.sale_date<='" . $to_date . "' " . $manager_cond;
  247. $sales_arr = $conn->getQueryValue($sales_str);
  248. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  249. $returnarr[] = array($tot_count, $hot_count, $warm_count, $cold_count, $postponed_count, $lost_count, $tot_sales);
  250. }
  251. $list_arr = $returnarr;
  252. $return_arr = array('list' => $list_arr, 'header' => $header, 'q' => $dse_str);
  253. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $return_arr);
  254. } else {
  255. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  256. }
  257. } catch (PDOException $e) {
  258. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  259. } catch (Exception $e) {
  260. $conn->message(false, $e->getMessage());
  261. }
  262. }
  263. function enquirytestride()
  264. {
  265. global $conn;
  266. try {
  267. $lang = "en_us";
  268. $pageData = $conn->loadJSON($lang);
  269. //$_SESSION["userid"] = 1;
  270. if (isset($_SESSION["userid"])) {
  271. $zone = escape_str($_REQUEST["zone"]);
  272. $zm_email = escape_str($_REQUEST["zm_email"]);
  273. $rm_email = escape_str($_REQUEST["rm_email"]);
  274. $am_email = escape_str($_REQUEST["am_email"]);
  275. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  276. $smpin = escape_str($_REQUEST["smpin"]);
  277. $segment = escape_str($_REQUEST["segment"]);
  278. $start = escape_str($_REQUEST["start"]);
  279. $end = escape_str($_REQUEST["end"]);
  280. if (!($start != '' && $end != '')) {
  281. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  282. }
  283. $from_date = date('Y-m', strtotime($start . "-01")) . "-01";
  284. $to_date = date('Y-m-t', strtotime($end . "-01"));
  285. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  286. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  287. }
  288. $user_cond = '';
  289. if ($smpin != 'all' && $smpin != '') {
  290. //AM
  291. $type = "smpin";
  292. } else if ($dealer_code != 'all' && $dealer_code != '') {
  293. //AM
  294. $type = "dealer";
  295. } else if ($am_email != 'all' && $am_email != '') {
  296. //AM
  297. $type = "am";
  298. } else if ($rm_email != 'all' && $rm_email != '') {
  299. //RM
  300. $type = "rm";
  301. } else if ($zm_email != 'all' && $zm_email != '') {
  302. //ZM
  303. $type = "zm";
  304. } else if ($zone != 'all' && $zone != '') {
  305. //PAN
  306. $user_cond = '';
  307. $type = "zone";
  308. } else {
  309. //PAN
  310. $user_cond = '';
  311. $type = "pan";
  312. }
  313. $mcond = '';
  314. if (($smpin != 'all' && $smpin != '') || ($dealer_code != 'all' && $dealer_code != '') || ($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '') || ($zone != 'all' && $zone != '')) {
  315. $mcond = '';
  316. $mcond .= ($smpin != 'all' && $smpin != '') ? " AND e.smpin='" . $smpin . "'" : '';
  317. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND d.dealer_code='" . $dealer_code . "'" : '';
  318. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  319. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  320. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  321. $mcond .= ($zone != 'all' && $zone != '') ? " AND d.zone='" . $zone . "'" : '';
  322. }
  323. $returnarr = array();
  324. $tablejoin = '';
  325. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  326. if ($regtype == '1') {
  327. $user_cond .= ' AND e.is_current=1 ';
  328. }
  329. if ($segment != '' && $segment > 0) {
  330. $user_cond .= " AND e.segment='" . $segment . "' ";
  331. }
  332. if ($type == 'pan') {
  333. $header = array('Zone', 'Total Dealer', 'Total DSE', 'Registered DSE', 'Enquiry Created HYPER-M', 'Enquiry Created from Backend', 'Test Ride From HYPER-M APP', 'Brochure shared', 'Quotation Shared');
  334. //GET ALL ZM
  335. $getzmquery_str = "SELECT zone FROM " . DMS_DEALER . " d WHERE status=1 AND is_deleted='0' GROUP BY zone ORDER BY zone ASC";
  336. $getzm_data = $conn->getQueryValue($getzmquery_str);
  337. if (count($getzm_data) > 0) {
  338. foreach ($getzm_data as $val) {
  339. $manager_cond = " AND d.zone='" . $val->zone . "'" . $user_cond;
  340. $dealer_cond = "AND d.zone='" . $val->zone . "'";
  341. $dealer_str = "SELECT COUNT(d.id) data_count FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' " . $dealer_cond . " LIMIT 1";
  342. $dealer_arr = $conn->getQueryValue($dealer_str);
  343. $dealer_count = (count($dealer_arr) > 0) ? $dealer_arr[0]->data_count : '0';
  344. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  345. $dse_arr = $conn->getQueryValue($dse_str);
  346. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  347. $user_str = "SELECT COUNT(u.userid) data_count FROM " . TABLE_USER . " u JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND u.is_deleted=0 AND u.role>7 AND u.role<14 " . $manager_cond . " LIMIT 1";
  348. $user_arr = $conn->getQueryValue($user_str);
  349. $user_count = (count($user_arr) > 0) ? $user_arr[0]->data_count : '0';
  350. //star enq
  351. $tot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.is_starapp=1" . $manager_cond;
  352. $tot_arr = $conn->getQueryValue($tot_enq_str);
  353. $tot_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  354. //non star enq
  355. $backtot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.is_starapp=0" . $manager_cond;
  356. $backtot_arr = $conn->getQueryValue($backtot_enq_str);
  357. $backtot_count = (count($backtot_arr) > 0) ? $backtot_arr[0]->data_count : '0';
  358. //star enq test
  359. $tottest_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.is_starapp=1 AND enq.is_testride=1" . $manager_cond;
  360. $tottest_arr = $conn->getQueryValue($tottest_enq_str);
  361. $tottest_count = (count($tottest_arr) > 0) ? $tottest_arr[0]->data_count : '0';
  362. $brochure_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . TABLE_ENQBROCHURESHARE . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  363. $brochure_arr = $conn->getQueryValue($brochure_enq_str);
  364. $brochure_count = (count($brochure_arr) > 0) ? $brochure_arr[0]->data_count : '0';
  365. $quotation_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . TABLE_QUOTATIONSHARE . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  366. $quotation_arr = $conn->getQueryValue($quotation_enq_str);
  367. $quotation_count = (count($quotation_arr) > 0) ? $quotation_arr[0]->data_count : '0';
  368. $returnarr[] = array($val->zone, $dealer_count, $dse_count, $user_count, $tot_count, $backtot_count, $tottest_count, $brochure_count, $quotation_count);
  369. }
  370. }
  371. } else if (($type == 'zone') || ($type == 'zm') || ($type == 'rm') || ($type == 'am')) {
  372. $header = array('Total Dealer', 'Total DSE', 'Registered DSE', 'Enquiry Created HYPER-M APP', 'Enquiry Created from Backend', 'Test Ride From HYPER-M APP', 'Brochure shared', 'Quotation Shared');
  373. $manager_cond = $mcond . $user_cond;
  374. $dealer_cond = $mcond;
  375. $dealer_str = "SELECT COUNT(d.id) data_count FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' " . $dealer_cond . " LIMIT 1";
  376. $dealer_arr = $conn->getQueryValue($dealer_str);
  377. $dealer_count = (count($dealer_arr) > 0) ? $dealer_arr[0]->data_count : '0';
  378. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  379. $dse_arr = $conn->getQueryValue($dse_str);
  380. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  381. $user_str = "SELECT COUNT(u.userid) data_count FROM " . TABLE_USER . " u JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND u.is_deleted=0 AND u.role>7 AND u.role<14 " . $manager_cond . " LIMIT 1";
  382. $user_arr = $conn->getQueryValue($user_str);
  383. $user_count = (count($user_arr) > 0) ? $user_arr[0]->data_count : '0';
  384. //star enq
  385. $tot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.is_starapp=1" . $manager_cond;
  386. $tot_arr = $conn->getQueryValue($tot_enq_str);
  387. $tot_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  388. //non star enq
  389. $backtot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.is_starapp=0" . $manager_cond;
  390. $backtot_arr = $conn->getQueryValue($backtot_enq_str);
  391. $backtot_count = (count($backtot_arr) > 0) ? $backtot_arr[0]->data_count : '0';
  392. //star enq test
  393. $tottest_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.is_starapp=1 AND enq.is_testride=1" . $manager_cond;
  394. $tottest_arr = $conn->getQueryValue($tottest_enq_str);
  395. $tottest_count = (count($tottest_arr) > 0) ? $tottest_arr[0]->data_count : '0';
  396. $brochure_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . TABLE_ENQBROCHURESHARE . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  397. $brochure_arr = $conn->getQueryValue($brochure_enq_str);
  398. $brochure_count = (count($brochure_arr) > 0) ? $brochure_arr[0]->data_count : '0';
  399. $quotation_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . TABLE_QUOTATIONSHARE . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  400. $quotation_arr = $conn->getQueryValue($quotation_enq_str);
  401. $quotation_count = (count($quotation_arr) > 0) ? $quotation_arr[0]->data_count : '0';
  402. $returnarr[] = array($dealer_count, $dse_count, $user_count, $tot_count, $backtot_count, $tottest_count, $brochure_count, $quotation_count);
  403. } else if ($type == 'dealer') {
  404. $header = array('Total DSE', 'Registered DSE', 'Enquiry Created HYPER-M App', 'Enquiry Created from Backend', 'Test Ride From HYPER-M App', 'Brochure shared', 'Quotation Shared');
  405. $manager_cond = $mcond . $user_cond;
  406. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  407. $dse_arr = $conn->getQueryValue($dse_str);
  408. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  409. $user_str = "SELECT COUNT(u.userid) data_count FROM " . TABLE_USER . " u JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND u.is_deleted=0 AND u.role>7 AND u.role<14 " . $manager_cond . " LIMIT 1";
  410. $user_arr = $conn->getQueryValue($user_str);
  411. $user_count = (count($user_arr) > 0) ? $user_arr[0]->data_count : '0';
  412. //star enq
  413. $tot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.is_starapp=1" . $manager_cond;
  414. $tot_arr = $conn->getQueryValue($tot_enq_str);
  415. $tot_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  416. //non star enq
  417. $backtot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.is_starapp=0" . $manager_cond;
  418. $backtot_arr = $conn->getQueryValue($backtot_enq_str);
  419. $backtot_count = (count($backtot_arr) > 0) ? $backtot_arr[0]->data_count : '0';
  420. //star enq test
  421. $tottest_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.is_starapp=1 AND enq.is_testride=1" . $manager_cond;
  422. $tottest_arr = $conn->getQueryValue($tottest_enq_str);
  423. $tottest_count = (count($tottest_arr) > 0) ? $tottest_arr[0]->data_count : '0';
  424. $brochure_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . TABLE_ENQBROCHURESHARE . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  425. $brochure_arr = $conn->getQueryValue($brochure_enq_str);
  426. $brochure_count = (count($brochure_arr) > 0) ? $brochure_arr[0]->data_count : '0';
  427. $quotation_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . TABLE_QUOTATIONSHARE . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  428. $quotation_arr = $conn->getQueryValue($quotation_enq_str);
  429. $quotation_count = (count($quotation_arr) > 0) ? $quotation_arr[0]->data_count : '0';
  430. $returnarr[] = array($dse_count, $user_count, $tot_count, $backtot_count, $tottest_count, $brochure_count, $quotation_count);
  431. } else if ($type == 'smpin') {
  432. $header = array('Enquiry Created HYPER-M App', 'Enquiry Created from Backend', 'Test Ride From HYPER-M App', 'Brochure shared', 'Quotation Shared');
  433. $manager_cond = " AND enq.smpin ='" . $smpin . "'";
  434. $tot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq WHERE enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.is_starapp=1 " . $manager_cond;
  435. $tot_arr = $conn->getQueryValue($tot_enq_str);
  436. $tot_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  437. //non star enq
  438. $backtot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq WHERE enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  439. $backtot_arr = $conn->getQueryValue($backtot_enq_str);
  440. $backtot_count = (count($backtot_arr) > 0) ? $backtot_arr[0]->data_count : '0';
  441. //star enq test
  442. $tottest_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq WHERE enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' AND enq.is_starapp=1 AND enq.is_testride=1" . $manager_cond;
  443. $tottest_arr = $conn->getQueryValue($tottest_enq_str);
  444. $tottest_count = (count($tottest_arr) > 0) ? $tottest_arr[0]->data_count : '0';
  445. $brochure_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . TABLE_ENQBROCHURESHARE . " as enq WHERE enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  446. $brochure_arr = $conn->getQueryValue($brochure_enq_str);
  447. $brochure_count = (count($brochure_arr) > 0) ? $brochure_arr[0]->data_count : '0';
  448. $quotation_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . TABLE_QUOTATIONSHARE . " as enq WHERE enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  449. $quotation_arr = $conn->getQueryValue($quotation_enq_str);
  450. $quotation_count = (count($quotation_arr) > 0) ? $quotation_arr[0]->data_count : '0';
  451. $returnarr[] = array($tot_count, $backtot_count, $tottest_count, $brochure_count, $quotation_count);
  452. }
  453. $list_arr = $returnarr;
  454. $return_arr = array('list' => $list_arr, 'header' => $header);
  455. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $return_arr);
  456. } else {
  457. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  458. }
  459. } catch (PDOException $e) {
  460. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  461. } catch (Exception $e) {
  462. $conn->message(false, $e->getMessage());
  463. }
  464. }
  465. function conversionratio()
  466. {
  467. global $conn;
  468. try {
  469. $lang = "en_us";
  470. $pageData = $conn->loadJSON($lang);
  471. //$_SESSION["userid"] = 1;
  472. if (isset($_SESSION["userid"])) {
  473. $zone = escape_str($_REQUEST["zone"]);
  474. $zm_email = escape_str($_REQUEST["zm_email"]);
  475. $rm_email = escape_str($_REQUEST["rm_email"]);
  476. $am_email = escape_str($_REQUEST["am_email"]);
  477. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  478. $smpin = escape_str($_REQUEST["smpin"]);
  479. $segment = escape_str($_REQUEST["segment"]);
  480. $start = escape_str($_REQUEST["start"]);
  481. $end = escape_str($_REQUEST["end"]);
  482. if (!($start != '' && $end != '')) {
  483. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  484. }
  485. $from_date = date('Y-m', strtotime($start . "-01")) . "-01";
  486. $to_date = date('Y-m-t', strtotime($end . "-01"));
  487. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  488. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  489. }
  490. $user_cond = '';
  491. if ($smpin != 'all' && $smpin != '') {
  492. //AM
  493. $type = "smpin";
  494. } else if ($dealer_code != 'all' && $dealer_code != '') {
  495. //AM
  496. $type = "dealer";
  497. } else if ($am_email != 'all' && $am_email != '') {
  498. //AM
  499. $type = "am";
  500. } else if ($rm_email != 'all' && $rm_email != '') {
  501. //RM
  502. $type = "rm";
  503. } else if ($zm_email != 'all' && $zm_email != '') {
  504. //ZM
  505. $type = "zm";
  506. } else if ($zone != 'all' && $zone != '') {
  507. //PAN
  508. $user_cond = '';
  509. $type = "zone";
  510. } else {
  511. //PAN
  512. $user_cond = '';
  513. $type = "pan";
  514. }
  515. $mcond = '';
  516. if (($smpin != 'all' && $smpin != '') || ($dealer_code != 'all' && $dealer_code != '') || ($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '') || ($zone != 'all' && $zone != '')) {
  517. $mcond = '';
  518. $mcond .= ($smpin != 'all' && $smpin != '') ? " AND e.smpin='" . $smpin . "'" : '';
  519. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND d.dealer_code='" . $dealer_code . "'" : '';
  520. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  521. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  522. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  523. $mcond .= ($zone != 'all' && $zone != '') ? " AND d.zone='" . $zone . "'" : '';
  524. }
  525. $returnarr = array();
  526. $tablejoin = '';
  527. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  528. if ($regtype == '1') {
  529. $user_cond .= ' AND e.is_current=1 ';
  530. }
  531. if ($segment != '' && $segment > 0) {
  532. $user_cond .= " AND e.segment='" . $segment . "' ";
  533. }
  534. if ($type == 'pan') {
  535. $header = array('Zone', 'Total Dealer', 'Total DSE', 'Enquiry Target', 'Enquiry Achieved', 'Enquiry Achieved %', 'Sales Target', 'Sales Achieved', 'Sales Achieved %', 'Sales Conversion Ratio', 'Conversion %');
  536. //GET ALL ZM
  537. $getzmquery_str = "SELECT zone FROM " . DMS_DEALER . " d WHERE status=1 AND is_deleted='0' GROUP BY zone ORDER BY zone ASC";
  538. $getzm_data = $conn->getQueryValue($getzmquery_str);
  539. if (count($getzm_data) > 0) {
  540. foreach ($getzm_data as $val) {
  541. $manager_cond = " AND d.zone='" . $val->zone . "'" . $user_cond;
  542. $dealer_cond = "AND d.zone='" . $val->zone . "'";
  543. $dealer_str = "SELECT COUNT(d.id) data_count FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' " . $dealer_cond . " LIMIT 1";
  544. $dealer_arr = $conn->getQueryValue($dealer_str);
  545. $dealer_count = (count($dealer_arr) > 0) ? $dealer_arr[0]->data_count : '0';
  546. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  547. $dse_arr = $conn->getQueryValue($dse_str);
  548. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  549. $user_str = "SELECT COUNT(u.userid) data_count FROM " . TABLE_USER . " u JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND u.is_deleted=0 AND u.role>7 AND u.role<14 " . $manager_cond . " LIMIT 1";
  550. $user_arr = $conn->getQueryValue($user_str);
  551. $user_count = (count($user_arr) > 0) ? $user_arr[0]->data_count : '0';
  552. //sales target
  553. $salestarget_str = "SELECT COALESCE(SUM(t.target),0) as data_count FROM " . TABLE_USER_SALETARGET . " t JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=t.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND t.sale_month>='" . $from_date . "' AND t.sale_month<='" . $to_date . "' " . $manager_cond;
  554. $salestarget_arr = $conn->getQueryValue($salestarget_str);
  555. $salestarget_count = (count($salestarget_arr) > 0) ? $salestarget_arr[0]->data_count : '0';
  556. $enq_target = 0;
  557. switch ($segment) {
  558. case '1':$enq_target_count = $salestarget_count * 5;
  559. break;
  560. case '2':$enq_target_count = $salestarget_count * 3;
  561. break;
  562. default:$enq_target_count = $salestarget_count * 3;
  563. break;
  564. }
  565. //enquiry achieved
  566. $tot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  567. $tot_arr = $conn->getQueryValue($tot_enq_str);
  568. $totenq_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  569. $enq_per = ($enq_target_count > 0) ? ($totenq_count / $enq_target_count) * 100 : '-';
  570. $enq_per = floatround($enq_per);
  571. //sales acheived
  572. $sales_str = "SELECT COALESCE(SUM(s.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " s JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=s.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND s.sale_date>='" . $from_date . "' AND s.sale_date<='" . $to_date . "' " . $manager_cond;
  573. $sales_arr = $conn->getQueryValue($sales_str);
  574. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  575. $sales_per = ($salestarget_count > 0) ? ($tot_sales / $salestarget_count) * 100 : '-';
  576. $sales_per = floatround($sales_per);
  577. $sale_ratio = ratio($totenq_count, $tot_sales);
  578. $conversion_per = ($totenq_count > 0) ? ($tot_sales / $totenq_count) * 100 : '-';
  579. $conversion_per = floatround($conversion_per);
  580. $returnarr[] = array($val->zone, $dealer_count, $dse_count, $enq_target_count, $totenq_count, $enq_per, $salestarget_count, $tot_sales, $sales_per, $sale_ratio, $conversion_per);
  581. }
  582. }
  583. } else if (($type == 'zone') || ($type == 'zm') || ($type == 'rm') || ($type == 'am')) {
  584. $header = array('Total Dealer', 'Total DSE', 'Enquiry Target', 'Enquiry Achieved', 'Enquiry Achieved %', 'Sales Target', 'Sales Achieved', 'Sales Achieved %', 'Sales Conversion Ratio', 'Conversion %');
  585. $manager_cond = $mcond . $user_cond;
  586. $dealer_cond = $mcond;
  587. $dealer_str = "SELECT COUNT(d.id) data_count FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' " . $dealer_cond . " LIMIT 1";
  588. $dealer_arr = $conn->getQueryValue($dealer_str);
  589. $dealer_count = (count($dealer_arr) > 0) ? $dealer_arr[0]->data_count : '0';
  590. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  591. $dse_arr = $conn->getQueryValue($dse_str);
  592. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  593. //sales target
  594. $salestarget_str = "SELECT COALESCE(SUM(t.target),0) as data_count FROM " . TABLE_USER_SALETARGET . " t JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=t.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND t.sale_month>='" . $from_date . "' AND t.sale_month<='" . $to_date . "' " . $manager_cond;
  595. $salestarget_arr = $conn->getQueryValue($salestarget_str);
  596. $salestarget_count = (count($salestarget_arr) > 0) ? $salestarget_arr[0]->data_count : '0';
  597. $enq_target = 0;
  598. switch ($segment) {
  599. case '1':$enq_target_count = $salestarget_count * 5;
  600. break;
  601. case '2':$enq_target_count = $salestarget_count * 3;
  602. break;
  603. default:$enq_target_count = $salestarget_count * 3;
  604. break;
  605. }
  606. //enquiry achieved
  607. $tot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  608. $tot_arr = $conn->getQueryValue($tot_enq_str);
  609. $totenq_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  610. $enq_per = ($enq_target_count > 0) ? ($totenq_count / $enq_target_count) * 100 : '-';
  611. $enq_per = floatround($enq_per);
  612. //sales acheived
  613. $sales_str = "SELECT COALESCE(SUM(s.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " s JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=s.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND s.sale_date>='" . $from_date . "' AND s.sale_date<='" . $to_date . "' " . $manager_cond;
  614. $sales_arr = $conn->getQueryValue($sales_str);
  615. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  616. $sales_per = ($salestarget_count > 0) ? ($tot_sales / $salestarget_count) * 100 : '-';
  617. $sales_per = floatround($sales_per);
  618. $sale_ratio = ratio($totenq_count, $tot_sales);
  619. $conversion_per = ($totenq_count > 0) ? ($tot_sales / $totenq_count) * 100 : '-';
  620. $conversion_per = floatround($conversion_per);
  621. $returnarr[] = array($dealer_count, $dse_count, $enq_target_count, $totenq_count, $enq_per, $salestarget_count, $tot_sales, $sales_per, $sale_ratio, $conversion_per);
  622. } else if ($type == 'dealer') {
  623. $header = array('Total DSE', 'Enquiry Target', 'Enquiry Achieved', 'Enquiry Achieved %', 'Sales Target', 'Sales Achieved', 'Sales Achieved %', 'Sales Conversion Ratio', 'Conversion %');
  624. $manager_cond = $mcond . $user_cond;
  625. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  626. $dse_arr = $conn->getQueryValue($dse_str);
  627. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  628. //sales target
  629. $salestarget_str = "SELECT COALESCE(SUM(t.target),0) as data_count FROM " . TABLE_USER_SALETARGET . " t JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=t.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND t.sale_month>='" . $from_date . "' AND t.sale_month<='" . $to_date . "' " . $manager_cond;
  630. $salestarget_arr = $conn->getQueryValue($salestarget_str);
  631. $salestarget_count = (count($salestarget_arr) > 0) ? $salestarget_arr[0]->data_count : '0';
  632. $enq_target = 0;
  633. switch ($segment) {
  634. case '1':$enq_target_count = $salestarget_count * 5;
  635. break;
  636. case '2':$enq_target_count = $salestarget_count * 3;
  637. break;
  638. default:$enq_target_count = $salestarget_count * 3;
  639. break;
  640. }
  641. //enquiry achieved
  642. $tot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  643. $tot_arr = $conn->getQueryValue($tot_enq_str);
  644. $totenq_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  645. $enq_per = ($enq_target_count > 0) ? ($totenq_count / $enq_target_count) * 100 : '-';
  646. $enq_per = floatround($enq_per);
  647. //sales acheived
  648. $sales_str = "SELECT COALESCE(SUM(s.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " s JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=s.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND s.sale_date>='" . $from_date . "' AND s.sale_date<='" . $to_date . "' " . $manager_cond;
  649. $sales_arr = $conn->getQueryValue($sales_str);
  650. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  651. $sales_per = ($salestarget_count > 0) ? ($tot_sales / $salestarget_count) * 100 : '-';
  652. $sales_per = floatround($sales_per);
  653. $sale_ratio = ratio($totenq_count, $tot_sales);
  654. $conversion_per = ($totenq_count > 0) ? ($tot_sales / $totenq_count) * 100 : '-';
  655. $conversion_per = floatround($conversion_per);
  656. $returnarr[] = array($dse_count, $enq_target_count, $totenq_count, $enq_per, $salestarget_count, $tot_sales, $sales_per, $sale_ratio, $conversion_per);
  657. } else if ($type == 'smpin') {
  658. $header = array('Enquiry Target', 'Enquiry Achieved', 'Enquiry Achieved %', 'Sales Target', 'Sales Achieved', 'Sales Achieved %', 'Sales Conversion Ratio', 'Conversion %');
  659. $manager_cond = " AND e.smpin ='" . $smpin . "'";
  660. //sales target
  661. $salestarget_str = "SELECT COALESCE(SUM(t.target),0) as data_count FROM " . TABLE_USER_SALETARGET . " t JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=t.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND t.sale_month>='" . $from_date . "' AND t.sale_month<='" . $to_date . "' " . $manager_cond;
  662. $salestarget_arr = $conn->getQueryValue($salestarget_str);
  663. $salestarget_count = (count($salestarget_arr) > 0) ? $salestarget_arr[0]->data_count : '0';
  664. $enq_target = 0;
  665. switch ($segment) {
  666. case '1':$enq_target_count = $salestarget_count * 5;
  667. break;
  668. case '2':$enq_target_count = $salestarget_count * 3;
  669. break;
  670. default:$enq_target_count = $salestarget_count * 3;
  671. break;
  672. }
  673. //enquiry achieved
  674. $tot_enq_str = "SELECT COUNT(enq.id) as data_count FROM " . DMS_ENQUIRY_MASTER . " as enq LEFT JOIN " . DMS_EMPLOYEE . " e ON e.smpin=enq.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND enq.is_dms=1 AND enq.created_on>='" . $from_date . " 00:00:00' AND enq.created_on<='" . $to_date . " 23:59:59' " . $manager_cond;
  675. $tot_arr = $conn->getQueryValue($tot_enq_str);
  676. $totenq_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  677. $enq_per = ($enq_target_count > 0) ? ($totenq_count / $enq_target_count) * 100 : '-';
  678. $enq_per = floatround($enq_per);
  679. //sales acheived
  680. $sales_str = "SELECT COALESCE(SUM(s.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " s JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=s.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND s.sale_date>='" . $from_date . "' AND s.sale_date<='" . $to_date . "' " . $manager_cond;
  681. $sales_arr = $conn->getQueryValue($sales_str);
  682. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  683. $sales_per = ($salestarget_count > 0) ? ($tot_sales / $salestarget_count) * 100 : '-';
  684. $sales_per = floatround($sales_per);
  685. $sale_ratio = ratio($totenq_count, $tot_sales);
  686. $conversion_per = ($totenq_count > 0) ? ($tot_sales / $totenq_count) * 100 : '-';
  687. $conversion_per = floatround($conversion_per);
  688. $returnarr[] = array($enq_target_count, $totenq_count, $enq_per, $salestarget_count, $tot_sales, $sales_per, $sale_ratio, $conversion_per);
  689. }
  690. $list_arr = $returnarr;
  691. $return_arr = array('list' => $list_arr, 'header' => $header);
  692. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $return_arr);
  693. } else {
  694. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  695. }
  696. } catch (PDOException $e) {
  697. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  698. } catch (Exception $e) {
  699. $conn->message(false, $e->getMessage());
  700. }
  701. }
  702. function productivity()
  703. {
  704. global $conn;
  705. try {
  706. $lang = "en_us";
  707. $pageData = $conn->loadJSON($lang);
  708. //$_SESSION["userid"] = 1;
  709. if (isset($_SESSION["userid"])) {
  710. $zone = escape_str($_REQUEST["zone"]);
  711. $zm_email = escape_str($_REQUEST["zm_email"]);
  712. $rm_email = escape_str($_REQUEST["rm_email"]);
  713. $am_email = escape_str($_REQUEST["am_email"]);
  714. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  715. $smpin = escape_str($_REQUEST["smpin"]);
  716. $segment = escape_str($_REQUEST["segment"]);
  717. $start = escape_str($_REQUEST["start"]);
  718. $end = escape_str($_REQUEST["end"]);
  719. if (!($start != '' && $end != '')) {
  720. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  721. }
  722. $from_date = date('Y-m', strtotime($start . "-01")) . "-01";
  723. $to_date = date('Y-m-t', strtotime($end . "-01"));
  724. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  725. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  726. }
  727. $user_cond = '';
  728. if ($smpin != 'all' && $smpin != '') {
  729. //AM
  730. $type = "smpin";
  731. } else if ($dealer_code != 'all' && $dealer_code != '') {
  732. //AM
  733. $type = "dealer";
  734. } else if ($am_email != 'all' && $am_email != '') {
  735. //AM
  736. $type = "am";
  737. } else if ($rm_email != 'all' && $rm_email != '') {
  738. //RM
  739. $type = "rm";
  740. } else if ($zm_email != 'all' && $zm_email != '') {
  741. //ZM
  742. $type = "zm";
  743. } else if ($zone != 'all' && $zone != '') {
  744. //PAN
  745. $user_cond = '';
  746. $type = "zone";
  747. } else {
  748. //PAN
  749. $user_cond = '';
  750. $type = "pan";
  751. }
  752. $mcond = '';
  753. if (($smpin != 'all' && $smpin != '') || ($dealer_code != 'all' && $dealer_code != '') || ($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '') || ($zone != 'all' && $zone != '')) {
  754. $mcond = '';
  755. $mcond .= ($smpin != 'all' && $smpin != '') ? " AND e.smpin='" . $smpin . "'" : '';
  756. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND d.dealer_code='" . $dealer_code . "'" : '';
  757. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  758. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  759. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  760. $mcond .= ($zone != 'all' && $zone != '') ? " AND d.zone='" . $zone . "'" : '';
  761. }
  762. $returnarr = array();
  763. $tablejoin = '';
  764. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  765. if ($regtype == '1') {
  766. $user_cond .= ' AND e.is_current=1 ';
  767. }
  768. if ($segment != '' && $segment > 0) {
  769. $user_cond .= " AND e.segment='" . $segment . "' ";
  770. }
  771. if ($type == 'pan') {
  772. //Total Sales Zero Productive DSEs Productivity 1 to 5 Productivity 6 to 10 Productivity 11 to 20 Productivity 21 to 30 Productivity 30 and above Average Productivity
  773. $header = array('Zone', 'Total Dealer', 'Total DSE', 'Total Sales', 'Zero Productive DSEs', 'Productivity 1 to 5', 'Productivity 6 to 10', 'Productivity 11 to 20', 'Productivity 21 to 30', 'Productivity 30 and above', 'Average Productivity');
  774. //GET ALL ZM
  775. $getzmquery_str = "SELECT zone FROM " . DMS_DEALER . " d WHERE status=1 AND is_deleted='0' GROUP BY zone ORDER BY zone ASC";
  776. $getzm_data = $conn->getQueryValue($getzmquery_str);
  777. if (count($getzm_data) > 0) {
  778. foreach ($getzm_data as $val) {
  779. $manager_cond = " AND d.zone='" . $val->zone . "'" . $user_cond;
  780. $dealer_cond = "AND d.zone='" . $val->zone . "'";
  781. $dealer_str = "SELECT COUNT(d.id) data_count FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' " . $dealer_cond . " LIMIT 1";
  782. $dealer_arr = $conn->getQueryValue($dealer_str);
  783. $dealer_count = (count($dealer_arr) > 0) ? $dealer_arr[0]->data_count : '0';
  784. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  785. $dse_arr = $conn->getQueryValue($dse_str);
  786. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  787. $sales_str = "SELECT COALESCE(SUM(s.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " s JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=s.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND s.sale_date>='" . $from_date . "' AND s.sale_date<='" . $to_date . "' " . $manager_cond;
  788. $sales_arr = $conn->getQueryValue($sales_str);
  789. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  790. $zero_productive_emp_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code LEFT
  791. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "') s ON e.smpin=s.smpin
  792. WHERE d.is_deleted=0 AND e.status=1 AND s.smpin IS NULL " . $manager_cond;
  793. $zero_productive_arr = $conn->getQueryValue($zero_productive_emp_str);
  794. $zero_productive_count = (count($zero_productive_arr) > 0) ? $zero_productive_arr[0]->data_count : '0';
  795. $productive5_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>=1 AND COUNT(id)<=5) s ON e.smpin=s.smpin
  796. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  797. $productive5_arr = $conn->getQueryValue($productive5_str);
  798. $productive5_count = (count($productive5_arr) > 0) ? $productive5_arr[0]->data_count : '0';
  799. $productive10_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code
  800. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>5 AND COUNT(id)<=10) s ON e.smpin=s.smpin
  801. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  802. $productive10_arr = $conn->getQueryValue($productive10_str);
  803. $productive10_count = (count($productive10_arr) > 0) ? $productive10_arr[0]->data_count : '0';
  804. $productive20_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code
  805. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>10 AND COUNT(id)<=20) s ON e.smpin=s.smpin
  806. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  807. $productive20_arr = $conn->getQueryValue($productive20_str);
  808. $productive20_count = (count($productive20_arr) > 0) ? $productive20_arr[0]->data_count : '0';
  809. $productive30_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code
  810. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>20 AND COUNT(id)<=30) s ON e.smpin=s.smpin
  811. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  812. $productive30_arr = $conn->getQueryValue($productive30_str);
  813. $productive30_count = (count($productive30_arr) > 0) ? $productive30_arr[0]->data_count : '0';
  814. $productiveabove30_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code
  815. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>30) s ON e.smpin=s.smpin
  816. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  817. $productiveabove30_arr = $conn->getQueryValue($productiveabove30_str);
  818. $productiveabove30_count = (count($productiveabove30_arr) > 0) ? $productiveabove30_arr[0]->data_count : '0';
  819. $avg_productive = ($dse_count > 0) ? ($tot_sales / $dse_count) : '0';
  820. $avg_productive = floatround($avg_productive);
  821. $returnarr[] = array($val->zone, $dealer_count, $dse_count, $tot_sales, $zero_productive_count, $productive5_count, $productive10_count, $productive20_count, $productive30_count, $productiveabove30_count, $avg_productive);
  822. }
  823. }
  824. } else if (($type == 'zone') || ($type == 'zm') || ($type == 'rm') || ($type == 'am')) {
  825. $header = array('Total Dealer', 'Total DSE', 'Total Sales', 'Zero Productive DSEs', 'Productivity 1 to 5', 'Productivity 6 to 10', 'Productivity 11 to 20', 'Productivity 21 to 30', 'Productivity 30 and above', 'Average Productivity');
  826. $manager_cond = $mcond . $user_cond;
  827. $dealer_cond = $mcond;
  828. $dealer_str = "SELECT COUNT(d.id) data_count FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' " . $dealer_cond . " LIMIT 1";
  829. $dealer_arr = $conn->getQueryValue($dealer_str);
  830. $dealer_count = (count($dealer_arr) > 0) ? $dealer_arr[0]->data_count : '0';
  831. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  832. $dse_arr = $conn->getQueryValue($dse_str);
  833. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  834. $sales_str = "SELECT COALESCE(SUM(s.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " s JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=s.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND s.sale_date>='" . $from_date . "' AND s.sale_date<='" . $to_date . "' " . $manager_cond;
  835. $sales_arr = $conn->getQueryValue($sales_str);
  836. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  837. $zero_productive_emp_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code LEFT
  838. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "') s ON e.smpin=s.smpin
  839. WHERE d.is_deleted=0 AND e.status=1 AND s.smpin IS NULL " . $manager_cond;
  840. $zero_productive_arr = $conn->getQueryValue($zero_productive_emp_str);
  841. $zero_productive_count = (count($zero_productive_arr) > 0) ? $zero_productive_arr[0]->data_count : '0';
  842. $productive5_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>=1 AND COUNT(id)<=5) s ON e.smpin=s.smpin
  843. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  844. $productive5_arr = $conn->getQueryValue($productive5_str);
  845. $productive5_count = (count($productive5_arr) > 0) ? $productive5_arr[0]->data_count : '0';
  846. $productive10_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code
  847. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>5 AND COUNT(id)<=10) s ON e.smpin=s.smpin
  848. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  849. $productive10_arr = $conn->getQueryValue($productive10_str);
  850. $productive10_count = (count($productive10_arr) > 0) ? $productive10_arr[0]->data_count : '0';
  851. $productive20_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code
  852. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>10 AND COUNT(id)<=20) s ON e.smpin=s.smpin
  853. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  854. $productive20_arr = $conn->getQueryValue($productive20_str);
  855. $productive20_count = (count($productive20_arr) > 0) ? $productive20_arr[0]->data_count : '0';
  856. $productive30_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code
  857. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>20 AND COUNT(id)<=30) s ON e.smpin=s.smpin
  858. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  859. $productive30_arr = $conn->getQueryValue($productive30_str);
  860. $productive30_count = (count($productive30_arr) > 0) ? $productive30_arr[0]->data_count : '0';
  861. $productiveabove30_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code
  862. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>30) s ON e.smpin=s.smpin
  863. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  864. $productiveabove30_arr = $conn->getQueryValue($productiveabove30_str);
  865. $productiveabove30_count = (count($productiveabove30_arr) > 0) ? $productiveabove30_arr[0]->data_count : '0';
  866. $avg_productive = ($dse_count > 0) ? ($tot_sales / $dse_count) : '0';
  867. $avg_productive = floatround($avg_productive);
  868. $returnarr[] = array($dealer_count, $dse_count, $tot_sales, $zero_productive_count, $productive5_count, $productive10_count, $productive20_count, $productive30_count, $productiveabove30_count, $avg_productive);
  869. } else if ($type == 'dealer') {
  870. $header = array('Total DSE', 'Total Sales', 'Zero Productive DSEs', 'Productivity 1 to 5', 'Productivity 6 to 10', 'Productivity 11 to 20', 'Productivity 21 to 30', 'Productivity 30 and above', 'Average Productivity');
  871. $manager_cond = $mcond . $user_cond;
  872. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  873. $dse_arr = $conn->getQueryValue($dse_str);
  874. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  875. $sales_str = "SELECT COALESCE(SUM(s.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " s JOIN " . DMS_EMPLOYEE . " as e ON e.smpin=s.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND s.sale_date>='" . $from_date . "' AND s.sale_date<='" . $to_date . "' " . $manager_cond;
  876. $sales_arr = $conn->getQueryValue($sales_str);
  877. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  878. $zero_productive_emp_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code LEFT
  879. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "') s ON e.smpin=s.smpin
  880. WHERE d.is_deleted=0 AND e.status=1 AND s.smpin IS NULL " . $manager_cond;
  881. $zero_productive_arr = $conn->getQueryValue($zero_productive_emp_str);
  882. $zero_productive_count = (count($zero_productive_arr) > 0) ? $zero_productive_arr[0]->data_count : '0';
  883. $productive5_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>=1 AND COUNT(id)<=5) s ON e.smpin=s.smpin
  884. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  885. $productive5_arr = $conn->getQueryValue($productive5_str);
  886. $productive5_count = (count($productive5_arr) > 0) ? $productive5_arr[0]->data_count : '0';
  887. $productive10_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code
  888. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>5 AND COUNT(id)<=10) s ON e.smpin=s.smpin
  889. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  890. $productive10_arr = $conn->getQueryValue($productive10_str);
  891. $productive10_count = (count($productive10_arr) > 0) ? $productive10_arr[0]->data_count : '0';
  892. $productive20_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code
  893. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>10 AND COUNT(id)<=20) s ON e.smpin=s.smpin
  894. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  895. $productive20_arr = $conn->getQueryValue($productive20_str);
  896. $productive20_count = (count($productive20_arr) > 0) ? $productive20_arr[0]->data_count : '0';
  897. $productive30_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code
  898. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>20 AND COUNT(id)<=30) s ON e.smpin=s.smpin
  899. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  900. $productive30_arr = $conn->getQueryValue($productive30_str);
  901. $productive30_count = (count($productive30_arr) > 0) ? $productive30_arr[0]->data_count : '0';
  902. $productiveabove30_str = "SELECT COUNT(DISTINCT e.smpin) as data_count FROM " . DMS_EMPLOYEE . " as e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code
  903. JOIN (SELECT id,smpin FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' GROUP BY smpin HAVING COUNT(id)>30) s ON e.smpin=s.smpin
  904. WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond;
  905. $productiveabove30_arr = $conn->getQueryValue($productiveabove30_str);
  906. $productiveabove30_count = (count($productiveabove30_arr) > 0) ? $productiveabove30_arr[0]->data_count : '0';
  907. $avg_productive = ($dse_count > 0) ? ($tot_sales / $dse_count) : '0';
  908. $avg_productive = floatround($avg_productive);
  909. $returnarr[] = array($dse_count, $tot_sales, $zero_productive_count, $productive5_count, $productive10_count, $productive20_count, $productive30_count, $productiveabove30_count, $avg_productive);
  910. } else if ($type == 'smpin') {
  911. //$header = array('Total Sales', 'Zero Productive DSEs', 'Productivity 1 to 5', 'Productivity 6 to 10', 'Productivity 11 to 20', 'Productivity 21 to 30', 'Productivity 30 and above', 'Average Productivity');
  912. $header = array('Total Sales');
  913. $manager_cond = " AND e.smpin ='" . $smpin . "'";
  914. $sales_str = "SELECT COALESCE(SUM(s.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " s WHERE s.sale_date>='" . $from_date . "' AND s.sale_date<='" . $to_date . "' AND s.smpin ='" . $smpin . "'";
  915. $sales_arr = $conn->getQueryValue($sales_str);
  916. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  917. $zero_productive_count = '-';
  918. $productive5_count = '-';
  919. $productive10_count = '-';
  920. $productive20_count = '-';
  921. $productive30_count = '-';
  922. $productiveabove30_count = '-';
  923. $avg_productive = '-';
  924. $returnarr[] = array($tot_sales);
  925. // $returnarr[] = array($tot_sales, $zero_productive_count, $productive5_count, $productive10_count, $productive20_count, $productive30_count, $productiveabove30_count, $avg_productive);
  926. }
  927. $list_arr = $returnarr;
  928. $return_arr = array('list' => $list_arr, 'header' => $header);
  929. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $return_arr);
  930. } else {
  931. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  932. }
  933. } catch (PDOException $e) {
  934. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  935. } catch (Exception $e) {
  936. $conn->message(false, $e->getMessage());
  937. }
  938. }
  939. function enquiry_report_terms_condition()
  940. {
  941. global $conn;
  942. try {
  943. $lang = "en_us";
  944. $pageData = $conn->loadJSON($lang);
  945. //$_SESSION["userid"] = 1;
  946. if (isset($_SESSION["userid"])) {
  947. $zone = escape_str($_REQUEST["zone"]);
  948. $zm_email = escape_str($_REQUEST["zm_email"]);
  949. $rm_email = escape_str($_REQUEST["rm_email"]);
  950. $am_email = escape_str($_REQUEST["am_email"]);
  951. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  952. $user_cond = '';
  953. if ($dealer_code != 'all' && $dealer_code != '') {
  954. //AM
  955. $type = "dealer";
  956. } else if ($am_email != 'all' && $am_email != '') {
  957. //AM
  958. $type = "am";
  959. } else if ($rm_email != 'all' && $rm_email != '') {
  960. //RM
  961. $type = "rm";
  962. } else if ($zm_email != 'all' && $zm_email != '') {
  963. //ZM
  964. $type = "zm";
  965. } else if ($zone != 'all' && $zone != '') {
  966. //PAN
  967. $user_cond = '';
  968. $type = "zone";
  969. } else {
  970. //PAN
  971. $user_cond = '';
  972. $type = "pan";
  973. }
  974. $mcond = '';
  975. if (($dealer_code != 'all' && $dealer_code != '') || ($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '') || ($zone != 'all' && $zone != '')) {
  976. $mcond = '';
  977. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND d.dealer_code='" . $dealer_code . "'" : '';
  978. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  979. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  980. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  981. $mcond .= ($zone != 'all' && $zone != '') ? " AND d.zone='" . $zone . "'" : '';
  982. }
  983. if ($type == 'pan') {
  984. $header = array('Zone', 'Total Dealer', 'T&C Accepted', 'T&C Not Accepted');
  985. //GET ALL ZM
  986. $getzmquery_str = "SELECT zone FROM " . DMS_DEALER . " d WHERE status=1 AND is_deleted='0' GROUP BY zone ORDER BY zone ASC";
  987. $getzm_data = $conn->getQueryValue($getzmquery_str);
  988. if (count($getzm_data) > 0) {
  989. foreach ($getzm_data as $val) {
  990. $manager_cond = " AND d.zone='" . $val->zone . "'" . $user_cond;
  991. $dealer_str = "SELECT COUNT(d.id) data_count FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' " . $manager_cond . " LIMIT 1";
  992. $dealer_arr = $conn->getQueryValue($dealer_str);
  993. $dealer_count = (count($dealer_arr) > 0) ? $dealer_arr[0]->data_count : '0';
  994. $acceptdealer_str = "SELECT COUNT(d.id) data_count FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' AND is_enquirymodule=1 " . $manager_cond . " LIMIT 1";
  995. $acceptdealer_arr = $conn->getQueryValue($acceptdealer_str);
  996. $acceptdealer_count = (count($acceptdealer_arr) > 0) ? $acceptdealer_arr[0]->data_count : '0';
  997. $nonaccept_count = $dealer_count - $acceptdealer_count;
  998. $returnarr[] = array($val->zone, $dealer_count, $acceptdealer_count, $nonaccept_count);
  999. }
  1000. }
  1001. } else if (($type == 'zone') || ($type == 'zm') || ($type == 'rm') || ($type == 'am')) {
  1002. $header = array('Total Dealer', 'T&C Accepted', 'T&C Not Accepted');
  1003. $manager_cond = $mcond . $user_cond;
  1004. $dealer_str = "SELECT COUNT(d.id) data_count FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' " . $manager_cond . " LIMIT 1";
  1005. $dealer_arr = $conn->getQueryValue($dealer_str);
  1006. $dealer_count = (count($dealer_arr) > 0) ? $dealer_arr[0]->data_count : '0';
  1007. $acceptdealer_str = "SELECT COUNT(d.id) data_count FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' AND is_enquirymodule=1 " . $manager_cond . " LIMIT 1";
  1008. $acceptdealer_arr = $conn->getQueryValue($acceptdealer_str);
  1009. $acceptdealer_count = (count($acceptdealer_arr) > 0) ? $acceptdealer_arr[0]->data_count : '0';
  1010. $nonaccept_count = $dealer_count - $acceptdealer_count;
  1011. $returnarr[] = array($dealer_count, $acceptdealer_count, $nonaccept_count);
  1012. } else if ($type == 'dealer') {
  1013. $header = array('Total Dealer', 'T&C Accepted', 'T&C Not Accepted');
  1014. $manager_cond = $mcond . $user_cond;
  1015. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 AND is_enquirymodule=1 " . $manager_cond . " LIMIT 1";
  1016. $dse_arr = $conn->getQueryValue($dse_str);
  1017. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  1018. $acceptdealer_txt = ($dse_count > 0) ? 'Accepted' : '-';
  1019. $nonaccept_txt = ($dse_count > 0) ? '-' : 'Not Accepted';
  1020. $returnarr[] = array(1, $acceptdealer_txt, $nonaccept_txt);
  1021. }
  1022. $list_arr = $returnarr;
  1023. $return_arr = array('list' => $list_arr, 'header' => $header);
  1024. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $return_arr);
  1025. } else {
  1026. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  1027. }
  1028. } catch (PDOException $e) {
  1029. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  1030. } catch (Exception $e) {
  1031. $conn->message(false, $e->getMessage());
  1032. }
  1033. }
  1034. function temp_suspension()
  1035. {
  1036. global $conn;
  1037. try {
  1038. $lang = "en_us";
  1039. $pageData = $conn->loadJSON($lang);
  1040. //$_SESSION["userid"] = 1;
  1041. if (isset($_SESSION["userid"])) {
  1042. $zone = escape_str($_REQUEST["zone"]);
  1043. $zm_email = escape_str($_REQUEST["zm_email"]);
  1044. $rm_email = escape_str($_REQUEST["rm_email"]);
  1045. $am_email = escape_str($_REQUEST["am_email"]);
  1046. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  1047. $smpin = escape_str($_REQUEST["smpin"]);
  1048. $segment = escape_str($_REQUEST["segment"]);
  1049. $start = escape_str($_REQUEST["start"]);
  1050. $end = escape_str($_REQUEST["end"]);
  1051. if (!($start != '' && $end != '')) {
  1052. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  1053. }
  1054. $from_date = date('Y-m', strtotime($start . "-01")) . "-01";
  1055. $to_date = date('Y-m-t', strtotime($end . "-01"));
  1056. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  1057. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  1058. }
  1059. $user_cond = '';
  1060. if ($smpin != 'all' && $smpin != '') {
  1061. //AM
  1062. $type = "smpin";
  1063. } else if ($dealer_code != 'all' && $dealer_code != '') {
  1064. //AM
  1065. $type = "dealer";
  1066. } else if ($am_email != 'all' && $am_email != '') {
  1067. //AM
  1068. $type = "am";
  1069. } else if ($rm_email != 'all' && $rm_email != '') {
  1070. //RM
  1071. $type = "rm";
  1072. } else if ($zm_email != 'all' && $zm_email != '') {
  1073. //ZM
  1074. $type = "zm";
  1075. } else if ($zone != 'all' && $zone != '') {
  1076. //PAN
  1077. $user_cond = '';
  1078. $type = "zone";
  1079. } else {
  1080. //PAN
  1081. $user_cond = '';
  1082. $type = "pan";
  1083. }
  1084. $mcond = '';
  1085. if (($smpin != 'all' && $smpin != '') || ($dealer_code != 'all' && $dealer_code != '') || ($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '') || ($zone != 'all' && $zone != '')) {
  1086. $mcond = '';
  1087. $mcond .= ($smpin != 'all' && $smpin != '') ? " AND e.smpin='" . $smpin . "'" : '';
  1088. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND d.dealer_code='" . $dealer_code . "'" : '';
  1089. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  1090. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  1091. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  1092. $mcond .= ($zone != 'all' && $zone != '') ? " AND d.zone='" . $zone . "'" : '';
  1093. }
  1094. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  1095. if ($regtype == '1') {
  1096. $user_cond .= ' AND e.is_current=1 ';
  1097. }
  1098. if ($segment != '' && $segment > 0) {
  1099. $user_cond .= " AND e.segment='" . $segment . "' ";
  1100. }
  1101. if ($type == 'pan') {
  1102. $header = array('Zone', 'Total DSE', 'Inactive DSE', 'DSEs Activated');
  1103. //GET ALL ZM
  1104. $getzmquery_str = "SELECT zone FROM " . DMS_DEALER . " d WHERE status=1 AND is_deleted='0' GROUP BY zone ORDER BY zone ASC";
  1105. $getzm_data = $conn->getQueryValue($getzmquery_str);
  1106. if (count($getzm_data) > 0) {
  1107. foreach ($getzm_data as $val) {
  1108. $manager_cond = " AND d.zone='" . $val->zone . "'" . $user_cond;
  1109. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  1110. $dse_arr = $conn->getQueryValue($dse_str);
  1111. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  1112. $active_str = "SELECT COUNT(h.id) data_count FROM " . TABLE_USER_STATUS_HISTORY . " h JOIN " . TABLE_USER . " u ON h.userid=u.userid JOIN " . DMS_EMPLOYEE . " e ON e.smpin=u.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " AND h.created_on>='" . $from_date . " 00:00:00' AND h.created_on<='" . $to_date . " 23:59:59' AND h.status='1' LIMIT 1";
  1113. $activedse_arr = $conn->getQueryValue($active_str);
  1114. $activedse_count = (count($activedse_arr) > 0) ? $activedse_arr[0]->data_count : '0';
  1115. $inactive_str = "SELECT COUNT(h.id) data_count FROM " . TABLE_USER_STATUS_HISTORY . " h JOIN " . TABLE_USER . " u ON h.userid=u.userid JOIN " . DMS_EMPLOYEE . " e ON e.smpin=u.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " AND h.created_on>='" . $from_date . " 00:00:00' AND h.created_on<='" . $to_date . " 23:59:59' AND h.status='2' LIMIT 1";
  1116. $inactivedse_arr = $conn->getQueryValue($inactive_str);
  1117. $inactivedse_count = (count($inactivedse_arr) > 0) ? $inactivedse_arr[0]->data_count : '0';
  1118. $returnarr[] = array($val->zone, $dse_count, $activedse_count, $inactivedse_count);
  1119. }
  1120. }
  1121. } else if (($type == 'zone') || ($type == 'zm') || ($type == 'rm') || ($type == 'am') || $type == 'dealer') {
  1122. $header = array('Total DSE', 'Inactive DSE', 'DSEs Activated');
  1123. $manager_cond = $mcond . $user_cond;
  1124. $dse_str = "SELECT COUNT(e.id) data_count FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " LIMIT 1";
  1125. $dse_arr = $conn->getQueryValue($dse_str);
  1126. $dse_count = (count($dse_arr) > 0) ? $dse_arr[0]->data_count : '0';
  1127. $active_str = "SELECT COUNT(h.id) data_count FROM " . TABLE_USER_STATUS_HISTORY . " h JOIN " . TABLE_USER . " u ON h.userid=u.userid JOIN " . DMS_EMPLOYEE . " e ON e.smpin=u.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " AND h.created_on>='" . $from_date . " 00:00:00' AND h.created_on<='" . $to_date . " 23:59:59' AND h.status='1' LIMIT 1";
  1128. $activedse_arr = $conn->getQueryValue($active_str);
  1129. $activedse_count = (count($activedse_arr) > 0) ? $activedse_arr[0]->data_count : '0';
  1130. $inactive_str = "SELECT COUNT(h.id) data_count FROM " . TABLE_USER_STATUS_HISTORY . " h JOIN " . TABLE_USER . " u ON h.userid=u.userid JOIN " . DMS_EMPLOYEE . " e ON e.smpin=u.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " AND h.created_on>='" . $from_date . " 00:00:00' AND h.created_on<='" . $to_date . " 23:59:59' AND h.status='2' LIMIT 1";
  1131. $inactivedse_arr = $conn->getQueryValue($inactive_str);
  1132. $inactivedse_count = (count($inactivedse_arr) > 0) ? $inactivedse_arr[0]->data_count : '0';
  1133. $returnarr[] = array($dse_count, $activedse_count, $inactivedse_count);
  1134. } else if ($type == 'smpin') {
  1135. $header = array('Inactive DSE', 'DSEs Activated');
  1136. $manager_cond = " AND e.smpin='" . $smpin . "'";
  1137. $active_str = "SELECT COUNT(h.id) data_count FROM " . TABLE_USER_STATUS_HISTORY . " h JOIN " . TABLE_USER . " u ON h.userid=u.userid JOIN " . DMS_EMPLOYEE . " e ON e.smpin=u.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " AND h.created_on>='" . $from_date . " 00:00:00' AND h.created_on<='" . $to_date . " 23:59:59' AND h.status='1' LIMIT 1";
  1138. $activedse_arr = $conn->getQueryValue($active_str);
  1139. $activedse_count = (count($activedse_arr) > 0) ? $activedse_arr[0]->data_count : '0';
  1140. $inactive_str = "SELECT COUNT(h.id) data_count FROM " . TABLE_USER_STATUS_HISTORY . " h JOIN " . TABLE_USER . " u ON h.userid=u.userid JOIN " . DMS_EMPLOYEE . " e ON e.smpin=u.smpin JOIN " . DMS_DEALER . " d ON d.dealer_code=e.dealer_code WHERE d.is_deleted=0 AND e.status=1 " . $manager_cond . " AND h.created_on>='" . $from_date . " 00:00:00' AND h.created_on<='" . $to_date . " 23:59:59' AND h.status='2' LIMIT 1";
  1141. $inactivedse_arr = $conn->getQueryValue($inactive_str);
  1142. $inactivedse_count = (count($inactivedse_arr) > 0) ? $inactivedse_arr[0]->data_count : '0';
  1143. $returnarr[] = array($activedse_count, $inactivedse_count);
  1144. }
  1145. $list_arr = $returnarr;
  1146. $return_arr = array('list' => $list_arr, 'header' => $header);
  1147. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $return_arr);
  1148. } else {
  1149. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  1150. }
  1151. } catch (PDOException $e) {
  1152. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  1153. } catch (Exception $e) {
  1154. $conn->message(false, $e->getMessage());
  1155. }
  1156. }