sparqapi/api/application/controllers/Dash_Board_Controller.php
2023-09-20 15:09:42 +05:30

248 lines
8.7 KiB
PHP

<?php
/**
* User: velz
* This Controller deals with PD Related CRUD Operations
*/
defined('BASEPATH') OR exit('No direct script access allowed');
require_once APPPATH . '/libraries/REST_Controller.php';
class Dash_Board_Controller extends REST_Controller {
function __construct()
{
// Construct the parent class
parent::__construct();
$this->load->model('Dash_Board_Model');
$this->load->model('PD_Model');
}
public function getDashBoardDetailsOfPDTypeAndPDStatusWithDayWeekMonth_get()
{
$res = $this->Dash_Board_Model->getDetailsOfPDTypeAndPDStatusWithDayWeekMonth();
$data['dataStatus'] = true;
$data['status'] = REST_Controller::HTTP_OK;
$data['records'] = $res;
$this->response($data,REST_Controller::HTTP_OK);
}
public function getDashBoardDetails_post()
{
$fdate = '';
$tdate = '';
$cityarr = '';
$lenderarr = '';
if($this->post('fromdate')) { $fdate = $this->post('fromdate'); }
if($this->post('todate')){ $tdate = $this->post('todate'); }
if($this->post('cityarr')) { $cityarr = $this->post('cityarr'); }
if($this->post('lenderarr')) { $lenderarr = $this->post('lenderarr'); }
// echo $from_date;
// echo $to_date;
// print_r($city_arr);
// print_r($lender_arr);
// die();
$res = $this->Dash_Board_Model->getDetailsOfPDType($fdate,$tdate,$cityarr,$lenderarr);
$data['dataStatus'] = true;
$data['status'] = REST_Controller::HTTP_OK;
$data['records'] = $res;
$this->response($data,REST_Controller::HTTP_OK);
}
public function getDashBoardDetailsOfLenderAndCitywise_get()
{
$res = $this->Dash_Board_Model->getDetailsOfLenderAndCitywise();
$data['dataStatus'] = true;
$data['status'] = REST_Controller::HTTP_OK;
$data['records'] = $res;
$this->response($data,REST_Controller::HTTP_OK);
}
public function getDashBoardDetailsOfCitywise_get()
{
$res = $this->Dash_Board_Model->getDashBoardDetailsOfCitywise();
$data['dataStatus'] = true;
$data['status'] = REST_Controller::HTTP_OK;
$data['records'] = $res;
$this->response($data,REST_Controller::HTTP_OK);
}
public function getDashBoardDetailsOfAlert_get(){
$res = $this->Dash_Board_Model->getDashBoardDetailsOfAlert();
$data['dataStatus'] = true;
$data['status'] = REST_Controller::HTTP_OK;
$data['records'] = $res;
$this->response($data,REST_Controller::HTTP_OK);
}
public function PD_MIS_report_post()
{
$filter_params = ($this->post());
$applicant_id = isset($filter_params['applicant_id']) && $filter_params['applicant_id'] != '' ? $filter_params['applicant_id'] : null;
$from_date = isset($filter_params['from_date']) && $filter_params['from_date'] != '' ? $filter_params['from_date'] : null;
$to_date = isset($filter_params['to_date']) && $filter_params['to_date'] != '' ? $filter_params['to_date'] : null;
$city = isset($filter_params['city']) && $filter_params['city'] != '' ? $filter_params['city'] : null;
$branch = isset($filter_params['branch']) && $filter_params['branch'] != '' ? $filter_params['branch'] : null;
$res = $this->Dash_Board_Model->PD_MIS_report($applicant_id,$from_date,$to_date,$city,$branch);
$data['dataStatus'] = true;
$data['status'] = REST_Controller::HTTP_OK;
$data['records'] = $res;
$this->response($data,REST_Controller::HTTP_OK);
}
public function PD_MIS_report_remarks_post()
{
$pd_id = $this->post('pd_id');
$remarks = $this->post('remarks');
if(!empty($pd_id)){
$result_data = $this->Dash_Board_Model->PD_MIS_report_remarks($pd_id,$remarks);
}else{
$result_data = "PDID Not Available. Unable to Update the Remarks";
}
$data['dataStatus'] = true;
$data['status'] = REST_Controller::HTTP_OK;
$data['msg'] = $result_data ;
$this->response($data,REST_Controller::HTTP_OK);
}
public function alertPDTAT_get()
{
$pd_tat = $this->Dash_Board_Model->selectRecords('PD_TAT');
//print_r($pd_tat);
//die();
$res_array = array();
foreach ($pd_tat as $key => $value)
{
if($value['Allocated'] != "" && $value['Accepted'] == "")
{
$allocated_date = date_create($value['Allocated']);
$accepted_date = $value['Accepted'] != "" ? date_create( $value['Accepted'] ) : date_create(date('Y-m-d H:i:s'));
$diff = date_diff($allocated_date,$accepted_date);
$res_array[$key]['pdid'] = $value['PD'];
$res_array[$key]['pd_sno'] = $value['pd_sno'];
$res_array[$key]['allocated'] = $value['Allocated'];
$res_array[$key]['accepted'] = $value['Accepted'];
$res_array[$key]['tat'] = $value['tat'] ? $value['tat'] : 'TAT NOT DEFINED';
//$res_array[$key]['diff'] = $diff->format('%m months %d days %H hrs %i mins %s secs');
if( $diff->d )
{
$res_array[$key]['comment'] = $diff->format('%d days %H hrs %i mins %s secs');
$res_array[$key]['status'] = $value['tat'] && $diff->d ? 'TAT BREACH': 'NORMAL';
}
else if( !$diff->d && $diff->h)
{
$res_array[$key]['comment'] = $diff->format('%H hrs %i mins %s secs');
$res_array[$key]['status'] = $value['tat'] && $diff->h ? 'TAT BREACH': 'NORMAL';
}
else if(!$diff->d && !$diff->h && $diff->i)
{
$res_array[$key]['comment'] = $diff->format('%i mins %s secs');
$res_array[$key]['status'] = $value['tat'] && $diff->i ? 'TAT BREACH': 'NORMAL';
}
}
}
print_r($res_array);
}
public function pdTATReport_post()
{
$filter_params = ($this->post());
$applicant_id = isset($filter_params['applicant_id']) && $filter_params['applicant_id'] != '' ? $filter_params['applicant_id'] : null;
$from_date = isset($filter_params['from_date']) && $filter_params['from_date'] != '' ? $filter_params['from_date'] : null;
$to_date = isset($filter_params['to_date']) && $filter_params['to_date'] != '' ? $filter_params['to_date'] : null;
$city = isset($filter_params['city']) && $filter_params['city'] != '' ? $filter_params['city'] : null;
$branch = isset($filter_params['branch']) && $filter_params['branch'] != '' ? $filter_params['branch'] : null;
$lender_short_name = isset($filter_params['lender_short_name']) && $filter_params['lender_short_name'] != '' ? $filter_params['lender_short_name'] : null;
$res = $this->Dash_Board_Model->pdTATreport($applicant_id,$from_date,$to_date,$city,$branch,$lender_short_name);
$mapped_title = array();
$title = array();
$final = array();
$lender = in_array($lender_short_name,array('ICICI','CLIX','HHFL','IMGC','IIB')) ? $lender_short_name : 'OTHERS';
$field_mapping = $this->Dash_Board_Model->lenderwise_field_mapping($lender);
for($a=0;$a<count($field_mapping);$a++){
$column = explode(",",$field_mapping[$a]['column_list']);
$lender = $field_mapping[$a]['lender_short_name'];
$title_arr = explode(",",$field_mapping[$a]['column_title']);
}
$array = json_decode(json_encode($res), true);
for($i=0;$i<count($array);$i++){
for($j=0;$j<count($title_arr);$j++){
if($column[$j] == "address_visited"){
$final[$i]["address_visited"] = str_replace( ',', '', $array[$i]['address_visited'] )." \n ".$array[$i]['state']." \n ".$array[$i]['city']." ".$array[$i]['pincode'];
}else{
$final[$i][$column[$j]] = $array[$i][$column[$j]];
}
}
}
for($k=0;$k<count($column);$k++){
// $mapped_title[$column[$k]] = $title_arr[$k];
$mapped_title[$k] = array($column[$k] => $title_arr[$k],"is_multi_line_enabled" => ($column[$k]=="address_visited"?true:false));
$title[$k] = $title_arr[$k];
}
$data['dataStatus'] = true;
$data['status'] = REST_Controller::HTTP_OK;
// $data['records'] = $res;
$data['records'] = $final;
$data['lender'] = $lender_short_name;
$data['mappedHeader'] = $mapped_title;
$data['header']= $title;
$this->response($data,REST_Controller::HTTP_OK);
}
/****************************\
* API : callAPIForPortals *
* Method : post *
\****************************/
public function callAPIForPortals_post()
{
$logger = MYLOG::logSalesCET();
try {
$sales_details = $this->post('sales_object');
$user_details = $this->post('user_object');
$link_url = $this->post('link_url');
if (!$sales_details && !$user_details && !$link_url) {
throw new Exception("Data not found.");
}
$logger->info($link_url, array('Link' => $link_url, 'Sales Details' => $sales_details, 'User Details' => $user_details));
$data['dataStatus'] = true;
$data['status'] = REST_Controller::HTTP_OK;
$data['message'] = 'Message Logged';
} catch (Exception $e) {
$logger->error('Caught Exception: ' . $e->getMessage());
$data['dataStatus'] = false;
$data['status'] = REST_Controller::HTTP_NO_CONTENT;
$data['message'] = 'An error occurred: ' . $e->getMessage();
}
$this->response($data, REST_Controller::HTTP_OK);
}
}