report_enquiry_download.php 65 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179
  1. <?php
  2. /* * **************************
  3. * File : report_enquiry_download.php
  4. * Author : Cygnusa
  5. * @2020
  6. * ************************** */
  7. // included in reportdownload.php
  8. /* /////////////////////////////////// ROUND /////////////////////////////////// */
  9. function floatround($val)
  10. {
  11. if ($val != '-' || $val != '') {
  12. $val = (is_float($val * 1)) ? round($val, 2) : $val;
  13. }
  14. return $val;
  15. }
  16. /* ///////////////////////////////////////////////////////////////////////////////////// *
  17. /* /////////////////////////////////// BLACK BACKGROUND /////////////////////////////////// */
  18. function setCellBlackBorder($columns, $objPHPExcel)
  19. {
  20. for ($i = 0; $i < count($columns); $i++) {
  21. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  22. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  23. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  24. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  25. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("000000");
  26. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getFont()->setSize(12)->getColor()->setRGB("FFFFFF");
  27. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getFont()->setBold(true);
  28. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getAlignment()->setWrapText(true);
  29. }
  30. }
  31. /* /////////////////////////////////// RATIO GCD /////////////////////////////////// */
  32. function gcd($a, $b)
  33. {
  34. if ($b == '0') {
  35. return '0';
  36. }
  37. return ($a % $b) ? gcd($b, $a % $b) : $b;
  38. }
  39. /* ///////////////////////////////////////////////////////////////////////////////////// */
  40. /* /////////////////////////////////// RATIO /////////////////////////////////// */
  41. function ratio($x, $y)
  42. {
  43. $gcd = gcd($x, $y);
  44. if ($gcd == '0') {
  45. return ' : ';
  46. }
  47. return ($x / $gcd) . ' : ' . ($y / $gcd);
  48. }
  49. /* ///////////////////////////////////////////////////////////////////////////////////// */
  50. //enquirystatusdseexport
  51. function enquirystatusdseexport()
  52. {
  53. global $conn;
  54. try {
  55. $lang = "en_us";
  56. $pageData = $conn->loadJSON($lang);
  57. //$_SESSION["userid"] = 1;
  58. if (isset($_SESSION["userid"])) {
  59. $zone = escape_str($_REQUEST["zone"]);
  60. $zm_email = escape_str($_REQUEST["zm_email"]);
  61. $rm_email = escape_str($_REQUEST["rm_email"]);
  62. $am_email = escape_str($_REQUEST["am_email"]);
  63. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  64. $smpin = escape_str($_REQUEST["smpin"]);
  65. $segment = escape_str($_REQUEST["segment"]);
  66. $start = escape_str($_REQUEST["start"]);
  67. $end = escape_str($_REQUEST["end"]);
  68. if (!($start != '' && $end != '')) {
  69. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  70. }
  71. $from_date = date('Y-m', strtotime($start . "-01")) . "-01";
  72. $to_date = date('Y-m-t', strtotime($end . "-01"));
  73. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  74. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  75. }
  76. $user_cond = '';
  77. if ($smpin != 'all' && $smpin != '') {
  78. //AM
  79. $type = "smpin";
  80. } else if ($dealer_code != 'all' && $dealer_code != '') {
  81. //AM
  82. $type = "dealer";
  83. } else if ($am_email != 'all' && $am_email != '') {
  84. //AM
  85. $type = "am";
  86. } else if ($rm_email != 'all' && $rm_email != '') {
  87. //RM
  88. $type = "rm";
  89. } else if ($zm_email != 'all' && $zm_email != '') {
  90. //ZM
  91. $type = "zm";
  92. } else {
  93. //PAN
  94. $user_cond = '';
  95. $type = "pan";
  96. }
  97. $mcond = '';
  98. 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 != '')) {
  99. $mcond = '';
  100. $mcond .= ($smpin != 'all' && $smpin != '') ? " AND e.smpin='" . $smpin . "'" : '';
  101. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND d.dealer_code='" . $dealer_code . "'" : '';
  102. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  103. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  104. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  105. $mcond .= ($zone != 'all' && $zone != '') ? " AND d.zone='" . $zone . "'" : '';
  106. }
  107. $returnarr = array();
  108. $tablejoin = '';
  109. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  110. if ($regtype == '1') {
  111. $mcond .= ' AND e.is_current=1 ';
  112. }
  113. if ($segment != '' && $segment > 0) {
  114. $mcond .= " AND e.segment='" . $segment . "' ";
  115. }
  116. $header = array('Zone', 'ZM', 'RM', 'AM', 'Dealer Name', 'Dealer Code', 'DSE name', 'SMPIN', 'Segment', 'Hot', 'Warm', 'Cold', 'Postponed', 'Lost');
  117. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  118. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  119. $objPHPExcel = new PHPExcel();
  120. $objPHPExcel->setActiveSheetIndex(0);
  121. $row += 2;
  122. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ENQUIRY STATUS REPORT");
  123. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":F" . $row);
  124. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  125. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  126. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  127. $row++;
  128. $bordercells_arr = array();
  129. $m = 0;
  130. foreach ($header as $head) {
  131. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($m))->setWidth('30');
  132. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($m) . $row, $head);
  133. $bordercells_arr[] = getColumnFromNumber($m++) . $row;
  134. }
  135. setCellBorder($bordercells_arr, $objPHPExcel);
  136. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  137. $getquery_str = "SELECT e.smpin,e.fname,e.lname,e.mobile,e.dealer_code,e.segment,d.zone,d.dealer_name,d.`zm_name`,d. `rm_name`, d.`am_name` FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.status=1 AND d.status=1 AND d.is_deleted='0' " . $mcond . " ORDER BY e.zone ASC,e.dealer_code ASC,e.smpin ASC";
  138. $get_data = $conn->getQueryValue($getquery_str);
  139. if (count($get_data) > 0) {
  140. foreach ($get_data as $val) {
  141. $manager_cond = " AND enq.smpin='" . $val->smpin . "'";
  142. $hot_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.status='H' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  143. $hot_arr = $conn->getQueryValue($hot_enq_str);
  144. $hot_count = (count($hot_arr) > 0) ? $hot_arr[0]->data_count : '0';
  145. $warm_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.status='W' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  146. $warm_arr = $conn->getQueryValue($warm_enq_str);
  147. $warm_count = (count($warm_arr) > 0) ? $warm_arr[0]->data_count : '0';
  148. $cold_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.status='P' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  149. $cold_arr = $conn->getQueryValue($cold_enq_str);
  150. $cold_count = (count($cold_arr) > 0) ? $cold_arr[0]->data_count : '0';
  151. $postponed_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.status='E' AND enq.enquiry_stage NOT IN ('Z','O','P','V') " . $manager_cond;
  152. $postponed_arr = $conn->getQueryValue($postponed_enq_str);
  153. $postponed_count = (count($postponed_arr) > 0) ? $postponed_arr[0]->data_count : '0';
  154. $lost_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.status='L' " . $manager_cond;
  155. $lost_arr = $conn->getQueryValue($lost_enq_str);
  156. $lost_count = (count($lost_arr) > 0) ? $lost_arr[0]->data_count : '0';
  157. //$sales_str = "SELECT COALESCE(SUM(enq.sales_count),0) as data_count FROM " . DMS_EMPLOYEE_SALES . " enq WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' " . $manager_cond;
  158. //$sales_arr = $conn->getQueryValue($sales_str);
  159. //$tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  160. $row++;
  161. $i = 0;
  162. //'Zone', 'ZM', 'RM', 'AM', 'Dealer Name', 'Dealer Code', 'DSE name', 'SMPIN', 'Segment', 'Hot', 'Warm', 'Cold', 'Postponed', 'Lost', 'Sales'
  163. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->zone);
  164. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->zm_name);
  165. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->rm_name);
  166. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->am_name);
  167. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->dealer_name);
  168. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->dealer_code);
  169. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); //dealer_code
  170. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, trim($val->fname . " " . $val->lname));
  171. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->smpin);
  172. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); //dealer_code
  173. switch ($val->segment) {
  174. case '1':$segment_str = 'Parents/Guardian';
  175. break;
  176. case '2':$segment_str = 'Instructor';
  177. break;
  178. default:$segment_str = 'Student Learner';
  179. break;
  180. }
  181. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  182. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $hot_count);
  183. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $warm_count);
  184. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $cold_count);
  185. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $postponed_count);
  186. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $lost_count);
  187. // $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tot_sales);
  188. }
  189. }
  190. $objPHPExcel->getActiveSheet()->setTitle('ENQUIRY STATUS REPORT');
  191. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  192. $fpath = "../" . S3_REPORT_URL;
  193. $filename = "enquiry_status_dse_report_" . uniqid() . ".xlsx";
  194. $objWriter->save($fpath . $filename);
  195. //S3 UPLOAD
  196. //S3 LIB
  197. require dirname(__FILE__) . '/awsfileserver.php';
  198. //S3 OBJ
  199. $s3 = awsfileserver::connectS3();
  200. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  201. //DELETE AFTER MOVE TO S3
  202. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  203. $obj = new stdClass();
  204. $obj->key_name = S3_REPORT_URL . $filename;
  205. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  206. $returnarr = array("report_url" => $url);
  207. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  208. } else {
  209. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  210. }
  211. } catch (PDOException $e) {
  212. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  213. }
  214. }
  215. /* ///////////////////////////////////////////////////////////////////////////////////// */
  216. //enquirytestridedseexport
  217. function enquirytestridedseexport()
  218. {
  219. global $conn;
  220. try {
  221. $lang = "en_us";
  222. $pageData = $conn->loadJSON($lang);
  223. //$_SESSION["userid"] = 1;
  224. if (isset($_SESSION["userid"])) {
  225. $zone = escape_str($_REQUEST["zone"]);
  226. $zm_email = escape_str($_REQUEST["zm_email"]);
  227. $rm_email = escape_str($_REQUEST["rm_email"]);
  228. $am_email = escape_str($_REQUEST["am_email"]);
  229. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  230. $smpin = escape_str($_REQUEST["smpin"]);
  231. $segment = escape_str($_REQUEST["segment"]);
  232. $start = escape_str($_REQUEST["start"]);
  233. $end = escape_str($_REQUEST["end"]);
  234. if (!($start != '' && $end != '')) {
  235. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  236. }
  237. $from_date = date('Y-m', strtotime($start . "-01")) . "-01";
  238. $to_date = date('Y-m-t', strtotime($end . "-01"));
  239. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  240. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  241. }
  242. $user_cond = '';
  243. if ($smpin != 'all' && $smpin != '') {
  244. //AM
  245. $type = "smpin";
  246. } else if ($dealer_code != 'all' && $dealer_code != '') {
  247. //AM
  248. $type = "dealer";
  249. } else if ($am_email != 'all' && $am_email != '') {
  250. //AM
  251. $type = "am";
  252. } else if ($rm_email != 'all' && $rm_email != '') {
  253. //RM
  254. $type = "rm";
  255. } else if ($zm_email != 'all' && $zm_email != '') {
  256. //ZM
  257. $type = "zm";
  258. } else {
  259. //PAN
  260. $user_cond = '';
  261. $type = "pan";
  262. }
  263. $mcond = '';
  264. 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 != '')) {
  265. $mcond = '';
  266. $mcond .= ($smpin != 'all' && $smpin != '') ? " AND e.smpin='" . $smpin . "'" : '';
  267. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND d.dealer_code='" . $dealer_code . "'" : '';
  268. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  269. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  270. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  271. $mcond .= ($zone != 'all' && $zone != '') ? " AND d.zone='" . $zone . "'" : '';
  272. }
  273. $returnarr = array();
  274. $tablejoin = '';
  275. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  276. if ($regtype == '1') {
  277. $mcond .= ' AND e.is_current=1 ';
  278. }
  279. if ($segment != '' && $segment > 0) {
  280. $mcond .= " AND e.segment='" . $segment . "' ";
  281. }
  282. $header = array('Zone', 'ZM', 'RM', 'AM', 'Dealer Name', 'Dealer Code', 'DSE name', 'SMPIN', 'Segment', 'Enquiry Created HYPER-M', 'Enquiry Created from Backend', 'Test Ride From HYPER-M APP', 'Brochure Shared', 'Quotation Shared');
  283. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  284. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  285. $objPHPExcel = new PHPExcel();
  286. $objPHPExcel->setActiveSheetIndex(0);
  287. $row += 2;
  288. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ENQUIRY TESTRIDE REPORT");
  289. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":F" . $row);
  290. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  291. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  292. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  293. $row++;
  294. $bordercells_arr = array();
  295. $m = 0;
  296. foreach ($header as $head) {
  297. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($m))->setWidth('30');
  298. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($m) . $row, $head);
  299. $bordercells_arr[] = getColumnFromNumber($m++) . $row;
  300. }
  301. setCellBorder($bordercells_arr, $objPHPExcel);
  302. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  303. $getquery_str = "SELECT e.smpin,e.fname,e.lname,e.mobile,e.dealer_code,e.segment,d.zone,d.dealer_name,d.`zm_name`,d. `rm_name`, d.`am_name` FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.status=1 AND d.status=1 AND d.is_deleted='0' " . $mcond . " ORDER BY e.zone ASC,e.dealer_code ASC,e.smpin ASC";
  304. $get_data = $conn->getQueryValue($getquery_str);
  305. if (count($get_data) > 0) {
  306. foreach ($get_data as $val) {
  307. $manager_cond = " AND enq.smpin='" . $val->smpin . "'";
  308. $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;
  309. $tot_arr = $conn->getQueryValue($tot_enq_str);
  310. $tot_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  311. //non star enq
  312. $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' AND enq.is_starapp=0" . $manager_cond;
  313. $backtot_arr = $conn->getQueryValue($backtot_enq_str);
  314. $backtot_count = (count($backtot_arr) > 0) ? $backtot_arr[0]->data_count : '0';
  315. //star enq test
  316. $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;
  317. $tottest_arr = $conn->getQueryValue($tottest_enq_str);
  318. $tottest_count = (count($tottest_arr) > 0) ? $tottest_arr[0]->data_count : '0';
  319. $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;
  320. $brochure_arr = $conn->getQueryValue($brochure_enq_str);
  321. $brochure_count = (count($brochure_arr) > 0) ? $brochure_arr[0]->data_count : '0';
  322. $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;
  323. $quotation_arr = $conn->getQueryValue($quotation_enq_str);
  324. $quotation_count = (count($quotation_arr) > 0) ? $quotation_arr[0]->data_count : '0';
  325. $row++;
  326. $i = 0;
  327. //'Zone', 'ZM', 'RM', 'AM', 'Dealer Name', 'Dealer Code', 'DSE name', 'SMPIN', 'Segment', 'Hot', 'Warm', 'Cold', 'Postponed', 'Lost', 'Sales'
  328. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->zone);
  329. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->zm_name);
  330. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->rm_name);
  331. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->am_name);
  332. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->dealer_name);
  333. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->dealer_code);
  334. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); //dealer_code
  335. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, trim($val->fname . " " . $val->lname));
  336. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->smpin);
  337. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); //dealer_code
  338. switch ($val->segment) {
  339. case '1':$segment_str = 'Parents/Guardian';
  340. break;
  341. case '2':$segment_str = 'Instructor';
  342. break;
  343. default:$segment_str = 'Student Learner';
  344. break;
  345. }
  346. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  347. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tot_count);
  348. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $backtot_count);
  349. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tottest_count);
  350. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $brochure_count);
  351. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $quotation_count);
  352. }
  353. }
  354. $objPHPExcel->getActiveSheet()->setTitle('ENQUIRY TESTRIDE REPORT');
  355. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  356. $fpath = "../" . S3_REPORT_URL;
  357. $filename = "enquiry_testride_dse_report_" . uniqid() . ".xlsx";
  358. $objWriter->save($fpath . $filename);
  359. //S3 UPLOAD
  360. //S3 LIB
  361. require dirname(__FILE__) . '/awsfileserver.php';
  362. //S3 OBJ
  363. $s3 = awsfileserver::connectS3();
  364. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  365. //DELETE AFTER MOVE TO S3
  366. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  367. $obj = new stdClass();
  368. $obj->key_name = S3_REPORT_URL . $filename;
  369. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  370. $returnarr = array("report_url" => $url);
  371. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  372. } else {
  373. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  374. }
  375. } catch (PDOException $e) {
  376. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  377. }
  378. }
  379. /* ///////////////////////////////////////////////////////////////////////////////////// */
  380. //enquiryconversionratiodseexport
  381. function enquiryconversionratiodseexport()
  382. {
  383. global $conn;
  384. try {
  385. $lang = "en_us";
  386. $pageData = $conn->loadJSON($lang);
  387. //$_SESSION["userid"] = 1;
  388. if (isset($_SESSION["userid"])) {
  389. $zone = escape_str($_REQUEST["zone"]);
  390. $zm_email = escape_str($_REQUEST["zm_email"]);
  391. $rm_email = escape_str($_REQUEST["rm_email"]);
  392. $am_email = escape_str($_REQUEST["am_email"]);
  393. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  394. $smpin = escape_str($_REQUEST["smpin"]);
  395. $segment = escape_str($_REQUEST["segment"]);
  396. $start = escape_str($_REQUEST["start"]);
  397. $end = escape_str($_REQUEST["end"]);
  398. if (!($start != '' && $end != '')) {
  399. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  400. }
  401. $from_date = date('Y-m', strtotime($start . "-01")) . "-01";
  402. $to_date = date('Y-m-t', strtotime($end . "-01"));
  403. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  404. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  405. }
  406. $user_cond = '';
  407. if ($smpin != 'all' && $smpin != '') {
  408. //AM
  409. $type = "smpin";
  410. } else if ($dealer_code != 'all' && $dealer_code != '') {
  411. //AM
  412. $type = "dealer";
  413. } else if ($am_email != 'all' && $am_email != '') {
  414. //AM
  415. $type = "am";
  416. } else if ($rm_email != 'all' && $rm_email != '') {
  417. //RM
  418. $type = "rm";
  419. } else if ($zm_email != 'all' && $zm_email != '') {
  420. //ZM
  421. $type = "zm";
  422. } else {
  423. //PAN
  424. $user_cond = '';
  425. $type = "pan";
  426. }
  427. $mcond = '';
  428. 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 != '')) {
  429. $mcond = '';
  430. $mcond .= ($smpin != 'all' && $smpin != '') ? " AND e.smpin='" . $smpin . "'" : '';
  431. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND d.dealer_code='" . $dealer_code . "'" : '';
  432. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  433. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  434. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  435. $mcond .= ($zone != 'all' && $zone != '') ? " AND d.zone='" . $zone . "'" : '';
  436. }
  437. $returnarr = array();
  438. $tablejoin = '';
  439. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  440. if ($regtype == '1') {
  441. $mcond .= ' AND e.is_current=1 ';
  442. }
  443. if ($segment != '' && $segment > 0) {
  444. $mcond .= " AND e.segment='" . $segment . "' ";
  445. }
  446. //
  447. $header = array('Zone', 'ZM', 'RM', 'AM', 'Dealer Name', 'Dealer Code', 'DSE name', 'SMPIN', 'Segment', 'Enquiry Target', 'Enquiry Achieved', 'Sales Target', 'Sales Achieved', 'Sales Conversion Ratio', 'Conversion %');
  448. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  449. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  450. $objPHPExcel = new PHPExcel();
  451. $objPHPExcel->setActiveSheetIndex(0);
  452. $row += 2;
  453. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ENQUIRY CONVERSION RATIO REPORT");
  454. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":F" . $row);
  455. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  456. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  457. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  458. $row++;
  459. $bordercells_arr = array();
  460. $m = 0;
  461. foreach ($header as $head) {
  462. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($m))->setWidth('30');
  463. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($m) . $row, $head);
  464. $bordercells_arr[] = getColumnFromNumber($m++) . $row;
  465. }
  466. setCellBorder($bordercells_arr, $objPHPExcel);
  467. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  468. $getquery_str = "SELECT e.smpin,e.fname,e.lname,e.mobile,e.dealer_code,e.segment,d.zone,d.dealer_name,d.`zm_name`,d. `rm_name`, d.`am_name` FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.status=1 AND d.status=1 AND d.is_deleted='0' " . $mcond . " ORDER BY e.zone ASC,e.dealer_code ASC,e.smpin ASC";
  469. $get_data = $conn->getQueryValue($getquery_str);
  470. if (count($get_data) > 0) {
  471. foreach ($get_data as $val) {
  472. $manager_cond = " AND enq.smpin='" . $val->smpin . "'";
  473. $row++;
  474. $i = 0;
  475. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->zone);
  476. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->zm_name);
  477. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->rm_name);
  478. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->am_name);
  479. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->dealer_name);
  480. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->dealer_code);
  481. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); //dealer_code
  482. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, trim($val->fname . " " . $val->lname));
  483. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->smpin);
  484. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); //dealer_code
  485. switch ($val->segment) {
  486. case '1':$segment_str = 'Parents/Guardian';
  487. break;
  488. case '2':$segment_str = 'Instructor';
  489. break;
  490. default:$segment_str = 'Student Learner';
  491. break;
  492. }
  493. //sales target
  494. $salestarget_str = "SELECT COALESCE(SUM(t.target),0) as data_count FROM " . TABLE_USER_SALETARGET . " t WHERE t.sale_month>='" . $from_date . "' AND t.sale_month<='" . $to_date . "' AND t.smpin='" . $val->smpin . "'";
  495. $salestarget_arr = $conn->getQueryValue($salestarget_str);
  496. $salestarget_count = (count($salestarget_arr) > 0) ? $salestarget_arr[0]->data_count : '0';
  497. $enq_target = 0;
  498. switch ($segment) {
  499. case '1':$enq_target_count = $salestarget_count * 5;
  500. break;
  501. case '2':$enq_target_count = $salestarget_count * 3;
  502. break;
  503. default:$enq_target_count = $salestarget_count * 3;
  504. break;
  505. }
  506. //enquiry achieved
  507. $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' " . $manager_cond;
  508. $tot_arr = $conn->getQueryValue($tot_enq_str);
  509. $totenq_count = (count($tot_arr) > 0) ? $tot_arr[0]->data_count : '0';
  510. //$enq_per = ($enq_target_count > 0) ? ($totenq_count / $enq_target_count) * 100 : '-';
  511. //$enq_per = floatround($enq_per);
  512. //sales acheived
  513. $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='" . $val->smpin . "'";
  514. $sales_arr = $conn->getQueryValue($sales_str);
  515. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  516. // $sales_per = ($salestarget_count > 0) ? ($tot_sales / $salestarget_count) * 100 : '-';
  517. //$sales_per = floatround($sales_per);
  518. $sale_ratio = ratio($totenq_count, $tot_sales);
  519. $conversion_per = ($totenq_count > 0) ? ($tot_sales / $totenq_count) * 100 : '-';
  520. $conversion_per = floatround($conversion_per);
  521. //'Zone', 'ZM', 'RM', 'AM', 'Dealer Name', 'Dealer Code', 'DSE name', 'SMPIN', 'Segment', 'Enquiry Target', 'Enquiry Achieved', 'Enquiry Achieved %', 'Sales Target', 'Sales Achieved', 'Sales Achieved %', 'Sales Conversion Ratio', 'Conversion %'
  522. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  523. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $enq_target_count);
  524. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $totenq_count);
  525. //$objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $enq_per);
  526. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $salestarget_count);
  527. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tot_sales);
  528. //$objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sales_per);
  529. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sale_ratio);
  530. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $conversion_per);
  531. }
  532. }
  533. $objPHPExcel->getActiveSheet()->setTitle('ENQUIRY CONVERSION REPORT');
  534. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  535. $fpath = "../" . S3_REPORT_URL;
  536. $filename = "enquiry_conversionratio_dse_report_" . uniqid() . ".xlsx";
  537. $objWriter->save($fpath . $filename);
  538. //S3 UPLOAD
  539. //S3 LIB
  540. require dirname(__FILE__) . '/awsfileserver.php';
  541. //S3 OBJ
  542. $s3 = awsfileserver::connectS3();
  543. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  544. //DELETE AFTER MOVE TO S3
  545. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  546. $obj = new stdClass();
  547. $obj->key_name = S3_REPORT_URL . $filename;
  548. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  549. $returnarr = array("report_url" => $url);
  550. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  551. } else {
  552. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  553. }
  554. } catch (PDOException $e) {
  555. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  556. }
  557. }
  558. /* ///////////////////////////////////////////////////////////////////////////////////// */
  559. //productivitydseexport
  560. function productivitydseexport()
  561. {
  562. global $conn;
  563. try {
  564. $lang = "en_us";
  565. $pageData = $conn->loadJSON($lang);
  566. $_SESSION["userid"] = 1;
  567. if (isset($_SESSION["userid"])) {
  568. $zone = escape_str($_REQUEST["zone"]);
  569. $zm_email = escape_str($_REQUEST["zm_email"]);
  570. $rm_email = escape_str($_REQUEST["rm_email"]);
  571. $am_email = escape_str($_REQUEST["am_email"]);
  572. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  573. $smpin = escape_str($_REQUEST["smpin"]);
  574. $segment = escape_str($_REQUEST["segment"]);
  575. $start = escape_str($_REQUEST["start"]);
  576. $end = escape_str($_REQUEST["end"]);
  577. if (!($start != '' && $end != '')) {
  578. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  579. }
  580. $from_date = date('Y-m', strtotime($start . "-01")) . "-01";
  581. $to_date = date('Y-m-t', strtotime($end . "-01"));
  582. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  583. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  584. }
  585. $user_cond = '';
  586. if ($smpin != 'all' && $smpin != '') {
  587. //AM
  588. $type = "smpin";
  589. } else if ($dealer_code != 'all' && $dealer_code != '') {
  590. //AM
  591. $type = "dealer";
  592. } else if ($am_email != 'all' && $am_email != '') {
  593. //AM
  594. $type = "am";
  595. } else if ($rm_email != 'all' && $rm_email != '') {
  596. //RM
  597. $type = "rm";
  598. } else if ($zm_email != 'all' && $zm_email != '') {
  599. //ZM
  600. $type = "zm";
  601. } else {
  602. //PAN
  603. $user_cond = '';
  604. $type = "pan";
  605. }
  606. $mcond = '';
  607. 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 != '')) {
  608. $mcond = '';
  609. $mcond .= ($smpin != 'all' && $smpin != '') ? " AND e.smpin='" . $smpin . "'" : '';
  610. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND d.dealer_code='" . $dealer_code . "'" : '';
  611. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  612. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  613. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  614. $mcond .= ($zone != 'all' && $zone != '') ? " AND d.zone='" . $zone . "'" : '';
  615. }
  616. $returnarr = array();
  617. $tablejoin = '';
  618. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  619. if ($regtype == '1') {
  620. $mcond .= ' AND e.is_current=1 ';
  621. }
  622. if ($segment != '' && $segment > 0) {
  623. $mcond .= " AND e.segment='" . $segment . "' ";
  624. }
  625. //
  626. $header = array('Zone', 'ZM', 'RM', 'AM', 'Dealer Name', 'Dealer Code', 'DSE name', 'SMPIN', 'Segment', 'Total Sales');
  627. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  628. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  629. $objPHPExcel = new PHPExcel();
  630. $objPHPExcel->setActiveSheetIndex(0);
  631. $row += 2;
  632. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ENQUIRY PRODUCTIVITY REPORT");
  633. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":F" . $row);
  634. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  635. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  636. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  637. $row++;
  638. $bordercells_arr = array();
  639. $m = 0;
  640. foreach ($header as $head) {
  641. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($m))->setWidth('30');
  642. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($m) . $row, $head);
  643. $bordercells_arr[] = getColumnFromNumber($m++) . $row;
  644. }
  645. setCellBorder($bordercells_arr, $objPHPExcel);
  646. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  647. $getquery_str = "SELECT e.smpin,e.fname,e.lname,e.mobile,e.dealer_code,e.segment,d.zone,d.dealer_name,d.`zm_name`,d. `rm_name`, d.`am_name` FROM " . DMS_EMPLOYEE . " e JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.status=1 AND d.status=1 AND d.is_deleted='0' " . $mcond . " ORDER BY e.zone ASC,e.dealer_code ASC,e.smpin ASC";
  648. $get_data = $conn->getQueryValue($getquery_str);
  649. if (count($get_data) > 0) {
  650. foreach ($get_data as $val) {
  651. $manager_cond = " AND enq.smpin='" . $val->smpin . "'";
  652. $row++;
  653. $i = 0;
  654. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->zone);
  655. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->zm_name);
  656. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->rm_name);
  657. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->am_name);
  658. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->dealer_name);
  659. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->dealer_code);
  660. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); //dealer_code
  661. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, trim($val->fname . " " . $val->lname));
  662. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->smpin);
  663. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); //dealer_code
  664. switch ($val->segment) {
  665. case '1':$segment_str = 'Parents/Guardian';
  666. break;
  667. case '2':$segment_str = 'Instructor';
  668. break;
  669. default:$segment_str = 'Student Learner';
  670. break;
  671. }
  672. //sales acheived
  673. $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='" . $val->smpin . "'";
  674. $sales_arr = $conn->getQueryValue($sales_str);
  675. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  676. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  677. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tot_sales);
  678. }
  679. }
  680. $objPHPExcel->getActiveSheet()->setTitle('ENQUIRY PRODUCTIVITY REPORT');
  681. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  682. $fpath = "../" . S3_REPORT_URL;
  683. $filename = "enquiry_productivity_dse_report_" . uniqid() . ".xlsx";
  684. $objWriter->save($fpath . $filename);
  685. //S3 UPLOAD
  686. //S3 LIB
  687. require dirname(__FILE__) . '/awsfileserver.php';
  688. //S3 OBJ
  689. $s3 = awsfileserver::connectS3();
  690. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  691. //DELETE AFTER MOVE TO S3
  692. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  693. $obj = new stdClass();
  694. $obj->key_name = S3_REPORT_URL . $filename;
  695. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  696. $returnarr = array("report_url" => $url);
  697. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  698. } else {
  699. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  700. }
  701. } catch (PDOException $e) {
  702. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  703. }
  704. }
  705. /* ///////////////////////////////////////////////////////////////////////////////////// */
  706. //enquiry_dealer_report_terms_condition
  707. function enquiry_dealer_report_terms_condition()
  708. {
  709. global $conn;
  710. try {
  711. $lang = "en_us";
  712. $pageData = $conn->loadJSON($lang);
  713. $_SESSION["userid"] = 1;
  714. if (isset($_SESSION["userid"])) {
  715. $zone = escape_str($_REQUEST["zone"]);
  716. $zm_email = escape_str($_REQUEST["zm_email"]);
  717. $rm_email = escape_str($_REQUEST["rm_email"]);
  718. $am_email = escape_str($_REQUEST["am_email"]);
  719. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  720. $user_cond = '';
  721. if ($dealer_code != 'all' && $dealer_code != '') {
  722. //AM
  723. $type = "dealer";
  724. } else if ($am_email != 'all' && $am_email != '') {
  725. //AM
  726. $type = "am";
  727. } else if ($rm_email != 'all' && $rm_email != '') {
  728. //RM
  729. $type = "rm";
  730. } else if ($zm_email != 'all' && $zm_email != '') {
  731. //ZM
  732. $type = "zm";
  733. } else {
  734. //PAN
  735. $user_cond = '';
  736. $type = "pan";
  737. }
  738. $mcond = '';
  739. if (($dealer_code != 'all' && $dealer_code != '') || ($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '') || ($zone != 'all' && $zone != '')) {
  740. $mcond = '';
  741. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND d.dealer_code='" . $dealer_code . "'" : '';
  742. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  743. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  744. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  745. $mcond .= ($zone != 'all' && $zone != '') ? " AND d.zone='" . $zone . "'" : '';
  746. }
  747. $returnarr = array();
  748. $tablejoin = '';
  749. //
  750. $header = array('Zone', 'ZM', 'RM', 'AM', 'Dealer Name', 'Dealer Code', 'T&C Acceptance', 'T&C Acceptance Date
  751. ');
  752. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  753. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  754. $objPHPExcel = new PHPExcel();
  755. $objPHPExcel->setActiveSheetIndex(0);
  756. $row += 2;
  757. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "DEALER T&C ACCEPTANCE REPORT");
  758. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":F" . $row);
  759. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  760. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  761. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  762. $row++;
  763. $bordercells_arr = array();
  764. $m = 0;
  765. foreach ($header as $head) {
  766. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($m))->setWidth('30');
  767. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($m) . $row, $head);
  768. $bordercells_arr[] = getColumnFromNumber($m++) . $row;
  769. }
  770. setCellBorder($bordercells_arr, $objPHPExcel);
  771. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  772. $getquery_str = "SELECT d.dealer_code,d.zone,d.dealer_name,d.`zm_name`,d. `rm_name`, d.`am_name`,d.is_enquirymodule FROM " . DMS_DEALER . " d WHERE d.status=1 AND d.is_deleted='0' " . $mcond . " ORDER BY d.dealer_code ASC ";
  773. $get_data = $conn->getQueryValue($getquery_str);
  774. if (count($get_data) > 0) {
  775. foreach ($get_data as $val) {
  776. $manager_cond = " AND enq.smpin='" . $val->smpin . "'";
  777. $row++;
  778. $i = 0;
  779. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->zone);
  780. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->zm_name);
  781. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->rm_name);
  782. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->am_name);
  783. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->dealer_name);
  784. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->dealer_code);
  785. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); //dealer_code
  786. $terms_str = ($val->is_enquirymodule == '1') ? 'Yes' : 'No';
  787. $terms_date = '-';
  788. if ($val->is_enquirymodule == '1') {
  789. $datequery_str = "SELECT l.logid,l.created_on FROM " . TABLE_USER_LOG . " l JOIN (SELECT userid FROM " . TABLE_USER . " WHERE role=14 AND dealer_code='" . $val->dealer_code . "') u ON u.userid=l.userid WHERE l.module='ACCEPT LEAD MODULE' ORDER BY l.logid desc LIMIT 1";
  790. $date_data = $conn->getQueryValue($datequery_str);
  791. $terms_date = (count($date_data) > 0) ? date('d-M-Y', strtotime($date_data[0]->created_on)) : '-';
  792. }
  793. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $terms_str);
  794. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $terms_date);
  795. }
  796. }
  797. $objPHPExcel->getActiveSheet()->setTitle('DEALER T&C ACCEPTANCE');
  798. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  799. $fpath = "../" . S3_REPORT_URL;
  800. $filename = "dealer_tc_report_" . uniqid() . ".xlsx";
  801. $objWriter->save($fpath . $filename);
  802. //S3 UPLOAD
  803. //S3 LIB
  804. require dirname(__FILE__) . '/awsfileserver.php';
  805. //S3 OBJ
  806. $s3 = awsfileserver::connectS3();
  807. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  808. //DELETE AFTER MOVE TO S3
  809. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  810. $obj = new stdClass();
  811. $obj->key_name = S3_REPORT_URL . $filename;
  812. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  813. $returnarr = array("report_url" => $url);
  814. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  815. } else {
  816. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  817. }
  818. } catch (PDOException $e) {
  819. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  820. }
  821. }
  822. /* ///////////////////////////////////////////////////////////////////////////////////// */
  823. //temp_suspension
  824. function temp_suspension()
  825. {
  826. global $conn;
  827. try {
  828. $lang = "en_us";
  829. $pageData = $conn->loadJSON($lang);
  830. $_SESSION["userid"] = 1;
  831. if (isset($_SESSION["userid"])) {
  832. $zone = escape_str($_REQUEST["zone"]);
  833. $zm_email = escape_str($_REQUEST["zm_email"]);
  834. $rm_email = escape_str($_REQUEST["rm_email"]);
  835. $am_email = escape_str($_REQUEST["am_email"]);
  836. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  837. $smpin = escape_str($_REQUEST["smpin"]);
  838. $segment = escape_str($_REQUEST["segment"]);
  839. $start = escape_str($_REQUEST["start"]);
  840. $end = escape_str($_REQUEST["end"]);
  841. if (!($start != '' && $end != '')) {
  842. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  843. }
  844. $from_date = date('Y-m', strtotime($start . "-01")) . "-01";
  845. $to_date = date('Y-m-t', strtotime($end . "-01"));
  846. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  847. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  848. }
  849. $user_cond = '';
  850. if ($smpin != 'all' && $smpin != '') {
  851. //AM
  852. $type = "smpin";
  853. } else if ($dealer_code != 'all' && $dealer_code != '') {
  854. //AM
  855. $type = "dealer";
  856. } else if ($am_email != 'all' && $am_email != '') {
  857. //AM
  858. $type = "am";
  859. } else if ($rm_email != 'all' && $rm_email != '') {
  860. //RM
  861. $type = "rm";
  862. } else if ($zm_email != 'all' && $zm_email != '') {
  863. //ZM
  864. $type = "zm";
  865. } else {
  866. //PAN
  867. $user_cond = '';
  868. $type = "pan";
  869. }
  870. $mcond = '';
  871. 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 != '')) {
  872. $mcond = '';
  873. $mcond .= ($smpin != 'all' && $smpin != '') ? " AND e.smpin='" . $smpin . "'" : '';
  874. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND d.dealer_code='" . $dealer_code . "'" : '';
  875. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  876. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  877. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  878. $mcond .= ($zone != 'all' && $zone != '') ? " AND d.zone='" . $zone . "'" : '';
  879. }
  880. $returnarr = array();
  881. $tablejoin = '';
  882. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  883. if ($regtype == '1') {
  884. $mcond .= ' AND e.is_current=1 ';
  885. }
  886. if ($segment != '' && $segment > 0) {
  887. $mcond .= " AND e.segment='" . $segment . "' ";
  888. }
  889. //
  890. $header = array('Zone', 'ZM', 'RM', 'AM', 'Dealer Name', 'Dealer Code', 'DSE name', 'SMPIN', 'Segment', 'Date', 'Action', 'Remarks');
  891. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  892. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  893. $objPHPExcel = new PHPExcel();
  894. $objPHPExcel->setActiveSheetIndex(0);
  895. $row += 2;
  896. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "TEMPORARY SUSPENSION REPORT");
  897. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":F" . $row);
  898. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  899. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  900. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  901. $row++;
  902. $bordercells_arr = array();
  903. $m = 0;
  904. foreach ($header as $head) {
  905. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($m))->setWidth('30');
  906. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($m) . $row, $head);
  907. $bordercells_arr[] = getColumnFromNumber($m++) . $row;
  908. }
  909. setCellBorder($bordercells_arr, $objPHPExcel);
  910. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  911. $reason_arr = array();
  912. $reasonlist_str = "SELECT id,name FROM " . TABLE_DSE_ACTIVE_DEACTIVE_LIST;
  913. $reason_data = $conn->getQueryValue($reasonlist_str);
  914. if (count($reason_data) > 0) {
  915. foreach ($reason_data as $res) {
  916. $reason_arr[$res->id] = $res->name;
  917. }
  918. }
  919. $getquery_str = "SELECT e.smpin,e.fname,e.lname,e.mobile,e.dealer_code,e.segment,d.zone,d.dealer_name,d.`zm_name`,d. `rm_name`, d.`am_name`, h.created_on,h.remarks,h.remarkoption,h.status FROM " . TABLE_USER_STATUS_HISTORY . " h JOIN " . TABLE_USER . " u ON h.userid=u.userid JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.status=1 AND d.status=1 AND d.is_deleted='0' AND h.created_on>='" . $from_date . " 00:00:00' AND h.created_on<='" . $to_date . " 23:59:59' " . $mcond . " ORDER BY e.zone ASC,e.dealer_code ASC,e.smpin ASC";
  920. $get_data = $conn->getQueryValue($getquery_str);
  921. if (count($get_data) > 0) {
  922. foreach ($get_data as $val) {
  923. $manager_cond = " AND enq.smpin='" . $val->smpin . "'";
  924. $row++;
  925. $i = 0;
  926. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->zone);
  927. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->zm_name);
  928. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->rm_name);
  929. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->am_name);
  930. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->dealer_name);
  931. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->dealer_code);
  932. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); //dealer_code
  933. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, trim($val->fname . " " . $val->lname));
  934. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val->smpin);
  935. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); //dealer_code
  936. switch ($val->segment) {
  937. case '1':$segment_str = 'Parents/Guardian';
  938. break;
  939. case '2':$segment_str = 'Instructor';
  940. break;
  941. default:$segment_str = 'Student Learner';
  942. break;
  943. }
  944. //sales acheived
  945. $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='" . $val->smpin . "'";
  946. $sales_arr = $conn->getQueryValue($sales_str);
  947. $tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->data_count : '0';
  948. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  949. $date_str = date('d-m-Y', strtotime($val->created_on));
  950. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $date_str);
  951. switch ($val->status) {
  952. case '1':
  953. $status_str = 'Active';
  954. break;
  955. case '2':
  956. $status_str = 'Inactive';
  957. break;
  958. default:
  959. $status_str = '-';
  960. break;
  961. }
  962. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $status_str);
  963. $remark_str = ($val->remarkoption > 0) ? $reason_arr[$val->remarkoption] : '-';
  964. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $remark_str);
  965. }
  966. }
  967. $objPHPExcel->getActiveSheet()->setTitle('SUSPENSION REPORT');
  968. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  969. $fpath = "../" . S3_REPORT_URL;
  970. $filename = "temporary_suspension_report_" . uniqid() . ".xlsx";
  971. $objWriter->save($fpath . $filename);
  972. //S3 UPLOAD
  973. //S3 LIB
  974. require dirname(__FILE__) . '/awsfileserver.php';
  975. //S3 OBJ
  976. $s3 = awsfileserver::connectS3();
  977. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  978. //DELETE AFTER MOVE TO S3
  979. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  980. $obj = new stdClass();
  981. $obj->key_name = S3_REPORT_URL . $filename;
  982. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  983. $returnarr = array("report_url" => $url);
  984. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  985. } else {
  986. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  987. }
  988. } catch (PDOException $e) {
  989. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  990. }
  991. }
  992. /* ///////////////////////////////////////////////////////////////////////////////////// */