HEX
Server: Apache/2.4.41 (Amazon) OpenSSL/1.0.2k-fips PHP/5.6.40
System: Linux ip-172-31-40-18 4.14.146-93.123.amzn1.x86_64 #1 SMP Tue Sep 24 00:45:23 UTC 2019 x86_64
User: apache (48)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: //var/www/html/taxicamera/application/controllers/admin/BondReport.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');

class BondReport extends MY_Controller
{
    public function __construct()
    {
        parent::__construct();
        //$this->redirect_guest();
        $this->admin = $this->session->userdata('admin');
        $this->load->model('admin/mreport');
        $this->load->model('admin/Mdriver');
        if ($this->session->userdata('admin') != 1) {
            redirect('admin');
        }
    }
    public function   index() { 
        //$this->session->unset_userdata('driver_settlement');
        //echo $this->session->userdata('email');die;
        $this->_load_bond_report_list();        
    }   
    private function _load_bond_report_list() {
        $data                       =  array();        
        $driver_list                = $this->Mdriver->get_driver_list('1');   
        if(!empty($driver_list)){
            $data['driver_list']    = $driver_list;
        }
        else{
            $data['driver_list']    = '';
        }
        $data['content']            = 'admin/report/bond/bond_report_list';
        $this->load->view('admin/layouts/index', $data);
    }
    public function BondReportGenerate() {
        $data           = array();
        $responce_arr   = array();
        $driver_id      = $this->input->post("driver_id");
        //echo $this->input->post("driver_id");exit;
        $from_date='';
        $to_date='';
        if($this->input->post("from_date") && $this->input->post("to_date")){
            $from_date    = date('Y-m-d',strtotime(str_replace('/','-',$this->input->post("from_date"))));
            $to_date      = date('Y-m-d',strtotime(str_replace('/','-',$this->input->post("to_date"))));
        }
        
        $data                   = array();
        $order                  = 'DS.dr_settlement_id';
        $order_type             = 'DESC';
        $data['content']        = 'admin/driver_settlement/driver_settlement_list';
        $joindata   = array('select'        =>'DS.*,master_car.registration_no as car_no,master_user.dc_no,user_profile.first_name,user_profile.middle_name,user_profile.last_name,master_bond.initial_amt_paid,dsd.shift_no,DS.created_on',
                            'first_table'   =>'driver_settlement DS',
                            'second_table'  =>'master_user',
                            'dependency1'   =>'DS.driver_id = master_user.user_id',
                            'join_type1'    =>'left',                  
                        /********************************/ 
                            'third_table'   =>'user_profile',
                            'dependency2'   =>'user_profile.user_id = master_user.user_id',
                            'join_type2'    =>'left',
                        /*********************************/
                            'forth_table'   =>'driver_shift_details dsd',
                            'dependency3'   =>'dsd.shift_id = DS.shift_id',
                            'join_type3'    =>'left',
                        /*********************************/
                            'fifth_table'   =>'roster_driver_maping RDM',
                            'dependency4'   =>'RDM.roster_driver_id = dsd.roster_driver_id',
                            'join_type4'    =>'left',
                        /*********************************/ 
                            'sixth_table'   =>'roster',
                            'dependency5'   =>'RDM.roster_id = roster.roster_id',
                            'join_type5'    =>'left',

                        /*********************************/   
                            'seventh_table'   =>'master_car',
                            'dependency6'   =>'master_car.car_id = roster.car_id',
                            'join_type6'    =>'left',
                        /*********************************/   
                            'eighth_table' =>'master_bond',
                            'dependency7'   =>'master_bond.driver_id = DS.driver_id',
                            'join_type7'    =>'left'
                        );
    
                $cond ='1 = 1';
                if($driver_id){
                    $cond .= " and DS.driver_id ='".$driver_id."'";
                }
                if($from_date && $to_date){
                    $cond .=" and str_to_date(date_format(DS.created_on,'%Y-%m-%d'),'%Y-%m-%d') between '".$from_date."' and '".$to_date."'";
                }
        $bond_report_data     = $this->mcommon->joinQuery($joindata,$cond,'result',$order,$order_type);

        
        $order_1                  = 'DS.last_settlement_date';
        $order_type_1             = 'DESC';
        $joindata_1   = array('select'        =>'DS.*,master_user.dc_no,user_profile.first_name,user_profile.middle_name,user_profile.last_name,master_bond.initial_amt_paid',
                            'first_table'   =>'driver_refund_settlement DS',
                            'second_table'  =>'master_user',
                            'dependency1'   =>'DS.driver_id = master_user.user_id',
                            'join_type1'    =>'left',                  
                        /********************************/ 
                            'third_table'   =>'user_profile',
                            'dependency2'   =>'user_profile.user_id = master_user.user_id',
                            'join_type2'    =>'left',
                        /********************************/ 
                        'forth_table'   =>'master_bond',
                        'dependency3'   =>'master_bond.driver_id = DS.driver_id',
                        'join_type3'    =>'left',
                        );
    
                $cond ='DS.refund_settlement_flag = 1';
                if($driver_id){
                    $cond .= " and DS.driver_id ='".$driver_id."'";
                }
                if($from_date && $to_date){
                    $cond .=" and str_to_date(date_format(DS.last_settlement_date,'%Y-%m-%d'),'%Y-%m-%d') between '".$from_date."' and '".$to_date."'";
                }
        $bond_report_data_1     = $this->mcommon->joinQuery($joindata_1,$cond,'result',$order_1,$order_type_1);
        
        
        
        $order_2                  = 'master_bond.created_on';
        $order_type_2             = 'DESC';
        $joindata_2   = array('select'        =>'master_user.dc_no,user_profile.first_name,user_profile.middle_name,user_profile.last_name,master_bond.initial_amt_paid,master_bond.created_on as updated_on,master_bond.bond_amt,master_bond.bond_refund_amt',
                            'first_table'   =>'master_bond',
                            'second_table'  =>'master_user',
                            'dependency1'   =>'master_bond.driver_id = master_user.user_id',
                            'join_type1'    =>'inner',                  
                        /********************************/ 
                            'third_table'   =>'user_profile',
                            'dependency2'   =>'user_profile.user_id = master_user.user_id',
                            'join_type2'    =>'inner'
                        );
    
                $cond ='1 = 1';
                if($driver_id){
                    $cond .= " AND master_bond.driver_id ='".$driver_id."'";
                }
                if($from_date && $to_date){
                    $cond .=" and str_to_date(date_format(master_bond.created_on,'%Y-%m-%d'),'%Y-%m-%d') between '".$from_date."' and '".$to_date."'";
                }
        $bond_report_data_2     = $this->mcommon->joinQuery($joindata_2,$cond,'result',$order_2,$order_type_2);
        
        
        
        
        
        //echo $this->db->last_query();die;
        //pr($bond_report_data_1);
        if(!empty($bond_report_data)){
            $total_amt   = 0;
            $bond_refund_amt   = 0;
            foreach($bond_report_data as $val){
                $total_amt  = $total_amt+$val['bond_installment'];
            }
            foreach($bond_report_data_1 as $val1){
                $bond_refund_amt  = $bond_refund_amt+$val1['refund_amt'];
            }
            $total_amt +=$bond_report_data[0]['initial_amt_paid'];
            $data['total_amt']            = number_format($total_amt,2);
            $data['bond_refund_amt']            = number_format($bond_refund_amt,2);
            $data['total_accumulated']            = number_format(($total_amt - $bond_refund_amt),2);
            
        }
        else{
            $bond_report_data = array();
            $data['total_amt']            = '0.00';
            $data['bond_refund_amt']  ='0.00';
            $data['total_accumulated']  ='0.00';
            $data['bond_report_data']     = '';
            if(!empty($bond_report_data_2)){
                $total_amt   = 0;
                $bond_refund_amt   = 0;
                foreach($bond_report_data_2 as $val2){
                    
                    
                    $bond_refund_amt  = $bond_refund_amt+$val2['bond_refund_amt'];
                    $total_amt +=$val2['initial_amt_paid'];
                }
                
                
                $data['total_amt']            = number_format($total_amt,2);
                $data['bond_refund_amt']            = number_format($bond_refund_amt,2);
                $data['total_accumulated']            = number_format(($total_amt - $bond_refund_amt),2);
                
                $bond_report_data = array_merge($bond_report_data,$bond_report_data_2);
            }
            
        }
        if(!empty($bond_report_data_1)){
            $bond_report_data = array_merge($bond_report_data,$bond_report_data_1);
        }
        
        $data['bond_report_data']     = $bond_report_data;
        
        
        //echo '<pre>';print_r($data);die;
        $responce_arr['html'] = $this->load->view('admin/report/bond/ajax_bond_report',$data,true);
        echo json_encode($responce_arr);exit;
    }
}