File: /var/www/html/pmw24/driver_settlement/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');
}
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 = '';
$order_type = '';
$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['bond_accumulated_amt'] !='0.00'){
$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',
'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_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',
'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'] = '';
}
$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',
'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');
}
}