File: //var/www/html/pmw24/driver_settlement/old/application/controllers/admin/DriverSettlement.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class DriverSettlement extends MY_Controller {
public function __construct() {
parent::__construct();
//$this->redirect_guest();
$this->admin=$this->session->userdata('admin');
$this->load->helper('download');
$this->load->model('admin/mdriver');
$this->load->model('admin/mreport');
$this->load->model('admin/Mdriversettlement');
}
public function index() {
//$this->session->unset_userdata('driver_settlement');
//echo $this->session->userdata('email');die;
$this->_load_list_view_new_driver();
}
private function _load_list_view_new_driver() {
// FUNCTION WRIITTEN IN COMMON HELPER
$data = array();
$data['content'] = 'admin/driver_settlement/driver_settlement';
$data['driver_list'] = $this->mdriver->get_driver_list('1','1');
$data['docket_list'] =$this->mcommon->getDetails('master_docket',array('is_active'=>1));
//pr($data['docket_list']);
$this->load->view('admin/layouts/index', $data);
}
public function ajaxDriverShiftDetails(){
$shift_details = array();
$data = array();
$shift_data = array();
$drv_shift_data = array();
$week_array = array();
$shift_roster = array();
$shift_roster_data = array();
$order_type = '';
$order = '';
$driver_id = $this->input->post('driver_id');
$current_dt = date('Y-m-d');
$current_strtime = strtotime(date('Y-m-d'));
$day_of_week = date('N', strtotime($current_dt));
$given_date = strtotime($current_dt);
$first_of_week = date('Y-m-d', strtotime("- {$day_of_week} day", $given_date));
$first_of_week = strtotime($first_of_week);
for($i=1 ;$i<=7; $i++) {
$week_dt = date('Y-m-d', strtotime("+ {$i} day", $first_of_week));
$tmp_week_strtime = strtotime("+ {$i} day", $first_of_week);
if($current_strtime < $tmp_week_strtime){
$shift_roster_data['day'] = strtoupper(date('D', $tmp_week_strtime));
$shift_roster_data['shift_start_time'] = ' ';
$shift_roster_data['shift_name'] = ' ';
}
else{
$roster_joindata = array('select' =>'roster.day_date,RSM.shift_name,DSD.shift_start_time,dsp.shift_payin_id',
'first_table' =>'roster_driver_maping RDM',
'second_table' =>'roster',
'dependency1' =>'RDM.roster_id = roster.roster_id',
'join_type1' =>'LEFT',
/**********************************/
'third_table' =>'roster_shift_maping RSM',
'dependency2' =>'RSM.roster_id = RDM.roster_id',
'join_type2' =>'LEFT',
/********************************/
'forth_table' =>'driver_shift_payin dsp',
'dependency3' =>'dsp.roster_driver_id = RDM.roster_driver_id',
'join_type3' =>'LEFT',
/********************************/
'fifth_table' =>'driver_shift_details DSD',
'dependency4' =>'DSD.roster_driver_id = RDM.roster_driver_id AND DSD.shift_status = 1',
'join_type4' =>'LEFT'
);
$shift_roster_cond = array('RDM.driver_id' => $driver_id,'roster.day_date' =>$week_dt);
$shift_roster_list = $this->mcommon->joinQuery($roster_joindata,$shift_roster_cond,'result',$order,$order_type);
//pr($shift_roster_list,0);
if(!empty($shift_roster_list)){
foreach($shift_roster_list as $val_sft){
$shift_roster_data['day'] = strtoupper(date('D', $tmp_week_strtime));
if(!empty($val_sft['shift_start_time']) || !empty($val_sft['shift_payin_id'])){
$shift_roster_data['shift_start_time'] = 'OK';
}
else{
$shift_roster_data['shift_start_time'] = 'NO';
}
$shift_roster_data['shift_name'] = $val_sft['shift_name'];
}
}
else{
$shift_roster_data['day'] = strtoupper(date('D', $tmp_week_strtime));
$shift_roster_data['shift_start_time'] = ' ';
$shift_roster_data['shift_name'] = ' ';
}
}
$shift_roster[] = $shift_roster_data;
}
$data['shift_roster'] = $shift_roster;
$joindata = array(
'select' =>'master_user.dc_no,user_profile.dr_rental,user_profile.profile_photo,user_profile.dr_licence_expiry,user_profile.dr_dc_expiry,driver_shift_details.shift_no ,driver_shift_details.shift_id ,roster.*,master_car.registration_no as car_no',
'first_table' =>'roster_driver_maping RDM',
'second_table' =>'roster',
'dependency1' =>'RDM.roster_id = roster.roster_id',
'join_type1' =>'INNER',
/**********************************/
'third_table' =>'master_car',
'dependency2' =>'master_car.car_id = roster.car_id',
'join_type2' =>'INNER',
/********************************/
'forth_table' =>'master_user',
'dependency3' =>'master_user.user_id = RDM.driver_id',
'join_type3' =>'INNER',
/********************************/
'fifth_table' =>'user_profile',
'dependency4' =>'user_profile.user_id = master_user.user_id',
'join_type4' =>'INNER',
/********************************/
'sixth_table' =>'driver_shift_details',
'dependency5' =>'driver_shift_details.roster_driver_id = RDM.roster_driver_id',
'join_type5' =>'INNER'
);
$cond = array('RDM.driver_id' => $driver_id,'driver_shift_details.shift_status' => 2);
$shift_lists = $this->mcommon->joinQuery($joindata,$cond,'result','roster.day_date','DESC');
//pr($shift_lists,0);
if(!empty($shift_lists)){
foreach($shift_lists as $val){
$shift_data['dc'] = $val['dc_no'];
$shift_data['dr_dc_expiry'] = date('d/m/Y',STRTOTIME($val['dr_dc_expiry']));
$shift_data['dr_licence_expiry'] = date('d/m/Y',STRTOTIME($val['dr_licence_expiry']));
$shift_data['dr_rental'] = $val['dr_rental'];
$shift_data['shift_id'] = $val['shift_id'];
$shift_data['shift_no'] = $val['shift_no'];
$shift_data['car_no'] = $val['car_no'];
$shift_data['shift_date'] = date('d/m/Y',STRTOTIME($val['day_date']));
$shift_data['profile_photo'] = $val['profile_photo'];
$cond_shift = array('shift_id' => $val['shift_id'],'driver_id' =>$driver_id,'driver_settlement_flag !=' =>'1');
$payin_lists = $this->mcommon->getROW('payin',$cond_shift);
if(!empty($payin_lists)){
$shift_data['payin_payout_amt'] = $payin_lists['total_payin_payout'];
$shift_data['settlement_amt'] = $payin_lists['settlement_amt'];
$shift_data['final_due_amt'] = $payin_lists['final_due_amt'];
$shift_data['rental_commission_flag'] = $payin_lists['rental_commission_flag'];
$driver_settlement_details = $this->mcommon->getRow('driver_settlement',array('payin_id'=>$payin_lists['payin_id']));
$shift_data['dr_settlement_id'] = !empty($driver_settlement_details)?$driver_settlement_details['dr_settlement_id']:'';
}
else{
$shift_data['payin_payout_amt'] = '';
$shift_data['settlement_amt'] = '';
$shift_data['final_due_amt'] = '';
$shift_data['rental_commission_flag'] = '';
$shift_data['dr_settlement_id']='';
}
$drv_shift_data[] = $shift_data;
}
$data['drv_shift_data'] = $drv_shift_data;
$shift_details['driver_shift_data'] = '1';
}
else{
$data['drv_shift_data'] = '';
$shift_details['driver_shift_data'] = '0';
}
//pr($drv_shift_data);
//echo $this->load->view('admin/driver_settlement/ajax_driver_shift_details',$data,true);exit;
$shift_details['html'] = $this->load->view('admin/driver_settlement/ajax_driver_shift_details',$data,true);
echo json_encode($shift_details);exit;
}
public function get_levy_report($start_date = null, $end_date = null, $driver_id = null, $company_id = null,$levy_settled_flag=null){
if (!empty($start_date) && !empty($end_date)) {
$start_date = date('Y-m-d', strtotime(str_replace('/', '-', $start_date)));
$end_date = date('Y-m-d', strtotime(str_replace('/', '-', $end_date)));
}
return $this->mreport->get_levy_report($start_date, $end_date, $driver_id, $company_id,$levy_settled_flag);
}
public function ajaxDriverSettlement(){
//$this->session->unset_userdata('driver_settlement');
//pr($this->session->userdata('driver_settlement'));
$data = array();
$driver_settlement = array();
$drv_shift_data = array();
$week_array = array();
$driver_expense = array();
$driver_dockets = array();
$settlement_details = array();
$payment_options = array();
$drv_dockets = array();
$drv_dockets_data = array();
$shift_id = $this->input->post('shift_id');
$driver_id = $this->input->post('driver_id');
$dr_settlement_id = $this->input->post('dr_settlement_id');
$order_type = '';
$order = '';
$payment_options = $this->mcommon->getFullDetails('master_payment_method');
if(!empty($payment_options)){
$data['payment_options'] = $payment_options;
}
//******************* Driver settlement set session ******************//
$user_profile = $this->mcommon->getRow('user_profile',array('user_id'=>$driver_id));
$driver_settlement['dr_rental'] = $user_profile['dr_rental'];
$this->session->unset_userdata('driver_settlement');
//if($this->session->userdata('driver_settlement') ==''){
getdatafromdb:$cond = array('driver_id' => $driver_id,'shift_id' =>$shift_id);
//echo "fjaklsjl";exit;
$driver_settlement_data_updated = $this->mcommon->getRow('driver_settlement',$cond);
if(empty($driver_settlement_data_updated)){
$driver_settlement_data = $this->mcommon->getRow('payin',$cond);
if(!empty($driver_settlement_data)){
$driver_settlement['payin_id'] = $driver_settlement_data['payin_id'];
$driver_settlement['shift_id'] = $shift_id;
$driver_settlement['total_extra_start'] = $driver_settlement_data['total_extra_start'];
$driver_settlement['total_extra_end'] = $driver_settlement_data['total_extra_end'];
$driver_settlement['paid_km_start'] = $driver_settlement_data['paid_km_start'];
$driver_settlement['paid_km_end'] = $driver_settlement_data['paid_km_end'];
$driver_settlement['total_km_start'] = $driver_settlement_data['total_km_start'];
$driver_settlement['total_km_end'] = $driver_settlement_data['total_km_end'];
$driver_settlement['no_of_hiring_start'] = $driver_settlement_data['no_of_hiring_start'];
$driver_settlement['no_of_hiring_end'] = $driver_settlement_data['no_of_hiring_end'];
$driver_settlement['extra_start'] = $driver_settlement_data['extra_start'];
$driver_settlement['extra_end'] = $driver_settlement_data['extra_end'];
$driver_settlement['speedo_reading_start'] = $driver_settlement_data['speedo_reading_start'];
$driver_settlement['speedo_reading_end'] = $driver_settlement_data['speedo_reading_end'];
$driver_settlement['bond_charges'] = $driver_settlement_data['bond_charges'];
$driver_settlement['levy'] = $driver_settlement_data['levy'];
$driver_settlement['no_of_whl'] = $driver_settlement_data['no_of_whl'];
$driver_settlement['payin_reference_doc'] = $driver_settlement_data['payin_reference_doc'];
$driver_settlement['payin_lifetime_total'] = $driver_settlement_data['payin_lifetime_total'];
$driver_settlement['settlement_amt'] = $driver_settlement_data['settlement_amt'];
$driver_settlement['final_due_amt'] = $driver_settlement_data['final_due_amt'];
$driver_settlement['rental_commission_flag'] = $driver_settlement_data['rental_commission_flag'];
$driver_settlement['discount'] = 0;
/*************** Driver Dockets ***************/
//echo $driver_settlement['payin_id'];exit;
$joindata = array('select' =>'payin_dockets.*,master_docket.docket_name',
'first_table' =>'payin_dockets',
'second_table' =>'master_docket',
'dependency1' =>'payin_dockets.docket_id = master_docket.docket_id',
'join_type1' =>'left'
);
$cond_dockets = array('payin_id' => $driver_settlement_data['payin_id']);
$driver_dockets = $this->mcommon->joinQuery($joindata,$cond_dockets,'result',$order,$order_type);
if(!empty($driver_dockets)){
foreach($driver_dockets as $dockets){
$drv_dockets['payin_dockets_id'] = $dockets['payin_dockets_id'];
$drv_dockets['docket_name'] = $dockets['docket_name'];
$drv_dockets['docket_amount'] = $dockets['value'];
$drv_dockets['docket_img'] = $dockets['doc_link'];
$driver_settlement['driver_dockets'][] = $drv_dockets;
}
}
else{
$driver_settlement['driver_dockets'] = '';
}
/*************** Driver Expense ***************/
//pr($driver_settlement_data);
$expense_joindata = array('select' =>'payin_expenses.*,master_expense.expense_name',
'first_table' =>'payin_expenses',
'second_table' =>'master_expense',
'dependency1' =>'payin_expenses.expense_id = master_expense.expense_id',
'join_type1' =>'left'
);
$cond_expense = array('payin_id' => $driver_settlement_data['payin_id']);
$driver_expense = $this->mcommon->joinQuery($expense_joindata,$cond_expense,'result',$order,$order_type);
if(!empty($driver_expense)){
foreach($driver_expense as $expenses){
$drv_expenses['payin_expense_id'] = $expenses['payin_expense_id'];
$drv_expenses['expense_name'] = $expenses['expense_name'];
$drv_expenses['expense_amount'] = $expenses['value'];
$drv_expenses['expense_img'] = $expenses['doc_link'];
$driver_settlement['driver_expense'][] = $drv_expenses;
}
}
else{
$driver_settlement['driver_expense'] = '';
}
}
} else {
$cond = array('driver_settlement.driver_id' => $driver_id,'driver_settlement.shift_id' =>$shift_id);
$joindata = array('select' =>'driver_settlement.*,payin.rental_commission_flag,payin.settlement_amt,payin.payin_reference_doc,payin.payin_lifetime_total',
'first_table' =>'driver_settlement',
'second_table' =>'payin',
'dependency1' =>'driver_settlement.payin_id = payin.payin_id',
'join_type1' =>'inner'
);
$driver_settlement_data = $this->mcommon->joinQuery($joindata,$cond,'row',$order,$order_type);
if(!empty($driver_settlement_data)){
$driver_settlement['payin_id'] = $driver_settlement_data['payin_id'];
$driver_settlement['shift_id'] = $shift_id;
$driver_settlement['total_extra_start'] = $driver_settlement_data['total_extra_start'];
$driver_settlement['total_extra_end'] = $driver_settlement_data['total_extra_end'];
$driver_settlement['paid_km_start'] = $driver_settlement_data['paid_km_start'];
$driver_settlement['paid_km_end'] = $driver_settlement_data['paid_km_end'];
$driver_settlement['total_km_start'] = $driver_settlement_data['total_km_start'];
$driver_settlement['total_km_end'] = $driver_settlement_data['total_km_end'];
$driver_settlement['no_of_hiring_start'] = $driver_settlement_data['no_of_hiring_start'];
$driver_settlement['no_of_hiring_end'] = $driver_settlement_data['no_of_hiring_end'];
$driver_settlement['extra_start'] = $driver_settlement_data['extra_start'];
$driver_settlement['extra_end'] = $driver_settlement_data['extra_end'];
$driver_settlement['speedo_reading_start'] = $driver_settlement_data['speedo_reading_start'];
$driver_settlement['speedo_reading_end'] = $driver_settlement_data['speedo_reading_end'];
$driver_settlement['bond_charges'] = $driver_settlement_data['bond_installment'];
$driver_settlement['levy'] = $driver_settlement_data['shift_levy'];
$driver_settlement['no_of_whl'] = $driver_settlement_data['no_of_whl'];
$driver_settlement['payin_reference_doc'] = $driver_settlement_data['payin_reference_doc'];
$driver_settlement['payin_lifetime_total'] = $driver_settlement_data['payin_lifetime_total'];
$driver_settlement['settlement_amt'] = $driver_settlement_data['settlement_amt'];
$driver_settlement['final_due_amt'] = $driver_settlement_data['final_due_amt'];
$driver_settlement['rental_commission_flag'] = $driver_settlement_data['rental_commission_flag'];
$driver_settlement['discount'] = $driver_settlement_data['discount'];
/*************** Driver Dockets ***************/
//echo $driver_settlement['payin_id'];exit;
$joindata = array('select' =>'dr_settlement_docket.*,master_docket.docket_name,payin_dockets.doc_link',
'first_table' =>'dr_settlement_docket',
'second_table' =>'payin_dockets',
'third_table' =>'master_docket',
'dependency1' =>'dr_settlement_docket.payin_docket_id = payin_dockets.payin_dockets_id',
'join_type1' =>'left',
'dependency2' =>'payin_dockets.docket_id = master_docket.docket_id',
'join_type2' =>'left'
);
$cond_dockets = array('dr_settlement_id' => $driver_settlement_data['dr_settlement_id']);
$driver_dockets = $this->mcommon->joinQuery($joindata,$cond_dockets,'result',$order,$order_type);
if(!empty($driver_dockets)){
foreach($driver_dockets as $dockets){
$drv_dockets['payin_dockets_id'] = $dockets['payin_docket_id'];
$drv_dockets['docket_name'] = $dockets['docket_name'];
$drv_dockets['docket_amount'] = $dockets['docket_settlement_amt'];
$drv_dockets['docket_img'] = $dockets['doc_link'];
$driver_settlement['driver_dockets'][] = $drv_dockets;
}
}
else{
$driver_settlement['driver_dockets'] = '';
}
/*************** Driver Expense ***************/
//pr($driver_settlement_data);
$expense_joindata = array('select' =>'dr_settlement_expense.*,master_expense.expense_name,payin_expenses.doc_link',
'first_table' =>'dr_settlement_expense',
'second_table' =>'payin_expenses',
'third_table' =>'master_expense',
'dependency1' =>'dr_settlement_expense.payin_expense_id = payin_expenses.payin_expense_id',
'join_type1' =>'left',
'dependency2' =>'payin_expenses.expense_id = master_expense.expense_id',
'join_type2' =>'left'
);
$cond_expense = array('dr_settlement_id' => $driver_settlement_data['dr_settlement_id']);
$driver_expense = $this->mcommon->joinQuery($expense_joindata,$cond_expense,'result',$order,$order_type);
if(!empty($driver_expense)){
foreach($driver_expense as $expenses){
$drv_expenses['payin_expense_id'] = $expenses['payin_expense_id'];
$drv_expenses['expense_name'] = $expenses['expense_name'];
$drv_expenses['expense_amount'] = $expenses['expense_settlement_amt'];
$drv_expenses['expense_img'] = $expenses['doc_link'];
$driver_settlement['driver_expense'][] = $drv_expenses;
}
}
else{
$driver_settlement['driver_expense'] = '';
}
}
}
$this->session->set_userdata('driver_settlement', $driver_settlement);
$payin_id = $driver_settlement_data['payin_id'];
//******************* Driver Settlement Set Session End ******************//
$total_settlement = $this->settlementCalculation($payin_id,$driver_id,$shift_id,$accident_installment= 0,$driver_settlement['bond_charges'],$driver_settlement['discount'],$other = 0,$flag = 0,$amount_paid = 0,$driver_settlement['rental_commission_flag'],$driver_settlement['dr_rental']);
//pr($total_settlement);
if(!empty($total_settlement)){
$data['total_settlement'] = $total_settlement;
}
$cond_bond = array('driver_id' => $driver_id);
$bond_data = $this->mcommon->getRow('master_bond',$cond_bond);
$data['bond_data'] = $bond_data;
$unsettled_levy = $this->get_levy_report('', '',$driver_id,'',0);
//echo '<pre>';print_r($unsettled_levy);die;
if(!empty($unsettled_levy)){
if ((isset($unsettled_levy[0]['levy']) && isset($unsettled_levy[0]['levy_gst']))) {
$levy_with_gst = $unsettled_levy[0]['levy'];
}
else{
$levy_with_gst = "0.00";
}
$data['total_levy_accumulate'] = $levy_with_gst;
}
else{
$data['total_levy_accumulate'] = "0.00";
}
$cond_accident_installment = array('master_accident.driver_id' => $driver_id);
$accident_data = $this->Mdriversettlement->GetAccidentData($cond_accident_installment);
$data['accident_data'] = $accident_data;
//pr($accident_data);
$data['driver_id'] = $driver_id;
$data['shift_id'] = $shift_id;
$data['payin_id'] = $payin_id;
$data['dr_settlement_id'] =$dr_settlement_id;
$data['docket_list'] =$this->mcommon->getDetails('master_docket',array('is_active'=>1));
$settlement_details['html'] = $this->load->view('admin/driver_settlement/ajax_driver_settlement',$data,true);
echo json_encode($settlement_details);exit;
}
public function settlementCalculation($payin,$driver_id,$shift_id,$accident_installment= 0,$bond_total=0,$discount = 0,$other = 0,$flag =0,$amount_paid = 0,$rental_commission='',$rental_hidden_val = 0){
//PR($this->session->userdata('driver_settlement'));
$total_dockets = 0;
$total_expense = 0;
$dr_commission = 0.00;
$total_extra_amount = 0.00;
$levy_total = 0.00;
$no_of_whl = 0.00;
$amount_due = 0.00;
$total = 0.00;
$settlement_calculation = array();
$cond_payin = array('payin_id' => $payin);
if($this->session->userdata('driver_settlement') !=''){
$driver_settlement = $this->session->userdata('driver_settlement');
}
/****************** total Dockets ***************/
//$settlement_calculation['total_dockets'] = number_format($total_dockets,2);
if(!empty($driver_settlement['driver_dockets'])){
foreach($driver_settlement['driver_dockets'] as $dockets_val){
$total_dockets += $dockets_val['docket_amount'];
}
}
$settlement_calculation['total_dockets'] = number_format($total_dockets,2,'.','');
/****************** total Expense ***************/
if(!empty($driver_settlement['driver_expense'])){
foreach($driver_settlement['driver_expense'] as $expense_val){
$total_expense = $total_expense+$expense_val['expense_amount'];
}
}
$settlement_calculation['total_expense'] = number_format($total_expense,2,'.','');
/******************* total Accident Installment ***************/
if($flag == 0){
$cond_accident_installment = array('master_accident.driver_id' => $driver_id,'master_accident.shift_id' => $shift_id);
$accident_installment = $this->Mdriversettlement->AccidentInstallment($cond_accident_installment);
$bond_total = $driver_settlement['bond_charges'];
}
/******************* Driver comission ***************************/
$commission_cond = array('user_id' => $driver_id);
$dr_commission = $this->Mdriversettlement->getCommission($commission_cond);
/******************* Levy rate ***************************/
$ongoing_shift_details = $this->Mdriversettlement->get_ongoing_shift_details($driver_id);
$levy_rate = 0;
if(!empty($ongoing_shift_details['levy_applicable']) && ($ongoing_shift_details['levy_applicable'] == 1)){
$levy_data = $this->mcommon->getFullDetails('master_levy')[0];
$levy_rate = $levy_data['levy_rate'];
}
/******************* other total***************************/
if(!empty($driver_settlement)){
$total_extra_amount = ($driver_settlement['total_extra_end'] - $driver_settlement['total_extra_start'])*($dr_commission/100);
$levy_total = ($driver_settlement['no_of_hiring_end'] - $driver_settlement['no_of_hiring_start'])*$levy_rate;
$lifting_share=$this->mcommon->getRow('master_lifting_fee',array());
$driver_settlement_db_data = $this->mcommon->getRow('driver_settlement',$cond_payin);
if(empty($driver_settlement_db_data)){
$no_of_whl = $driver_settlement['no_of_whl'] * $lifting_share['gtn_share'];
} else {
$no_of_whl = $driver_settlement_db_data['no_of_whl'];
}
if(!empty($total_extra_amount)){
$settlement_calculation['total_extra_amount'] = number_format($total_extra_amount,2,'.','');
}
else{
$settlement_calculation['total_extra_amount'] = '0.00';
}
if(!empty($levy_total)){
$settlement_calculation['levy_total'] = number_format($levy_total,2,'.','');
}
else{
$settlement_calculation['levy_total'] = '0.00';
}
if(!empty($accident_installment)){
$settlement_calculation['accident_installment'] = number_format($accident_installment,2,'.','');
}
else{
$settlement_calculation['accident_installment'] = '0.00';
}
if(!empty($bond_total)){
$settlement_calculation['bond_total'] = number_format($bond_total,2,'.','');
}
else{
$settlement_calculation['bond_total'] = '0.00';
}
if(!empty($no_of_whl)){
$settlement_calculation['no_of_whl'] = number_format($no_of_whl,2,'.','');
}
else{
$settlement_calculation['no_of_whl'] = '0';
}
if(!empty($other)){
$settlement_calculation['other'] = number_format($other,2,'.','');
}
else{
$settlement_calculation['other'] = '0.00';
}
$payin_details = $this->mcommon->getRow('payin',array('payin_id'=>$payin));
$amount_paid_rental = (empty($amount_paid))?($payin_details['settlement_amt'] - $payin_details['final_due_amt']) : $amount_paid;
$rental_payout = ($rental_hidden_val - $total_dockets + $levy_total + $bond_total + $accident_installment + $other - $amount_paid_rental);
$discount_rental = empty($discount)?($payin_details['total_payin_payout'] - $rental_payout - $amount_paid_rental):$discount;
$amount_due_rental = $rental_payout;
$total_rental = $rental_payout;
$amount_paid_com = (empty($amount_paid))?($payin_details['settlement_amt'] - $payin_details['final_due_amt']) : $amount_paid;
$discount_com = !empty($discount)?$discount:'0';
$amount_due_com = (($total_extra_amount + $levy_total+$accident_installment+$bond_total+$no_of_whl) - ($total_dockets +
$total_expense + $other + $discount_com + $amount_paid_com));
$total_com = $amount_due_com;
if($rental_hidden_val > 0){
$amount_paid = (empty($amount_paid))?($payin_details['settlement_amt'] - $payin_details['final_due_amt']) : $amount_paid;
$rental_payout = ($rental_hidden_val - $total_dockets + $levy_total + $bond_total + $accident_installment + $other - $amount_paid);
// echo $amount_paid;
// echo $payin_details['final_due_amt'];
// echo $rental_payout;
// die;
$discount = empty($discount)?($payin_details['total_payin_payout'] - $rental_payout - $amount_paid):$discount;
$amount_due = $rental_payout;
$total = $rental_payout;
} else {
$amount_paid = (empty($amount_paid))?($payin_details['settlement_amt'] - $payin_details['final_due_amt']) : $amount_paid;
$discount = !empty($discount)?$discount:'0';
$amount_due = (($total_extra_amount + $levy_total+$accident_installment+$bond_total+$no_of_whl) - ($total_dockets +
$total_expense + $other + $discount + $amount_paid));
$total = $amount_due;
//echo $no_of_whl;die;
}
$settlement_calculation['settlement_amt'] = $driver_settlement['settlement_amt'];
$settlement_calculation['final_due_amt'] = $driver_settlement['final_due_amt'];
$settlement_calculation['rental_commission_flag'] = $driver_settlement['rental_commission_flag'];
$settlement_calculation['amount_paid_rental'] = !empty($amount_paid_rental)?number_format($amount_paid_rental,2,'.',''):0;
$settlement_calculation['amount_paid_com'] = !empty($amount_paid_com)?number_format($amount_paid_com,2,'.',''):0;
$settlement_calculation['amount_due_rental'] = !empty($amount_due_rental)?number_format($amount_due_rental,2,'.',''):0;
$settlement_calculation['amount_due_com'] = !empty($amount_due_com)?number_format($amount_due_com,2,'.',''):0;
$settlement_calculation['discount_rental'] = !empty($discount_rental)?number_format($discount_rental,2,'.',''):0;
$settlement_calculation['discount_com'] = !empty($discount_com)?number_format($discount_com,2,'.',''):0;
$settlement_calculation['total_rental'] = !empty($total_rental)?number_format($total_rental,2,'.',''):0;
$settlement_calculation['total_com'] = !empty($total_com)?number_format($total_com,2,'.',''):0;
$settlement_calculation['amount_paid'] = !empty($amount_paid)?number_format($amount_paid,2,'.',''):0;
$settlement_calculation['amount_due'] = !empty($amount_due)?number_format($amount_due,2,'.',''):0;
$settlement_calculation['discount'] = !empty($discount)?number_format($discount,2,'.',''):0;
$settlement_calculation['total'] = !empty($total)?number_format($total,2,'.',''):0;
}
//pr($settlement_calculation);
return $settlement_calculation;
}
public function saveDriverSettlement(){
$respons_arr = array();
$driver_settlement = array();
$payin_id = $this->input->post('payin_id');
$start_value = $this->input->post('start_value');
$end_value = $this->input->post('end_value');
$start_colmn = $this->input->post('start_colmn');
$end_colmn = $this->input->post('end_colmn');
$condition = array('payin_id' => $payin_id);
$updateArr = array($start_colmn => $start_value,
$end_colmn => $end_value,
'updated_ts' => date('Y-m-d h:i:s'),
'updated_by' => $this->session->userdata('user_data')
);
//$update_Settlement = $this->mcommon->update('payin',$condition,$updateArr);
if($this->session->userdata('driver_settlement') !=''){
$driver_settlement = $this->session->userdata('driver_settlement');
$driver_settlement[$start_colmn] = $start_value;
$driver_settlement[$end_colmn] = $end_value;
}
$this->session->set_userdata('driver_settlement', $driver_settlement);
// if($update_Settlement) {
$respons_arr['process'] = 'success';
// }
// else{
// $respons_arr['process'] = "failed";
// }
$driver_id = $this->input->post('driver_id');
$shift_id = $this->input->post('shift_id');
$payin_id = $this->input->post('payin_id');
$discount = $this->input->post('discount');
$other = $this->input->post('other');
$accident_installment = $this->input->post('accident_installment');
$bond_total = $this->input->post('bond_total');
$amount_paid = $this->input->post('amount_paid');
$rental_commission = $this->input->post('rental_commission');
$flag = $this->input->post('flag');
$rental_hidden_val =$this->input->post('rental_hidden_val');
$respons_arr['total_settlement'] = $this->settlementCalculation($payin_id,$driver_id,$shift_id,$accident_installment,$bond_total,$discount,$other,$flag,$amount_paid,$rental_commission,$rental_hidden_val);
echo json_encode($respons_arr);exit;
}
public function saveDriverDocket(){
$respons_arr = array();
$payin_dockets_id = $this->input->post('payin_dockets_id');
$driver_docket_pr = $this->input->post('driver_docket_pr');
$docket_id = $this->input->post('docket_id');
$docket_name = $this->mcommon->getRow('master_docket',array('docket_id'=>$docket_id));
if(empty($payin_dockets_id)){
$payin_data['docket_id'] = $docket_id;
$payin_data['payin_id'] = $this->input->post('payin_id');
$payin_data['value'] = $driver_docket_pr;
$payin_data['doc_link']='';
if(isset($_FILES['docket_image']['name']) && !empty($_FILES['docket_image']['name'])){
$path = './public/upload_image/payin_images/';
$upload_file = $this->single_image_upload($path, $_FILES['docket_image'],'docket_image');
if($upload_file['status']==1){
$payin_data['doc_link']=$upload_file['result'];
} else {
$payin_data['doc_link'] ='';
}
}
$payin_dockets_id = $this->mcommon->insert('payin_dockets',$payin_data);
$drv_dockets['payin_dockets_id'] = $payin_dockets_id;
$drv_dockets['docket_name'] = !empty($docket_name)?$docket_name['docket_name']:'';
$drv_dockets['docket_amount'] = $driver_docket_pr;
$drv_dockets['docket_img'] = $payin_data['doc_link'];
$driver_settlement = $this->session->userdata('driver_settlement');
$driver_settlement['driver_dockets'][] = $drv_dockets;
$this->session->set_userdata('driver_settlement', $driver_settlement);
}
if($this->session->userdata('driver_settlement') !=''){
$driver_settlement = $this->session->userdata('driver_settlement');
if(!empty($driver_settlement['driver_dockets'])){
foreach($driver_settlement['driver_dockets'] as $key => $value) {
if($value['payin_dockets_id'] == $payin_dockets_id){
$driver_settlement['driver_dockets'][$key]['docket_amount'] = $driver_docket_pr;
}
}
}
$this->session->set_userdata('driver_settlement', $driver_settlement);
$respons_arr['process'] = 'success';
}
else{
$respons_arr['process'] = "failed";
}
$driver_id = $this->input->post('driver_id');
$shift_id = $this->input->post('shift_id');
$payin_id = $this->input->post('payin_id');
$discount = $this->input->post('discount');
$other = $this->input->post('other');
$accident_installment = $this->input->post('accident_installment');
$bond_total = $this->input->post('bond_total');
$amount_paid = $this->input->post('amount_paid');
$rental_commission = $this->input->post('rental_commission');
$flag = $this->input->post('flag');
$rental_hidden_val =$this->input->post('rental_hidden_val');
$respons_arr['total_settlement'] = $this->settlementCalculation($payin_id,$driver_id,$shift_id,$accident_installment,$bond_total,$discount,$other,$flag,$amount_paid,$rental_commission,$rental_hidden_val);
//pr($respons_arr);
echo json_encode($respons_arr);exit;
}
public function saveDriverExpense(){
$payin_expense_id = $this->input->post('payin_expense_id');
$driver_expense_pr = $this->input->post('driver_expense_pr');
if($this->session->userdata('driver_settlement') !=''){
$driver_settlement = $this->session->userdata('driver_settlement');
if(!empty($driver_settlement['driver_expense'])){
foreach($driver_settlement['driver_expense'] as $key => $value) {
if($value['payin_expense_id'] == $payin_expense_id){
$driver_settlement['driver_expense'][$key]['expense_amount'] = $driver_expense_pr;
}
}
}
$this->session->set_userdata('driver_settlement', $driver_settlement);
$respons_arr['process'] = 'success';
}
else{
$respons_arr['process'] = "failed";
}
$driver_id = $this->input->post('driver_id');
$shift_id = $this->input->post('shift_id');
$payin_id = $this->input->post('payin_id');
$discount = $this->input->post('discount');
$other = $this->input->post('other');
$accident_installment = $this->input->post('accident_installment');
$bond_total = $this->input->post('bond_total');
$amount_paid = $this->input->post('amount_paid');
$rental_commission = $this->input->post('rental_commission');
$flag = $this->input->post('flag');
$rental_hidden_val =$this->input->post('rental_hidden_val');
$respons_arr['total_settlement'] = $this->settlementCalculation($payin_id,$driver_id,$shift_id,$accident_installment,$bond_total,$discount,$other,$flag,$amount_paid,$rental_commission,$rental_hidden_val);
echo json_encode($respons_arr);exit;
}
public function calculateDiscount(){
$total_settlement = array();
$driver_id = $this->input->post('driver_id');
$shift_id = $this->input->post('shift_id');
$payin_id = $this->input->post('payin_id');
$discount = $this->input->post('discount');
$other = $this->input->post('other');
$accident_installment = $this->input->post('accident_installment');
$bond_total = $this->input->post('bond_total');
$amount_paid = $this->input->post('amount_paid');
$rental_commission = $this->input->post('rental_commission');
$flag = $this->input->post('flag');
$rental_hidden_val =$this->input->post('rental_hidden_val');
//echo $driver_id."<br>".$shift_id."<br>".$payin_id."<br>".$discount."<br>".$other."<br>".$accident_installment."<br>".$bond_total."<br>".$flag;exit;
$total_settlement = $this->settlementCalculation($payin_id,$driver_id,$shift_id,$accident_installment,$bond_total,$discount,$other,$flag,$amount_paid,$rental_commission,$rental_hidden_val);
//pr($total_settlement);
echo json_encode($total_settlement);exit;
}
public function calculateDriverSettlement(){
//echo '<pre>';print_r($this->session->userdata('driver_settlement'));die;
$dr_settlement_id = $this->input->post('dr_settlement_id');
$driver_settlement = $this->session->userdata('driver_settlement');
if(empty($dr_settlement_id)){
if($this->session->userdata('driver_settlement') !=''){
$driver_settlement = $this->session->userdata('driver_settlement');
$settlement_inst = array(
'payin_id' => $driver_settlement['payin_id'],
'total_extra_start' => $driver_settlement['total_extra_start'],
'total_extra_end' => $driver_settlement['total_extra_end'],
'paid_km_start' => $driver_settlement['paid_km_start'],
'paid_km_end' => $driver_settlement['paid_km_end'],
'total_km_start' => $driver_settlement['total_km_start'],
'total_km_end' => $driver_settlement['total_km_end'],
'no_of_hiring_start' => $driver_settlement['no_of_hiring_start'],
'no_of_hiring_end' => $driver_settlement['no_of_hiring_end'],
'extra_start' => $driver_settlement['extra_start'],
'extra_end' => $driver_settlement['extra_end'],
'speedo_reading_start' => $driver_settlement['speedo_reading_start'],
'speedo_reading_end' => $driver_settlement['speedo_reading_end']
);
}
$settlement_inst['driver_id'] = $this->input->post('driver_id');
$settlement_inst['shift_id'] = $this->input->post('shift_id');
$settlement_inst['total_docket'] = $this->input->post('total_dockets');
$settlement_inst['total_expense'] = $this->input->post('total_expense');
$settlement_inst['shift_levy'] = $this->input->post('levy_total');
$settlement_inst['no_of_whl'] = $this->input->post('no_of_whl');
$settlement_inst['accident_installment'] = $this->input->post('accident_installment');
$settlement_inst['bond_installment'] = $this->input->post('bond_total');
$settlement_inst['other'] = $this->input->post('other');
$settlement_inst['amount_due'] = $this->input->post('amount_due');
$settlement_inst['discount'] = $this->input->post('discount');
$settlement_inst['credit_card_amt'] = $this->input->post('credit_card_amt');
$settlement_inst['bank_transfer_amt'] = $this->input->post('bank_transfer_amt');
$settlement_inst['cash_amt'] = $this->input->post('cash_amt');
$settlement_inst['final_settlement_amt'] = $this->input->post('admin_total_payment');
$admin_total_payment=$this->input->post('admin_total_payment');
$amount_due= $this->input->post('amount_due');
$final_due_amount = (($amount_due < 0)? ($this->input->post('final_due_amount') + $admin_total_payment) : ($this->input->post('final_due_amount') - $admin_total_payment));
//echo $final_due_amount;die;
$settlement_inst['final_due_amt'] = $final_due_amount;
$settlement_inst['created_by'] = $this->session->userdata('user_data');
$settlement_inst['created_on'] = date('Y-m-d');
//echo '<pre>';print_r($settlement_inst);die;
$insert_id = $this->mcommon->insert('driver_settlement',$settlement_inst);
if(!empty($driver_settlement['driver_dockets'])){
foreach($driver_settlement['driver_dockets'] as $key => $value) {
$insrt_docket_arr = array('dr_settlement_id' => $insert_id,
'payin_docket_id' => $value['payin_dockets_id'],
'docket_settlement_amt' => $value['docket_amount']
);
$this->mcommon->insert('dr_settlement_docket',$insrt_docket_arr);
}
}
if(!empty($driver_settlement['driver_expense'])){
foreach($driver_settlement['driver_expense'] as $key => $val) {
$insrt_expense_arr = array('dr_settlement_id' => $insert_id,
'payin_expense_id' => $val['payin_expense_id'],
'expense_settlement_amt'=> $val['expense_amount']
);
$this->mcommon->insert('dr_settlement_expense',$insrt_expense_arr);
}
}
} else {
$update_condition =array('dr_settlement_id'=>$dr_settlement_id);
$driver_settlement_data = $this->mcommon->getRow('driver_settlement',$update_condition);
$settlement_inst['accident_installment'] = $this->input->post('accident_installment');
$settlement_inst['bond_installment'] = $this->input->post('bond_total');
$settlement_inst['other'] = $this->input->post('other');
$settlement_inst['amount_due'] = $this->input->post('amount_due');
$settlement_inst['discount'] = $this->input->post('discount');
$settlement_inst['credit_card_amt'] = $driver_settlement_data['credit_card_amt'] + $this->input->post('credit_card_amt');
$settlement_inst['bank_transfer_amt'] = $driver_settlement_data['bank_transfer_amt'] + $this->input->post('bank_transfer_amt');
$settlement_inst['cash_amt'] = $driver_settlement_data['cash_amt'] + $this->input->post('cash_amt');
$admin_total_payment=$this->input->post('admin_total_payment');
$amount_due= $this->input->post('amount_due');
$final_due_amount = (($amount_due < 0)? ($this->input->post('final_due_amount') + $admin_total_payment) : ($this->input->post('final_due_amount') - $admin_total_payment));
$settlement_inst['final_settlement_amt'] = $driver_settlement_data['final_settlement_amt'] + $this->input->post('admin_total_payment');
$settlement_inst['final_due_amt'] = $final_due_amount;
$settlement_inst['updated_by'] = $this->session->userdata('user_data');
$settlement_inst['updated_on'] = date('Y-m-d');
$insert_id=$this->mcommon->update('driver_settlement',$update_condition,$settlement_inst);
$settlement_history['dr_settlement_id'] = $dr_settlement_id;
$settlement_history['driver_id'] = $this->input->post('driver_id');
$settlement_history['shift_id'] = $this->input->post('shift_id');
$settlement_history['payin_id'] = $driver_settlement_data['payin_id'];
$settlement_history['accident_installment'] = $this->input->post('accident_installment');
$settlement_history['bond_installment'] = $this->input->post('bond_total');
$settlement_history['other'] = $this->input->post('other');
$settlement_history['amount_due'] = $this->input->post('amount_due');
$settlement_history['discount'] = $this->input->post('discount');
$settlement_history['credit_card_amt'] = $this->input->post('credit_card_amt');
$settlement_history['bank_transfer_amt'] = $this->input->post('bank_transfer_amt');
$settlement_history['cash_amt'] = $this->input->post('cash_amt');
$settlement_history['final_settlement_amt'] = $this->input->post('admin_total_payment');
$settlement_history['created_by'] = $this->session->userdata('user_data');
$settlement_history['created_on'] = date('Y-m-d');
$insert_id = $this->mcommon->insert('driver_settlement_history',$settlement_history);
}
if($insert_id){
$cond = array('payin_id' => $driver_settlement['payin_id']);
$payin_details = $this->mcommon->getRow('payin',$cond);
$settlement_history_details = $this->mcommon->getRow('driver_settlement_history',$cond);
$update_payin = array();
if(empty($settlement_history_details)){
$update_payin['settlement_amt'] = $this->input->post('amount_due');
}
$update_payin['final_due_amt'] = $final_due_amount;
$update_payin['rental_commission_flag'] =(!empty($this->input->post('rental_hidden')))?'R':'C';
if($final_due_amount == 0){
$update_payin['driver_settlement_flag'] = '1';
} else {
$update_payin['driver_settlement_flag'] = '2';
}
$update_payin_result = $this->mcommon->update('payin',$cond,$update_payin);
/******************** SREELA(12/11/19) update - bond installment amount paid ********************************/
$conds_bond = array('driver_id' => $this->input->post('driver_id'));
$bond_datas = $this->mcommon->getRow('master_bond',$conds_bond);
if(!empty($bond_datas)){
$bond_installment_amt_paid = $this->input->post('bond_total') + $bond_datas['installment_amt_paid'];
$bond_update_data = array('installment_amt_paid' => $bond_installment_amt_paid,'updated_by' =>$this->session->userdata('user_data'),'updated_on' => date('Y-m-d'));
$update_payin_result = $this->mcommon->update('master_bond',$conds_bond,$bond_update_data);
}
/******************** SREELA(12/11/19) end ********************************/
if($update_payin_result){
if($this->input->post('cash_amt') > 0 && $this->input->post('total_amount') !=''){
$daily_settlement_data['transaction_date'] =date('Y-m-d');
$daily_settlement_data['payin_id'] =$driver_settlement['payin_id'];
if($this->input->post('amount_due') > 0){
$daily_settlement_data['transaction_type '] =1; //1=> Add,2=>Deduct
}else{
$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);
}
}
echo "success";
}
else{
echo "error";
}
}
public function ListDriverSettlement() {
$this->_load_settlement_list();
}
private function _load_settlement_list() {
$data = array();
$order = 'DS.created_on';
$order_type = 'DESC';
$data['content'] = 'admin/driver_settlement/driver_settlement_list';
$joindata = array('select' =>'dsd.shift_no,DS.*,master_car.registration_no as car_no,master_user.dc_no,master_user.dc_no,user_profile.first_name,user_profile.middle_name,user_profile.last_name',
'first_table' =>'driver_settlement DS',
'second_table' =>'master_user',
'dependency1' =>'DS.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',
/*********************************/
'forth_table' =>'driver_shift_details dsd',
'dependency3' =>'dsd.shift_id = DS.shift_id',
'join_type3' =>'inner',
/*********************************/
'fifth_table' =>'roster_driver_maping RDM',
'dependency4' =>'RDM.roster_driver_id = dsd.roster_driver_id',
'join_type4' =>'inner',
/*********************************/
'sixth_table' =>'roster',
'dependency5' =>'RDM.roster_id = roster.roster_id',
'join_type5' =>'inner',
/*********************************/
'seventh_table' =>'master_car',
'dependency6' =>'master_car.car_id = roster.car_id',
'join_type6' =>'inner'
);
//pr($data['driver_list']);
$cond = array();
$data['driver_settlement_list'] = $this->mcommon->joinQuery($joindata,$cond,'result',$order,$order_type);
//pr($data['driver_settlement_list']);
$this->load->view('admin/layouts/index', $data);
}
public function DriverSettlementDetail($dr_settlement_id){
$this->_load_settlement_deatils($dr_settlement_id);
}
public function DriverSettlementEditView($dr_settlement_id,$view_pg_flag){
$this->_load_settlement_deatils($dr_settlement_id,$view_pg_flag);
}
private function _load_settlement_deatils($dr_settlement_id,$view_pg_flag='') {
$data = array();
$driver_settlement = array();
$order = '';
$order_type = '';
$data['content'] = 'admin/driver_settlement/driver_settlement_list';
$joindata = array('select' =>'p.*,DS.*,dsd.shift_no,master_car.registration_no as car_no,roster.day_date as shift_dt,master_user.dc_no,master_user.dc_no,user_profile.dr_dc_expiry,user_profile.dr_licence_expiry,user_profile.first_name,user_profile.middle_name,user_profile.last_name,user_profile.profile_photo,user_profile.dr_rental',
'first_table' =>'driver_settlement DS',
'second_table' =>'master_user',
'dependency1' =>'DS.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',
/*********************************/
'forth_table' =>'driver_shift_details dsd',
'dependency3' =>'dsd.shift_id = DS.shift_id',
'join_type3' =>'inner',
/*********************************/
'fifth_table' =>'roster_driver_maping RDM',
'dependency4' =>'RDM.roster_driver_id = dsd.roster_driver_id',
'join_type4' =>'inner',
/*********************************/
'sixth_table' =>'roster',
'dependency5' =>'RDM.roster_id = roster.roster_id',
'join_type5' =>'inner',
/*********************************/
'seventh_table' =>'master_car',
'dependency6' =>'master_car.car_id = roster.car_id',
'join_type6' =>'inner',
'eighth_table' =>'payin p',
'dependency7' =>'p.payin_id = DS.payin_id',
'join_type7' =>'inner'
);
$cond = array('DS.dr_settlement_id' => $dr_settlement_id);
$driver_settlement = $this->mcommon->joinQuery($joindata,$cond,'row',$order,$order_type);
if(!empty($driver_settlement)){
$data['driver_settlement_data'] = $driver_settlement;
}
else{
$data['driver_settlement_data'] = '';
}
/*****************************************************************************************************/
$joindata_dockets = array( 'select' =>'DSD.dr_settlement_docket_id,DSD.dr_settlement_id,DSD.payin_docket_id,DSD.docket_settlement_amt as docket_amount,master_docket.docket_name,payin_dockets.doc_link as docket_img',
'first_table' =>'dr_settlement_docket DSD',
'second_table' =>'payin_dockets',
'dependency1' =>'DSD.payin_docket_id = payin_dockets.payin_dockets_id',
'join_type1' =>'left',
/********************************/
'third_table' =>'master_docket',
'dependency2' =>'payin_dockets.docket_id = master_docket.docket_id',
'join_type2' =>'left'
);
$dockets_cond = array('DSD.dr_settlement_id' => $dr_settlement_id);
$settlement_dockets_data = $this->mcommon->joinQuery($joindata_dockets,$dockets_cond,'result',$order,$order_type);
//pr($settlement_dockets_data);
if(!empty($settlement_dockets_data)){
$driver_settlement['driver_dockets'] = $settlement_dockets_data;
$data['settlement_dockets_data'] = $settlement_dockets_data;
}
else{
$data['settlement_dockets_data'] = '';
}
/*****************************************************************************************************/
$joindata_expense = array( 'select' =>'DSE.dr_settlement_expense_id,DSE.dr_settlement_id,DSE.payin_expense_id,DSE.expense_settlement_amt as expense_amount,master_expense.expense_name as expense_name,payin_expenses.doc_link as expense_img',
'first_table' =>'dr_settlement_expense DSE',
'second_table' =>'payin_expenses',
'dependency1' =>'DSE.payin_expense_id = payin_expenses.payin_expense_id',
'join_type1' =>'left',
/********************************/
'third_table' =>'master_expense',
'dependency2' =>'payin_expenses.expense_id = master_expense.expense_id',
'join_type2' =>'left'
);
$expense_cond = array('DSE.dr_settlement_id' => $dr_settlement_id);
$settlement_expense_data = $this->mcommon->joinQuery($joindata_expense,$expense_cond,'result',$order,$order_type);
if(!empty($settlement_expense_data)){
$driver_settlement['driver_expense'] = $settlement_expense_data;
$data['settlement_expense_data'] = $settlement_expense_data;
}
else{
$data['settlement_expense_data'] = '';
}
$this->session->set_userdata('driver_settlement', $driver_settlement);
if($view_pg_flag =='edit'){
$data['content'] = 'admin/driver_settlement/driver_settlement_edit';
}
else{
$data['content'] = 'admin/driver_settlement/driver_settlement_details';
}
$this->load->view('admin/layouts/index', $data);
}
public function EditDriversettlement($dr_settlement_id){
//pr($_POST);
$data = array();
if($this->input->post()){
$data['total_extra_start'] = $this->input->post('total_extra_start');
$data['total_extra_end'] = $this->input->post('total_extra_end');
$data['paid_km_start'] = $this->input->post('paid_km_start');
$data['paid_km_end'] = $this->input->post('paid_km_end');
$data['total_km_start'] = $this->input->post('total_km_start');
$data['total_km_end'] = $this->input->post('total_km_end');
$data['no_of_hiring_start'] = $this->input->post('no_of_hiring_start');
$data['no_of_hiring_end'] = $this->input->post('no_of_hiring_end');
$data['extra_start'] = $this->input->post('extra_start');
$data['extra_end'] = $this->input->post('extra_end');
$data['speedo_reading_start'] = $this->input->post('speedo_reading_start');
$data['speedo_reading_end'] = $this->input->post('speedo_reading_end');
$data['total_docket'] = $this->input->post('total_dockets');
$data['total_expense'] = $this->input->post('total_expense');
$data['accident_installment'] = $this->input->post('accident_installment');
$data['bond_installment'] = $this->input->post('bond_total');
$data['other'] = $this->input->post('other');
$data['shift_levy'] = $this->input->post('levy_total');
$data['no_of_whl'] = $this->input->post('no_of_whl');
$data['amount_due'] = $this->input->post('amount_due');
$data['discount'] = $this->input->post('discount');
$data['credit_card_amt'] = $this->input->post('credit_card_amt');
$data['bank_transfer_amt'] = $this->input->post('bank_transfer_amt');
$data['cash_amt'] = $this->input->post('cash_amt');
$data['final_settlement_amt'] = $this->input->post('admin_total_payment');
$data['updated_on'] = date('Y-m-d');
$data['updated_by'] = $this->session->userdata('user_data');
$condition = array('dr_settlement_id'=> $this->input->post('dr_settlement_id'));
$this->mcommon->update('driver_settlement',$condition,$data);
if(!empty($this->input->post('docket_price'))){
$driver_dockets = $this->input->post('docket_price');
foreach($driver_dockets as $key => $value) {
$update_docket_arr = array('docket_settlement_amt' => $value);
$dock_cond = array('dr_settlement_docket_id' => $key);
$this->mcommon->update('dr_settlement_docket',$dock_cond,$update_docket_arr);
}
}
if(!empty($this->input->post('expense_price'))){
$expense_price = $this->input->post('expense_price');
foreach($expense_price as $expn_key => $expn_val) {
$update_expense_arr = array('expense_settlement_amt' => $expn_val);
$expn_cond = array('dr_settlement_expense_id' => $expn_key);
$this->mcommon->update('dr_settlement_expense',$expn_cond,$update_expense_arr);
}
}
}
redirect('admin/DriverSettlement/DriverSettlementDetail/'.$dr_settlement_id);
}
private function single_image_upload($path, $files, $document_type){
//echo $document_type;die;
$fileName = $document_type . '_' . time() . '_' . str_replace(" ", "_", $files['name']);
$config = array(
'upload_path' => $path,
'allowed_types' => 'gif|jpg|png|jpeg|pdf|xls|xlsx|doc|docx',
'overwrite' => 1,
'file_name' => $fileName
);
//print_r($config);die;
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload($document_type)) {
//echo $this->upload->display_errors();die;
$message = array('result' => $this->upload->display_errors(), 'status' => 0);
} else {
//echo 'success';die;
$data = array('upload_data' => $this->upload->data());
//print_r($data);die;
$message = array('result' => $data['upload_data']['file_name'], 'status' => 1);
}
return $message;
}
}