File: /home/cafsindia/cpaqua.cafsinfotech.in/dump/application/controllers/Work_load.php
<?php if ( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Action_controller.php");
class Work_load extends Action_controller{
public function __construct(){
parent::__construct('work_load');
$this->collect_base_info();
}
// LOAD PAGE QUICK LINK,FILTERS AND TABLE HEADERS
public function index(){
$data['encKey'] = $this->generateKey();
$this->load->view("$this->control_name/manage",$data);
}
// WORK PLAN REPORT
public function workload_report(){
//Encryption
$encString = file_get_contents('php://input');
$_POST = $this->cryptoDecrypt($encString);
if(!$_POST){
echo json_encode(array('success' => false,'message' => 'Invalid Request..','table_data' => ""));
exit(0);
}
$from_date = date('Y-m-d', strtotime($this->input->post('from_date')));
$to_date = date('Y-m-d', strtotime($this->input->post('to_date')));
$start_date = new DateTime($from_date);
$end_date = new DateTime($to_date);
$end_date->modify('+1 day');
$dateInterval = new DateInterval('P1D');
$datePeriod = new DatePeriod($start_date, $dateInterval, $end_date);
$date_array = [];
foreach($datePeriod as $date){
$date_array[] = $date->format('Y-m-d');
}
$date_count = count($date_array) + 1;
# RETRIEVE DATA FROM PROJECT LIST [APPROX DAYS] WHOSE WORK STATUS NOT COMPLETED
$wrk_day_qry = 'SELECT master_checker,target_date,approx_weight,approx_days FROM cw_project_list INNER JOIN cw_est_time_sheet_est_time_line AS line ON line.project = cw_project_list.prime_project_list_id WHERE line.trans_status = 1 AND cw_project_list.trans_status = 1 AND work_status <> 3 GROUP BY master_checker';
$wrk_day_info = $this->db->query("CALL sp_a_run ('SELECT','$wrk_day_qry')");
$wrk_day_rslt = $wrk_day_info->result();
$wrk_day_info->next_result();
# RETRIEVE DATA FROM PROJECT LIST [PROJECT COUNT]
$job_count_qry = 'SELECT master_checker,target_date FROM cw_project_list WHERE trans_status = 1';
$job_count_info = $this->db->query("CALL sp_a_run ('SELECT','$job_count_qry')");
$job_count_rslt = $job_count_info->result();
$job_count_info->next_result();
# RETRIEVE DATA FROM PROJECT LIST [APPROX DAYS]
$apx_day_qry = 'SELECT master_checker,target_date,approx_weight,approx_days FROM cw_project_list WHERE trans_status = 1 ';
$apx_day_info = $this->db->query("CALL sp_a_run ('SELECT','$apx_day_qry')");
$apx_day_rslt = $apx_day_info->result();
$apx_day_info->next_result();
# RETRIEVE DATA FROM PROJECT LIST [APPROX TON]
$apx_ton_qry = 'SELECT master_checker,target_date,approx_weight,approx_days FROM cw_project_list WHERE trans_status = 1 AND bid_status <> 4';
$apx_ton_info = $this->db->query("CALL sp_a_run ('SELECT','$apx_ton_qry')");
$apx_ton_rslt = $apx_ton_info->result();
$apx_ton_info->next_result();
# EMPLOYEE NAME
$emp_qry = 'SELECT employee_code,emp_name FROM cw_employees WHERE trans_status = 1';
$emp_info = $this->db->query("CALL sp_a_run ('SELECT','$emp_qry')");
$emp_rslt = $emp_info->result();
$emp_info->next_result();
$emp_array = [];
foreach($emp_rslt as $emp){
$emp_array[$emp->employee_code] = $emp->emp_name;
}
# TABLE HEAD
$table_head = '<thead><tr>';
$table_head .= '<th>TEAM LEADERS</th>';
foreach($date_array as $key => $date){
$date_month = date('d-M', strtotime($date));
$table_head .= '<th>'.$date_month.'</th>';
}
$table_head .= '</tr></thead>';
# TABLE BODY
$table_body = '<tbody>';
foreach($job_count_rslt as $pro){
$mc = $pro->master_checker;
if(!isset($job_count[$mc])){
$job_count[$mc] = array_fill_keys($date_array, 0);
}
if(isset($job_count[$mc][$pro->target_date])){
$job_count[$mc][$pro->target_date]++;
}
}
foreach($job_count as $mas_chk => $value){
$table_body .= '<tr><td style="text-align:left;">'.$emp_array[$mas_chk].'</td>';
foreach($value as $date => $sum){
$table_body .= '<td><input class = "form-control input-sm"></td>';
}
$table_body .= '</tr>';
}
#----------------------------------------APPROX DAYS[WORK STATUS NOT COMPLETED] ------------------------------- #
$table_body .= '<tr><td colspan="'.(count($date_array) + 1).'" style="text-align:left;color:#FFFFFF !important;background-color:#136eab !important;font-weight:bold;">DAYS (Sum Of Approx Days Except Work Status Completed)</td></tr>';
// foreach($date_array as $date){
// $table_body .= '<td></td>'; # EMPTY LINE
// }
// $table_body .= '</tr>';
# APPROX DAYS SUM FOR THOSE WHOSE WORK STATUS NOT COMPLETED
$work_days = [];
foreach($wrk_day_rslt as $pro){
$nxt_date = date('Y-m-d', strtotime('+' . $pro->approx_days . ' day', strtotime($pro->target_date)));
$mc = $pro->master_checker;
if(!isset($work_days[$mc])){
$work_days[$mc] = array_fill_keys($date_array, 0);
}
if(isset($work_days[$mc][$nxt_date])){
$work_days[$mc][$nxt_date] += $pro->approx_days;
}
}
# TABLE ROWS -> APPROX DAYS
foreach($work_days as $mas_chk => $value){
$table_body .= '<tr><td style="text-align:left;">'.$emp_array[$mas_chk].'</td>';
foreach($value as $date => $sum){
$table_body .= '<td>'.($sum == 0 ? '-' : $sum).'</td>';
}
$table_body .= '</tr>';
}
#----------------------------------------APPROX DAYS[WORK STATUS NOT COMPLETED] ------------------------------- #
#------------------------------------------------- COUNT OF JOBS ---------------------------------------------- #
$table_body .= '<tr><td colspan="'.(count($date_array) + 1).'" style="text-align:left;color:#FFFFFF !important;background-color:#136eab !important;font-weight:bold;">SUBMISSION(Count Of Jobs)</td></tr>';
// foreach($date_array as $date){
// $table_body .= '<td></td>'; # EMPTY LINE
// }
// $table_body .= '</tr>';
# PROJECT COUNT
$job_count = [];
foreach($job_count_rslt as $pro){
$mc = $pro->master_checker;
if(!isset($job_count[$mc])){
$job_count[$mc] = array_fill_keys($date_array, 0);
}
if(isset($job_count[$mc][$pro->target_date])){
$job_count[$mc][$pro->target_date]++;
}
}
# TABLE ROWS -> JOB COUNT
foreach($job_count as $mas_chk => $value){
$table_body .= '<tr><td style="text-align:left;">'.$emp_array[$mas_chk].'</td>';
foreach($value as $date => $sum){
$table_body .= '<td>'.($sum == 0 ? '-' : $sum).'</td>';
}
$table_body .= '</tr>';
}
#------------------------------------------------- COUNT OF JOBS ---------------------------------------------- #
#-------------------------------------------------- APPROX DAYS ------------------------------------------------ #
$table_body .= '<tr><td colspan="'.(count($date_array) + 1).'" style="text-align:left;color:#FFFFFF !important;background-color:#136eab !important;font-weight:bold;">SIZE (Sum Of Approx Days)</td></tr>';
// echo ;die;
// foreach($date_array as $date){
// $table_body .= '<td></td>'; # EMPTY LINE
// }
// $table_body .= '';
# APPROX DAYS SUM BASED ON TARGET DAYS INCLUDING SUBMITTED DATE
$approx_days = [];
foreach($apx_day_rslt as $pro){
$nxt_date = date('Y-m-d', strtotime('+' . $pro->approx_days . ' day', strtotime($pro->target_date)));
$mc = $pro->master_checker;
if(!isset($approx_days[$mc])){
$approx_days[$mc] = array_fill_keys($date_array, 0);
}
if(isset($approx_days[$mc][$nxt_date])){
$approx_days[$mc][$nxt_date] += $pro->approx_days;
}
}
# TABLE ROWS -> APPROX DAYS
foreach($approx_days as $mas_chk => $value){
$table_body .= '<tr><td style="text-align:left;">'.$emp_array[$mas_chk].'</td>';
foreach($value as $date => $sum){
$table_body .= '<td>'.($sum == 0 ? '-' : $sum).'</td>';
}
$table_body .= '</tr>';
}
#-------------------------------------------------- APPROX DAYS ------------------------------------------------ #
#-------------------------------------------------- APPROX TONS ------------------------------------------------ #
$table_body .= '<tr><td colspan="'.(count($date_array) + 1).'" style="text-align:left;color:#FFFFFF !important;background-color:#136eab !important;font-weight:bold;">Approx Tons</td></tr>';
// foreach($date_array as $date){
// $table_body .= '<td></td>'; # EMPTY LINE
// }
// $table_body .= '</tr>';
# APPROX WEIGHT SUM BASED TARGET DATE WITHOUT SUBMITTED DATE
$approx_tons = [];
foreach($apx_ton_rslt as $pro){
$nxt_date = date('Y-m-d', strtotime('+' . $pro->approx_days . ' day', strtotime($pro->target_date)));
$mc = $pro->master_checker;
if(!isset($approx_tons[$mc])){
$approx_tons[$mc] = array_fill_keys($date_array, 0);
}
if(isset($approx_tons[$mc][$nxt_date])){
$approx_tons[$mc][$nxt_date] += $pro->approx_weight;
}
}
# TABLE ROWS
foreach($approx_tons as $mas_chk => $value){
$table_body .= '<tr><td style="text-align:left;">'.$emp_array[$mas_chk].'</td>';
foreach($value as $date => $sum){
$table_body .= '<td>'.($sum == 0 ? '-' : $sum).'</td>';
}
$table_body .= '</tr>';
}
#-------------------------------------------------- APPROX TONS ------------------------------------------------ #
$table_body .= '</tbody>';
$table = "<table class='table table-striped table-bordered' id = 'work_load'>".$table_head.$table_body."</table>";
if($apx_day_rslt){
echo json_encode(array("success" => TRUE,'table'=>$table));
}else{
echo json_encode(array('success'=>FALSE,'message'=>'No Records Found.!'));
}
}
}
?>