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/pmw_live_testing/application/controllers/admin/DriverRefundSettlement.php
<?php 
defined('BASEPATH') OR exit('No direct script access allowed');

class DriverRefundSettlement extends MY_Controller {
	public function __construct() {
		parent::__construct();
		//$this->redirect_guest();
		$this->admin=$this->session->userdata('admin');
		$this->load->model('admin/Mdriverrefundsettlement');
		$this->load->model('admin/Mdriver');
		$this->load->model('admin/Mdriversettlement');
		$this->load->model('admin/mdailysettlement');
	}
	public function   index() { 
		//$this->session->unset_userdata('driver_settlement');
		//echo $this->session->userdata('email');die;
		$this->_load_bond_refund_list();		
	}	
	private function _load_bond_refund_list() {
		// FUNCTION WRIITTEN IN COMMON HELPER
		   $data					=  array();
		   $dr_list  				=  array();
		   $order 					= "bond_refund_due_date";
		   $order_type 				= 'DESC';
		   $data['content'] 		= 'admin/driver_refund_settlement/bond_refund_procedure';
		   $driver_list 			= $this->Mdriver->get_driver_list('1');
		   if($driver_list){
			   	foreach($driver_list as $val){
				   $cond_driver			= array('driver_id' =>$val['user_id'],'refund_settlement_flag' =>1);
				   $dr_refund_settle_data 	= $this->Mdriverrefundsettlement->GetDriverRefundSettlement('driver_refund_settlement',$cond_driver);
				   if(!empty($dr_refund_settle_data)){
					   if($dr_refund_settle_data['refund_settlement_flag'] == 1){
						   $dr_list[]	= $val;
					   }
				   	}
				   	else{
					   $dr_list[]	= $val;
				   	}
			   	}
		   }
		   $data['driver_list']	= $dr_list;
		   //$data['driver_refund_settlement'] 	= $this->mcommon->getFullDetails('driver_refund_settlement');
		   $joindata   = array('select'    	=>'DRS.*,master_user.dc_no,master_user.dc_no,user_profile.first_name,user_profile.middle_name,user_profile.last_name,master_bond.bond_amt,STR_TO_DATE(DRS.bond_refund_due_dt,"%Y-%m-%d") as bond_refund_due_date',
							   'first_table'   =>'master_bond',
							   'second_table'  =>'driver_refund_settlement DRS',
							   'dependency1'   =>'DRS.bond_id = master_bond.bond_id',
							   'join_type1'    =>'left',                  
						   /********************************/ 
								  'third_table'   =>'master_user',
							   'dependency2'   =>'master_user.user_id = DRS.driver_id',
							   'join_type2'    =>'inner',
							/********************************/                            
								'forth_table'   =>'user_profile',
							   'dependency3'   =>'user_profile.user_id = master_user.user_id',
							   'join_type3'    =>'inner'
							 );
		   //pr($data['driver_list']);
		   $cond 			= array();
		   $data['driver_refund_settlement'] 	= $this->mcommon->joinQuery($joindata,$cond,'result',$order,$order_type); 
		   //pr($data['driver_list']);
		   $this->load->view('admin/layouts/index', $data);
		   
	   }
	public function ajaxDriverSettlementData(){
		$respons_arr	= array();
		$driver_id		= $this->input->post("driver_id");
		
		$cond			= array('driver_id' => $driver_id);
		$dr_bond_data 	= $this->mcommon->getRow('master_bond',$cond);
		if(!empty($dr_bond_data)){
			$respons_arr['bond_amt']	= $dr_bond_data['bond_amt'];
			$respons_arr['bond_accumulated_amt']	= $dr_bond_data['bond_accumulated_amt'];
			$respons_arr['bond_refund_amt']	= $dr_bond_data['bond_refund_amt'];
			$respons_arr['total_paid_amt']	= $dr_bond_data['total_paid_amt'];
			$bond_cond					= array('driver_id' => $driver_id);
			$dr_bond_refund_data 		= $this->Mdriverrefundsettlement->GetDriverRefundSettlement('driver_refund_settlement',$bond_cond);
			if(!empty($dr_bond_refund_data)){
				if($dr_bond_refund_data['refund_settlement_flag'] != '1'){
					$respons_arr['previous_refund_not_settle']	= '0';
				}
				else{
					$respons_arr['previous_refund_not_settle']	= '1';
				}
			}
		}
		else{
			$respons_arr['bond_amt']				= '0.00';
			$respons_arr['bond_accumulated_amt']	= '0.00';
		}
		$respons_arr['driver_id']		= $driver_id;
		//PR($respons_arr);
		echo json_encode($respons_arr);exit;
	}
	public function saveRefundSettlement(){
		//pr($_POST);
		$bond_settlement_data	= array();
		$driver_id		= $this->input->post('driver_id');
		$cond			= array('driver_id' => $driver_id);
		$dr_bond_data 	= $this->mcommon->getRow('master_bond',$cond);
		if(!empty($dr_bond_data)){
			$bond_settlement_data['bond_id']	= $dr_bond_data['bond_id'];			
		}
		$bond_settlement_data['driver_id']				= $driver_id;
		$bond_settlement_data['bond_accumulated_amt']	= $this->input->post('bond_accumulated_amt');
		$bond_settlement_data['refund_type']			= $this->input->post('refund_type');
		$bond_settlement_data['refund_amt']				= $this->input->post('refund_amt');
		$bond_settlement_data['notice_dt']				= $this->input->post('notice_date');
		$bond_settlement_data['bond_refund_due_dt']		= date('Y-m-d',strtotime(str_replace('/', '-', $this->input->post('bond_refund_due_dt'))));
		$bond_settlement_data['refund_settlement_flag']	= '0';
		$bond_settlement_data['payment_method_id']		= '';
		$bond_settlement_data['created_by']				= $this->session->userdata('user_data');
		$bond_settlement_data['created_on']				= date('Y-m-d');
		//pr($bond_settlement_data);
		$this->mcommon->insert('driver_refund_settlement',$bond_settlement_data);
		redirect('admin/driver-refund-settlement');
	}
	public function bondRefundSettle($dr_refund_settlement_id) {

		$this->_load_refund_settle_view($dr_refund_settlement_id);
	}
	private function _load_refund_settle_view($dr_refund_settlement_id) {
		//echo $dr_refund_settlement_id;exit;
		$data		=  array();
		$order 		= '';
		$order_type = '';
		$joindata   = array('select'    	=>'DRS.*,master_user.dc_no,master_user.dc_no,user_profile.first_name,user_profile.middle_name,user_profile.last_name,master_bond.bond_amt,user_profile.bank_name,user_profile.bsb,user_profile.account_no',
	                        'first_table'   =>'master_bond',
	                        'second_table'  =>'driver_refund_settlement DRS',
                            'dependency1'   =>'DRS.bond_id = master_bond.bond_id',
                            'join_type1'    =>'left',                  
                        /********************************/ 
                           	'third_table'   =>'master_user',
                            'dependency2'   =>'master_user.user_id = DRS.driver_id',
                            'join_type2'    =>'inner',
                         /********************************/                            
                         	'forth_table'   =>'user_profile',
                            'dependency3'   =>'user_profile.user_id = master_user.user_id',
                            'join_type3'    =>'inner'
          				);
		//pr($data['driver_list']);
		$cond 			= array('DRS.dr_refund_settlement_id'=>$dr_refund_settlement_id);
		$data['driver_refund_settlement'] 	= $this->mcommon->joinQuery($joindata,$cond,'row',$order,$order_type);

		/******************* Payment method data ***************************/

		$payment_method_data	= $this->mcommon->getFullDetails('master_payment_method');
		if(!empty($payment_method_data)){
			$data['payment_method_data']	= $payment_method_data;
		}
		else{
			$data['payment_method_data']	= '';
		}
		$settlement_format_date=date('Y-m-d');
		$data['cash_in_data']=$this->mdailysettlement->get_transaction_data_cash_in($settlement_format_date,1);
		$data['cash_out_data']=$this->mdailysettlement->get_transaction_data_cash_out($settlement_format_date,2);
		$data['content'] 		= 'admin/driver_refund_settlement/settle';
		$this->load->view('admin/layouts/index', $data);
	}
	public function settleRefund(){
		if($this->input->post()){
			$driver_id	= $this->input->post('driver_id');
			$dr_refund_settlement_id = $this->input->post('dr_refund_settlement_id');
			$bond_amt 	='0.00';
			$cond 		= array('dr_refund_settlement_id' 	=> $this->input->post('dr_refund_settlement_id'));
			$updatearr	= array('bond_accumulated_amt' 		=> $this->input->post('bond_accumulated_amt') - $this->input->post('refund_amt'),
								'refund_amt' 		   		=> $this->input->post('refund_amt'),
								'payment_method_id' 	   	=> $this->input->post('payment_method'),
								'refund_settlement_flag' 	=> '1',
								'last_settlement_date'		=>date('Y-m-d H:i:s'),
								'updated_by'				=> $this->session->userdata('user_data'),
								'updated_on'				=> date('Y-m-d')
								);
			$this->mcommon->update('driver_refund_settlement',$cond,$updatearr);
			$refund_cond		= array('driver_id' => $driver_id,'refund_settlement_flag' => '1');
			$total_refund 		= $this->Mdriverrefundsettlement->totalRefund('driver_refund_settlement',$refund_cond);
			$bond_cond 			= array('driver_id' => $driver_id);
			$bond_data			= $this->mcommon->getRow('master_bond',$bond_cond);
			if(!empty($bond_data)){
				$bond_amt 	= $bond_data['bond_amt'];
			}
			
			//---------------------------------------------------Master Bond Update--------------------------------------------------------------//	
			$bond_refund_amt	= $bond_data['bond_refund_amt'] + $this->input->post('refund_amt');
			$bond_accumulated_amt	= $bond_data['bond_accumulated_amt'] + $this->input->post('refund_amt');
			$bond_settlement_flag = 0;
			if($bond_accumulated_amt <= 0){
				$bond_settlement_flag = 1;
			}
			elseif($bond_amt == $total_refund){
				$bond_settlement_flag	= 2;
			}
			
			$bond_updatearr	= array('bond_accumulated_amt' 			=> $bond_accumulated_amt,
									'bond_settlement_flag'=>$bond_settlement_flag,
									'bond_refund_amt'=>$bond_refund_amt,
									'updated_by'				=> $this->session->userdata('user_data'),
									'updated_on'				=> date('Y-m-d')
								);			
			
			$this->mcommon->update('master_bond',$bond_cond,$bond_updatearr);
			//--------------------------------------------------------END--------------------------------------------------------------------------//

			if($this->input->post('refund_amt') > 0 && $this->input->post('total_amount') !=''){
					
				$daily_settlement_data['transaction_date'] =date('Y-m-d');
				$daily_settlement_data['dr_refund_settlement_id'] =$this->input->post('dr_refund_settlement_id');
				$daily_settlement_data['transaction_type '] =2; //1=> Add,2=>Deduct
				$daily_settlement_data['1c_coins_qty'] =$this->input->post('1c_coins_qty');
				$daily_settlement_data['1c_coins_amt'] =$this->input->post('1c_coins_amt');
				$daily_settlement_data['5c_coins_qty'] =$this->input->post('5c_coins_qty');
				$daily_settlement_data['5c_coins_amt'] =$this->input->post('5c_coins_amt');
				$daily_settlement_data['10c_coins_qty'] =$this->input->post('10c_coins_qty');
				$daily_settlement_data['10c_coins_amt'] =$this->input->post('10c_coins_amt');
				$daily_settlement_data['20c_coins_qty'] =$this->input->post('20c_coins_qty');
				$daily_settlement_data['20c_coins_amt'] =$this->input->post('20c_coins_amt');
				$daily_settlement_data['50c_coins_qty'] =$this->input->post('50c_coins_qty');
				$daily_settlement_data['50c_coins_amt'] =$this->input->post('50c_coins_amt');
				$daily_settlement_data['1d_coins_qty'] =$this->input->post('1d_coins_qty');
				$daily_settlement_data['1d_coins_amt'] =$this->input->post('1d_coins_amt');
				$daily_settlement_data['2d_coins_qty'] =$this->input->post('2d_coins_qty');
				$daily_settlement_data['2d_coins_amt'] =$this->input->post('2d_coins_amt');
				$daily_settlement_data['5d_notes_qty'] =$this->input->post('5d_notes_qty');
				$daily_settlement_data['5d_notes_amt'] =$this->input->post('5d_notes_amt');
				$daily_settlement_data['10d_notes_qty'] =$this->input->post('10d_notes_qty');
				$daily_settlement_data['10d_notes_amt'] =$this->input->post('10d_notes_amt');
				$daily_settlement_data['20d_notes_qty'] =$this->input->post('20d_notes_qty');
				$daily_settlement_data['20d_notes_amt'] =$this->input->post('20d_notes_amt');
				$daily_settlement_data['50d_notes_qty'] =$this->input->post('50d_notes_qty');
				$daily_settlement_data['50d_notes_amt'] =$this->input->post('50d_notes_amt');
				$daily_settlement_data['100d_notes_qty'] =$this->input->post('100d_notes_qty');
				$daily_settlement_data['100d_notes_amt'] =$this->input->post('100d_notes_amt');
				$daily_settlement_data['total_amount'] 	=$this->input->post('total_amount');
				$daily_settlement_data['created_by'] 	=$this->session->userdata('user_data');
				$daily_settlement_data['created_ts'] 	=date('Y-m-d H:i:s');
				
				$transaction_id = $this->mcommon->insert('daily_transactions',$daily_settlement_data);
			}
		}
		$this->session->set_flashdata('success_msg','Refund Settled Successfully');
		redirect('admin/driver-refund-settlement');
	}
}