page_data = globalfunc::getMessage($parent, $parent->lang, 'managerexport'); if (count($parent->params) == 0) { // $this->dashboardfunc($parent); } else { $qry_params = explode("?", $parent->params[0]); $parameter_val = strtolower($qry_params[0]); switch ($parameter_val) { case "salesreportexport": case "certifieddsereportexport": case "assessmentreportexport": case "salesleaderboardexport": case "assessmentleaderboardexport": case "registrationreportexport": case "coursereportexport": case "salestargetreportexport": case "surveyuserreportexport": case "managertargetsample": case "newregistrationreportexport": case "newcoursereportexport": case "newsalesreportexport": case "newcertifieddsereportexport": case "newassessmentreportexport": case "newsalestargetreportexport": case "newsalesleaderboardexport": case "newassessmentleaderboardexport": case "asmassessmentreport": case "rmassessmentreport": case "zmassessmentreport": case "trainerassessmentreport": case "surveyreportexport": case "dealersalestargetreportexport": case "managersalestargetreportexport": case "zmcoursereport": case "trainercoursereport": case "rmcoursereport": case "amcoursereport": case "dealercoursereport": case "ilearnreport": $this->$parameter_val($parent); break; default: break; } } $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404); } private function getmanagerconditon_arr($parent) { projectfunc::authorizedRole($parent, array('3', '4', '5', '6', '7', '14')); $zmemail = escape_str($parent->_request["zmemail"]); $rmemail = escape_str($parent->_request["rmemail"]); $amemail = escape_str($parent->_request["amemail"]); $dealer_cond = array(); if ($parent->current_user_role == '3') { $REQUEST_KEYS = array('zmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); if ($zmemail != 'all' && $zmemail != '') { $dealer_cond[] = "zm_email='" . $zmemail . "'"; } if ($rmemail != 'all' && $rmemail != '') { $dealer_cond[] = "rm_email='" . $rmemail . "'"; } if ($amemail != 'all' && $amemail != '') { $dealer_cond[] = "am_email='" . $amemail . "'"; } } else if ($parent->current_user_role == '4') { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $dealer_cond[] = "zm_email='" . $parent->current_user_data->emailid . "'"; if ($rmemail != 'all' && $rmemail != '') { $dealer_cond[] = "rm_email='" . $rmemail . "'"; } if ($amemail != 'all' && $amemail != '') { $dealer_cond[] = "am_email='" . $amemail . "'"; } } else if ($parent->current_user_role == '5') { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $dealer_cond[] = (count($trainer_arr) > 0) ? "zone='" . $trainer_arr[0]->zone . "'" : "zone='0'"; if ($rmemail != 'all' && $rmemail != '') { $dealer_cond[] = "rm_email='" . $rmemail . "'"; } if ($amemail != 'all' && $amemail != '') { $dealer_cond[] = "am_email='" . $amemail . "'"; } } else if ($parent->current_user_role == '6') { //$REQUEST_KEYS=array('amemail'=>'string'); //globalfunc::mandatoryKey($parent,$REQUEST_KEYS); $dealer_cond[] = "rm_email='" . $parent->current_user_data->emailid . "'"; if ($amemail != 'all' && $amemail != '') { $dealer_cond[] = "am_email='" . $amemail . "'"; } } else if ($parent->current_user_role == '7') { $dealer_cond[] = "am_email='" . $parent->current_user_data->emailid . "'"; } else if ($parent->current_user_role == '14') { $dealer_cond[] = "dealer_code='" . $parent->current_user_data->dealer_code . "'"; } return $dealer_cond; } /* /////////////////////////////// SALES REPORT EXPORT //////////////////////////////////////////////// */ private function salesreportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 3); globalfunc::checkAuthrozation($parent, array('type' => 'user')); $year_data = escape_str($parent->params[1]); $last_data = escape_str($parent->params[2]); $last_data_arr = explode('?', $last_data); $month_data = escape_str(trim($last_data_arr[0])); //$limit_str=globalfunc::setPageLimit($parent,$parent->params[2]); //$limit_cond=($limit_str)?" LIMIT ".$limit_str:''; //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row = 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Month & Year: " . date('M Y', strtotime($year_data . "-" . $month_data . "-01"))); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":C" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SALES REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":J" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; //$bordercells_arr=array("A".$row,"B".$row,"C".$row,"D".$row,"E".$row,"F".$row,"G".$row,"H".$row,"I".$row,"J".$row); //projectfunc::setCellBorder($bordercells_arr,$objPHPExcel); //$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Location', 'Target', 'Achieved', 'Percentage'); //GET MODEL $query_modelarr = $parent->selectQuery(TABLE_MODEL, "model_id, model_name", "model_is_target=1 AND user_type=0 ORDER BY model_id", ""); if ($query_modelarr['nr']) { foreach ($query_modelarr['result'] as $res_model) { //$header_arr[]=$res_model->model_name." (Achieved/Target)"; $header_arr[] = $res_model->model_name . " \n Target"; $header_arr[] = $res_model->model_name . " \n Achieved"; $header_arr[] = $res_model->model_name . " \n %"; } } $header_arr[] = 'ZM'; $header_arr[] = 'RM'; $header_arr[] = 'AM'; $i = 0; $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); if ($query_modelarr['nr']) { foreach ($query_modelarr['result'] as $res_model) { $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('10'); } } $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); $m = $i - 1; $bordercells_arr[] = getColumnFromNumber($m) . $row; } projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //AREA MANAGER SELF if ($parent->current_user_role == '7') { $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $emailid = $userdata->emailid; } else { //AREA MANAGER LEVEL REPORT $role = '7'; //FIELDS VALIDATION $REQUEST_KEYS = array('area' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $area_manager = escape_str($parent->_request["area"]); $emailid = $area_manager; } $user_cond = ""; switch ($role) { case '3': //HO Manager $user_cond .= ""; break; case '4': //Zonal Manager $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; break; case '5': //Trainer $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.emailid='" . $emailid . "' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $zone_cond .= (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'"; $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . " AND status='1' AND is_deleted='0')"; break; case '6': //Regional Manager $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; break; case '7': //Area Manager if ($parent->current_user_role == '14') { $dealer_code_cond = " AND dealer_code='" . $parent->current_user_data->dealer_code . "'"; } $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $emailid . "' " . $dealer_code_cond . " AND status='1' AND is_deleted='0')"; break; // case '9': break; // case '10': break; // case '11': break; // case '12': break; // case '13': break; default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); break; } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[2]); $order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location //3-AM //4-RM //5-ZM switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; case '2':$order_by_cond = "ORDER BY d.city,u.fname ASC "; break; case '3':$order_by_cond = "ORDER BY d.am_email,u.fname ASC "; break; case '4':$order_by_cond = "ORDER BY d.rm_email,u.fname ASC "; break; case '5':$order_by_cond = "ORDER BY d.zm_email,u.fname ASC "; break; default:$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.emp_code LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } $get_user_str = "SELECT u.userid,u.fname,u.lname,u.smpin,u.emp_code,u.mobileno,d.city,u.dealer_code,d.dealer_name,d.zm_name,d.rm_name,d.am_name FROM " . TABLE_USER . " u LEFT JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE u.status='1' AND u.is_deleted='0' AND u.role>7 AND u.role<14 " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { //TARGET $user_target = projectfunc::userSalesTarget($parent, $res_user->userid, '', $year_data, $month_data); //ACHIEVED $user_achieved = projectfunc::userSalesAchieved($parent, $res_user->userid, '', $year_data, $month_data); $i = 0; $row++; if (empty($res_user->smpin)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } if (empty($res_user->dealer_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); } if (empty($res_user->city)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->city); } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_target); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_achieved); $percentage = ($user_target > 0) ? round(($user_achieved / $user_target) * 100) : 0; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $percentage); if ($query_modelarr['nr']) { foreach ($query_modelarr['result'] as $res_model) { $model_user_target = projectfunc::userSalesTarget($parent, $res_user->userid, $res_model->model_name, $year_data, $month_data); //ACHIEVED $model_user_achieved = projectfunc::userSalesAchieved($parent, $res_user->userid, $res_model->model_name, $year_data, $month_data); //$objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$model_user_achieved."/".$model_user_target); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $model_user_target); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $model_user_achieved); $modelpercentage = ($model_user_target > 0) ? round(($model_user_achieved / $model_user_target) * 100) : 0; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $modelpercentage); } } if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } } //LOG $logstr = 'MANAGER SALES REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('MANAGER SALES REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "manager_sales_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// CERTIFIED DSE REPORT EXPORT //////////////////////////////////////////////// */ private function certifieddsecolor($parent, $value) { switch ($value) { case '0':$color_value = 'DCDCDC'; break; case '1':$color_value = 'FFA500'; break; case '2':$color_value = 'FF0000'; break; case '3':$color_value = '008000'; break; default:$color_value = 'DCDCDC'; break; } return $color_value; } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// CERTIFIED DSE REPORT EXPORT //////////////////////////////////////////////// */ private function certifieddsereportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "CERTIFIED DSE REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Location', 'Certification', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('5'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('5'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('5'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('5'); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $i = ($i == '5') ? '8' : $i; if ($i == 4) { $objPHPExcel->getActiveSheet()->mergeCells("E" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("E" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } //AREA MANAGER SELF if ($parent->current_user_role == '7') { $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $emailid = $userdata->emailid; } else { //AREA MANAGER LEVEL REPORT $role = '7'; //FIELDS VALIDATION $REQUEST_KEYS = array('area' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $area_manager = escape_str($parent->_request["area"]); $emailid = $area_manager; } $user_cond = ""; switch ($role) { case '3': //HO Manager $user_cond .= ""; break; case '4': //Zonal Manager $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; break; case '5': //Trainer $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.emailid='" . $emailid . "' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $zone_cond .= (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'"; $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . " AND status='1' AND is_deleted='0')"; break; case '6': //Regional Manager $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; break; case '7': //Area Manager if ($parent->current_user_role == '14') { $dealer_code_cond = " AND dealer_code='" . $parent->current_user_data->dealer_code . "'"; } $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $emailid . "'" . $dealer_code_cond . " AND status='1' AND is_deleted='0' )"; break; default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); break; } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[0]); $order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location //3-AM //4-RM //5-ZM switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; case '2':$order_by_cond = "ORDER BY d.city,u.fname ASC "; break; case '3':$order_by_cond = "ORDER BY d.am_email,u.fname ASC "; break; case '4':$order_by_cond = "ORDER BY d.rm_email,u.fname ASC "; break; case '5':$order_by_cond = "ORDER BY d.zm_email,u.fname ASC "; break; default:$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.emp_code LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } $get_user_str = "SELECT u.userid,u.fname,u.lname,u.smpin,u.emp_code,u.mobileno,d.city,u.dealer_code,d.dealer_name,d.zm_name,d.rm_name,d.am_name FROM " . TABLE_USER . " u LEFT JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE u.status='1' AND u.is_deleted='0' AND u.role>7 AND u.role<14 " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { $learning_arr = projectfunc::userLearningLevel($parent, $res_user->userid); //0-Not Started Grey //1-Current Orange //2-Failed Red, //3-Completed Green $i = 0; $row++; if (empty($res_user->smpin)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } if (empty($res_user->dealer_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); } if (empty($res_user->city)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->city); } $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i) . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i) . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i) . $row)->getFont()->setSize(14)->getColor()->setRGB($this->certifieddsecolor($parent, $learning_arr['basic'])); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, 'B'); $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i) . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i) . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i) . $row)->getFont()->setSize(14)->getColor()->setRGB($this->certifieddsecolor($parent, $learning_arr['bronze'])); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, 'B'); $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i) . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i) . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i) . $row)->getFont()->setSize(14)->getColor()->setRGB($this->certifieddsecolor($parent, $learning_arr['silver'])); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, 'S'); $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i) . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i) . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i) . $row)->getFont()->setSize(14)->getColor()->setRGB($this->certifieddsecolor($parent, $learning_arr['gold'])); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, 'G'); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } } //LOG $logstr = 'CERTIFIED DSE REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('CERTIFIED DSE REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "certified_dse_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// ASSESSMENT REPORT EXPORT //////////////////////////////////////////////// */ private function assessmentreportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //FIELDS VALIDATION $REQUEST_KEYS = array('assessmentid' => 'integer'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $assessmentid = escape_str($parent->_request["assessmentid"]); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Location', 'Score', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $user_cond = ""; //AREA MANAGER SELF if ($parent->current_user_role == '7') { $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $emailid = $userdata->emailid; } else { //AREA MANAGER LEVEL REPORT $role = '7'; //FIELDS VALIDATION $REQUEST_KEYS = array('area' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $area_manager = escape_str($parent->_request["area"]); $emailid = $area_manager; } if ($parent->current_user_role == '14') { $dealer_code_cond = " AND dealer_code='" . $parent->current_user_data->dealer_code . "'"; } $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $emailid . "'" . $dealer_code_cond . " AND status='1' AND is_deleted='0')"; $filter_arr = globalfunc::getFilterValues($parent, $parent->params[0]); $order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location //3-AM //4-RM //5-ZM switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; case '2':$order_by_cond = "ORDER BY d.city,u.fname ASC "; break; case '3':$order_by_cond = "ORDER BY d.am_email,u.fname ASC "; break; case '4':$order_by_cond = "ORDER BY d.rm_email,u.fname ASC "; break; case '5':$order_by_cond = "ORDER BY d.zm_email,u.fname ASC "; break; default:$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.emp_code LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } $get_user_str = "SELECT u.userid,u.fname,u.lname,u.smpin,u.emp_code,u.mobileno,d.city,u.dealer_code,d.dealer_name,d.zm_name,d.rm_name,d.am_name FROM " . TABLE_USER . " u JOIN " . TABLE_ASSESSMENT_USER . " as au ON u.userid=au.userid LEFT JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE u.status='1' AND u.is_deleted='0' AND u.role>7 AND u.role<14 AND au.assessmentid='" . $assessmentid . "' " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { $learning_arr = projectfunc::userLearningLevel($parent, $res_user->userid); //0-Not Started Grey //1-Current Orange //2-Failed Red, //3-Completed Green $i = 0; $row++; if (empty($res_user->smpin)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } if (empty($res_user->dealer_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); } if (empty($res_user->city)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->city); } $exam_highscore_str = "SELECT * FROM " . TABLE_ASSESSMENT_USER . " WHERE assessmentid='" . $assessmentid . "' AND userid='" . $res_user->userid . "' LIMIT 1"; $exam_highscore_arr = $parent->getQueryValue($exam_highscore_str); $highscore = (count($exam_highscore_arr) > 0) ? $exam_highscore_arr[0]->highscore : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $highscore . "%"); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } } //LOG $logstr = 'ASSESSMENT REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('ASSESSMENT REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "assessment_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// SALES LEADERBOARD REPORT EXPORT //////////////////////////////////////////////// */ private function salesleaderboardexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 3); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //FIELDS VALIDATION $REQUEST_KEYS = array('email' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $email = escape_str($parent->_request["email"]); $year_data = escape_str($parent->params[1]); $last_data = escape_str($parent->params[2]); $last_data_arr = explode('?', $last_data); $month_data = escape_str(trim($last_data_arr[0])); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row = 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Month & Year: " . date('M Y', strtotime($year_data . "-" . $month_data . "-01"))); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":C" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SALES LEADERBOARD REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":J" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Location', 'Sales', 'Rank', 'OutOf', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $user_cond = ""; $filter_arr = globalfunc::getFilterValues($parent, $parent->params[2]); $order_by_cond = " ORDER BY f.rank,d.dealer_name ASC"; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Rank switch ($filter_arr['sort']) { case '1':$order_by_cond = " ORDER BY d.dealer_name,f.rank ASC "; break; case '2':$order_by_cond = " ORDER BY f.rank,d.dealer_name ASC "; break; default:$order_by_cond = " ORDER BY f.rank,d.dealer_name ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.emp_code LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } if ($parent->current_user_role == '14') { $user_cond .= " AND u.dealer_code='" . $dealer_code . "'"; } //GET MONTH RANGE $start_date = date('Y-m-d', strtotime($year_data . "-" . $month_data . "-01")); $end_date = date('Y-m-t', strtotime($year_data . "-" . $month_data . "-01")); $parent->executeQuery("SET @rownum := 0"); $get_user_str = "SELECT f.*,u.fname,u.lname,u.mobileno,d.* FROM (SELECT @rownum := @rownum + 1 AS rank, salecount,targetcount,smpin,userid,last_sale,first_sale,sale_per FROM (SELECT c.*, CASE WHEN targetcount=0 THEN 0 ELSE (salecount/targetcount)*100 END as 'sale_per' FROM ( SELECT a.userid,a.smpin,a.salecount,b.targetcount,a.last_sale,a.first_sale FROM (SELECT COALESCE(COUNT(s.id),'0') as scount, COALESCE(SUM(s.sales_count),'0') as salecount, u.smpin,u.userid,MAX(s.sale_date) last_sale,MIN(s.sale_date) first_sale FROM " . TABLE_USER . " as u JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code LEFT JOIN (SELECT id,smpin,sale_date,sales_count FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $start_date . "' AND sale_date<='" . $end_date . "') as s ON s.smpin=u.smpin WHERE u.is_deleted=0 AND u.role>7 AND u.role<14 AND d.am_email='" . $email . "' " . $area_cond . " GROUP BY u.smpin ) as a JOIN (SELECT COALESCE(SUM(t.target),'0') as targetcount,u.smpin,u.userid FROM " . TABLE_USER . " as u JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code LEFT JOIN (SELECT id,smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $start_date . "' AND sale_month<='" . $end_date . "')as t ON t.smpin=u.smpin WHERE u.is_deleted=0 AND u.role>7 AND u.role<14 AND d.am_email='" . $email . "' " . $area_cond . " GROUP BY u.smpin ) as b ON a.userid=b.userid )c ORDER BY cast(sale_per as SIGNED) DESC,cast(salecount as SIGNED) DESC,cast(targetcount as SIGNED) DESC,last_sale ASC,first_sale ASC,userid ASC)as a )as f JOIN " . TABLE_USER . " as u ON f.userid=u.userid LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE 1=1 " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); $get_user_count_str = "SELECT COUNT(u.userid)as user_count FROM (SELECT salecount,targetcount,smpin,userid,last_sale,first_sale,sale_per FROM (SELECT c.*, CASE WHEN targetcount=0 THEN 0 ELSE (salecount/targetcount)*100 END as 'sale_per' FROM ( SELECT a.userid,a.smpin,a.salecount,b.targetcount,a.last_sale,a.first_sale FROM (SELECT COALESCE(COUNT(s.id),'0') as scount, COALESCE(SUM(s.sales_count),'0') as salecount, u.smpin,u.userid,MAX(s.sale_date) last_sale,MIN(s.sale_date) first_sale FROM " . TABLE_USER . " as u JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code LEFT JOIN (SELECT id,smpin,sale_date,sales_count FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $start_date . "' AND sale_date<='" . $end_date . "') as s ON s.smpin=u.smpin WHERE u.is_deleted=0 AND u.role>7 AND u.role<14 AND d.am_email='" . $email . "' " . $area_cond . " GROUP BY u.smpin ) as a JOIN (SELECT COALESCE(SUM(t.target),'0') as targetcount,u.smpin,u.userid FROM " . TABLE_USER . " as u JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code LEFT JOIN (SELECT id,smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $start_date . "' AND sale_month<='" . $end_date . "')as t ON t.smpin=u.smpin WHERE u.is_deleted=0 AND u.role>7 AND u.role<14 AND d.am_email='" . $email . "' " . $area_cond . " GROUP BY u.smpin ) as b ON a.userid=b.userid )c ORDER BY cast(sale_per as SIGNED) DESC,cast(salecount as SIGNED) DESC,cast(targetcount as SIGNED) DESC,last_sale ASC,first_sale ASC,userid ASC)as a )as f JOIN " . TABLE_USER . " as u ON f.userid=u.userid LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE 1=1 " . $user_cond . " LIMIT 1"; if (count($user_arr) > 0) { $user_count_arr = $parent->getQueryValue($get_user_count_str); $outof = (count($user_count_arr) > 0) ? $user_count_arr[0]->user_count : '0'; foreach ($user_arr as $mkey => $res_user) { $learning_arr = projectfunc::userLearningLevel($parent, $res_user->userid); $i = 0; $row++; if (empty($res_user->smpin)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } if (empty($res_user->dealer_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); } if (empty($res_user->city)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->city); } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->salecount . "/" . $res_user->targetcount); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rank); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $outof); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } } //LOG $logstr = 'SALES LEADERBOARD REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('SALES LEADERBOARD REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "sales_leaderboard_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// ASSESSMENT LEADERBOARD REPORT EXPORT //////////////////////////////////////////////// */ private function assessmentleaderboardexportold($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //FIELDS VALIDATION $REQUEST_KEYS = array('email' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $email = escape_str($parent->_request["email"]); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT LEADERBOARD REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":J" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Location', 'Score', 'Position', 'Outof', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $filter_arr = globalfunc::getFilterValues($parent, $parent->params[2]); $order_by_cond = " ORDER BY f.rank,d.dealer_name ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location switch ($filter_arr['sort']) { case '1':$order_by_cond = " ORDER BY d.dealer_name,f.rank ASC "; break; case '2':$order_by_cond = " ORDER BY f.rank,d.dealer_name ASC "; break; default:$order_by_cond = " ORDER BY f.rank,d.dealer_name ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.emp_code LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } $get_dealer_str = "SELECT dealer_code,city,zone FROM " . DMS_DEALER . " WHERE am_email='" . $email . "' AND status='1' AND is_deleted='0' GROUP BY dealer_code "; $dealer_arr = $parent->getQueryValue($get_dealer_str); if (count($dealer_arr) > 0) { $zone_arr = array(); $city_arr = array(); foreach ($dealer_arr as $res_dealer) { if (!in_array($res_dealer->zone, $zone_arr)) { $zone_arr[] = $res_dealer->zone; } if (!in_array($res_dealer->city, $city_arr)) { $city_arr[] = $res_dealer->city; } $dealer_cond_arr[] = " filter_dealer LIKE '%" . $res_dealer->dealer_code . "%'"; } $query_cond .= " AND ( filter_dealer='' OR " . @implode(" OR ", $dealer_cond_arr) . " ) "; if (count($zone_arr) > 0) { foreach ($zone_arr as $zone) { $zone_cond_arr[] = " filter_zone LIKE '%" . $zone . "%'"; } $query_cond .= " AND (filter_zone='' OR " . @implode(" OR ", $zone_cond_arr) . " ) "; } else { $query_cond .= " AND (filter_zone='') "; } if (count($city_arr) > 0) { foreach ($city_arr as $city) { $city_cond_arr[] = " filter_region LIKE '%" . $city . "%'"; } $query_cond .= " AND (filter_region='' OR " . @implode(" OR ", $city_cond_arr) . " ) "; } else { $query_cond .= " AND (filter_region='') "; } } else { $query_cond .= " AND (filter_dealer='' AND filter_region='' AND filter_zone='' ) "; } $outof = 0; //GET ALL ASSESSMENT LIST WHICH PUBLISHED $assessment_str = "SELECT a.* FROM `" . TABLE_ASSESSMENT . "` as a WHERE a.atype='0' AND a.assettypeid='1' AND a.publisheddate<='" . NOW . "' " . $query_cond; $assessment_arr = $parent->getQueryValue($assessment_str); $data_arr = array(); if (count($assessment_arr) > 0) { foreach ($assessment_arr as $res_assess) { $assessmentid_arr[] = $res_assess->assessmentid; } $parent->executeQuery("SET @rownum := 0"); $get_user_rank_str = "SELECT f.*,u.userid,u.fname,u.lname,u.mobileno,u.smpin,d.* FROM ( SELECT @rownum := @rownum + 1 AS rank,COALESCE(user_score,'0')as user_score,CASE WHEN user_score IS NULL THEN 0 ELSE (user_score/" . count($assessment_arr) . ") END as percentage_score,userid,total_time,last_modified FROM (SELECT SUM(highscore)as user_score,u.userid,COALESCE(ar.total_time,'0')as total_time,MAX(au.modified_on) as last_modified FROM " . TABLE_USER . " as u JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code JOIN (SELECT * FROM " . TABLE_ASSESSMENT_USER . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") AND highscorearid!=0 ) as au ON u.userid=au.userid LEFT JOIN (SELECT SUM(time_taken)as total_time,assessmentid,userid FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") GROUP BY userid )as ar ON u.userid=ar.userid WHERE u.role>7 AND u.role<14 AND u.is_deleted=0 AND d.am_email='" . $email . "' GROUP BY u.userid ORDER BY user_score DESC,ar.total_time ASC,last_modified ASC,u.userid ASC )as a )as f JOIN " . TABLE_USER . " as u ON f.userid=u.userid LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE 1=1 " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_rank_str); $get_user_count_str = "SELECT COUNT(u.userid)as user_count FROM ( SELECT COALESCE(user_score,'0')as user_score,CASE WHEN user_score IS NULL THEN 0 ELSE (user_score/" . count($assessment_arr) . ") END as percentage_score,userid,total_time,last_modified FROM (SELECT SUM(highscore)as user_score,u.userid,COALESCE(ar.total_time,'0')as total_time,MAX(au.modified_on) as last_modified FROM " . TABLE_USER . " as u JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code JOIN (SELECT * FROM " . TABLE_ASSESSMENT_USER . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") AND highscorearid!=0 ) as au ON u.userid=au.userid LEFT JOIN (SELECT SUM(time_taken)as total_time,assessmentid,userid FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") GROUP BY userid )as ar ON u.userid=ar.userid WHERE u.role>7 AND u.role<14 AND u.is_deleted=0 AND d.am_email='" . $email . "' GROUP BY u.userid ORDER BY user_score DESC,ar.total_time ASC,last_modified ASC,u.userid ASC )as a )as f JOIN " . TABLE_USER . " as u ON f.userid=u.userid LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE 1=1 " . $user_cond . " LIMIT 1"; if (count($user_arr) > 0) { $user_count_arr = $parent->getQueryValue($get_user_count_str); $outof = (count($user_count_arr) > 0) ? $user_count_arr[0]->user_count : '0'; foreach ($user_arr as $res_user) { $i = 0; $row++; if (empty($res_user->smpin)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } if (empty($res_user->dealer_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); } if (empty($res_user->city)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->city); } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->percentage_score . "%"); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rank); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $outof); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } } } //LOG $logstr = 'ASSESSMENT LEADERBOARD REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('ASSESSMENT LEADERBOARD REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "assessment_leaderboard_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// ASSESSMENT LEADERBOARD REPORT EXPORT //////////////////////////////////////////////// */ private function assessmentleaderboardexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //FIELDS VALIDATION $REQUEST_KEYS = array('email' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $email = escape_str($parent->_request["email"]); if (count($parent->params) == 1) { $get_dealer_str = "SELECT dealer_code,city,zone FROM " . DMS_DEALER . " WHERE am_email='" . $email . "' AND status='1' AND is_deleted='0' GROUP BY dealer_code "; $dealer_arr = $parent->getQueryValue($get_dealer_str); //AREA LEADERBOARD COND //$dealer_code=$parent->current_user_data->dealer_code; // $query_allareadealerarr=$parent->selectQuery(DMS_DEALER,"`dealer_code`,am_email "," dealer_code='".$dealer_code."' AND status='1' AND is_deleted='0'","1"); /* $dealer_arr=array(); if($query_allareadealerarr['nr']) { $join_cond="JOIN ".DMS_DEALER." as d ON d.dealer_code=u.dealer_code "; $area_cond=" and d.am_email ='".$query_allareadealerarr['result'][0]->am_email."'"; }else { $area_cond=" and u.dealer_code IN ('')"; } */ $start_date = date('Y-m', strtotime(CUR_DATE)) . "-01"; $end_date = date('Y-m-t', strtotime(CUR_DATE)); $date_cond = " AND a.publisheddate>='" . $start_date . " 00:00:00' AND a.publisheddate<='" . $end_date . " 23:59:59'"; } else if (count($parent->params) == 2) { //FOR PANINDIA,ZONE,REGION WISE LEADER BOARD $dealer_code = $parent->current_user_data->dealer_code; $type_data = explode('?', strtolower(escape_str($parent->params[1]))); switch ($type_data[0]) { case "panindia": $start_date = date('Y', strtotime(CUR_DATE)) . "-01-01"; $end_date = date('Y', strtotime(CUR_DATE)) . "-12-31"; //COND $join_cond = 'JOIN ".DMS_DEALER." as d ON d.dealer_code=u.dealer_code '; $area_cond = ''; $date_cond = " AND a.publisheddate>='" . $start_date . " 00:00:00' AND a.publisheddate<='" . $end_date . " 23:59:59'"; break; case "zone": $cur_month = date('m', strtotime(CUR_DATE)); /*if(in_array($cur_month,array('01','02','03','04','05','06'))) { $start_date=date('Y', strtotime(CUR_DATE))."-01-01"; $end_date=date('Y',strtotime(CUR_DATE))."-06-30"; }else if(in_array($cur_month,array('07','08','09','10','11','12'))) { $start_date=date('Y', strtotime(CUR_DATE))."-07-01"; $end_date=date('Y', strtotime(CUR_DATE))."-12-31"; } */ $start_date = date('Y-m', strtotime(CUR_DATE)) . "-01"; $end_date = date('Y-m-t', strtotime(CUR_DATE)); $date_cond = " AND a.publisheddate>='" . $start_date . " 00:00:00' AND a.publisheddate<='" . $end_date . " 23:59:59'"; $get_dealer_str = "SELECT dealer_code,city,zone FROM " . DMS_DEALER . " WHERE zm_email='" . $email . "' AND status='1' AND is_deleted='0' GROUP BY dealer_code "; $dealer_arr = $parent->getQueryValue($get_dealer_str); if (count($dealer_arr) > 0) { $join_cond = "JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code "; $area_cond = " and d.zm_email ='" . $email . "'"; } else { $area_cond = " and u.dealer_code IN ('')"; } break; case "region": $cur_month = date('m', strtotime(CUR_DATE)); /* if(in_array($cur_month,array('01','02','03'))) { $start_date=date('Y', strtotime(CUR_DATE))."-01-01"; $end_date=date('Y',strtotime(CUR_DATE))."-03-31"; }else if(in_array($cur_month,array('04','05','06'))) { $start_date=date('Y', strtotime(CUR_DATE))."-04-01"; $end_date=date('Y',strtotime(CUR_DATE))."-06-30"; }else if(in_array($cur_month,array('07','08','09'))) { $start_date=date('Y', strtotime(CUR_DATE))."-07-01"; $end_date=date('Y',strtotime(CUR_DATE))."-09-30"; }else if(in_array($cur_month,array('10','11','12'))) { $start_date=date('Y', strtotime(CUR_DATE))."-10-01"; $end_date=date('Y', strtotime(CUR_DATE))."-12-31"; } * */ $start_date = date('Y-m', strtotime(CUR_DATE)) . "-01"; $end_date = date('Y-m-t', strtotime(CUR_DATE)); $date_cond = " AND a.publisheddate>='" . $start_date . " 00:00:00' AND a.publisheddate<='" . $end_date . " 23:59:59'"; $get_dealer_str = "SELECT dealer_code,city,zone FROM " . DMS_DEALER . " WHERE rm_email='" . $email . "' AND status='1' AND is_deleted='0' GROUP BY dealer_code "; $dealer_arr = $parent->getQueryValue($get_dealer_str); if (count($dealer_arr) > 0) { $join_cond = "JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code "; $area_cond = " and d.rm_email ='" . $email . "'"; } else { $area_cond = " and u.dealer_code IN ('')"; } break; default: $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404); break; } } else { $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404); } //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT LEADERBOARD REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":J" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Location', 'Score', 'Position', 'Outof', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); // $filter_arr=globalfunc::getFilterValues($parent,$parent->params[2]); // $order_by_cond=" ORDER BY f.rank,d.dealer_name ASC "; // if(isset($filter_arr) && isset($filter_arr['sort'])) // { // //1-Dealer // //2-Location // switch($filter_arr['sort']) // { // case '1': $order_by_cond=" ORDER BY d.dealer_name,f.rank ASC "; break; // case '2': $order_by_cond=" ORDER BY f.rank,d.dealer_name ASC "; break; // default: $order_by_cond=" ORDER BY f.rank,d.dealer_name ASC "; break; // } // } // if(isset($parent->_request["search"])) // { // $search_txt = escape_str($parent->_request["search"]); // $user_cond.=" AND (u.fname LIKE '%".$search_txt."%' OR u.lname LIKE '%".$search_txt."%' OR u.emp_code LIKE '%".$search_txt."%' OR d.dealer_name LIKE '%".$search_txt."%' OR d.zm_name LIKE '%".$search_txt."%' OR d.rm_name LIKE '%".$search_txt."%' OR d.am_name LIKE '%".$search_txt."%' OR d.city LIKE '%".$search_txt."%' )"; // } $new_cond = 'AND a.user_type=0 '; //GET ALL ASSESSMENT LIST WHICH PUBLISHED $assessment_str = "SELECT a.* FROM `" . TABLE_ASSESSMENT . "` as a WHERE a.status='1' AND a.atype='0' AND a.assettypeid='1' " . $date_cond . $new_cond; $assessment_arr = $parent->getQueryValue($assessment_str); //ASSESSMENT COUNT $assessment_count = (count($assessment_arr) > 0) ? count($assessment_arr) : '0'; // $outof=0; //GET ALL ASSESSMENT LIST WHICH PUBLISHED // $assessment_str = "SELECT a.* FROM `".TABLE_ASSESSMENT."` as a WHERE a.atype='0' AND a.assettypeid='1' AND a.publisheddate<='".NOW."' ".$query_cond; // $assessment_arr=$parent->getQueryValue($assessment_str); // $data_arr=array(); if (count($assessment_arr) > 0) { foreach ($assessment_arr as $res_assess) { $assessmentid_arr[] = $res_assess->assessmentid; } // $parent->executeQuery("SET @rownum := 0"); // $get_user_rank_str = "SELECT f.*,u.userid,u.fname,u.lname,d.* FROM ( SELECT @rownum := @rownum + 1 AS rank,COALESCE(user_score,'0')as user_score,CASE WHEN user_score IS NULL THEN 0 ELSE (user_score/".count($assessment_arr).") END as percentage_score,userid,total_time,last_modified FROM (SELECT SUM(highscore)as user_score,u.userid,COALESCE(ar.total_time,'0')as total_time,MAX(au.modified_on) as last_modified FROM ".TABLE_USER." as u JOIN (SELECT * FROM ".TABLE_ASSESSMENT_USER." WHERE assessmentid IN (".@implode(',',$assessmentid_arr).") AND highscorearid!=0 ) as au ON u.userid=au.userid LEFT JOIN (SELECT SUM(time_taken)as total_time,assessmentid,userid FROM ".TABLE_ASSESSMENTRESULT." WHERE assessmentid IN (".@implode(',',$assessmentid_arr).") GROUP BY userid )as ar ON u.userid=ar.userid WHERE u.role>='3' AND u.is_deleted=0 GROUP BY u.userid ORDER BY user_score DESC,ar.total_time ASC,last_modified ASC,u.userid ASC )as a )as f LEFT JOIN ".TABLE_USER." as u ON f.userid=u.userid LEFT JOIN ".DMS_DEALER." d ON u.dealer_code=d.dealer_code WHERE 1=1 AND d.am_email='".$email."' ".$user_cond.$order_by_cond; // $user_arr=$parent->getQueryValue($get_user_rank_str); // // // $get_user_count_str = "SELECT COUNT(u.userid)as user_count FROM ( SELECT COALESCE(user_score,'0')as user_score,CASE WHEN user_score IS NULL THEN 0 ELSE (user_score/".count($assessment_arr).") END as percentage_score,userid,total_time,last_modified FROM (SELECT SUM(highscore)as user_score,u.userid,COALESCE(ar.total_time,'0')as total_time,MAX(au.modified_on) as last_modified FROM ".TABLE_USER." as u JOIN (SELECT * FROM ".TABLE_ASSESSMENT_USER." WHERE assessmentid IN (".@implode(',',$assessmentid_arr).") AND highscorearid!=0 ) as au ON u.userid=au.userid LEFT JOIN (SELECT SUM(time_taken)as total_time,assessmentid,userid FROM ".TABLE_ASSESSMENTRESULT." WHERE assessmentid IN (".@implode(',',$assessmentid_arr).") GROUP BY userid )as ar ON u.userid=ar.userid WHERE u.role>='3' AND u.is_deleted=0 GROUP BY u.userid ORDER BY user_score DESC,ar.total_time ASC,last_modified ASC,u.userid ASC )as a )as f LEFT JOIN ".TABLE_USER." as u ON f.userid=u.userid LEFT JOIN ".DMS_DEALER." d ON u.dealer_code=d.dealer_code WHERE 1=1 AND d.am_email='".$email."' ".$user_cond." LIMIT 1"; if ($parent->current_user_role == '14') { $area_cond .= " AND u.dealer_code='" . $dealer_code . "'"; } $get_user_rank_str = "SELECT SUM(highscore)as user_score,u.userid,COALESCE(ar.total_time,'0')as total_time,MAX(au.modified_on) as last_modified,u.dealer_code,u.role,d.* FROM " . TABLE_USER . " as u JOIN (SELECT * FROM " . TABLE_ASSESSMENT_USER . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") AND highscorearid!=0 ) as au ON u.userid=au.userid LEFT JOIN (SELECT SUM(time_taken)as total_time,assessmentid,userid FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") GROUP BY userid )as ar ON u.userid=ar.userid " . $join_cond . " WHERE u.role>'7' AND u.role<14 AND u.is_deleted=0 " . $area_cond . " GROUP BY u.userid ORDER BY user_score DESC,ar.total_time ASC,last_modified ASC,u.userid ASC "; $get_user_rank_arr = $parent->getQueryValue($get_user_rank_str); if ($get_user_rank_arr) { foreach ($get_user_rank_arr as $res_user) { $user_data_arr = new stdClass(); $get_time_str = "SELECT * FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") AND userid='" . $res_user->userid . "'"; $get_time_arr = $parent->getQueryValue($get_time_str); $user_data_arr->user = projectfunc::getuserdata($parent, $res_user->userid); $user_data_arr->rank = '0'; $user_data_arr->tot_user_score = (count($get_time_arr) > 0) ? $res_user->user_score : '-'; $user_data_arr->percentage_score = (count($get_time_arr) > 0) ? '0' : '-'; $user_data_arr->total_time = $res_user->total_time; $user_data_arr->last_time = (count($get_time_arr) > 0) ? $res_user->last_modified : '-'; //GET EACH USER COND $getuser_data = projectfunc::getuserdata($parent, $res_user->userid); if ($getuser_data->role) { $user_cond[] = " (a.filter_role LIKE '%" . $getuser_data->role . "%' OR a.filter_role='')"; } if ($getuser_data->zone) { $user_cond[] = " (a.filter_zone LIKE '%" . $getuser_data->zone . "%' OR a.filter_zone='')"; } if ($getuser_data->city) { $user_cond[] = " (a.filter_region LIKE '%" . $getuser_data->city . "%' OR a.filter_region='')"; } if ($getuser_data->dealer_code) { $user_cond[] = " (a.filter_dealer LIKE '%" . $getuser_data->dealer_code . "%' OR a.filter_dealer='')"; } $assess_user_cond = " AND " . @implode(' AND ', $user_cond); $count_assessment_str = "SELECT COUNT(a.assessmentid) as acount FROM `" . TABLE_ASSESSMENT . "` as a WHERE a.status='1' AND a.atype='0' AND a.assettypeid='1' AND a.publisheddate>='" . $start_date . " 00:00:00' AND a.publisheddate<='" . $end_date . " 23:59:59' AND a.enddate>='" . $user_data_arr->user->user_created_on . "' AND assessmentid IN (" . @implode(',', $assessmentid_arr) . ") " . $assess_user_cond . " LIMIT 1"; $count_assessment_arr = $parent->getQueryValue($count_assessment_str); $user_data_arr->percentage_score = (count($assessment_arr) > 0) ? round($res_user->user_score / $count_assessment_arr[0]->acount) : '0'; $user_data_arr->percentage = $user_data_arr->percentage_score; if ((($assessment_count / $count_assessment_arr[0]->acount) * 100) >= MIN_ASSESSMENT_PERCENT) { $data_arr[] = $user_data_arr; } } } if (count($data_arr) > 0) { array_multisort(array_column($data_arr, 'percentage_score'), SORT_DESC, array_column($rank_arr, 'total_time'), SORT_ASC, $rank_arr); $rank = 1; foreach ($data_arr as $key => $res) { $data_arr[$key]->rank = $rank; $rank++; } } if (count($data_arr) > 0) { $outof = count($data_arr); //$user_count_arr=$parent->getQueryValue($get_user_count_str); //$outof=(count($user_count_arr)>0)?$user_count_arr[0]->user_count:'0'; foreach ($data_arr as $res_user) { $i = 0; $row++; if (empty($res_user->smpin)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->smpin); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->fname . " " . $res_user->user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->mobileno); } if (empty($res_user->dealer_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->dealer->dealer_name); } if (empty($res_user->city)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->city); } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->percentage_score . "%"); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rank); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $outof); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->dealer->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->dealer->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->dealer->am_name); } } } } //LOG $logstr = 'ASSESSMENT LEADERBOARD REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('ASSESSMENT LEADERBOARD REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "assessment_leaderboard_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// REGISTRATION REPORT EXPORT //////////////////////////////////////////////// */ private function registrationreportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "REGISTRATION REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":I" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Location', 'Status', 'Registered On', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } if ($parent->current_user_role == '7') { $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $emailid = $userdata->emailid; } else { //AREA MANAGER LEVEL REPORT $role = '7'; //FIELDS VALIDATION $REQUEST_KEYS = array('area' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $area_manager = escape_str($parent->_request["area"]); $emailid = $area_manager; } $user_cond = ""; $dealer_code_cond = ''; switch ($role) { case '3': //HO Manager $user_cond .= ""; break; case '4': //Zonal Manager $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; break; case '5': //Trainer $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.emailid='" . $emailid . "' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $zone_cond .= (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'"; $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . " AND status='1' AND is_deleted='0')"; break; case '6': //Regional Manager $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; break; case '7': //Area Manager if ($parent->current_user_role == '14') { $dealer_code_cond = " AND dealer_code='" . $parent->current_user_data->dealer_code . "'"; } $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $emailid . "' " . $dealer_code_cond . " AND status='1' AND is_deleted='0')"; break; default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); break; } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[0]); $order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location //3-AM //4-RM //5-ZM switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; case '2':$order_by_cond = "ORDER BY d.city,u.fname ASC "; break; case '3':$order_by_cond = "ORDER BY d.am_email,u.fname ASC "; break; case '4':$order_by_cond = "ORDER BY d.rm_email,u.fname ASC "; break; case '5':$order_by_cond = "ORDER BY d.zm_email,u.fname ASC "; break; default:$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (e.fname LIKE '%" . $search_txt . "%' OR e.lname LIKE '%" . $search_txt . "%' OR e.smpin LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } $get_user_str = "SELECT e.`smpin`, e.`emp_code`,e. `fname`,e.`lname`,e.mobile,e.emp_code,u.userid,d.city,u.dealer_code,d.dealer_name,d.zm_name,d.rm_name,d.am_name,l.created_on as register_date,u.userid FROM " . DMS_EMPLOYEE . " e LEFT JOIN " . TABLE_USER . " u ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code LEFT JOIN (SELECT * FROM " . TABLE_USER_LOG . " WHERE module='REGISTER' )as l ON u.userid=l.userid WHERE e.status='1' AND e.smpin!='' " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { $i = 0; $row++; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobile); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->city); $status = ($res_user->userid) ? 'Active' : ''; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $status); $register_date = ($res_user->register_date) ? date('d-m-Y', strtotime($res_user->register_date)) : '-'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $register_date); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } //LOG $logstr = 'REGISTRATION REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('REGISTRATION REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "registration_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// COURSE REPORT EXPORT //////////////////////////////////////////////// */ private function coursereportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "COURSE COMPLETION REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Location', 'Overall Progress %', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } //AREA MANAGER SELF if ($parent->current_user_role == '7') { $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $emailid = $userdata->emailid; } else { //AREA MANAGER LEVEL REPORT $role = '7'; //FIELDS VALIDATION $REQUEST_KEYS = array('area' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $area_manager = escape_str($parent->_request["area"]); $emailid = $area_manager; } $user_cond = ""; $dealer_code_cond = ''; switch ($role) { case '3': //HO Manager $user_cond .= ""; break; case '4': //Zonal Manager $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; break; case '5': //Trainer $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.emailid='" . $emailid . "' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $zone_cond .= (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'"; $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . " AND status='1' AND is_deleted='0')"; break; case '6': //Regional Manager $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; break; case '7': //Area Manager if ($parent->current_user_role == '14') { $dealer_code_cond = " AND dealer_code='" . $parent->current_user_data->dealer_code . "'"; } $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $emailid . "' " . $dealer_code_cond . " AND status='1' AND is_deleted='0')"; break; default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); break; } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[0]); $order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location //3-AM //4-RM //5-ZM switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; case '2':$order_by_cond = "ORDER BY d.city,u.fname ASC "; break; case '3':$order_by_cond = "ORDER BY d.am_email,u.fname ASC "; break; case '4':$order_by_cond = "ORDER BY d.rm_email,u.fname ASC "; break; case '5':$order_by_cond = "ORDER BY d.zm_email,u.fname ASC "; break; default:$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (e.fname LIKE '%" . $search_txt . "%' OR e.lname LIKE '%" . $search_txt . "%' OR e.smpin LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } $get_user_str = "SELECT u.userid,u.fname,u.lname,u.smpin,u.emp_code,u.mobileno,d.city,u.dealer_code,d.dealer_name,d.zm_name,d.rm_name,d.am_name FROM " . TABLE_USER . " u LEFT JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE u.status='1' AND u.is_deleted='0' AND u.role>7 AND u.role<14 " . $user_cond . $order_by_cond . $limit_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { $i = 0; $row++; if (empty($res_user->smpin)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } if (empty($res_user->dealer_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); } if (empty($res_user->city)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->city); } $content_arr = projectfunc::userCourseCompleteStatus($parent, $res_user->userid); $percentage = ($content_arr['total'] > 0) ? round(($content_arr['completed'] / $content_arr['total']) * 100) : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $percentage . "%"); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } } //LOG $logstr = 'COURSE COMPLETION REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('COURSE COMPLETION REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "course_completion_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// SALES TARGET REPORT EXPORT //////////////////////////////////////////////// */ private function salestargetreportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 3); globalfunc::checkAuthrozation($parent, array('type' => 'user')); $year_data = escape_str($parent->params[1]); $last_data = escape_str($parent->params[2]); $last_data_arr = explode('?', $last_data); $month_data = escape_str(trim($last_data_arr[0])); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SALES TARGET REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Location', 'Sales Target', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } //AREA MANAGER SELF if ($parent->current_user_role == '7') { $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $emailid = $userdata->emailid; } else { //AREA MANAGER LEVEL REPORT $role = '7'; //FIELDS VALIDATION $REQUEST_KEYS = array('area' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $area_manager = escape_str($parent->_request["area"]); $emailid = $area_manager; } $user_cond = ""; switch ($role) { case '3': //HO Manager $user_cond .= ""; break; case '4': //Zonal Manager $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; break; case '5': //Trainer $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.emailid='" . $emailid . "' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $zone_cond .= (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'"; $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . " AND status='1' AND is_deleted='0')"; break; case '6': //Regional Manager $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; break; case '7': //Area Manager if ($parent->current_user_role == '14') { $dealer_code_cond = " AND dealer_code='" . $parent->current_user_data->dealer_code . "'"; } $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $emailid . "' " . $dealer_code_cond . " AND status='1' AND is_deleted='0')"; break; default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); break; } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[2]); //SORT $order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location //3-AM //4-RM //5-ZM switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; case '2':$order_by_cond = "ORDER BY d.city,u.fname ASC "; break; case '3':$order_by_cond = "ORDER BY d.am_email,u.fname ASC "; break; case '4':$order_by_cond = "ORDER BY d.rm_email,u.fname ASC "; break; case '5':$order_by_cond = "ORDER BY d.zm_email,u.fname ASC "; break; default:$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (e.fname LIKE '%" . $search_txt . "%' OR e.lname LIKE '%" . $search_txt . "%' OR e.smpin LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } $get_user_str = "SELECT e.`smpin`, e.`emp_code`,e. `fname`,e.`lname`,e.emp_code,u.userid,e.mobileno,d.city,u.dealer_code,d.dealer_name,d.zm_name,d.rm_name,d.am_name FROM " . DMS_EMPLOYEE . " e LEFT JOIN " . TABLE_USER . " u ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.status='1' AND e.smpin!='' " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { $i = 0; $row++; if (empty($res_user->smpin)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } if (empty($res_user->dealer_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); } if (empty($res_user->city)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->city); } //$content_arr=projectfunc::userCourseCompleteStatus($parent,$res_user->userid); //$percentage=($content_arr['total']>0)?round(($content_arr['completed']/$content_arr['total'])*100):'0'; $user_target = projectfunc::userSmpinSalesTarget($parent, $res_user->smpin, '', $year_data, $month_data); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_target); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } } //LOG $logstr = 'SALES TARGET EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('SALES TARGET REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "sales_target_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// SURVEY REPORT EXPORT //////////////////////////////////////////////// */ private function surveyuserreportexport($parent) { globalfunc::checkMethodType($parent, array('GET')); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //FIELDS VALIDATION globalfunc::checkParamCount($parent, 3); $assessmentid = escape_str($parent->params[1]); $userid = escape_str($parent->params[2]); $query_str = "SELECT assessmentid,assessmentname FROM " . TABLE_ASSESSMENT . " WHERE status='1' AND assettypeid='2' AND assessmentid='" . $assessmentid . "' AND publisheddate<='" . NOW . "' LIMIT 1"; $query_arr = $parent->getQueryValue($query_str); if (!count($query_arr) > 0) { $parent->response(array('response' => 'failed', 'message' => $this->page_data["error9"]), 406); } //GET USER ATTENTED $query_assess_str = "SELECT * FROM " . TABLE_ASSESSMENT_USER . " WHERE userid='" . $userid . "' AND assessmentid='" . $assessmentid . "' AND highscorearid!='0' LIMIT 1"; $query_assess_arr = $parent->getQueryValue($query_assess_str); if (!count($query_assess_arr) > 0) { $parent->response(array('response' => 'failed', 'message' => $this->page_data["error10"]), 406); } //GET USER RESULT $query_res_str = "SELECT au.* FROM " . TABLE_ASSESSMENT_USERRESULT . " as au JOIN " . TABLE_ASSESSMENTRESULT . " as ar ON au.arid=ar.arid WHERE au.userid='" . $userid . "' AND au.assessmentid='" . $assessmentid . "' AND au.arid='" . $query_assess_arr[0]->highscorearid . "' GROUP BY au.arid,au.aqid"; $query_assess_res_arr = $parent->getQueryValue($query_res_str); if (!count($query_assess_res_arr) > 0) { $parent->response(array('response' => 'failed', 'message' => $this->page_data["error10"]), 406); } //GET USER $user_data = projectfunc::getuserdata($parent, $userid); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row = 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FEEDBACK REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(12); $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Name : " . $user_data->fname . " " . $user_data->lname); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":C" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("D" . $row)->getFont()->setSize(12); $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, "SMPIN : " . $user_data->smpin); $objPHPExcel->getActiveSheet()->getStyle("D" . $row)->getFont()->setBold(true); $dealer = (isset($user_data->dealer) && count($user_data->dealer) > 0) ? $user_data->dealer->dealer_name . " " . $user_data->dealer->dealer_code : ''; $row += 1; $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(12); $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Dealer : " . $dealer); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":C" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("D" . $row)->getFont()->setSize(12); $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, "Date : " . date('d-m-Y h:i A', strtotime($query_assess_res_arr[0]->created_on))); $objPHPExcel->getActiveSheet()->getStyle("D" . $row)->getFont()->setBold(true); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Sno', 'Question', "Answer"); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('25'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $survey_str = "SELECT * FROM " . TABLE_SURVEY_RATING . " ORDER BY id ASC"; $survey_arr = $parent->getQueryValue($survey_str); if (count($survey_arr) > 0) { foreach ($survey_arr as $skey => $res_survey) { $rating_arr[$res_survey->id] = $res_survey->rating_text; } } if (count($query_assess_res_arr) > 0) { $sno = 1; foreach ($query_assess_res_arr as $res) { $ques_str = "SELECT q.id as qid, q.`questiontypeid`, q.`questiontext`, q.`qimage`, q.`qvideo` FROM " . TABLE_QUESTION . " as q WHERE id='" . $res->qid . "' LIMIT 1"; $ques_arr = $parent->getQueryValue($ques_str); if (count($ques_arr) > 0) { //GET USER ANSWERED OPTIONS $user_answer_str = "SELECT * FROM " . TABLE_ASSESSMENT_USERRESULT . " WHERE userid='" . $userid . "' AND arid='" . $query_assess_arr[0]->highscorearid . "' AND aqid='" . $res->aqid . "'"; $user_answer_arr = $parent->getQueryValue($user_answer_str); $ques_arr[0]->answer = array(); if (count($user_answer_arr) > 0) { foreach ($user_answer_arr as $res_answer) { //GET RATING $ques_arr[0]->survey_text = ''; if ($ques_arr[0]->questiontypeid == '3') { if ($res_answer->survey_rating == $res_survey->score) { $rating = $res_answer->survey_rating; $ques_arr[0]->answer[] = $rating_arr[$rating]; } } elseif ($ques_arr[0]->questiontypeid == '5' || $ques_arr[0]->questiontypeid == '6') { //GET ALL QUESTION OPTIONS if ($res_answer->choiseid) { $ques_option_str = "SELECT op.optid,op.opttext,'0' as selected FROM " . TABLE_QUESTIONOPTION . " as op WHERE op.qid='" . $res->qid . "' AND op.optid='" . $res_answer->choiseid . "' LIMIT 1"; $ques_option_arr = $parent->getQueryValue($ques_option_str); if (count($ques_option_arr) > 0) { $ques_arr[0]->answer[] = $ques_option_arr[0]->opttext; } } } else { $ques_arr[0]->answer[] = ($res_answer->survey_text != '') ? $res_answer->survey_text : ''; } } } $i = 0; $row++; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $ques_arr[0]->questiontext); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, @implode(',', $ques_arr[0]->answer)); } } } //LOG $logstr = 'FEEDBACK REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('FEEDBACK REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "feedback_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// MANAGER TARGET SAMPLE //////////////////////////////////////////////// */ private function managertargetsample($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkAuthrozation($parent, array('type' => 'user')); switch ($parent->current_user_role) { case "14": //Dealer case "7": //Area Manager case "6": //Regional Manager case "5": //Trainer case "4": //Zonal Manager case "3": //HO Manager break; default: $parent->response(array('response' => 'failed', 'message' => $this->page_data["error2"]), 406); break; } //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //GET ALL MODELS $query_str = "SELECT * FROM " . TABLE_MODEL . " WHERE model_is_target='1' AND user_type='0' ORDER BY model_id"; $query_arr = $parent->getQueryValue($query_str); $column_name = getColumnFromNumber(count($query_arr)); //EXCEL HEADER $row = 1; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "TARGET SALES"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":" . strtoupper($column_name) . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(12); $REQUEST_KEYS = array('area' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $area_manager = escape_str($parent->_request["area"]); if ($parent->current_user_role == '14') { $dealer_code = $parent->current_user_data->dealer_code; $dealer_code_cond = " dealer_code='" . $dealer_code . "'"; $query_user_str = "SELECT * FROM `" . DMS_DEALER . "` WHERE " . $dealer_code_cond . " AND status='1' AND is_deleted='0' LIMIT 1"; } else { $query_user_str = "SELECT * FROM `" . DMS_DEALER . "` WHERE am_email='" . $area_manager . "' " . $dealer_code_cond . " AND status='1' AND is_deleted='0' LIMIT 1"; } $query_user_arr = $parent->getQueryValue($query_user_str); if (count($query_user_arr) > 0) { $area_manger_str = $query_user_arr[0]->am_name . ", " . $query_user_arr[0]->am_mobile . " - " . $query_user_arr[0]->am_email; } $row++; if ($parent->current_user_role == '14') { $area_manger_str .= " Dealer : " . $query_user_arr[0]->dealer_name . " " . $query_user_arr[0]->dealer_code; } $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "AREA MANAGER : " . $area_manger_str); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":" . strtoupper($column_name) . $row); //$objPHPExcel->getActiveSheet()->getStyle("A".$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //$objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(12); $row++; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('30'); //SET HEADER $header_arr = array('SMPIN', "NAME", "MOBILE", "DEALER"); if (count($query_arr) > 0) { $i = 4; foreach ($query_arr as $res_val) { $header_arr[] = strtoupper(trim($res_val->model_name)); $column_name = getColumnFromNumber($i++); $column_row = $column_name . $row; $bordercells_arr[] = $column_row; $objPHPExcel->getActiveSheet()->getColumnDimension($column_name)->setWidth('20'); } } $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); if ($parent->current_user_role == '14') { $dealer_code = $parent->current_user_data->dealer_code; $dealer_code_cond = " AND e.dealer_code='" . $dealer_code . "'"; } //GET ALL SMPIN OF $query_user_str = "SELECT e.smpin,e.fname,e.lname,e.mobile,e.dealer_code,d.dealer_name FROM " . DMS_EMPLOYEE . " e JOIN " . TABLE_USER . " u ON u.smpin=e.smpin AND u.role>7 JOIN (SELECT dealer_code,dealer_name FROM " . DMS_DEALER . " WHERE am_email='" . $area_manager . "' AND status='1' AND is_deleted='0' )as d ON d.dealer_code=e.dealer_code WHERE e.status='1' " . $dealer_code_cond; $query_user_arr = $parent->getQueryValue($query_user_str); if (count($query_user_arr) > 0) { foreach ($query_user_arr as $res_user) { $row++; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, $res_user->smpin); $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, $res_user->fname . " " . $res_user->lname); $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, $res_user->mobile); $objPHPExcel->getActiveSheet()->getStyle('C' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, $res_user->dealer_code . " - " . $res_user->dealer_name); $objPHPExcel->getActiveSheet()->getStyle('D' . $row)->getAlignment()->setWrapText(true); } } //LOG $logstr = 'SAMPLE SALES TARGET'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('SALES TARGET'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "sample_sales_target_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// NEW REGISTRATION REPORT EXPORT //////////////////////////////////////////////// */ private function newregistrationreportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 2); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "REGISTRATION REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":I" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); $i = 0; //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', "Segment", 'Dealer Code', 'Dealer Name', 'Status', 'Registered On', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); // SMPIN $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $qry_params = explode("?", $parent->params[1]); $type = strtolower($qry_params[0]); $user_cond = ""; //MANAGER WISE DEALER CONDITION $dealer_cond_arr = $this->getmanagerconditon_arr($parent); if (count($dealer_cond_arr) > 0) { //APPEND prefix array_walk($dealer_cond_arr, function (&$value, $key) {$value = 'd.' . $value;}); $user_cond .= " AND d.status='1' AND d.is_deleted='0' AND " . @implode(" AND ", $dealer_cond_arr); } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[1]); $order_by_cond = "ORDER BY d.dealer_name,e.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location //3-AM //4-RM //5-ZM switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY d.dealer_name,e.fname ASC "; break; case '2':$order_by_cond = "ORDER BY d.city,e.fname ASC "; break; case '3':$order_by_cond = "ORDER BY d.am_email,e.fname ASC "; break; case '4':$order_by_cond = "ORDER BY d.rm_email,e.fname ASC "; break; case '5':$order_by_cond = "ORDER BY d.zm_email,e.fname ASC "; break; default:$order_by_cond = "ORDER BY d.dealer_name,e.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (e.fname LIKE '%" . $search_txt . "%' OR e.lname LIKE '%" . $search_txt . "%' OR e.smpin LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } $user_cond .= " AND e.is_current='1' "; //AND u.status=1 //$get_user_str="SELECT e.`smpin`, e.`emp_code`,e. `fname`,e.`lname`,e.mobile,e.emp_code,u.userid,d.city,u.dealer_code,d.dealer_name,d.zm_name,d.rm_name,d.am_name,l.created_on as register_date,u.userid FROM ".DMS_EMPLOYEE." e LEFT JOIN ".TABLE_USER." u ON u.smpin=e.smpin LEFT JOIN ".DMS_DEALER." d ON e.dealer_code=d.dealer_code LEFT JOIN (SELECT * FROM ".TABLE_USER_LOG." WHERE module='REGISTER' )as l ON u.userid=l.userid WHERE e.status='1' AND u.is_deleted=0 AND e.smpin!='' ".$user_cond.$order_by_cond; $get_user_str = "SELECT e.`smpin`, e.`emp_code`,e. `fname`,e.`lname`,e.mobile,e.emp_code,e.segment,u.userid,d.city,d.dealer_code,d.dealer_name,d.zm_name,d.rm_name,d.am_name,u.created_on as register_date,u.userid,u.status FROM " . DMS_EMPLOYEE . " e LEFT JOIN " . TABLE_USER . " u ON u.smpin=e.smpin AND u.is_deleted=0 LEFT JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.status='1' AND e.smpin!='' " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); // SMPIN $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); if (empty($res_user->mobile)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobile); } switch ($res_user->segment) { case '0':$segment_str = '-'; break; case '1':$segment_str = 'Motorcycle'; break; case '2':$segment_str = 'Scooter'; break; default:$segment_str = '-'; break; } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str); $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); if ($res_user->userid > 0) { $status = ($res_user->status == '1') ? 'Active' : 'Inactive'; } else { $status = "Not registered"; } if (empty($status)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $status); } $register_date = ($res_user->register_date) ? date('d-m-Y', strtotime($res_user->register_date)) : '-'; if ($register_date == '-') { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $register_date); } if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } //projectfunc::highlighRows($bordercells_arr,$objPHPExcel); } //LOG $logstr = 'REGISTRATION REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('REGISTRATION REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "registration_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// NEW COURSE REPORT EXPORT //////////////////////////////////////////////// */ private function newcoursereportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 2); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "COURSE COMPLETION REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Segment', 'Mobile', 'Dealer Code', 'Dealer Name', 'Overall Progress %', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //seg $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //mob $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //dealer $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $qry_params = explode("?", $parent->params[1]); $type = strtolower($qry_params[0]); $user_cond = ""; //MANAGER WISE DEALER CONDITION $dealer_cond_arr = $this->getmanagerconditon_arr($parent); if (count($dealer_cond_arr) > 0) { //APPEND prefix array_walk($dealer_cond_arr, function (&$value, $key) {$value = 'd.' . $value;}); $user_cond .= " AND d.status='1' AND d.is_deleted='0' AND " . @implode(" AND ", $dealer_cond_arr); } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[1]); $order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location //3-AM //4-RM //5-ZM switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; case '2':$order_by_cond = "ORDER BY d.city,u.fname ASC "; break; case '3':$order_by_cond = "ORDER BY d.am_email,u.fname ASC "; break; case '4':$order_by_cond = "ORDER BY d.rm_email,u.fname ASC "; break; case '5':$order_by_cond = "ORDER BY d.zm_email,u.fname ASC "; break; default:$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (e.fname LIKE '%" . $search_txt . "%' OR e.lname LIKE '%" . $search_txt . "%' OR e.smpin LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } $user_cond .= " AND e.is_current='1' "; // u.status='1' AND $get_user_str = "SELECT u.userid,u.fname,u.lname,u.smpin,u.emp_code,u.mobileno,u.segment,d.city,u.dealer_code,d.dealer_name,d.zm_name,d.rm_name,d.am_name,e.segment FROM " . TABLE_USER . " u LEFT JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE u.is_deleted='0' AND u.role>7 AND u.role<14 " . $user_cond . $order_by_cond . $limit_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); switch ($res_user->segment) { case '0':$segment_str = '-'; break; case '1':$segment_str = 'Motorcycle'; break; case '2':$segment_str = 'Scooter'; break; default:$segment_str = '-'; break; } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str); if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); $content_arr = projectfunc::userSegmentCourseCompleteStatus($parent, $res_user->userid, $res_user->segment); $percentage = ($content_arr['total'] > 0) ? round(($content_arr['completed'] / $content_arr['total']) * 100) : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $percentage . "%"); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } } //LOG $logstr = 'COURSE COMPLETION REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('COURSE COMPLETION REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "course_completion_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// NEW SALES REPORT EXPORT //////////////////////////////////////////////// */ private function newsalesreportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 4); globalfunc::checkAuthrozation($parent, array('type' => 'user')); $year_data = escape_str($parent->params[1]); $last_data = escape_str($parent->params[2]); $last_data_arr = explode('?', $last_data); $month_data = escape_str(trim($last_data_arr[0])); //$limit_str=globalfunc::setPageLimit($parent,$parent->params[2]); //$limit_cond=($limit_str)?" LIMIT ".$limit_str:''; //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row = 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Month & Year: " . date('M Y', strtotime($year_data . "-" . $month_data . "-01"))); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":C" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SALES REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":J" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; //$bordercells_arr=array("A".$row,"B".$row,"C".$row,"D".$row,"E".$row,"F".$row,"G".$row,"H".$row,"I".$row,"J".$row); //projectfunc::setCellBorder($bordercells_arr,$objPHPExcel); //$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER //$header_arr=array('SMPIN', 'DSE Name','Mobile','Dealer Name','Location','Target','Achieved','Percentage'); $header_arr = array('SMPIN', 'DSE Name', 'Segment', "Mobile", 'Dealer Code', 'Dealer Name', 'Target', 'Achieved', 'Percentage'); //GET MODEL $query_modelarr = $parent->selectQuery(TABLE_MODEL, "model_id, model_name,segment", "model_is_target=1 AND user_type=0 ORDER BY model_id", ""); if ($query_modelarr['nr']) { foreach ($query_modelarr['result'] as $res_model) { //$header_arr[]=$res_model->model_name." (Achieved/Target)"; $header_arr[] = $res_model->model_name . " \n Target"; $header_arr[] = $res_model->model_name . " \n Achieved"; $header_arr[] = $res_model->model_name . " \n %"; } } $header_arr[] = 'ZM'; $header_arr[] = 'RM'; $header_arr[] = 'AM'; $i = 0; $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //smpin $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //segm $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //mo $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //dealer $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); //dealer name $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); if ($query_modelarr['nr']) { foreach ($query_modelarr['result'] as $res_model) { $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); } } $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); $m = $i - 1; $bordercells_arr[] = getColumnFromNumber($m) . $row; } projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); $user_cond = ""; $qry_params = explode("?", $parent->params[3]); $type = strtolower($qry_params[0]); //MANAGER WISE DEALER CONDITION $dealer_cond_arr = $this->getmanagerconditon_arr($parent); if (count($dealer_cond_arr) > 0) { //APPEND prefix array_walk($dealer_cond_arr, function (&$value, $key) {$value = 'd.' . $value;}); $user_cond .= " AND d.status='1' AND d.is_deleted='0' AND " . @implode(" AND ", $dealer_cond_arr); } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[3]); $order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location //3-AM //4-RM //5-ZM switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; case '2':$order_by_cond = "ORDER BY d.city,u.fname ASC "; break; case '3':$order_by_cond = "ORDER BY d.am_email,u.fname ASC "; break; case '4':$order_by_cond = "ORDER BY d.rm_email,u.fname ASC "; break; case '5':$order_by_cond = "ORDER BY d.zm_email,u.fname ASC "; break; default:$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; } } //GET ROLE $role_data = array(); $role_arr = $parent->getQueryValue("SELECT rolename FROM " . TABLE_ROLE . " WHERE status=1 AND id>7 AND id<14 "); if (count($role_arr) > 0) { foreach ($role_arr as $res) { $role_data[] = "'" . $res->rolename . "'"; } } else { $role_data[] = ''; } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (e.fname LIKE '%" . $search_txt . "%' OR e.lname LIKE '%" . $search_txt . "%' OR e.smpin LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } // u.status='1' AND $is_history = (isset($parent->_request["is_history"]) && $parent->_request["is_history"] == 1) ? "1" : "0"; if ($is_history == 0) { $user_cond .= " AND e.is_current='1' AND e.status=1 "; } else { $user_cond .= " AND e.status=1 "; } $get_user_str = "SELECT e.fname,e.lname,e.smpin,e.emp_code,e.mobile,e.mobile AS mobileno,e.segment,d.city,e.dealer_code,d.dealer_name,d.zm_name,d.rm_name,d.am_name FROM " . DMS_EMPLOYEE . " e LEFT JOIN " . TABLE_USER . " u ON e.smpin=u.smpin LEFT JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.role IN (" . @implode(',', $role_data) . ") " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { //'SMPIN', 'DSE Name','Segment',"Mobile",'Dealer Code','Dealer Name','Target','Achieved','Percentage' //TARGET $user_target = projectfunc::userSmpinSalesTarget($parent, $res_user->smpin, '', $year_data, $month_data); //ACHIEVED $user_achieved = projectfunc::userSmpinSalesAchieved($parent, $res_user->smpin, '', $year_data, $month_data); $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); switch ($res_user->segment) { case '0':$segment_str = '-'; break; case '1':$segment_str = 'Motorcycle'; break; case '2':$segment_str = 'Scooter'; break; default:$segment_str = '-'; break; } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str); if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_target); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_achieved); $percentage = ($user_target > 0) ? round(($user_achieved / $user_target) * 100) : 0; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $percentage); if ($query_modelarr['nr']) { foreach ($query_modelarr['result'] as $res_model) { $model_user_target = projectfunc::userSmpinSalesTarget($parent, $res_user->smpin, $res_model->model_name, $year_data, $month_data); //ACHIEVED $model_user_achieved = projectfunc::userSmpinSalesAchieved($parent, $res_user->smpin, $res_model->model_name, $year_data, $month_data); //$objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$model_user_achieved."/".$model_user_target); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $model_user_target); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $model_user_achieved); $modelpercentage = ($model_user_target > 0) ? round(($model_user_achieved / $model_user_target) * 100) : 0; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $modelpercentage); } } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } //LOG $logstr = 'MANAGER SALES REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('MANAGER SALES REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "manager_sales_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// NEW CERTIFIED DSE REPORT EXPORT //////////////////////////////////////////////// */ private function newcertifieddsereportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 2); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "CERTIFIED DSE REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row, "N" . $row, "O" . $row, "P" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER //$header_arr=array('SMPIN','DSE Name','Mobile','Dealer Name','Location','Certification','ZM','RM','AM'); $header_arr = array('SMPIN', 'DSE Name', "Segment", 'Mobile', 'Dealer Code', 'Dealer Name', 'Base', 'Bronze', 'Bronze Level 2 Status', 'Silver Level 1 Status', 'Silver Level 2 Status', 'Gold Level 1 Status', 'Gold Level 2 Status', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { // $i=($i=='6')?'9':$i; // if($i==5) // { // $objPHPExcel->getActiveSheet()->mergeCells("F".$row.":I".$row); // $objPHPExcel->getActiveSheet()->getStyle("F".$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $qry_params = explode("?", $parent->params[1]); $type = strtolower($qry_params[0]); $user_cond = ""; //MANAGER WISE DEALER CONDITION $dealer_cond_arr = $this->getmanagerconditon_arr($parent); if (count($dealer_cond_arr) > 0) { //APPEND prefix array_walk($dealer_cond_arr, function (&$value, $key) {$value = 'd.' . $value;}); $user_cond .= " AND d.status='1' AND d.is_deleted='0' AND " . @implode(" AND ", $dealer_cond_arr); } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[1]); $order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location //3-AM //4-RM //5-ZM switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; case '2':$order_by_cond = "ORDER BY d.city,u.fname ASC "; break; case '3':$order_by_cond = "ORDER BY d.am_email,u.fname ASC "; break; case '4':$order_by_cond = "ORDER BY d.rm_email,u.fname ASC "; break; case '5':$order_by_cond = "ORDER BY d.zm_email,u.fname ASC "; break; default:$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.emp_code LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } $user_cond .= " AND e.is_current='1' "; //u.status='1' ANDu $get_user_str = "SELECT u.userid,u.fname,u.lname,u.smpin,u.emp_code,u.mobileno,u.segment,d.city,u.dealer_code,d.dealer_name,d.zm_name,d.rm_name,d.am_name FROM " . TABLE_USER . " u LEFT JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE u.is_deleted='0' AND u.role>7 AND u.role<14 " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { $learning_arr = projectfunc::userLearningLevel($parent, $res_user->userid); //0-Not Started Grey //1-Current Orange //2-Failed Red, //3-Completed Green $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); switch ($res_user->segment) { case '0':$segment_str = '-'; break; case '1':$segment_str = 'Motorcycle'; break; case '2':$segment_str = 'Scooter'; break; default:$segment_str = '-'; break; } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str); if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } //'SMPIN','DSE Name',"Segment",'Mobile','Dealer Code','Dealer Name','Base','Bronze','Bronze Level 2 Status','Silver Level 1 Status','Silver Level 2 Status','Gold Level 1 Status','Gold Level 2 Status','ZM','RM','AM' $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); switch ($learning_arr['basic']) { case "0":$base_lvl1_str = 'Not Started'; $base_lvl2_str = 'Not Started'; break; case "6":$base_lvl1_str = 'Failed'; $base_lvl2_str = 'Not Started'; break; case "7":$base_lvl1_str = 'Completed'; $base_lvl2_str = 'Not Started'; break; // same case "4":$base_lvl1_str = 'Completed'; $base_lvl2_str = 'Not Started'; break; // same case "2":$base_lvl1_str = 'Completed'; $base_lvl2_str = 'Failed'; break; case "3":$base_lvl1_str = 'Completed'; $base_lvl2_str = 'Completed'; break; default:$base_lvl1_str = 'Not Started'; $base_lvl2_str = 'Not Started'; break; } switch ($learning_arr['bronze']) { case "0":$bronze_lvl1_str = 'Not Started'; $bronze_lvl2_str = 'Not Started'; break; case "6":$bronze_lvl1_str = 'Failed'; $bronze_lvl2_str = 'Not Started'; break; case "7":$bronze_lvl1_str = 'Completed'; $bronze_lvl2_str = 'Not Started'; break; // same case "4":$bronze_lvl1_str = 'Completed'; $bronze_lvl2_str = 'Not Started'; break; // same case "2":$bronze_lvl1_str = 'Completed'; $bronze_lvl2_str = 'Failed'; break; case "3":$bronze_lvl1_str = 'Completed'; $bronze_lvl2_str = 'Completed'; break; default:$bronze_lvl1_str = 'Not Started'; $bronze_lvl2_str = 'Not Started'; break; } switch ($learning_arr['silver']) { case "0":$silver_lvl1_str = 'Not Started'; $silver_lvl2_str = 'Not Started'; break; case "6":$silver_lvl1_str = 'Failed'; $silver_lvl2_str = 'Not Started'; break; case "7":$silver_lvl1_str = 'Completed'; $silver_lvl2_str = 'Not Started'; break; // same case "4":$silver_lvl1_str = 'Completed'; $silver_lvl2_str = 'Not Started'; break; // same case "2":$silver_lvl1_str = 'Completed'; $silver_lvl2_str = 'Failed'; break; case "3":$silver_lvl1_str = 'Completed'; $silver_lvl2_str = 'Completed'; break; default:$silver_lvl1_str = 'Not Started'; $silver_lvl2_str = 'Not Started'; break; } switch ($learning_arr['gold']) { case "0":$gold_lvl1_str = 'Not Started'; $gold_lvl2_str = 'Not Started'; break; case "6":$gold_lvl1_str = 'Failed'; $gold_lvl2_str = 'Not Started'; break; case "7":$gold_lvl1_str = 'Completed'; $gold_lvl2_str = 'Not Started'; break; // same case "4":$gold_lvl1_str = 'Completed'; $gold_lvl2_str = 'Not Started'; break; // same case "2":$gold_lvl1_str = 'Completed'; $gold_lvl2_str = 'Failed'; break; case "3":$gold_lvl1_str = 'Completed'; $gold_lvl2_str = 'Completed'; break; default:$gold_lvl1_str = 'Not Started'; $gold_lvl2_str = 'Not Started'; break; } //$objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$base_lvl1_str); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $base_lvl2_str); //$objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$bronze_lvl1_str); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $bronze_lvl2_str); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $silver_lvl1_str); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $silver_lvl2_str); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $gold_lvl1_str); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $gold_lvl2_str); // $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i).$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i).$row)->getFont()->setBold(true); // $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i).$row)->getFont()->setSize(14)->getColor()->setRGB($this->certifieddsecolor($parent,$learning_arr['basic'])); // $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,'B'); // // $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i).$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i).$row)->getFont()->setBold(true); // $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i).$row)->getFont()->setSize(14)->getColor()->setRGB($this->certifieddsecolor($parent,$learning_arr['bronze'])); // $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,'B'); // $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i).$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i).$row)->getFont()->setBold(true); // $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i).$row)->getFont()->setSize(14)->getColor()->setRGB($this->certifieddsecolor($parent,$learning_arr['silver'])); // $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,'S'); // $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i).$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i).$row)->getFont()->setBold(true); // $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($i).$row)->getFont()->setSize(14)->getColor()->setRGB($this->certifieddsecolor($parent,$learning_arr['gold'])); // $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,'G'); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } } //LOG $logstr = 'CERTIFIED DSE REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('CERTIFIED DSE REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "certified_dse_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// ASSESSMENT REPORT EXPORT //////////////////////////////////////////////// */ private function newassessmentreportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 2); globalfunc::checkAuthrozation($parent, array('type' => 'user')); projectfunc::authorizedRole($parent, array('3', '4', '5', '6', '7', '14')); //FIELDS VALIDATION $REQUEST_KEYS = array('assessmentid' => 'integer'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $assessmentid = escape_str($parent->_request["assessmentid"]); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $assessment_str = "SELECT assessmentname,pass_score FROM " . TABLE_ASSESSMENT . " WHERE assessmentid='" . $assessmentid . "' LIMIT 1"; $assessment_arr = $parent->getQueryValue($assessment_str); $assessmentname = (count($assessment_arr) > 0) ? $assessment_arr[0]->assessmentname : ''; $pass_score = $assessment_arr[0]->pass_score; //EXCEL HEADER $row = 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Assessment : " . $assessmentname); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $row++; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Passing Percentage : " . $pass_score . "%"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":L" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, 'L' . $row, 'M' . $row, 'N' . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', "Segment", 'Mobile', 'Dealer Code', 'Dealer Name', 'Score', 'Timetaken in Minutes', 'Completed Time', 'Result', 'ZM', 'RM', 'AM', 'Zone'); $i = 0; $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //seg $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //mon $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('10'); //score $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $user_cond = ""; $dealer_code_cond = ''; $qry_params = explode("?", $parent->params[1]); $type = strtolower($qry_params[0]); $user_cond = ""; $zm_email = escape_str($parent->_request["zmemail"]); $rm_email = escape_str($parent->_request["rmemail"]); $am_email = escape_str($parent->_request["amemail"]); //MANAGER WISE DEALER CONDITION $dealer_cond_arr = $this->getmanagerconditon_arr($parent); if (count($dealer_cond_arr) > 0) { //APPEND prefix array_walk($dealer_cond_arr, function (&$value, $key) {$value = 'd.' . $value;}); $user_cond .= " AND d.status='1' AND d.is_deleted='0' AND " . @implode(" AND ", $dealer_cond_arr); } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[1]); $order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location //3-AM //4-RM //5-ZM switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; case '2':$order_by_cond = "ORDER BY d.city,u.fname ASC "; break; case '3':$order_by_cond = "ORDER BY d.am_email,u.fname ASC "; break; case '4':$order_by_cond = "ORDER BY d.rm_email,u.fname ASC "; break; case '5':$order_by_cond = "ORDER BY d.zm_email,u.fname ASC "; break; default:$order_by_cond = "ORDER BY au.highscore DESC,au.modified_on ASC,d.dealer_name,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.emp_code LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } $dse_cond = (isset($parent->_request["is_idse"]) && $parent->_request["is_idse"] !== '1') ? " AND u.role='15'" : "AND u.role>7 AND u.role<14"; $user_cond .= " AND e.is_current='1' "; $get_user_str = "SELECT u.userid,u.fname,u.lname,u.smpin,u.emp_code,u.mobileno,d.city,u.dealer_code,u.segment,d.dealer_name,d.zm_name,d.rm_name,d.am_name,d.zone FROM " . TABLE_USER . " u JOIN " . TABLE_ASSESSMENT_USER . " as au ON u.userid=au.userid LEFT JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE u.is_deleted='0' " . $dse_cond . " AND au.assessmentid='" . $assessmentid . "' " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); switch ($res_user->segment) { case '0':$segment_str = '-'; break; case '1':$segment_str = 'Motorcycle'; break; case '2':$segment_str = 'Scooter'; break; default:$segment_str = '-'; break; } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str); if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); $exam_highscore_str = "SELECT * FROM " . TABLE_ASSESSMENT_USER . " WHERE assessmentid='" . $assessmentid . "' AND userid='" . $res_user->userid . "' LIMIT 1"; $exam_highscore_arr = $parent->getQueryValue($exam_highscore_str); $highscore = (count($exam_highscore_arr) > 0) ? $exam_highscore_arr[0]->highscore : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $highscore . "%"); // $header_arr=array('SMPIN','DSE Name','Mobile','Dealer Name','Location','Score','Timetaken in Minutes','Result','Completed Time','ZM','RM','AM','Zone'); $timetaken = ''; $completedtime = ''; if (count($exam_highscore_arr) > 0) { $exam_result_highscore_str = "SELECT * FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid='" . $assessmentid . "' AND arid='" . $exam_highscore_arr[0]->highscorearid . "' LIMIT 1"; $exam_result_highscore_arr = $parent->getQueryValue($exam_result_highscore_str); $timetaken = (count($exam_result_highscore_arr) > 0 && isset($exam_result_highscore_arr[0]->time_taken)) ? round($exam_result_highscore_arr[0]->time_taken / 60) : "0"; $completedtime = (count($exam_result_highscore_arr) > 0 && isset($exam_result_highscore_arr[0]->modified_on)) ? date('d-m-Y h:i A', strtotime($exam_result_highscore_arr[0]->modified_on)) : "-"; } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $timetaken); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $completedtime); $result_str = ($highscore >= $pass_score) ? "Pass" : "Fail"; $column_str = getColumnFromNumber($i++) . $row; if ($result_str == 'Pass') { $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("008000"); } else { $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000"); } $objPHPExcel->getActiveSheet()->SetCellValue($column_str, $result_str); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } if (empty($res_user->zone)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone); } } } //LOG $logstr = 'ASSESSMENT REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('ASSESSMENT REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "assessment_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// NEW SALES TARGET REPORT EXPORT //////////////////////////////////////////////// */ private function newsalestargetreportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 4); globalfunc::checkAuthrozation($parent, array('type' => 'user')); $year_data = escape_str($parent->params[1]); $last_data = escape_str($parent->params[2]); $last_data_arr = explode('?', $last_data); $month_data = escape_str(trim($last_data_arr[0])); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SALES TARGET REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Location', 'Sales Target', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $dealer_code_cond = ''; $qry_params = explode("?", $parent->params[3]); $type = strtolower($qry_params[0]); $user_cond = ""; switch ($type) { case "zm": if ($parent->current_user_role == '3') { $REQUEST_KEYS = array('zmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["zmemail"]); if ($emailid != 'all') { $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $emailid . "' AND status=1 AND is_deleted=0)"; } else { $user_cond .= ""; } } else { $parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); } break; case "rm": if ($parent->current_user_role < '7') { if ($parent->current_user_role == '5') { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["rmemail"]); $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $zone_cond .= (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'"; if ($emailid == 'all') { $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . " AND status=1 AND is_deleted=0)"; } else { $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $emailid . "' AND " . $zone_cond . " AND status=1 AND is_deleted=0)"; } } else { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["rmemail"]); if ($emailid == 'all') { $REQUEST_KEYS = array('zmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["zmemail"]); $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $emailid . "' AND status=1 AND is_deleted=0)"; } else { //ZM EMAIL $zmemail = escape_str($parent->_request["zmemail"]); $zmcond = ($zmemail != 'all' && $zmemail != '') ? " AND zm_email='" . $zmemail . "'" : ''; $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $emailid . "' " . $zmcond . " AND status=1 AND is_deleted=0)"; } } } else { $parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); } break; case "am": if ($parent->current_user_role == '14') { $dealer_code_cond = " dealer_code='" . $parent->current_user_data->dealer_code . "'"; } else { $REQUEST_KEYS = array('amemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["amemail"]); if ($emailid == 'all') { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["rmemail"]); $dealer_code_cond = " rm_email='" . $emailid . "'"; } else { $dealer_code_cond = " am_email='" . $emailid . "'"; } if ($parent->current_user_role != '5') { //ZM EMAIL $zmemail = escape_str($parent->_request["zmemail"]); $zmcond = ($zmemail != 'all' && $zmemail != '') ? " AND zm_email='" . $zmemail . "'" : ''; $dealer_code_cond .= $zmcond; } //RM EMAIL $rmemail = escape_str($parent->_request["rmemail"]); $rmcond = ($rmemail != 'all' && $rmemail != '') ? " AND rm_email='" . $rmemail . "'" : ''; $dealer_code_cond .= $rmcond; //TRAINER if ($parent->current_user_role == '5') { $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $dealer_code_cond .= (count($trainer_arr) > 0) ? "AND zone='" . $trainer_arr[0]->zone . "'" : "AND zone='0'"; } } $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $dealer_code_cond . " AND status='1' AND is_deleted='0')"; break; default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); break; } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[3]); //SORT $order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Location //3-AM //4-RM //5-ZM switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; case '2':$order_by_cond = "ORDER BY d.city,u.fname ASC "; break; case '3':$order_by_cond = "ORDER BY d.am_email,u.fname ASC "; break; case '4':$order_by_cond = "ORDER BY d.rm_email,u.fname ASC "; break; case '5':$order_by_cond = "ORDER BY d.zm_email,u.fname ASC "; break; default:$order_by_cond = "ORDER BY d.dealer_name,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (e.fname LIKE '%" . $search_txt . "%' OR e.lname LIKE '%" . $search_txt . "%' OR e.smpin LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } $user_cond .= " AND e.is_current='1' "; $get_user_str = "SELECT e.`smpin`, e.`emp_code`,e. `fname`,e.`lname`,e.emp_code,e.mobile,u.userid,d.city,u.dealer_code,d.dealer_name,d.zm_name,d.rm_name,d.am_name FROM " . DMS_EMPLOYEE . " e LEFT JOIN " . TABLE_USER . " u ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.status='1' AND e.smpin!='' " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); if (empty($res_user->smpin)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobile)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobile); } if (empty($res_user->dealer_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); } if (empty($res_user->city)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->city); } //$content_arr=projectfunc::userCourseCompleteStatus($parent,$res_user->userid); //$percentage=($content_arr['total']>0)?round(($content_arr['completed']/$content_arr['total'])*100):'0'; $user_target = projectfunc::userSmpinSalesTarget($parent, $res_user->smpin, '', $year_data, $month_data); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_target); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } } //LOG $logstr = 'SALES TARGET EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('SALES TARGET REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "sales_target_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// SALES LEADERBOARD REPORT EXPORT //////////////////////////////////////////////// */ private function newsalesleaderboardexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 4); globalfunc::checkAuthrozation($parent, array('type' => 'user')); // //FIELDS VALIDATION // $REQUEST_KEYS=array('email'=>'string'); // globalfunc::mandatoryKey($parent,$REQUEST_KEYS); // $email = escape_str($parent->_request["email"]); $year_data = escape_str($parent->params[1]); $last_data = escape_str($parent->params[2]); $last_data_arr = explode('?', $last_data); $month_data = escape_str(trim($last_data_arr[0])); $qry_params = explode("?", $parent->params[3]); $type = strtolower($qry_params[0]); $dealer_cond = ""; switch ($type) { case "zm": if ($parent->current_user_role == '3') { $REQUEST_KEYS = array('zmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["zmemail"]); if ($emailid != 'all') { //$dealer_cond.=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE zm_email='". $emailid."')"; $dealer_cond .= " AND d.zm_email='" . $emailid . "'"; } else { $dealer_cond .= ""; } } else { $parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); } break; case "rm": if ($parent->current_user_role < '7') { if ($parent->current_user_role == '5') { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $zone_cond .= (count($trainer_arr) > 0) ? " d.zone='" . $trainer_arr[0]->zone . "'" : " d.zone='0'"; $emailid = escape_str($parent->_request["rmemail"]); if ($emailid == 'all') { //$user_cond.=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE ".$zone_cond.")"; $dealer_cond .= " AND " . $zone_cond; } else { //$user_cond.=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE rm_email='".$emailid."')"; $dealer_cond .= "AND d.rm_email='" . $emailid . "' AND " . $zone_cond . ""; } } else { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["rmemail"]); if ($emailid == 'all') { $REQUEST_KEYS = array('zmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["zmemail"]); //$user_cond.=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE zm_email='". $emailid."')"; $dealer_cond .= " AND d.zm_email='" . $emailid . "'"; } else { //ZM EMAIL $zmemail = escape_str($parent->_request["zmemail"]); $zmcond = ($zmemail != 'all' && $zmemail != '') ? " AND d.zm_email='" . $zmemail . "'" : ''; //$user_cond.=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE rm_email='".$emailid."')"; $dealer_cond .= " AND d.rm_email='" . $emailid . "' " . $zmcond . ""; } } } else { $parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); } break; case "am": if ($parent->current_user_role == '14') { $dealer_code_cond = " d.dealer_code='" . $parent->current_user_data->dealer_code . "'"; } else { $REQUEST_KEYS = array('amemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["amemail"]); if ($emailid == 'all') { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["rmemail"]); $dealer_code_cond = " d.rm_email='" . $emailid . "'"; } else { $dealer_code_cond = " d.am_email='" . $emailid . "'"; } if ($parent->current_user_role != '5') { //ZM EMAIL $zmemail = escape_str($parent->_request["zmemail"]); $zmcond = ($zmemail != 'all' && $zmemail != '') ? " AND d.zm_email='" . $zmemail . "'" : ''; $dealer_code_cond .= $zmcond; } //RM EMAIL $rmemail = escape_str($parent->_request["rmemail"]); $rmcond = ($rmemail != 'all' && $rmemail != '') ? " AND d.rm_email='" . $rmemail . "'" : ''; $dealer_code_cond .= $rmcond; //TRAINER if ($parent->current_user_role == '5') { $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $dealer_code_cond .= (count($trainer_arr) > 0) ? "AND d.zone='" . $trainer_arr[0]->zone . "'" : "AND d.zone='0'"; } } //$user_cond.=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE ".$dealer_code_cond.")"; $dealer_cond .= " AND " . $dealer_code_cond; break; default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); break; } //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row = 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Month & Year: " . date('M Y', strtotime($year_data . "-" . $month_data . "-01"))); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":D" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SALES LEADERBOARD REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":M" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Location', 'Sales', 'Sales Target', 'Sales Achvt', 'Rank', 'OutOf', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $user_cond = ""; $filter_arr = globalfunc::getFilterValues($parent, $parent->params[2]); $order_by_cond = " ORDER BY f.rank,d.dealer_name ASC"; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Rank switch ($filter_arr['sort']) { case '1':$order_by_cond = " ORDER BY d.dealer_name,f.rank ASC "; break; case '2':$order_by_cond = " ORDER BY f.rank,d.dealer_name ASC "; break; default:$order_by_cond = " ORDER BY f.rank,d.dealer_name ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.emp_code LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } if ($parent->current_user_role == '14') { $user_cond .= " AND u.dealer_code='" . $dealer_code . "'"; } //GET MONTH RANGE $start_date = date('Y-m-d', strtotime($year_data . "-" . $month_data . "-01")); $end_date = date('Y-m-t', strtotime($year_data . "-" . $month_data . "-01")); $parent->executeQuery("SET @rownum := 0"); $get_user_str = "SELECT f.*,u.fname,u.lname,u.mobileno,d.* FROM (SELECT @rownum := @rownum + 1 AS rank, salecount,targetcount,smpin,userid,last_sale,first_sale,sale_per FROM (SELECT c.*, CASE WHEN targetcount=0 THEN 0 ELSE (salecount/targetcount)*100 END as 'sale_per' FROM ( SELECT a.userid,a.smpin,a.salecount,b.targetcount,a.last_sale,a.first_sale FROM (SELECT COALESCE(COUNT(s.id),'0') as scount, COALESCE(SUM(s.sales_count),'0') as salecount, u.smpin,u.userid,MAX(s.sale_date) last_sale,MIN(s.sale_date) first_sale FROM " . TABLE_USER . " as u LEFT JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code LEFT JOIN (SELECT id,smpin,sale_date,sales_count FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $start_date . "' AND sale_date<='" . $end_date . "') as s ON s.smpin=u.smpin WHERE u.is_deleted=0 AND u.role>7 AND u.role<14 AND e.is_current='1' " . $dealer_cond . " GROUP BY u.smpin ) as a JOIN (SELECT COALESCE(SUM(t.target),'0') as targetcount,u.smpin,u.userid FROM " . TABLE_USER . " as u LEFT JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code LEFT JOIN (SELECT id,smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $start_date . "' AND sale_month<='" . $end_date . "')as t ON t.smpin=u.smpin WHERE u.is_deleted=0 AND u.role>7 AND u.role<14 AND e.is_current='1' " . $dealer_cond . " GROUP BY u.smpin ) as b ON a.userid=b.userid )c ORDER BY cast(sale_per as SIGNED) DESC,cast(salecount as SIGNED) DESC,cast(targetcount as SIGNED) DESC,last_sale ASC,first_sale ASC,userid ASC)as a )as f JOIN " . TABLE_USER . " as u ON f.userid=u.userid LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE 1=1 " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); $get_user_count_str = "SELECT COUNT(u.userid)as user_count FROM (SELECT salecount,targetcount,smpin,userid,last_sale,first_sale,sale_per FROM (SELECT c.*, CASE WHEN targetcount=0 THEN 0 ELSE (salecount/targetcount)*100 END as 'sale_per' FROM ( SELECT a.userid,a.smpin,a.salecount,b.targetcount,a.last_sale,a.first_sale FROM (SELECT COALESCE(COUNT(s.id),'0') as scount, COALESCE(SUM(s.sales_count),'0') as salecount, u.smpin,u.userid,MAX(s.sale_date) last_sale,MIN(s.sale_date) first_sale FROM " . TABLE_USER . " as u LEFT JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code LEFT JOIN (SELECT id,smpin,sale_date,sales_count FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $start_date . "' AND sale_date<='" . $end_date . "') as s ON s.smpin=u.smpin WHERE u.is_deleted=0 AND u.role>7 AND u.role<14 AND e.is_current='1' " . $dealer_cond . " GROUP BY u.smpin ) as a JOIN (SELECT COALESCE(SUM(t.target),'0') as targetcount,u.smpin,u.userid FROM " . TABLE_USER . " as u LEFT JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code LEFT JOIN (SELECT id,smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $start_date . "' AND sale_month<='" . $end_date . "')as t ON t.smpin=u.smpin WHERE u.is_deleted=0 AND u.role>7 AND u.role<14 AND e.is_current='1' " . $dealer_cond . " GROUP BY u.smpin ) as b ON a.userid=b.userid )c ORDER BY cast(sale_per as SIGNED) DESC,cast(salecount as SIGNED) DESC,cast(targetcount as SIGNED) DESC,last_sale ASC,first_sale ASC,userid ASC)as a )as f JOIN " . TABLE_USER . " as u ON f.userid=u.userid LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE 1=1 " . $user_cond . " LIMIT 1"; if (count($user_arr) > 0) { $user_count_arr = $parent->getQueryValue($get_user_count_str); $outof = (count($user_count_arr) > 0) ? $user_count_arr[0]->user_count : '0'; foreach ($user_arr as $mkey => $res_user) { $learning_arr = projectfunc::userLearningLevel($parent, $res_user->userid); $i = 0; $row++; if (empty($res_user->smpin)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } if (empty($res_user->dealer_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); } if (empty($res_user->city)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->city); } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->salecount . "/" . $res_user->targetcount); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->salecount); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->targetcount); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rank); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $outof); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } } //LOG $logstr = 'SALES LEADERBOARD REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('SALES LEADERBOARD REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "sales_leaderboard_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// ASSESSMENT LEADERBOARD REPORT EXPORT //////////////////////////////////////////////// */ private function newassessmentleaderboardexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 2); globalfunc::checkAuthrozation($parent, array('type' => 'user')); // //FIELDS VALIDATION // $REQUEST_KEYS=array('email'=>'string'); // globalfunc::mandatoryKey($parent,$REQUEST_KEYS); // $email = escape_str($parent->_request["email"]); //DATE CONDITION //$start_date="2018-".date('m',strtotime(CUR_DATE))."-01"; $start_date = date('Y-m', strtotime(CUR_DATE)) . "-01"; $end_date = date('Y-m-t', strtotime(CUR_DATE)); $date_cond = " AND a.publisheddate>='" . $start_date . " 00:00:00' AND a.publisheddate<='" . $end_date . " 23:59:59'"; $qry_params = explode("?", $parent->params[1]); $type = strtolower($qry_params[0]); $user_cond = ""; switch ($type) { case "zm": if ($parent->current_user_role == '3') { $REQUEST_KEYS = array('zmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["zmemail"]); if ($emailid != 'all') { $user_cond .= " AND d.zm_email='" . $emailid . "'"; } else { $user_cond .= ""; } } else { $parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); } break; case "rm": if ($parent->current_user_role < '7') { if ($parent->current_user_role == '5') { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $zone_cond .= (count($trainer_arr) > 0) ? " d.zone='" . $trainer_arr[0]->zone . "'" : " d.zone='0'"; $emailid = escape_str($parent->_request["rmemail"]); if ($emailid == 'all') { $user_cond .= " AND " . $zone_cond; } else { $user_cond .= " AND d.rm_email='" . $emailid . "' AND " . $zone_cond . ""; } } else { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["rmemail"]); if ($emailid == 'all') { $REQUEST_KEYS = array('zmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["zmemail"]); $user_cond .= " AND d.zm_email='" . $emailid . "'"; } else { //ZM EMAIL $zmemail = escape_str($parent->_request["zmemail"]); $zmcond = ($zmemail != 'all' && $zmemail != '') ? " AND d.zm_email='" . $zmemail . "'" : ''; $user_cond .= " AND d.rm_email='" . $emailid . "' " . $zmcond; } } } else { $parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); } break; case "am": if ($parent->current_user_role == '14') { $dealer_code_cond = " d.dealer_code='" . $parent->current_user_data->dealer_code . "'"; } else { $REQUEST_KEYS = array('amemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["amemail"]); if ($emailid == 'all') { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["rmemail"]); $dealer_code_cond = " d.rm_email='" . $emailid . "'"; } else { $dealer_code_cond = " d.am_email='" . $emailid . "'"; } if ($parent->current_user_role != '5') { //ZM EMAIL $zmemail = escape_str($parent->_request["zmemail"]); $zmcond = ($zmemail != 'all' && $zmemail != '') ? " AND d.zm_email='" . $zmemail . "'" : ''; $dealer_code_cond .= $zmcond; } //RM EMAIL $rmemail = escape_str($parent->_request["rmemail"]); $rmcond = ($rmemail != 'all' && $rmemail != '') ? " AND d.rm_email='" . $rmemail . "'" : ''; $dealer_code_cond .= $rmcond; //TRAINER if ($parent->current_user_role == '5') { $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $dealer_code_cond .= (count($trainer_arr) > 0) ? "AND d.zone='" . $trainer_arr[0]->zone . "'" : "AND d.zone='0'"; } } $user_cond .= "AND " . $dealer_code_cond . ""; break; default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); break; } $join_cond = 'JOIN ' . DMS_DEALER . ' as d ON d.dealer_code=u.dealer_code '; //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT LEADERBOARD REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":J" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Location', 'Score', 'Position', 'Outof', 'ZM', 'RM', 'AM'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); // $filter_arr=globalfunc::getFilterValues($parent,$parent->params[2]); // $order_by_cond=" ORDER BY f.rank,d.dealer_name ASC "; // if(isset($filter_arr) && isset($filter_arr['sort'])) // { // //1-Dealer // //2-Location // switch($filter_arr['sort']) // { // case '1': $order_by_cond=" ORDER BY d.dealer_name,f.rank ASC "; break; // case '2': $order_by_cond=" ORDER BY f.rank,d.dealer_name ASC "; break; // default: $order_by_cond=" ORDER BY f.rank,d.dealer_name ASC "; break; // } // } // if(isset($parent->_request["search"])) // { // $search_txt = escape_str($parent->_request["search"]); // $user_cond.=" AND (u.fname LIKE '%".$search_txt."%' OR u.lname LIKE '%".$search_txt."%' OR u.emp_code LIKE '%".$search_txt."%' OR d.dealer_name LIKE '%".$search_txt."%' OR d.zm_name LIKE '%".$search_txt."%' OR d.rm_name LIKE '%".$search_txt."%' OR d.am_name LIKE '%".$search_txt."%' OR d.city LIKE '%".$search_txt."%' )"; // } $new_cond = 'AND a.user_type=0 '; //GET ALL ASSESSMENT LIST WHICH PUBLISHED $assessment_str = "SELECT a.* FROM `" . TABLE_ASSESSMENT . "` as a WHERE a.status='1' AND a.atype='0' AND a.assettypeid='1' " . $date_cond . $new_cond; $assessment_arr = $parent->getQueryValue($assessment_str); //ASSESSMENT COUNT $assessment_count = (count($assessment_arr) > 0) ? count($assessment_arr) : '0'; // $outof=0; //GET ALL ASSESSMENT LIST WHICH PUBLISHED // $assessment_str = "SELECT a.* FROM `".TABLE_ASSESSMENT."` as a WHERE a.atype='0' AND a.assettypeid='1' AND a.publisheddate<='".NOW."' ".$query_cond; // $assessment_arr=$parent->getQueryValue($assessment_str); // $data_arr=array(); if (count($assessment_arr) > 0) { foreach ($assessment_arr as $res_assess) { $assessmentid_arr[] = $res_assess->assessmentid; } if ($parent->current_user_role == '14') { $area_cond .= " AND u.dealer_code='" . $dealer_code . "'"; } $get_user_rank_str = "SELECT SUM(highscore)as user_score,u.userid,COALESCE(ar.total_time,'0')as total_time,MAX(au.modified_on) as last_modified,u.dealer_code,u.role,d.* FROM " . TABLE_USER . " as u LEFT JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN (SELECT * FROM " . TABLE_ASSESSMENT_USER . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") AND highscorearid!=0 ) as au ON u.userid=au.userid LEFT JOIN (SELECT SUM(time_taken)as total_time,assessmentid,userid FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") GROUP BY userid )as ar ON u.userid=ar.userid " . $join_cond . " WHERE u.role>'7' AND u.role<14 AND u.is_deleted=0 AND e.is_current='1' " . $user_cond . " GROUP BY u.userid ORDER BY user_score DESC,ar.total_time ASC,last_modified ASC,u.userid ASC "; $get_user_rank_arr = $parent->getQueryValue($get_user_rank_str); if ($get_user_rank_arr) { foreach ($get_user_rank_arr as $res_user) { $user_data_arr = new stdClass(); $get_time_str = "SELECT * FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid IN (" . @implode(',', $assessmentid_arr) . ") AND userid='" . $res_user->userid . "'"; $get_time_arr = $parent->getQueryValue($get_time_str); $user_data_arr->user = projectfunc::getuserdata($parent, $res_user->userid); $user_data_arr->rank = '0'; $user_data_arr->tot_user_score = (count($get_time_arr) > 0) ? $res_user->user_score : '-'; $user_data_arr->percentage_score = (count($get_time_arr) > 0) ? '0' : '-'; $user_data_arr->total_time = $res_user->total_time; $user_data_arr->last_time = (count($get_time_arr) > 0) ? $res_user->last_modified : '-'; //GET EACH USER COND $getuser_data = projectfunc::getuserdata($parent, $res_user->userid); // if($getuser_data->role) // { // $user_cond[]=" (a.filter_role LIKE '%".$getuser_data->role."%' OR a.filter_role='')"; // } if ($getuser_data->zone) { $user_cond[] = " (a.filter_zone LIKE '%" . $getuser_data->zone . "%' OR a.filter_zone='')"; } if ($getuser_data->city) { $user_cond[] = " (a.filter_region LIKE '%" . $getuser_data->city . "%' OR a.filter_region='')"; } if ($getuser_data->dealer_code) { $user_cond[] = " (a.filter_dealer LIKE '%" . $getuser_data->dealer_code . "%' OR a.filter_dealer='')"; } $assess_user_cond = " AND " . @implode(' AND ', $user_cond); $count_assessment_str = "SELECT COUNT(a.assessmentid) as acount FROM `" . TABLE_ASSESSMENT . "` as a WHERE a.status='1' AND a.atype='0' AND a.assettypeid='1' AND a.publisheddate>='" . $start_date . " 00:00:00' AND a.publisheddate<='" . $end_date . " 23:59:59' AND a.enddate>='" . $user_data_arr->user->user_created_on . "' AND assessmentid IN (" . @implode(',', $assessmentid_arr) . ") " . $assess_user_cond . " LIMIT 1"; $count_assessment_arr = $parent->getQueryValue($count_assessment_str); $user_data_arr->percentage_score = (count($assessment_arr) > 0) ? round($res_user->user_score / $count_assessment_arr[0]->acount) : '0'; $user_data_arr->percentage = $user_data_arr->percentage_score; if ((($assessment_count / $count_assessment_arr[0]->acount) * 100) >= MIN_ASSESSMENT_PERCENT) { $data_arr[] = $user_data_arr; } } } if (count($data_arr) > 0) { array_multisort(array_column($data_arr, 'percentage_score'), SORT_DESC, array_column($rank_arr, 'total_time'), SORT_ASC, $rank_arr); $rank = 1; foreach ($data_arr as $key => $res) { $data_arr[$key]->rank = $rank; $rank++; } } if (count($data_arr) > 0) { $outof = count($data_arr); //$user_count_arr=$parent->getQueryValue($get_user_count_str); //$outof=(count($user_count_arr)>0)?$user_count_arr[0]->user_count:'0'; foreach ($data_arr as $res_user) { $i = 0; $row++; if (empty($res_user->smpin)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->smpin); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->fname . " " . $res_user->user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->mobileno); } if (empty($res_user->dealer_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->dealer->dealer_name); } if (empty($res_user->city)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->city); } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->percentage_score . "%"); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rank); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $outof); if (empty($res_user->zm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->dealer->zm_name); } if (empty($res_user->rm_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->dealer->rm_name); } if (empty($res_user->am_name)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->user->dealer->am_name); } } } } //LOG $logstr = 'ASSESSMENT LEADERBOARD REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('ASSESSMENT LEADERBOARD REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "assessment_leaderboard_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// ASM ASSESSMENT REPORT EXPORT //////////////////////////////////////////////// */ private function asmassessmentreport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 2); globalfunc::checkAuthrozation($parent, array('type' => 'user')); projectfunc::authorizedRole($parent, array('3', '4', '5', '6')); //FIELDS VALIDATION $REQUEST_KEYS = array('assessmentid' => 'integer'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $assessmentid = escape_str($parent->_request["assessmentid"]); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $assessment_str = "SELECT assessmentname,pass_score FROM " . TABLE_ASSESSMENT . " WHERE assessmentid='" . $assessmentid . "' LIMIT 1"; $assessment_arr = $parent->getQueryValue($assessment_str); $assessmentname = (count($assessment_arr) > 0) ? $assessment_arr[0]->assessmentname : ''; $pass_score = $assessment_arr[0]->pass_score; //EXCEL HEADER $row = 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Assessment : " . $assessmentname); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $row++; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Passing Percentage : " . $pass_score . "%"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Emp code', 'Name', 'Mobile', 'Email', 'Score', 'Timetaken in Minutes', 'Completed Time', 'Result'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('10'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $user_cond = ""; $dealer_code_cond = ''; $qry_params = explode("?", $parent->params[1]); $type = strtolower($qry_params[0]); $user_cond = ""; $zm_email = escape_str($parent->_request["zmemail"]); $rm_email = escape_str($parent->_request["rmemail"]); //$am_email = escape_str($parent->_request["amemail"]); if (($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) { $mcond = ''; //$mcond=($am_email!='all' && $am_email!='')?" AND am_email='".$am_email."'":''; $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : ''; if ($parent->current_user_role != '5') { $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : ''; } if ($parent->current_user_role == '5') { $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $mcond .= (count($trainer_arr) > 0) ? "AND zone='" . $trainer_arr[0]->zone . "'" : "AND zone='0'"; } //MANAGER $query_all_amarr = $parent->selectQuery(DMS_DEALER, "`dealer_code`,am_email ", " status='1' AND is_deleted='0' " . $mcond . " GROUP BY am_email", ""); $emailid_arr = array(); if ($query_all_amarr['nr'] > 0) { foreach ($query_all_amarr['result'] as $res) { $emailid_arr[] = "'" . $res->am_email . "'"; } $user_cond .= " AND u.emailid IN (" . implode(',', $emailid_arr) . ")"; } else { $user_cond .= " AND u.emailid IN ('')"; } } else { //PAN $user_cond = ''; if ($parent->current_user_role == '5') { $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $mcond .= (count($trainer_arr) > 0) ? "AND zone='" . $trainer_arr[0]->zone . "'" : "AND zone='0'"; //$user_cond=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE is_deleted='0' ".$mcond.")"; $query_all_amarr = $parent->selectQuery(DMS_DEALER, "`dealer_code`,am_email ", " status='1' AND is_deleted='0' " . $mcond . " GROUP BY am_email", ""); $emailid_arr = array(); if ($query_all_amarr['nr'] > 0) { foreach ($query_all_amarr['result'] as $res) { $emailid_arr[] = "'" . $res->am_email . "'"; } $user_cond .= " AND u.emailid IN (" . implode(',', $emailid_arr) . ")"; } else { $user_cond .= " AND u.emailid IN ('')"; } } } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[1]); $order_by_cond = "ORDER BY u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //0-Score //1-Name switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY u.fname ASC "; break; default:$order_by_cond = "ORDER BY au.highscore DESC,au.modified_on ASC,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.emp_code LIKE '%" . $search_txt . "%' OR u.emailid LIKE '%" . $search_txt . "%' )"; } $get_user_str = "SELECT u.userid,u.fname,u.lname,u.emp_code,u.emailid,u.mobileno FROM " . TABLE_USER . " u JOIN " . TABLE_ASSESSMENT_USER . " as au ON u.userid=au.userid WHERE u.status='1' AND u.is_deleted='0' AND u.role=7 AND au.assessmentid='" . $assessmentid . "' " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { //$header_arr=array('Emp code','Name','Mobile','Email','Score','Timetaken in Minutes','Completed Time'); $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); if (empty($res_user->emp_code)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emp_code); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } if (empty($res_user->emailid)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid); } $exam_highscore_str = "SELECT * FROM " . TABLE_ASSESSMENT_USER . " WHERE assessmentid='" . $assessmentid . "' AND userid='" . $res_user->userid . "' LIMIT 1"; $exam_highscore_arr = $parent->getQueryValue($exam_highscore_str); $highscore = (count($exam_highscore_arr) > 0) ? $exam_highscore_arr[0]->highscore : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $highscore . "%"); $timetaken = ''; $completedtime = ''; if (count($exam_highscore_arr) > 0) { $exam_result_highscore_str = "SELECT * FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid='" . $assessmentid . "' AND arid='" . $exam_highscore_arr[0]->highscorearid . "' LIMIT 1"; $exam_result_highscore_arr = $parent->getQueryValue($exam_result_highscore_str); $timetaken = (count($exam_result_highscore_arr) > 0 && isset($exam_result_highscore_arr[0]->time_taken)) ? round($exam_result_highscore_arr[0]->time_taken / 60) : "0"; $completedtime = (count($exam_result_highscore_arr) > 0 && isset($exam_result_highscore_arr[0]->modified_on)) ? date('d-m-Y h:i A', strtotime($exam_result_highscore_arr[0]->modified_on)) : "-"; } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $timetaken); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $completedtime); $result_str = ($highscore >= $pass_score) ? "Pass" : "Fail"; $column_str = getColumnFromNumber($i++) . $row; if ($result_str == 'Pass') { $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("008000"); } else { $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000"); } $objPHPExcel->getActiveSheet()->SetCellValue($column_str, $result_str); } } //LOG $logstr = 'AM ASSESSMENT REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('ASSESSMENT REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "assessment_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// RM ASSESSMENT REPORT EXPORT //////////////////////////////////////////////// */ private function rmassessmentreport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 2); globalfunc::checkAuthrozation($parent, array('type' => 'user')); projectfunc::authorizedRole($parent, array('3', '4', '5')); //FIELDS VALIDATION $REQUEST_KEYS = array('assessmentid' => 'integer'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $assessmentid = escape_str($parent->_request["assessmentid"]); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $assessment_str = "SELECT assessmentname,pass_score FROM " . TABLE_ASSESSMENT . " WHERE assessmentid='" . $assessmentid . "' LIMIT 1"; $assessment_arr = $parent->getQueryValue($assessment_str); $assessmentname = (count($assessment_arr) > 0) ? $assessment_arr[0]->assessmentname : ''; $pass_score = $assessment_arr[0]->pass_score; //EXCEL HEADER $row = 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Assessment : " . $assessmentname); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $row++; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Passing Percentage : " . $pass_score . "%"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Emp code', 'Name', 'Mobile', 'Email', 'Score', 'Timetaken in Minutes', 'Completed Time', 'Result'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('10'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $user_cond = ""; $dealer_code_cond = ''; $qry_params = explode("?", $parent->params[1]); $type = strtolower($qry_params[0]); $user_cond = ""; $zm_email = escape_str($parent->_request["zmemail"]); //$rm_email = escape_str($parent->_request["rmemail"]); //$am_email = escape_str($parent->_request["amemail"]); if ($zm_email != 'all' && $zm_email != '') { $mcond = ''; //$mcond=($am_email!='all' && $am_email!='')?" AND am_email='".$am_email."'":''; //$mcond.=($rm_email!='all' && $rm_email!='')?" AND rm_email='".$rm_email."'":''; if ($parent->current_user_role != '5') { $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : ''; } if ($parent->current_user_role == '5') { $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $mcond .= (count($trainer_arr) > 0) ? "AND zone='" . $trainer_arr[0]->zone . "'" : "AND zone='0'"; } //MANAGER $query_all_amarr = $parent->selectQuery(DMS_DEALER, "`dealer_code`,rm_email ", " status='1' AND is_deleted='0' " . $mcond . " GROUP BY rm_email", ""); $emailid_arr = array(); if ($query_all_amarr['nr'] > 0) { foreach ($query_all_amarr['result'] as $res) { $emailid_arr[] = "'" . $res->rm_email . "'"; } $user_cond .= " AND u.emailid IN (" . implode(',', $emailid_arr) . ")"; } else { $user_cond .= " AND u.emailid IN ('')"; } } else { //PAN $user_cond = ''; if ($parent->current_user_role == '5') { $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $mcond .= (count($trainer_arr) > 0) ? "AND zone='" . $trainer_arr[0]->zone . "'" : "AND zone='0'"; //$user_cond=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE is_deleted='0' ".$mcond.")"; $query_all_amarr = $parent->selectQuery(DMS_DEALER, "`dealer_code`,rm_email ", " status='1' AND is_deleted='0' " . $mcond . " GROUP BY rm_email", ""); $emailid_arr = array(); if ($query_all_amarr['nr'] > 0) { foreach ($query_all_amarr['result'] as $res) { $emailid_arr[] = "'" . $res->rm_email . "'"; } $user_cond .= " AND u.emailid IN (" . implode(',', $emailid_arr) . ")"; } else { $user_cond .= " AND u.emailid IN ('')"; } } } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[1]); $order_by_cond = "ORDER BY u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //0-Score //1-Name switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY u.fname ASC "; break; default:$order_by_cond = "ORDER BY au.highscore DESC,au.modified_on ASC,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.emp_code LIKE '%" . $search_txt . "%' OR u.emailid LIKE '%" . $search_txt . "%' )"; } $get_user_str = "SELECT u.userid,u.fname,u.lname,u.emp_code,u.emailid,u.mobileno FROM " . TABLE_USER . " u JOIN " . TABLE_ASSESSMENT_USER . " as au ON u.userid=au.userid WHERE u.status='1' AND u.is_deleted='0' AND u.role=6 AND au.assessmentid='" . $assessmentid . "' " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); if (empty($res_user->emp_code)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emp_code); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } if (empty($res_user->emailid)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid); } $exam_highscore_str = "SELECT * FROM " . TABLE_ASSESSMENT_USER . " WHERE assessmentid='" . $assessmentid . "' AND userid='" . $res_user->userid . "' LIMIT 1"; $exam_highscore_arr = $parent->getQueryValue($exam_highscore_str); $highscore = (count($exam_highscore_arr) > 0) ? $exam_highscore_arr[0]->highscore : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $highscore . "%"); $timetaken = ''; $completedtime = ''; if (count($exam_highscore_arr) > 0) { $exam_result_highscore_str = "SELECT * FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid='" . $assessmentid . "' AND arid='" . $exam_highscore_arr[0]->highscorearid . "' LIMIT 1"; $exam_result_highscore_arr = $parent->getQueryValue($exam_result_highscore_str); $timetaken = (count($exam_result_highscore_arr) > 0 && isset($exam_result_highscore_arr[0]->time_taken)) ? round($exam_result_highscore_arr[0]->time_taken / 60) : "0"; $completedtime = (count($exam_result_highscore_arr) > 0 && isset($exam_result_highscore_arr[0]->modified_on)) ? date('d-m-Y h:i A', strtotime($exam_result_highscore_arr[0]->modified_on)) : "-"; } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $timetaken); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $completedtime); $result_str = ($highscore >= $pass_score) ? "Pass" : "Fail"; $column_str = getColumnFromNumber($i++) . $row; if ($result_str == 'Pass') { $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("008000"); } else { $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000"); } $objPHPExcel->getActiveSheet()->SetCellValue($column_str, $result_str); } } //LOG $logstr = 'RM ASSESSMENT REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('ASSESSMENT REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "assessment_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// ZM ASSESSMENT REPORT EXPORT //////////////////////////////////////////////// */ private function zmassessmentreport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); projectfunc::authorizedRole($parent, array('3')); //FIELDS VALIDATION $REQUEST_KEYS = array('assessmentid' => 'integer'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $assessmentid = escape_str($parent->_request["assessmentid"]); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $assessment_str = "SELECT assessmentname,pass_score FROM " . TABLE_ASSESSMENT . " WHERE assessmentid='" . $assessmentid . "' LIMIT 1"; $assessment_arr = $parent->getQueryValue($assessment_str); $assessmentname = (count($assessment_arr) > 0) ? $assessment_arr[0]->assessmentname : ''; $pass_score = $assessment_arr[0]->pass_score; //EXCEL HEADER $row = 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Assessment : " . $assessmentname); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $row++; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Passing Percentage : " . $pass_score . "%"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Emp code', 'Name', 'Mobile', 'Email', 'Score', 'Timetaken in Minutes', 'Completed Time', 'Result'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('10'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $user_cond = ""; $dealer_code_cond = ''; $user_cond = ""; $filter_arr = globalfunc::getFilterValues($parent, $parent->params[1]); $order_by_cond = "ORDER BY u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //0-Score //1-Name switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY u.fname ASC "; break; default:$order_by_cond = "ORDER BY au.highscore DESC,au.modified_on ASC,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.emp_code LIKE '%" . $search_txt . "%' OR u.emailid LIKE '%" . $search_txt . "%' )"; } $get_user_str = "SELECT u.userid,u.fname,u.lname,u.emp_code,u.emailid,u.mobileno FROM " . TABLE_USER . " u JOIN " . TABLE_ASSESSMENT_USER . " as au ON u.userid=au.userid WHERE u.status='1' AND u.is_deleted='0' AND u.role=4 AND au.assessmentid='" . $assessmentid . "' " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { //$header_arr=array('Emp code','Name','Mobile','Email','Score','Timetaken in Minutes','Completed Time'); $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); if (empty($res_user->emp_code)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emp_code); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } if (empty($res_user->emailid)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid); } $exam_highscore_str = "SELECT * FROM " . TABLE_ASSESSMENT_USER . " WHERE assessmentid='" . $assessmentid . "' AND userid='" . $res_user->userid . "' LIMIT 1"; $exam_highscore_arr = $parent->getQueryValue($exam_highscore_str); $highscore = (count($exam_highscore_arr) > 0) ? $exam_highscore_arr[0]->highscore : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $highscore . "%"); $timetaken = ''; $completedtime = ''; if (count($exam_highscore_arr) > 0) { $exam_result_highscore_str = "SELECT * FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid='" . $assessmentid . "' AND arid='" . $exam_highscore_arr[0]->highscorearid . "' LIMIT 1"; $exam_result_highscore_arr = $parent->getQueryValue($exam_result_highscore_str); $timetaken = (count($exam_result_highscore_arr) > 0 && isset($exam_result_highscore_arr[0]->time_taken)) ? round($exam_result_highscore_arr[0]->time_taken / 60) : "0"; $completedtime = (count($exam_result_highscore_arr) > 0 && isset($exam_result_highscore_arr[0]->modified_on)) ? date('d-m-Y h:i A', strtotime($exam_result_highscore_arr[0]->modified_on)) : "-"; } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $timetaken); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $completedtime); $result_str = ($highscore >= $pass_score) ? "Pass" : "Fail"; $column_str = getColumnFromNumber($i++) . $row; if ($result_str == 'Pass') { $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("008000"); } else { $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000"); } $objPHPExcel->getActiveSheet()->SetCellValue($column_str, $result_str); } } //LOG $logstr = 'ZM ASSESSMENT REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('ASSESSMENT REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "assessment_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// SURVEY REPORT EXPORT //////////////////////////////////////////////// */ private function surveyreportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //FIELDS VALIDATION globalfunc::checkParamCount($parent, 2); //FIELDS VALIDATION $REQUEST_KEYS = array('assessmentid' => 'integer'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $assessmentid = escape_str($parent->_request["assessmentid"]); $query_str = "SELECT assessmentid,assessmentname FROM " . TABLE_ASSESSMENT . " WHERE status='1' AND assettypeid='2' AND assessmentid='" . $assessmentid . "' AND publisheddate<='" . NOW . "' LIMIT 1"; $query_arr = $parent->getQueryValue($query_str); if (!count($query_arr) > 0) { $parent->response(array('response' => 'failed', 'message' => $this->page_data["error9"]), 406); } //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row = 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FEEDBACK REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":F" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Survey : " . $query_arr[0]->assessmentname); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":F" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $row += 2; $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Dealer Name', 'Date & Time'); $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('20'); $ques_str = "SELECT q.id as qid, q.`questiontypeid`, q.`questiontext`, q.`qimage`, q.`qvideo` FROM " . TABLE_QUESTION . " as q WHERE id IN (SELECT qid FROM " . TABLE_ASSESSMENT_QUESTION . " WHERE assessmentid='" . $assessmentid . "') ORDER BY id ASC "; $ques_arr = $parent->getQueryValue($ques_str); if (count($ques_arr)) { $i = 6; foreach ($ques_arr as $res_ques) { $column = getColumnFromNumber($i++); $bordercells_arr[] = $column . $row; $header_arr[] = $res_ques->questiontext; $objPHPExcel->getActiveSheet()->getColumnDimension($column)->setWidth('40'); } } projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $dealer_code_cond = ''; $qry_params = explode("?", $parent->params[1]); $type = strtolower($qry_params[0]); $user_cond = ""; switch ($type) { case "zm": if ($parent->current_user_role == '3') { $REQUEST_KEYS = array('zmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["zmemail"]); if ($emailid != 'all') { $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; } else { $user_cond .= ""; } } else { $parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); } break; case "rm": if ($parent->current_user_role < '7') { if ($parent->current_user_role == '5') { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["rmemail"]); if ($emailid == 'all') { $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1"; $trainer_arr = $parent->getQueryValue($get_trainer_str); $zone_cond .= (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'"; $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . " AND status='1' AND is_deleted='0')"; } else { $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; } } else { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["rmemail"]); if ($emailid == 'all') { $REQUEST_KEYS = array('zmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["zmemail"]); $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; } else { $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $emailid . "' AND status='1' AND is_deleted='0')"; } } } else { $parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); } break; case "am": if ($parent->current_user_role == '14') { $dealer_code_cond = " dealer_code='" . $parent->current_user_data->dealer_code . "'"; } else { $REQUEST_KEYS = array('amemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["amemail"]); if ($emailid == 'all') { $REQUEST_KEYS = array('rmemail' => 'string'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $emailid = escape_str($parent->_request["rmemail"]); $dealer_code_cond = " rm_email='" . $emailid . "'"; } else { $dealer_code_cond = " am_email='" . $emailid . "'"; } } $user_cond .= " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $dealer_code_cond . " AND status='1' AND is_deleted='0')"; break; default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401); break; } if (isset($parent->_request["search"]) && $parent->_request["search"] != '') { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.smpin LIKE '%" . $search_txt . "%' OR d.dealer_name LIKE '%" . $search_txt . "%' OR d.zm_name LIKE '%" . $search_txt . "%' OR d.rm_name LIKE '%" . $search_txt . "%' OR d.am_name LIKE '%" . $search_txt . "%' OR d.city LIKE '%" . $search_txt . "%' )"; } //GET USER ATTENTED $query_assess_str = "SELECT a.* FROM " . TABLE_ASSESSMENT_USER . " as a JOIN " . TABLE_USER . " u ON u.userid=a.userid WHERE a.assessmentid='" . $assessmentid . "' AND a.highscorearid!='0' AND u.is_deleted=0 " . $user_cond; $query_assess_arr = $parent->getQueryValue($query_assess_str); if (!count($query_assess_arr) > 0) { $parent->response(array('response' => 'failed', 'message' => $this->page_data["error10"]), 406); } if (count($query_assess_arr) > 0) { $survey_str = "SELECT * FROM " . TABLE_SURVEY_RATING . " ORDER BY id ASC"; $survey_arr = $parent->getQueryValue($survey_str); if (count($survey_arr) > 0) { foreach ($survey_arr as $skey => $res_survey) { $rating_arr[$res_survey->id] = $res_survey->rating_text; } } $sno = 1; foreach ($query_assess_arr as $res_user) { $userid = $res_user->userid; $user_data = projectfunc::getuserdata($parent, $userid); $row++; $i = 0; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_data->smpin); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_data->fname . " " . $user_data->lname); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_data->mobileno); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_data->dealer->dealer_name . " " . $user_data->dealer->dealer_code); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->created_on))); //GET USER RESULT $query_res_str = "SELECT au.* FROM " . TABLE_ASSESSMENT_USERRESULT . " as au JOIN " . TABLE_ASSESSMENTRESULT . " as ar ON au.arid=ar.arid WHERE au.userid='" . $userid . "' AND au.assessmentid='" . $assessmentid . "' AND au.arid='" . $res_user->highscorearid . "' GROUP BY au.arid,au.aqid ORDER by qid ASC"; $query_assess_res_arr = $parent->getQueryValue($query_res_str); if (!count($query_assess_res_arr) > 0) { $parent->response(array('response' => 'failed', 'message' => $this->page_data["error10"]), 406); } if (count($query_assess_res_arr) > 0) { // $sno=1; foreach ($query_assess_res_arr as $res) { $ques_str = "SELECT q.id as qid, q.`questiontypeid`, q.`questiontext`, q.`qimage`, q.`qvideo` FROM " . TABLE_QUESTION . " as q WHERE id='" . $res->qid . "' LIMIT 1"; $ques_arr = $parent->getQueryValue($ques_str); if (count($ques_arr) > 0) { //GET USER ANSWERED OPTIONS $user_answer_str = "SELECT * FROM " . TABLE_ASSESSMENT_USERRESULT . " WHERE userid='" . $userid . "' AND arid='" . $res_user->highscorearid . "' AND aqid='" . $res->aqid . "'"; $user_answer_arr = $parent->getQueryValue($user_answer_str); $ques_arr[0]->answer = array(); if (count($user_answer_arr) > 0) { foreach ($user_answer_arr as $res_answer) { //GET RATING $ques_arr[0]->survey_text = ''; if ($ques_arr[0]->questiontypeid == '3') { if ($res_answer->survey_rating == $res_survey->score) { $rating = $res_answer->survey_rating; $ques_arr[0]->answer[] = isset($rating_arr[$rating]) ? $rating_arr[$rating] : ''; } } elseif ($ques_arr[0]->questiontypeid == '5' || $ques_arr[0]->questiontypeid == '6') { //GET ALL QUESTION OPTIONS if ($res_answer->choiseid) { $ques_option_str = "SELECT op.optid,op.opttext,'0' as selected FROM " . TABLE_QUESTIONOPTION . " as op WHERE op.qid='" . $res->qid . "' AND op.optid='" . $res_answer->choiseid . "' LIMIT 1"; $ques_option_arr = $parent->getQueryValue($ques_option_str); if (count($ques_option_arr) > 0) { $ques_arr[0]->answer[] = $ques_option_arr[0]->opttext; } } } else { $ques_arr[0]->answer[] = ($res_answer->survey_text != '') ? $res_answer->survey_text : ''; } } } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, @implode(',', $ques_arr[0]->answer)); } } } } } $objPHPExcel->getActiveSheet()->setTitle('FEEDBACK REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "feedback_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// TRAINER ASSESSMENT REPORT EXPORT //////////////////////////////////////////////// */ private function trainerassessmentreport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); projectfunc::authorizedRole($parent, array('3')); //FIELDS VALIDATION $REQUEST_KEYS = array('assessmentid' => 'integer'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $assessmentid = escape_str($parent->_request["assessmentid"]); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $assessment_str = "SELECT assessmentname,pass_score FROM " . TABLE_ASSESSMENT . " WHERE assessmentid='" . $assessmentid . "' LIMIT 1"; $assessment_arr = $parent->getQueryValue($assessment_str); $assessmentname = (count($assessment_arr) > 0) ? $assessment_arr[0]->assessmentname : ''; $pass_score = $assessment_arr[0]->pass_score; //EXCEL HEADER $row = 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Assessment : " . $assessmentname); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $row++; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "Passing Percentage : " . $pass_score . "%"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Emp code', 'Name', 'Mobile', 'Email', 'Score', 'Timetaken in Minutes', 'Completed Time', 'Result'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('10'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $role = $parent->current_user_role; $userdata = projectfunc::getuserdata($parent, $parent->current_user_id); $user_cond = ""; $dealer_code_cond = ''; $user_cond = ""; $filter_arr = globalfunc::getFilterValues($parent, $parent->params[1]); $order_by_cond = "ORDER BY u.fname ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //0-Score //1-Name switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY u.fname ASC "; break; default:$order_by_cond = "ORDER BY au.highscore DESC,au.modified_on ASC,u.fname ASC "; break; } } if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' OR u.emp_code LIKE '%" . $search_txt . "%' OR u.emailid LIKE '%" . $search_txt . "%' )"; } $get_user_str = "SELECT u.userid,u.fname,u.lname,u.emp_code,u.emailid,u.mobileno FROM " . TABLE_USER . " u JOIN " . TABLE_ASSESSMENT_USER . " as au ON u.userid=au.userid WHERE u.status='1' AND u.is_deleted='0' AND u.role=5 AND au.assessmentid='" . $assessmentid . "' " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { //$header_arr=array('Emp code','Name','Mobile','Email','Score','Timetaken in Minutes','Completed Time'); $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); if (empty($res_user->emp_code)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emp_code); } if (empty($res_user->fname)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname); } if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } if (empty($res_user->emailid)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid); } $exam_highscore_str = "SELECT * FROM " . TABLE_ASSESSMENT_USER . " WHERE assessmentid='" . $assessmentid . "' AND userid='" . $res_user->userid . "' LIMIT 1"; $exam_highscore_arr = $parent->getQueryValue($exam_highscore_str); $highscore = (count($exam_highscore_arr) > 0) ? $exam_highscore_arr[0]->highscore : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $highscore . "%"); $timetaken = ''; $completedtime = ''; if (count($exam_highscore_arr) > 0) { $exam_result_highscore_str = "SELECT * FROM " . TABLE_ASSESSMENTRESULT . " WHERE assessmentid='" . $assessmentid . "' AND arid='" . $exam_highscore_arr[0]->highscorearid . "' LIMIT 1"; $exam_result_highscore_arr = $parent->getQueryValue($exam_result_highscore_str); $timetaken = (count($exam_result_highscore_arr) > 0 && isset($exam_result_highscore_arr[0]->time_taken)) ? round($exam_result_highscore_arr[0]->time_taken / 60) : "0"; $completedtime = (count($exam_result_highscore_arr) > 0 && isset($exam_result_highscore_arr[0]->modified_on)) ? date('d-m-Y h:i A', strtotime($exam_result_highscore_arr[0]->modified_on)) : "-"; } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $timetaken); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $completedtime); $result_str = ($highscore >= $pass_score) ? "Pass" : "Fail"; $column_str = getColumnFromNumber($i++) . $row; if ($result_str == 'Pass') { $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("008000"); } else { $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000"); } $objPHPExcel->getActiveSheet()->SetCellValue($column_str, $result_str); } } //LOG $logstr = 'TRAINER ASSESSMENT REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('ASSESSMENT REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "assessment_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// DEALER SALES TARGET REPORT EXPORT //////////////////////////////////////////////// */ private function dealersalestargetreportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 4); globalfunc::checkAuthrozation($parent, array('type' => 'user')); $year_data = escape_str($parent->params[1]); $last_data = escape_str($parent->params[2]); $last_data_arr = explode('?', $last_data); $month_data = escape_str(trim($last_data_arr[0])); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "DEALER SALES TARGET REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":I" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row, "N" . $row, "O" . $row, "P" . $row, "Q" . $row, "R" . $row, "S" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Dealer Name', 'Dealer Code', 'Zone', 'Scooter DSE (Count)', 'Motorcycle DSE (Count)', "Sales Target set By Dealer (DSE Count)", "Sales Target Auto Set- Dealer (DSE Count)", "Sales Target Approved/ Modified by AM (DSE Count)", "Sales Target Auto Approved (AM) (DSE Count)", "Scooter Target", "Scooter Target Achieved (MTD)", "Motorcycle Target", "Motorcycle Target Achieved (MTD)", "Total Target", "Total Target Achieved (MTD)", "Total Target Achieved % (MTD)", 'Zonal Manager', 'Regional Manager', 'Area Manager'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('10'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('Q')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('R')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('S')->setWidth('30'); //$objPHPExcel->getActiveSheet()->getColumnDimension('T')->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $objPHPExcel->getActiveSheet()->getStyle("A" . $row . ":T" . $row)->getAlignment()->setWrapText(true); $dealer_code_cond = ''; $qry_params = explode("?", $parent->params[3]); $type = strtolower($qry_params[0]); $user_cond = ""; //MANAGER WISE DEALER CONDITION $dealer_cond_arr = $this->getmanagerconditon_arr($parent); if (count($dealer_cond_arr) > 0) { $user_cond .= " AND " . @implode(" AND ", $dealer_cond_arr); } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[3]); //SORT $order_by_cond = "ORDER BY dealer_name ASC "; if (isset($filter_arr) && isset($filter_arr['sort'])) { //1-Dealer //2-Dealer code switch ($filter_arr['sort']) { case '1':$order_by_cond = "ORDER BY dealer_name,id ASC "; break; case '2':$order_by_cond = "ORDER BY dealer_code,id ASC "; break; default:$order_by_cond = "ORDER BY dealer_name,id ASC "; break; } } if (isset($parent->_request["search"]) && $parent->_request["search"] != '') { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND ( dealer_name LIKE '%" . $search_txt . "%' OR dealer_code LIKE '%" . $search_txt . "%' )"; } //$user_cond.=" AND e.is_current='1' "; $get_user_str = "SELECT dealer_code,dealer_name,zone,zm_name,rm_name,am_name,zm_email,rm_email,am_email FROM " . DMS_DEALER . " WHERE is_deleted=0 " . $user_cond . $order_by_cond; $dealer_arr = $parent->getQueryValue($get_user_str); if (count($dealer_arr) > 0) { foreach ($dealer_arr as $mkey => $res_user) { //$res=$res_user; $i = 0; $row++; /* * 'Dealer Name', 'Dealer Code','Zone','Scooter DSE (Count)','Motorcycle DSE (Count)',"Sales Target set By Dealer (DSE Count)","Sales Target Auto Set- Dealer (DSE Count)","Sales Target Approved/ Modified by AM (DSE Count)","Sales Target Auto Approved (AM) (DSE Count)","Scooter Target","Scooter Target Achieved (MTD)","Motorcycle Target","Motorcycle Target Achieved (MTD)","Total Target","Total Target Achieved (MTD)","Total Target Achieved % (MTD)",'Zonal Manager','Regional Manager','Area Manager' */ $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code); $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone); //SCOOTER DSE //$get_employee_str="SELECT COUNT(id) as emp_count FROM ".DMS_EMPLOYEE." WHERE dealer_code='".$res_user->dealer_code."' AND is_current=1 AND status=1 AND segment=2 LIMIT 1 "; //$scotter_emp_arr=$parent->getQueryValue($get_employee_str); //MOTORCYCLE DSE //$get_employee_str="SELECT COUNT(id) as emp_count FROM ".DMS_EMPLOYEE." WHERE dealer_code='".$res_user->dealer_code."' AND is_current=1 AND status=1 AND segment=1 LIMIT 1 "; //$motor_emp_arr=$parent->getQueryValue($get_employee_str); $get_employee_str = "SELECT * FROM (SELECT COUNT(id) as motor_count FROM " . DMS_EMPLOYEE . " WHERE dealer_code='" . $res_user->dealer_code . "' AND is_current=1 AND status=1 AND segment=1) as a, (SELECT COUNT(id) as scooter_count FROM " . DMS_EMPLOYEE . " WHERE dealer_code='" . $res_user->dealer_code . "' AND is_current=1 AND status=1 AND segment=2) as b"; $emp_arr = $parent->getQueryValue($get_employee_str); $dealer_arr[$mkey]->scooter_dsecount = $emp_arr[0]->scooter_count; $dealer_arr[$mkey]->motorcycle_dsecount = $emp_arr[0]->motor_count; //DSE DEALER SET $get_dealer_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " WHERE dealer_code='" . $res_user->dealer_code . "' AND is_current=1 AND status=1 )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND roleid=14)as s ON e.smpin=s.smpin "; $get_dealerupdated_arr = $parent->getQueryValue($get_dealer_updated_str); $get_employee_str = "SELECT COUNT(id) as emp_count FROM " . DMS_EMPLOYEE . " WHERE dealer_code='" . $res_user->dealer_code . "' AND is_current=1 AND status=1 LIMIT 1 "; $get_employee_arr = $parent->getQueryValue($get_employee_str); $dealer_arr[$mkey]->dealerset_dsecount = $get_dealerupdated_arr[0]->emp_count; $dealer_arr[$mkey]->autodealer_dsetcount = ($get_employee_arr[0]->emp_count > 0) ? ($get_employee_arr[0]->emp_count - $dealer_arr[$mkey]->dealerset_dsecount) : "0"; //DSE ASM SET $get_am_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " WHERE dealer_code='" . $res_user->dealer_code . "' AND is_current=1 AND status=1 )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND roleid=7)as s ON e.smpin=s.smpin "; $get_amupdated_arr = $parent->getQueryValue($get_am_updated_str); $dealer_arr[$mkey]->amset_dsecount = $get_amupdated_arr[0]->emp_count; $dealer_arr[$mkey]->autoamset_dsecount = ($get_employee_arr[0]->emp_count > 0) ? ($get_employee_arr[0]->emp_count - $dealer_arr[$mkey]->amset_dsecount) : "0"; //SCOOTER TARGET //$get_scooter_target_str="SELECT COALESCE(SUM(tot_target),'0')as grand_tot_target FROM (SELECT dealer_code,smpin FROM ".DMS_EMPLOYEE." WHERE dealer_code='".$res_user->dealer_code."' AND is_current=1 AND status=1 AND segment=2)as e JOIN (SELECT smpin,SUM(target) as tot_target FROM ".TABLE_USER_SALETARGET." WHERE sale_month LIKE '".date('Y-m',strtotime($year_data.'-'.$month_data."-01"))."-%' GROUP BY smpin )as s ON e.smpin=s.smpin "; $get_scooter_target_str = "SELECT COALESCE(SUM(target),'0')as grand_tot_target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND smpin IN (SELECT smpin FROM " . DMS_EMPLOYEE . " WHERE dealer_code='" . $res_user->dealer_code . "' AND is_current=1 AND status=1 AND segment=2)"; $get_scooter_target_arr = $parent->getQueryValue($get_scooter_target_str); $dealer_arr[$mkey]->scooter_target = $get_scooter_target_arr[0]->grand_tot_target; //SCOOTER SALES //$get_scooter_sales_str="SELECT COALESCE(SUM(tot_sales),'0')as grand_tot_sales FROM (SELECT dealer_code,smpin FROM ".DMS_EMPLOYEE." WHERE dealer_code='".$res_user->dealer_code."' AND is_current=1 AND status=1 AND segment=2)as e JOIN (SELECT smpin,SUM(sales_count) as tot_sales FROM ".DMS_EMPLOYEE_SALES." WHERE sale_date LIKE '".date('Y-m',strtotime($year_data.'-'.$month_data."-01"))."-%' GROUP BY smpin )as s ON e.smpin=s.smpin "; $get_scooter_sales_str = "SELECT COALESCE(SUM(sales_count),'0')as grand_tot_sales FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND smpin IN (SELECT smpin FROM " . DMS_EMPLOYEE . " WHERE dealer_code='" . $res_user->dealer_code . "' AND is_current=1 AND status=1 AND segment=2)"; $get_scooter_sales_arr = $parent->getQueryValue($get_scooter_sales_str); $dealer_arr[$mkey]->scooter_achieved = $get_scooter_sales_arr[0]->grand_tot_sales; //MOTORCYCLE TARGET //$get_motorcycle_target_str="SELECT COALESCE(SUM(tot_target),'0')as grand_tot_target FROM (SELECT dealer_code,smpin FROM ".DMS_EMPLOYEE." WHERE dealer_code='".$res_user->dealer_code."' AND is_current=1 AND status=1 AND segment=1)as e JOIN (SELECT smpin,SUM(target) as tot_target FROM ".TABLE_USER_SALETARGET." WHERE sale_month LIKE '".date('Y-m',strtotime($year_data.'-'.$month_data."-01"))."-%' GROUP BY smpin )as s ON e.smpin=s.smpin "; $get_motorcycle_target_str = "SELECT COALESCE(SUM(target),'0')as grand_tot_target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND smpin IN (SELECT smpin FROM " . DMS_EMPLOYEE . " WHERE dealer_code='" . $res_user->dealer_code . "' AND is_current=1 AND status=1 AND segment=1)"; $get_motorcycle_target_arr = $parent->getQueryValue($get_motorcycle_target_str); $dealer_arr[$mkey]->motorcycle_target = $get_motorcycle_target_arr[0]->grand_tot_target; //MOTORCYCLE SALES //$get_motorcycle_sales_str="SELECT COALESCE(SUM(tot_sales),'0')as grand_tot_sales FROM (SELECT dealer_code,smpin FROM ".DMS_EMPLOYEE." WHERE dealer_code='".$res_user->dealer_code."' AND is_current=1 AND status=1 AND segment=1)as e JOIN (SELECT smpin,SUM(sales_count) as tot_sales FROM ".DMS_EMPLOYEE_SALES." WHERE sale_date LIKE '".date('Y-m',strtotime($year_data.'-'.$month_data."-01"))."-%' GROUP BY smpin )as s ON e.smpin=s.smpin "; $get_motorcycle_sales_str = "SELECT COALESCE(SUM(sales_count),'0')as grand_tot_sales FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date LIKE '" . date('Y-m', strtotime($year_data . '-' . $month_data . "-01")) . "-%' AND smpin IN (SELECT smpin FROM " . DMS_EMPLOYEE . " WHERE dealer_code='" . $res_user->dealer_code . "' AND is_current=1 AND status=1 AND segment=1)"; $get_motorcycle_sales_arr = $parent->getQueryValue($get_motorcycle_sales_str); $dealer_arr[$mkey]->motorcycle_achieved = $get_motorcycle_sales_arr[0]->grand_tot_sales; $dealer_arr[$mkey]->total_target = $dealer_arr[$mkey]->motorcycle_target + $dealer_arr[$mkey]->scooter_target; $dealer_arr[$mkey]->total_achieved = $dealer_arr[$mkey]->scooter_achieved + $dealer_arr[$mkey]->motorcycle_achieved; $dealer_arr[$mkey]->total_percent = ($dealer_arr[$mkey]->total_target > 0) ? round((($dealer_arr[$mkey]->total_achieved / $dealer_arr[$mkey]->total_target) * 100), 2) : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->scooter_dsecount); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->motorcycle_dsecount); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->dealerset_dsecount); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->autodealer_dsetcount); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->amset_dsecount); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->autoamset_dsecount); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->scooter_target); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->scooter_achieved); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->motorcycle_target); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->motorcycle_achieved); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->total_target); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->total_achieved); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_arr[$mkey]->total_percent); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); } } //LOG $logstr = 'DSE SALESTARGET EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('DSE SALESTARGET REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "dse_salestarget_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// MANAGER SALESTARGET REPORT EXPORT //////////////////////////////////////////////// */ private function managersalestargetreportexport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 3); globalfunc::checkAuthrozation($parent, array('type' => 'user')); $year_data = escape_str($parent->params[1]); $last_data = escape_str($parent->params[2]); $last_data_arr = explode('?', $last_data); $month_data = escape_str(trim($last_data_arr[0])); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $excel_head = ($parent->current_user_role == 14) ? "SALESTARGET REPORT" : "AM SALESTARGET REPORT"; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, $excel_head); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":J" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); /* Zonal Manager Regional Manager Area Manager Dealer Count DSE Count Target set by Dealer (DSE Count) Auto Set- Dealer (DSE Count) Approved /Modified by AM (DSE Count) Auto Approved (AM) (DSE Count) Target Set for Scooter Target Set for Scooter Total Target Set Total Target Achieved % (MTD) */ $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Zonal Manager', 'Regional Manager', 'Area Manager', 'Dealer Count', 'DSE Count', 'Target set by Dealer(DSE Count)', 'Auto Set- Dealer (DSE Count)', 'Approved /Modified by AM (DSE Count)', 'Auto Approved (AM) (DSE Count)', 'Target Set for Scooter', 'Target Set for Motorcycle', 'Total Target Set', 'Total Target Achieved % (MTD)'); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth('25'); //$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth('25'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $objPHPExcel->getActiveSheet()->getStyle("A" . $row . ":N" . $row)->getAlignment()->setWrapText(true); $from_date = date('Y-m-d', strtotime($year_data . "-" . $month . "-01")); $to_date = date('Y-m-t', strtotime($year_data . "-" . $month . "-01")); $user_cond = ""; $zmemail = escape_str($parent->_request["zmemail"]); $rmemail = escape_str($parent->_request["rmemail"]); $amemail = escape_str($parent->_request["amemail"]); $mcond = ''; if (($amemail != 'all' && $amemail != '') || ($rmemail != 'all' && $rmemail != '') || ($zmemail != 'all' && $zmemail != '')) { $mcond = ($amemail != 'all' && $amemail != '') ? " AND am_email='" . $amemail . "'" : ''; $mcond .= ($rmemail != 'all' && $rmemail != '') ? " AND rm_email='" . $rmemail . "'" : ''; $mcond .= ($zmemail != 'all' && $zmemail != '') ? " AND zm_email='" . $zmemail . "'" : ''; } if ($parent->current_user_role == 14) { $mcond = " AND dealer_code='" . $parent->current_user_data->dealer_code . "'"; $dealer_cond = " AND dealer_code='" . $parent->current_user_data->dealer_code . "'"; } $data_arr = array(); //GET ALL AM $getamquery_str = "SELECT zm_name,zm_email,rm_name,rm_email,am_name,am_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " GROUP BY am_email ORDER BY zm_name,rm_name,am_name ASC"; $getam_data = $parent->getQueryValue($getamquery_str); if (count($getam_data) > 0) { foreach ($getam_data as $res_am) { //DEALER COUNT $getdealercount_str = "SELECT COUNT(id) dealer_count FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND zm_email='" . $res_am->zm_email . "' AND rm_email='" . $res_am->rm_email . "' AND am_email='" . $res_am->am_email . "' " . $dealer_cond; $getdealercount_data = $parent->getQueryValue($getdealercount_str); $res_am->dealer_count = (count($getdealercount_data) > 0) ? $getdealercount_data[0]->dealer_count : "0"; //DSE COUNT $query_str = "SELECT COUNT(DISTINCT u.id) emp_count FROM " . DMS_EMPLOYEE . " u JOIN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND zm_email='" . $res_am->zm_email . "' AND rm_email='" . $res_am->rm_email . "' AND am_email='" . $res_am->am_email . "' " . $dealer_cond . ")d ON u.dealer_code=d.dealer_code WHERE u.role IN (SELECT rolename FROM `" . TABLE_ROLE . "` WHERE id>7 AND id<14) AND u.status=1 AND u.is_current=1 LIMIT 1 "; $dsecount_arr = $parent->getQueryValue($query_str); $res_am->dse_count = (count($dsecount_arr) > 0) ? $dsecount_arr[0]->emp_count : "0"; //Target Set by Dealers $query_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 AND u.is_current=1 )as e JOIN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND zm_email='" . $res_am->zm_email . "' AND rm_email='" . $res_am->rm_email . "' AND am_email='" . $res_am->am_email . "' " . $dealer_cond . ")d ON e.dealer_code=d.dealer_code JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=14)as s ON e.smpin=s.smpin LIMIT 1 "; $target_arr = $parent->getQueryValue($query_str); $res_am->dealer_target_set_dse_count = (count($target_arr) > 0) ? $target_arr[0]->emp_count : "0"; //Target Auto Target Dealers $res_am->dealer_autotarget_dse_count = (string) ($res_am->dse_count - $res_am->dealer_target_set_dse_count); //Target Set by AM $query_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 AND u.is_current=1 )as e JOIN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND zm_email='" . $res_am->zm_email . "' AND rm_email='" . $res_am->rm_email . "' AND am_email='" . $res_am->am_email . "' " . $dealer_cond . ")d ON e.dealer_code=d.dealer_code JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=7)as s ON e.smpin=s.smpin LIMIT 1 "; $target_arr = $parent->getQueryValue($query_str); $res_am->am_target_set_dse_count = (count($target_arr) > 0) ? $target_arr[0]->emp_count : "0"; //Target Auto Target AM $res_am->am_autotarget_dse_count = (string) ($res_am->dse_count - $res_am->am_target_set_dse_count); //MOTORCYCLE TARGET $query_str = "SELECT COALESCE(SUM(s.target),'0')as tot_target FROM (SELECT smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s JOIN (SELECT smpin,dealer_code FROM " . DMS_EMPLOYEE . " WHERE is_current=1 AND status=1 AND segment=1) e On e.smpin=s.smpin JOIN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND zm_email='" . $res_am->zm_email . "' AND rm_email='" . $res_am->rm_email . "' AND am_email='" . $res_am->am_email . "' " . $dealer_cond . ") d On e.dealer_code=d.dealer_code "; $target_arr = $parent->getQueryValue($query_str); $res_am->motorcycle_target = (count($target_arr) > 0) ? $target_arr[0]->tot_target : '0'; //SCOOTER TARGET $query_str = "SELECT COALESCE(SUM(s.target),'0')as tot_target FROM (SELECT smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s JOIN (SELECT smpin,dealer_code FROM " . DMS_EMPLOYEE . " WHERE is_current=1 AND status=1 AND segment=2) e On e.smpin=s.smpin JOIN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND zm_email='" . $res_am->zm_email . "' AND rm_email='" . $res_am->rm_email . "' AND am_email='" . $res_am->am_email . "' " . $dealer_cond . ") d On e.dealer_code=d.dealer_code "; $target_arr = $parent->getQueryValue($query_str); $res_am->scooter_target = (count($target_arr) > 0) ? $target_arr[0]->tot_target : '0'; //TOTAL TARGET $query_str = "SELECT COALESCE(SUM(s.target),'0')as tot_target FROM (SELECT smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s JOIN (SELECT smpin,dealer_code FROM " . DMS_EMPLOYEE . " WHERE is_current=1 AND status=1 ) e On e.smpin=s.smpin JOIN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND zm_email='" . $res_am->zm_email . "' AND rm_email='" . $res_am->rm_email . "' AND am_email='" . $res_am->am_email . "' " . $dealer_cond . ") d On e.dealer_code=d.dealer_code "; $target_arr = $parent->getQueryValue($query_str); $res_am->tot_target = (count($target_arr) > 0) ? $target_arr[0]->tot_target : '0'; //TOTAL SALES $query_str = "SELECT COALESCE(SUM(s.sales_count),'0')as tot_sales FROM (SELECT smpin,sales_count FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' ) s JOIN (SELECT smpin,dealer_code FROM " . DMS_EMPLOYEE . " WHERE is_current=1 AND status=1) e On e.smpin=s.smpin JOIN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND zm_email='" . $res_am->zm_email . "' AND rm_email='" . $res_am->rm_email . "' AND am_email='" . $res_am->am_email . "' " . $dealer_cond . ") d On e.dealer_code=d.dealer_code "; $sales_arr = $parent->getQueryValue($query_str); $res_am->tot_sales = (count($sales_arr) > 0) ? $sales_arr[0]->tot_sales : '0'; $res_am->total_percent = ($res_am->tot_target) ? round((($res_am->tot_sales / $res_am->tot_sales) * 100), 2) : '0'; $data_arr[] = $res_am; } } if (count($data_arr) > 0) { foreach ($data_arr as $res_user) { $i = 0; $row++; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_count); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dse_count); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_target_set_dse_count); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_autotarget_dse_count); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_target_set_dse_count); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_autotarget_dse_count); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->motorcycle_target); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->scooter_target); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->tot_target); //$objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->tot_sales); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->total_percent); } } //LOG $logstr = 'AM SALESTARGET EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('AM SALESTARGET REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "am_salestarget_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// ZM REPORT EXPORT //////////////////////////////////////////////// */ private function zmcoursereport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "COURSE COMPLETION REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Name', 'Emp Code', 'Mobile', 'EmailID', 'Overall Progress %'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $qry_params = explode("?", $parent->params[1]); $type = strtolower($qry_params[0]); $user_cond = ""; $filter_arr = globalfunc::getFilterValues($parent, $parent->params[1]); $order_by_cond = "ORDER BY u.fname ASC,u.lname ASC,u.userid ASC "; if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' )"; } //$user_cond.=" AND e.is_current='1' "; // u.status='1' AND $get_user_str = "SELECT u.userid,u.fname,u.lname,u.emp_code,u.mobileno,u.emailid FROM " . TABLE_USER . " u JOIN " . DMS_DEALER . " d ON u.emailid=d.zm_email WHERE u.is_deleted='0' AND u.role=4 " . $user_cond . " GROUP BY u.userid " . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { //'Name','Emp Code','Mobile','EmailID','Overall Progress %' $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, trim($res_user->fname . " " . $res_user->fname)); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emp_code); if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid); $content_arr = projectfunc::managerCourseCompleteStatus($parent, $res_user->userid, 4); $percentage = ($content_arr['total'] > 0) ? round(($content_arr['completed'] / $content_arr['total']) * 100) : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $percentage . "%"); } } //LOG $logstr = 'ZM COURSE COMPLETION REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('ZM COURSE REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "zm_course_completion_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// TRAINER REPORT EXPORT //////////////////////////////////////////////// */ private function trainercoursereport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "COURSE COMPLETION REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Name', 'Emp Code', 'Mobile', 'EmailID', 'Overall Progress %'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $qry_params = explode("?", $parent->params[1]); $type = strtolower($qry_params[0]); $user_cond = ""; $filter_arr = globalfunc::getFilterValues($parent, $parent->params[1]); $order_by_cond = "ORDER BY u.fname ASC,u.lname ASC,u.userid ASC "; if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' )"; } //$user_cond.=" AND e.is_current='1' "; // u.status='1' AND $get_user_str = "SELECT u.userid,u.fname,u.lname,u.emp_code,u.mobileno,u.emailid FROM " . TABLE_USER . " u WHERE u.is_deleted='0' AND u.role=5 " . $user_cond . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { //'Name','Emp Code','Mobile','EmailID','Overall Progress %' $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, trim($res_user->fname . " " . $res_user->fname)); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emp_code); if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid); $content_arr = projectfunc::managerCourseCompleteStatus($parent, $res_user->userid, 5); $percentage = ($content_arr['total'] > 0) ? round(($content_arr['completed'] / $content_arr['total']) * 100) : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $percentage . "%"); } } //LOG $logstr = 'TRAINER COURSE COMPLETION REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('TRAINER COURSE REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "trainer_course_completion_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// RM REPORT EXPORT //////////////////////////////////////////////// */ private function rmcoursereport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "COURSE COMPLETION REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Name', 'Emp Code', 'Mobile', 'EmailID', 'Overall Progress %'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $qry_params = explode("?", $parent->params[1]); $type = strtolower($qry_params[0]); $user_cond = ""; $dealer_cond_arr = $this->getmanagerconditon_arr($parent); if (count($dealer_cond_arr) > 0) { //APPEND prefix array_walk($dealer_cond_arr, function (&$value, $key) {$value = 'd.' . $value;}); $user_cond .= " AND " . @implode(" AND ", $dealer_cond_arr); } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[1]); $order_by_cond = "ORDER BY u.fname ASC,u.lname ASC,u.userid ASC "; if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' )"; } //$user_cond.=" AND e.is_current='1' "; // u.status='1' AND $get_user_str = "SELECT u.userid,u.fname,u.lname,u.emp_code,u.mobileno,u.emailid FROM " . TABLE_USER . " u JOIN " . DMS_DEALER . " d ON u.emailid=d.rm_email WHERE u.is_deleted='0' AND u.role=6 " . $user_cond . " GROUP BY u.userid " . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { //'Name','Emp Code','Mobile','EmailID','Overall Progress %' $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, trim($res_user->fname . " " . $res_user->fname)); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emp_code); if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid); $content_arr = projectfunc::managerCourseCompleteStatus($parent, $res_user->userid, 6); $percentage = ($content_arr['total'] > 0) ? round(($content_arr['completed'] / $content_arr['total']) * 100) : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $percentage . "%"); } } //LOG $logstr = 'RM COURSE COMPLETION REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('RM COURSE REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "rm_course_completion_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// RM REPORT EXPORT //////////////////////////////////////////////// */ private function amcoursereport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "COURSE COMPLETION REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row += 2; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Name', 'Emp Code', 'Mobile', 'EmailID', 'Overall Progress %'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $qry_params = explode("?", $parent->params[1]); $type = strtolower($qry_params[0]); $user_cond = ""; $dealer_cond_arr = $this->getmanagerconditon_arr($parent); if (count($dealer_cond_arr) > 0) { //APPEND prefix array_walk($dealer_cond_arr, function (&$value, $key) {$value = 'd.' . $value;}); $user_cond .= " AND " . @implode(" AND ", $dealer_cond_arr); } $filter_arr = globalfunc::getFilterValues($parent, $parent->params[1]); $order_by_cond = "ORDER BY u.fname ASC,u.lname ASC,u.userid ASC "; if (isset($parent->_request["search"])) { $search_txt = escape_str($parent->_request["search"]); $user_cond .= " AND (u.fname LIKE '%" . $search_txt . "%' OR u.lname LIKE '%" . $search_txt . "%' )"; } //$user_cond.=" AND e.is_current='1' "; // u.status='1' AND $get_user_str = "SELECT u.userid,u.fname,u.lname,u.emp_code,u.emailid FROM " . TABLE_USER . " u JOIN " . DMS_DEALER . " d ON u.emailid=d.am_email WHERE u.is_deleted='0' AND u.role=7 " . $user_cond . " GROUP BY u.userid " . $order_by_cond; $user_arr = $parent->getQueryValue($get_user_str); if (count($user_arr) > 0) { foreach ($user_arr as $mkey => $res_user) { //'Name','Emp Code','Mobile','EmailID','Overall Progress %' $i = 0; $row++; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, trim($res_user->fname . " " . $res_user->fname)); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emp_code); if (empty($res_user->mobileno)) { $bordercells_arr = array(getColumnFromNumber($i++) . $row); projectfunc::highlighRows($bordercells_arr, $objPHPExcel); } else { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); } $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid); $content_arr = projectfunc::managerCourseCompleteStatus($parent, $res_user->userid, 7); $percentage = ($content_arr['total'] > 0) ? round(($content_arr['completed'] / $content_arr['total']) * 100) : '0'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $percentage . "%"); } } //LOG $logstr = 'AM COURSE COMPLETION REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('AM COURSE REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "am_course_completion_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// ilearn EXPORT //////////////////////////////////////////////// */ private function ilearnreportold($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); $REQUEST_KEYS = array('fromdate' => 'date|Y-m-d', 'todate' => 'date|Y-m-d'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $fromdate = escape_str($parent->_request["fromdate"]); $todate = escape_str($parent->_request["todate"]); //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "i-Learn REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row++; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "From :" . date('d-m-Y', strtotime($fromdate))); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":B" . $row); $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "To :" . date('d-m-Y', strtotime($todate))); $objPHPExcel->getActiveSheet()->mergeCells("C" . $row . ":D" . $row); //GET ALL TRAINING $ilearn_arr = $parent->getQueryValue("SELECT s.*,CONCAT(u.fname,' ',u.lname) as organiser_name,u.emp_code FROM " . TABLE_VIDEOTRAININGSCHEDULE . " s JOIN " . TABLE_USER . " u ON u.userid=s.organiser WHERE s.fromdate>='" . $fromdate . " 00:00:00' AND s.fromdate<='" . $todate . " 23:59:59' AND s.is_deleted=0 ORDER BY s.fromdate ASC,s.id ASC"); $row++; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, 'J' . $row, 'K' . $row, 'L' . $row, 'M' . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Title', 'Organiser', 'From', 'To', 'SMPIN', 'Name', 'Mobile', 'EmailID', 'Dealer code', 'Dealer', 'Start time', 'End Time', 'Time Taken'); $i = 0; $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } if (count($ilearn_arr) > 0) { foreach ($ilearn_arr as $res_ilearn) { // $row+=2; // $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"Title :".$res_ilearn->title); // $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row); // $row++; // // $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"Organiser :".$res_ilearn->organiser_name); // $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":B".$row); // $objPHPExcel->getActiveSheet()->SetCellValue('C'.$row,"From :".date('d-m-Y h:i A',strtotime($res_ilearn->fromdate))); // $objPHPExcel->getActiveSheet()->mergeCells("C".$row.":D".$row); // $objPHPExcel->getActiveSheet()->SetCellValue('E'.$row,"To :".date('d-m-Y h:i A',strtotime($res_ilearn->todate))); // $objPHPExcel->getActiveSheet()->mergeCells("E".$row.":F".$row); $user_arr = $parent->getQueryValue("SELECT u.userid,u.fname,u.lname,u.smpin,u.dealer_code, u.role,u.emp_code,u.mobileno,u.emailid,CASE WHEN u.role IN (8,9,10,11,12,13) THEN d.dealer_name ELSE '' END as dealer_name,CASE WHEN u.segment=0 THEN 'Common' WHEN u.segment=1 THEN 'Motorcycle' WHEN u.segment=2 THEN 'Scooter' END as segment_str FROM " . TABLE_VIDEOSCHEDULEUSER . " vu JOIN " . TABLE_USER . " u ON vu.userid=u.userid LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE u.status='1' AND u.is_deleted='0' AND vu.sid='" . $res_ilearn->id . "' ORDER BY u.dealer_code ASC,u.fname ASC,u.userid ASC"); if (count($user_arr) > 0) { foreach ($user_arr as $res_user) { $i = 0; $row++; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_ilearn->title); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_ilearn->organiser_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_ilearn->fromdate))); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_ilearn->todate))); $smpin = ($res_user->role > 7 && $res_user->role < 14) ? $res_user->smpin : $res_user->emp_code; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $smpin); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, trim($res_user->fname . " " . $res_user->fname)); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); $time_arr = $parent->getQueryValue("SELECT MIN(fromtime)fromtime,MAX(totime)totime,SUM(timetaken) tottime FROM `" . TABLE_VIDEOTRAININGTIMER . "` WHERE sid='" . $res_ilearn->id . "' AND userid='" . $res_user->userid . "' GROUP BY userid"); //$start_arr=$parent->getQueryValue("SELECT * FROM ".TABLE_VIDEOTRAININGTIMER." WHERE sid='".$res_ilearn->id."' AND userid='".$res_user->userid."' ORDER BY id ASC LIMIT 1"); $start_time = (count($time_arr) > 0 && $time_arr[0]->fromtime) ? date('d-m-Y h:i A', strtotime($time_arr[0]->fromtime)) : ''; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $start_time); //$end_arr=$parent->getQueryValue("SELECT * FROM ".TABLE_VIDEOTRAININGTIMER." WHERE sid='".$res_ilearn->id."' AND userid='".$res_user->userid."' ORDER BY id DESC LIMIT 1"); $end_time = (count($time_arr) > 0 && $time_arr[0]->totime) ? date('d-m-Y h:i A', strtotime($time_arr[0]->totime)) : ''; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $end_time); //$tot_arr=$parent->getQueryValue("SELECT SUM(timetaken) tottime FROM ".TABLE_VIDEOTRAININGTIMER." WHERE sid='".$res_ilearn->id."' AND userid='".$res_user->userid."' GROUP BY userid"); $timetaken = (count($time_arr) > 0 && $time_arr[0]->tottime) ? $time_arr[0]->tottime : ''; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $timetaken); } } } } //LOG $logstr = 'ILEARN REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->getActiveSheet()->setTitle('i LEARN REPORT'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "ilearn_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ /* /////////////////////////////// ilearn EXPORT //////////////////////////////////////////////// */ private function ilearnreport($parent) { globalfunc::checkMethodType($parent, array('POST')); globalfunc::checkParamCount($parent, 1); globalfunc::checkAuthrozation($parent, array('type' => 'user')); $REQUEST_KEYS = array('fromdate' => 'date|Y-m-d', 'todate' => 'date|Y-m-d'); globalfunc::mandatoryKey($parent, $REQUEST_KEYS); $fromdate = escape_str($parent->_request["fromdate"]); $todate = escape_str($parent->_request["todate"]); $row = 0; //Excel class library require_once dirname(__FILE__) . '/../../PHPExcel.php'; require_once dirname(__FILE__) . '/../../PHPExcel/Writer/Excel2007.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getActiveSheet()->setTitle("Dashboard"); $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "i-Learn REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row++; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "From :" . date('d-m-Y', strtotime($fromdate))); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":B" . $row); $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "To :" . date('d-m-Y', strtotime($todate))); $objPHPExcel->getActiveSheet()->mergeCells("C" . $row . ":D" . $row); $row++; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER $header_arr = array('Trainer Name', 'No.of Sessions', 'Total Duration (Mins)', 'Total Participants', 'Total Participants planned', 'Total Participants Attended', 'Avg. Batch Size'); $i = 0; $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } $trainer_arr = $parent->getQueryValue("SELECT userid,fname,lname FROM " . TABLE_USER . " WHERE role=5 AND is_deleted=0 AND status=1 ORDER BY userid"); if (count($trainer_arr) > 0) { foreach ($trainer_arr as $res_user) { $schdeule_arr = $parent->getQueryValue("SELECT COUNT(id) no_of_session FROM " . TABLE_VIDEOTRAININGSCHEDULE . " WHERE organiser='" . $res_user->userid . "' AND is_deleted=0 AND fromdate>='" . $fromdate . " 00:00:00' AND fromdate<='" . $todate . " 23:59:59' LIMIT 1"); $no_of_session = (count($schdeule_arr) > 0) ? $schdeule_arr[0]->no_of_session : ''; $time_arr = $parent->getQueryValue("SELECT SUM(t.timetaken) tottime FROM `" . TABLE_VIDEOTRAININGTIMER . "` t JOIN " . TABLE_VIDEOTRAININGSCHEDULE . " s ON t.sid=s.id WHERE s.organiser='" . $res_user->userid . "' AND s.is_deleted=0 AND s.fromdate>='" . $fromdate . " 00:00:00' AND s.fromdate<='" . $todate . " 23:59:59'"); $tot_duration = (count($time_arr) > 0) ? $time_arr[0]->tottime : '0'; $tot_duration = ($tot_duration > 0) ? round($tot_duration / 60) : 0; $participant_arr = $parent->getQueryValue("SELECT COUNT(DISTINCT u.id) tot_part FROM `" . TABLE_VIDEOSCHEDULEUSER . "` u JOIN " . TABLE_VIDEOTRAININGSCHEDULE . " s ON u.sid=s.id WHERE u.status=1 AND s.organiser='" . $res_user->userid . "' AND s.is_deleted=0 AND s.fromdate>='" . $fromdate . " 00:00:00' AND s.fromdate<='" . $todate . " 23:59:59'"); $tot_participant = (count($participant_arr) > 0) ? $participant_arr[0]->tot_part : '0'; $participant_arr = $parent->getQueryValue("SELECT COUNT(DISTINCT t.userid,t.sid) attend_participant FROM `" . TABLE_VIDEOTRAININGTIMER . "` t JOIN " . TABLE_VIDEOTRAININGSCHEDULE . " s ON t.sid=s.id WHERE s.organiser='" . $res_user->userid . "' AND s.is_deleted=0 AND s.fromdate>='" . $fromdate . " 00:00:00' AND s.fromdate<='" . $todate . " 23:59:59'"); $tot_attend_participant = (count($participant_arr) > 0) ? $participant_arr[0]->attend_participant : '0'; $avg_bacth = ($tot_attend_participant > 0) ? round($tot_participant / $tot_attend_participant) : 0; $i = 0; $row++; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, trim($res_user->fname . " " . $res_user->lname)); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $no_of_session); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tot_duration); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tot_participant); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tot_participant); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tot_attend_participant); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $avg_bacth); } } $row = 0; $objPHPExcel->createSheet(1); $objPHPExcel->setActiveSheetIndex(1); $objPHPExcel->getActiveSheet()->setTitle('Report'); //EXCEL HEADER $row += 2; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "i-Learn REPORT"); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":H" . $row); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14); $row++; $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "From :" . date('d-m-Y', strtotime($fromdate))); $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":B" . $row); $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "To :" . date('d-m-Y', strtotime($todate))); $objPHPExcel->getActiveSheet()->mergeCells("C" . $row . ":D" . $row); //GET ALL TRAINING $ilearn_arr = $parent->getQueryValue("SELECT s.*,CONCAT(u.fname,' ',u.lname) as organiser_name,u.emp_code,s.fromdate FROM " . TABLE_VIDEOTRAININGSCHEDULE . " s JOIN " . TABLE_USER . " u ON u.userid=s.organiser WHERE s.fromdate>='" . $fromdate . " 00:00:00' AND s.fromdate<='" . $todate . " 23:59:59' AND s.is_deleted=0 ORDER BY s.fromdate ASC,s.id ASC"); $row++; $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, 'J' . $row, 'K' . $row, 'L' . $row, 'M' . $row, 'N' . $row, 'O' . $row); projectfunc::setCellBorder($bordercells_arr, $objPHPExcel); $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); //SET HEADER //S.no. Date Trainer Name Participant Name(Planned) Participant Name(Attended) smpin from time to time time taken Dealer Name Dealer Code Zone RM AM $header_arr = array('S.no.', 'Date', 'Trainer Name', 'Participant Name(Planned)', 'Participant Name(Attended)', 'SMPIN', 'From time', 'To time', 'Time taken (Min)', 'Dealer Name', 'Dealer Code', 'Zone', 'ZM', 'RM', 'AM'); //$header_arr=array('Title','Organiser','From','To','SMPIN','Name','Mobile','EmailID','Dealer code','Dealer','Start time','End Time','Time Taken'); $i = 0; $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30'); $i = 0; foreach ($header_arr as $val) { $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val); } if (count($ilearn_arr) > 0) { $sn = 0; foreach ($ilearn_arr as $res_ilearn) { // $row+=2; // $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"Title :".$res_ilearn->title); // $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row); // $row++; // // $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"Organiser :".$res_ilearn->organiser_name); // $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":B".$row); // $objPHPExcel->getActiveSheet()->SetCellValue('C'.$row,"From :".date('d-m-Y h:i A',strtotime($res_ilearn->fromdate))); // $objPHPExcel->getActiveSheet()->mergeCells("C".$row.":D".$row); // $objPHPExcel->getActiveSheet()->SetCellValue('E'.$row,"To :".date('d-m-Y h:i A',strtotime($res_ilearn->todate))); // $objPHPExcel->getActiveSheet()->mergeCells("E".$row.":F".$row); $user_arr = $parent->getQueryValue("SELECT u.userid,u.fname,u.lname,u.smpin,u.dealer_code, u.role,u.emp_code,u.mobileno,u.emailid,CASE WHEN u.role IN (8,9,10,11,12,13) THEN d.dealer_name ELSE '' END as dealer_name,CASE WHEN u.segment=0 THEN 'Common' WHEN u.segment=1 THEN 'Motorcycle' WHEN u.segment=2 THEN 'Scooter' END as segment_str,d.zm_name,d.rm_name,d.am_name,d.zone FROM " . TABLE_VIDEOSCHEDULEUSER . " vu JOIN " . TABLE_USER . " u ON vu.userid=u.userid LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE vu.status=1 AND u.status='1' AND u.is_deleted='0' AND vu.sid='" . $res_ilearn->id . "' GROUP BY vu.sid,vu.userid ORDER BY u.dealer_code ASC,u.fname ASC,u.userid ASC"); if (count($user_arr) > 0) { foreach ($user_arr as $res_user) { $i = 0; $row++; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, ++$sn); // $header_arr=array('S.no.','Date','Trainer Name','Participant Name(Planned)','Participant Name(Attended)','SMPIN','From time','To time','Time taken','Dealer Name','Dealer Code','Zone','ZM','RM','AM'); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y', strtotime($res_ilearn->fromdate))); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_ilearn->organiser_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, trim($res_user->fname . " " . $res_user->fname)); $check_arr = $parent->getQueryValue("SELECT id FROM `" . TABLE_VIDEOTRAININGTIMER . "` WHERE sid='" . $res_ilearn->id . "' AND userid='" . $res_user->userid . "' LIMIT 1"); $attend_name = (count($check_arr) > 0) ? trim($res_user->fname . " " . $res_user->fname) : '-'; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $attend_name); $smpin = ($res_user->role > 7 && $res_user->role < 14) ? $res_user->smpin : $res_user->emp_code; $objPHPExcel->getActiveSheet()->getStyle('A' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $smpin); $time_arr = $parent->getQueryValue("SELECT MIN(fromtime)fromtime,MAX(totime)totime,SUM(timetaken) tottime FROM `" . TABLE_VIDEOTRAININGTIMER . "` WHERE sid='" . $res_ilearn->id . "' AND userid='" . $res_user->userid . "' GROUP BY userid"); $start_time = (count($time_arr) > 0 && $time_arr[0]->fromtime) ? date('d-m-Y h:i A', strtotime($time_arr[0]->fromtime)) : ''; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $start_time); $end_time = (count($time_arr) > 0 && $time_arr[0]->totime) ? date('d-m-Y h:i A', strtotime($time_arr[0]->totime)) : ''; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $end_time); $timetaken = (count($time_arr) > 0 && $time_arr[0]->tottime) ? round($time_arr[0]->tottime / 60) : ''; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $timetaken); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name); $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code); $zone = ($res_user->role > 7 && $res_user->role < 14) ? $res_user->zone : ''; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $zone); $zm_name = ($res_user->role > 7 && $res_user->role < 14) ? $res_user->zm_name : ''; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $zm_name); $rm_name = ($res_user->role > 7 && $res_user->role < 14) ? $res_user->rm_name : ''; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $rm_name); $am_name = ($res_user->role > 7 && $res_user->role < 14) ? $res_user->am_name : ''; $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $am_name); } } } } //LOG $logstr = 'ILEARN REPORT EXPORT'; globalfunc::insertUserLog($parent, $logstr); $objPHPExcel->setActiveSheetIndex(0); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $fpath = "../../" . S3_REPORT_URL; $filename = "ilearn_report_" . uniqid() . ".xlsx"; $objWriter->save($fpath . $filename); //CONNECT S3 $s3 = awsfileserver::connectS3(); awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); //delete report @unlink(dirname(__FILE__) . "/../../../" . S3_REPORT_URL . $filename); $filename = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_REPORT_URL . $filename); $parent->response(array('response' => 'success', 'data' => $filename, 'message' => $this->page_data['success1']), 200); } /* //////////////////////////////////////////////////////////////////////////////////////////// */ }