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/qcr24/app/application/models/api/Mdriver.php
<?php
 class Mdriver extends CI_Model {
    function __construct(){
        parent::__construct(); 
    }
    public function insert($table,$data){
        $this->db->insert($table,$data);
        return $this->db->insert_id();
    }
	public function batch_insert($table,$data){
        $this->db->insert_batch($table,$data);
        return 1;
    } 
    public function getDetails($table,$condition){
        $this->db->where($condition);
        $query=$this->db->get($table);
        return $query->result_array(); 
    }

    public function get_driver_details($driver_id){
        $this->db->select('md.*');
        $this->db->from('master_driver md');
		$this->db->where('md.driver_id',$driver_id);
        $query=$this->db->get();
        return $query->row_array();
    }

    public function checkDriverDetails($condition){
        $this->db->select('md.*');
        $this->db->where($condition);
        $query=$this->db->get('master_driver md');
        //echo $this->db->last_query();die;
        return $query->row_array(); 
    }

    public function get_address_proof_list(){

        $this->db->select('mub.utility_bill_id,mub.utility_bill_name');
        $this->db->from('master_utility_bill mub');
        $this->db->where('mub.status','0');
        $this->db->order_by('mub.utility_bill_id','DESC');
        $query=$this->db->get();
        //print_r($this->db->last_query());die();
		return $query->result_array();
    }
    
    public function get_return_notice_list($driver_id,$search_text = null){

        $this->db->select('rn.return_notice_id,rn.rent_out_id,rn.car_no,rn.driver_id,date_format(rn.retrun_notice_date,"%d/%m/%Y") as retrun_notice_date,rn.note,date_format(rn.created_ts,"%d/%m/%Y") as created_ts,rn.created_by,rn.updated_by,date_format(rn.updated_ts,"%d/%m/%Y") as updated_ts,rov.rent_out_no');
        $this->db->from('return_notice rn');
        $this->db->join('rent_out_vehcile rov','rov.rent_out_id=rn.rent_out_id','inner'); 
        $this->db->where('rn.driver_id',$driver_id);
        if($search_text){
            $this->db->like('rn.car_no', $search_text);
            $this->db->or_like('rn.retrun_notice_date', date('Y-m-d', strtotime(str_replace('/', '-', $search_text))));
        }
		$this->db->group_by('rn.return_notice_id');
        $this->db->order_by('rn.return_notice_id','DESC');
        $query=$this->db->get();
        // print_r($this->db->last_query());die();
		return $query->result_array();
    }

    public function getFinetoll_fees($driver_id,$car_no=''){
        $this->db->select('ff.finetoll_fees_id,ff.driver_id,ff.car_no,ff.referance_date,ff.department_id,ff.referance_no,date_format(ff.nomination_date,"%d/%m/%Y") as nomination_date,ff.nomination_reference_no,ff.fees_amount,ff.fine_img,ff.nomination_img,ff.created_by,ff.created_ts,ff.updated_by,ff.updated_ts,md.first_name,md.middle_name,md.last_name,mdep.department_name');
        $this->db->from('finetoll_fees ff');
        $this->db->join('master_driver md','md.driver_id=ff.driver_id','inner');
        $this->db->join('master_department mdep','mdep.department_id=ff.department_id','inner');
        $this->db->where('ff.driver_id',$driver_id);
        if(!empty($car_no)){
            $this->db->where('ff.car_no',$car_no);
        }
            $this->db->order_by('ff.finetoll_fees_id','desc');
            $query=$this->db->get();
            return $query->result_array();
    }

    public function get_details($product_id){
		$this->db->select('*');
		$this->db->from('product');
		$this->db->where('product_id',$product_id);
		$query=$this->db->get();
		return $query->row_array();
    }
    
    
    public function get_all_rates(){
		$this->db->select('*');
        $this->db->from('rate'); 
        $this->db->where('rate_id',1);
        $query=$this->db->get();
        return $query->row_array();
    }
    public function getRow($table,$condition){
        $this->db->where($condition);
        $query=$this->db->get($table);
        return $query->row_array();
    } 
    public function getCount($table,$condition){
        $this->db->where($condition);
        $query=$this->db->get($table);
        return $query->num_rows();
    } 
    public function checkUser($condition){
        $this->db->select('users.*,case when users.profile_image ="" then concat("'.base_url("uploads/no_image.png").'") else concat("'.base_url("uploads/user/").'",users.profile_image) end as file_path,islands.island_id,islands.islands_name,currency.currency_id,currency.currency_title');
        $this->db->join('islands', 'islands.island_id = users.country', 'inner');
        $this->db->join('currency', 'currency.currency_id = islands.currency_id', 'inner');
        $this->db->where($condition);
        $query=$this->db->get('users');
        return $query->row_array(); 
    } 
    public function checkUserRegistered($condition){
        $this->db->select('md.*');
        $this->db->where($condition);
        $query=$this->db->get('master_driver md');
        return $query->row_array(); 
    } 
    public function update($table,$condition,$data){
        $this->db->where($condition);
        $this->db->update($table,$data);
        //echo $this->db->last_query(); die();
        return $this->db->affected_rows();
    }
	public function getRows($table,$condition,$order_col=null,$order_type=null){
        $this->db->where($condition);
		
        if(!empty($order_col) && !empty($order_type)){
            $this->db->order_by($order_col,$order_type);
        }
        $query=$this->db->get($table);
        return $query->result_array();
    }
	public function delete($table,$condition){
        $this->db->where($condition);  
        $this->db->delete($table); 
        return true;
    }

    public function joinQuery($data,$condition = null,$return_type){
        if(array_key_exists('select',$data) && $data['select'] != ""){
            $this->db->select($data['select']);
        }else{
            $this->db->select('*');
        }
        $this->db->from($data['first_table']);

        if(array_key_exists('second_table',$data) && array_key_exists('dependency1',$data) && array_key_exists('join_type1',$data)){
            if($data['second_table'] != "" && $data['dependency1'] != "" && $data['join_type1'] != ""){
                $this->db->join($data['second_table'],$data['dependency1'],$data['join_type1']);
            }
        }
        if(array_key_exists('third_table',$data) && array_key_exists('dependency2',$data) && array_key_exists('join_type2',$data)){
            if($data['third_table'] != "" && $data['dependency2'] != "" && $data['join_type2'] != ""){
                $this->db->join($data['third_table'],$data['dependency2'],$data['join_type2']);
            }
        }
        if(array_key_exists('forth_table',$data) && array_key_exists('dependency3',$data) && array_key_exists('join_type3',$data)){
            if($data['forth_table'] != "" && $data['dependency3'] != "" && $data['join_type3'] != ""){
                $this->db->join($data['forth_table'],$data['dependency3'],$data['join_type3']);
            }
        }
        if(array_key_exists('fifth_table',$data) && array_key_exists('dependency4',$data) && array_key_exists('join_type4',$data)){
            if($data['fifth_table'] != "" && $data['dependency4'] != "" && $data['join_type4'] != ""){
                $this->db->join($data['fifth_table'],$data['dependency4'],$data['join_type4']);
            }
        }
        $this->db->where($condition);
        $query = $this->db->get();
        //echo $this->db->last_query(); die();
        if($query->num_rows() > 0){
            if($return_type == 'result'){
                return $query->result_array();
            }elseif($return_type == 'row'){
                return $query->row_array();
            }
        }else{
            return false;
        }
    }

	public function getTokenDetailsByDeviceToken($ap){
        $condition=array('token_owner'=>$ap['device_token']);
        $this->db->where($condition);
        $this->db->order_by('token_id','desc');
        $this->db->limit(1);
        $query=$this->db->get('api_token');
        //print_r($this->db->last_query());die();
        return $query->row_array();
    }

	public function getTokenDetailsByTokenkey($token_key){
        $condition=array('token_key'=>$token_key);
        $this->db->where($condition);
        $this->db->order_by('token_id','desc');
        $this->db->limit(1);
        $query=$this->db->get('api_token');
        //print_r($this->db->last_query());die();
        return $query->row_array();
    }	

    public function getDeviceToken($table,$ids,$select){
        $this->db->select($select);
        $this->db->where_in('admin_id',$ids);
        $query=$this->db->get($table);
        //print_r($this->db->last_query());die();
        return $query->result_array();
    }
    

    public function email_check($email,$user_id){
		$this->db->select('*');
		$this->db->from('users');
        $this->db->where('email',$email);
        $this->db->where_not_in('user_id', $user_id);
		$query=$this->db->get();
		return $query->row_array();
    }

    public function getRentoutDetails($where=''){
        $this->db->select('rov.rent_out_no,mc.car_no,rov.created_ts,rov.odometer_reading,rov.weekly_rent,rov.bond_amount,rov.is_rent_in,rov.insurance_company,rov.expire,rov.cover_note_img');
        $this->db->from('rent_out_vehcile rov');
        $this->db->join('master_driver md','md.driver_id=rov.driver_id','inner');
        $this->db->join('master_car mc','mc.car_id=rov.car_id','inner');
        $this->db->where('md.driver_id',$where);
        $query=$this->db->get();
        return $query->result_array();
    }


    public function check_service_notification($shift_id,$payin_id){
        $query="SELECT check_service_notification('".$shift_id."','".$payin_id."') as notification_flag";
        $run_query=$this->db->query($query);
        $result=$run_query->row_array();
        return $result;
    }

    public function get_cms_page_list(){
        $base_url=base_url('cms/');
        $query="SELECT cms_id, page_name, CONCAT('".$base_url."',cms_slug) as cms_link  FROM cms WHERE status=1 ORDER BY cms_id ASC LIMIT 3";
        //echo $query;die;
        $run_query=$this->db->query($query);
        $result=$run_query->result_array();
        return $result;


    }

    public function get_total_payout_amount($driver_id){
        $query="SELECT SUM(final_due_amt) as tot_final_settlement_amt FROM payin WHERE driver_id='".$driver_id."'";
        $run_query=$this->db->query($query);
        $result=$run_query->row_array();
        return $result;
    }

    public function get_bond_accumulated_amount($driver_id){
        $query="SELECT (ifnull(bond_amt,0) - ifnull(bond_accumulated_amt,0)) as tot_bond_accumulated_amt FROM master_bond WHERE driver_id=".$driver_id."";
        $run_query=$this->db->query($query);
        $result=$run_query->row_array();
        return $result;
    }

    public function get_driver_shift_details(){



    }

    public function GetAccidentData($cond_accident_installment){
        $result                       = array();
        $total_accident_installment   = 0.00;
        $this->db->select('master_accident.*,accident_charge.*');
        $this->db->from('master_accident');
        $this->db->join('accident_charge', 'master_accident.accident_id = accident_charge.accident_id', 'left');
        $this->db->where($cond_accident_installment); 
        $query  = $this->db->get();
       //echo $this->db->last_query(); die();
        $result = $query->result_array();
        return $result ;
    }

    public function getRentOutCar($driver_id){
        $this->db->select('rov.car_id,rov.rent_out_id,rov.driver_id,mc.car_no,mc.make,mc.model,mc.year,ifnull(mc.total_odometer_reading,0) as total_odometer_reading,(ifnull(mc.service_kilometer,0) - (ifnull(mc.total_odometer_reading,0) - ifnull(mc.last_service_kilometer,0))) as service_due_kilometer,rov.weekly_rent,date_format(rov.created_ts,"%d/%m/%Y") as created_ts');
        $this->db->from('rent_out_vehcile rov');
        $this->db->join('master_car mc','mc.car_id=rov.car_id','inner');
        $this->db->join('master_driver md','md.driver_id=rov.driver_id','inner');
        $this->db->where('rov.driver_id',$driver_id);
        $this->db->where('rov.is_rent_in','0');
        $this->db->order_by('rov.rent_out_id', 'ASC');
        $query=$this->db->get();
        $result = $query->row_array(); 
        if($result){
            return $result;
        } 
        return array();
    }

    public function getdriverbondamount($driver_id){
        $sql = "SELECT sum(bond_amount) total_credit_amount FROM `bond_wallet` WHERE driver_id='".$driver_id."' AND transaction_type='CREDIT'";
        $query = $this->db->query($sql);
        $result=$query->row_array();

        $sql1 = "SELECT sum(bond_amount) total_debit_amount FROM `bond_wallet` WHERE driver_id='".$driver_id."' AND transaction_type='DEBIT'";
        $query1 = $this->db->query($sql1);
        $result1=$query1->row_array();

        return $actual_bond_amount= $result['total_credit_amount'] - $result1['total_debit_amount'];
        
    }

    public function getOdometerList($rent_out_id){
        $this->db->select('o.*,md.first_name,md.middle_name,md.last_name,md.mobile,mc.car_no,date_format(o.odometer_update_date,"%d/%m/%Y") as odometer_update_date');
        $this->db->from('odometers o');
        $this->db->join('master_driver md','md.driver_id=o.driver_id','inner');
        $this->db->join('master_car mc','mc.car_id=o.car_id','inner');
        $this->db->where('o.rent_out_id',$rent_out_id);
        $this->db->order_by('o.odometer_id', 'DESC');
        $query=$this->db->get();
        $result = $query->result_array(); 
        if($result){
            return $result;
        } 
        return array();

    }

    public function getRentoutAndCarDetails($where=''){
        $this->db->select('rov.rent_out_no,mc.car_no,rov.created_ts,date_format(rov.created_ts,"%d/%m/%Y %H:%i:%s") as rent_out_date');
        $this->db->from('rent_out_vehcile rov');
        $this->db->join('master_car mc','mc.car_id=rov.car_id','inner');
        $this->db->where('rov.driver_id',$where);
        $this->db->where('rov.is_rent_in',0);
        $this->db->order_by('rov.rent_out_id', 'DESC');
        $this->db->limit('1');
        $query=$this->db->get();
        return $query->row_array();
        
    }

    public function get_rent_out_data_by_rent_out_no($where){

        $this->db->select('rov.rent_out_id,rov.rent_out_no');
        $this->db->from('rent_out_vehcile rov');
        $this->db->where('rov.rent_out_no',$where);
        $query=$this->db->get();
        return $query->row_array();

    }

    public function get_failed_payment_list($search_text = null,$driver_id){

        $sql = "SELECT mc.car_no,rov.rent_out_no,ddp.payment_code,ddp.amount,ddp.amount_inc_fees,date_format(ddp.paid_ts,'%d/%m/%Y %H:%i:%s') as paid_ts,ddp.fail_code,ddp.failed_reason,date_format(ddp.failed_ts,'%d/%m/%Y %H:%i:%s') as failed_ts
        FROM direct_debit_payments ddp
        LEFT JOIN rent_out_vehcile rov ON  rov.rent_out_id = ddp.direct_debit_id
        LEFT JOIN master_car mc ON  mc.car_id = rov.car_id WHERE ddp.driver_id = ".$driver_id." AND payment_status = 'Failed'";
        
        if($search_text){
            $sql .=" AND mc.car_no LIKE '%".$search_text."%'";
            //$this->db->or_like('rn.retrun_notice_date', date('Y-m-d', strtotime(str_replace('/', '-', $search_text))));
        }
        $sql .=" ORDER BY ddp.paid_ts DESC";
        $run_sql = $this->db->query($sql);
		
        if ($run_sql) {
			$response = $run_sql->result_array();
			return $response;
        }
        return FALSE;
    }
}