From 7de5cc4ac720a810fb4138d23bf3395c665bdd96 Mon Sep 17 00:00:00 2001 From: VE10-Sanjeev Date: Thu, 27 Feb 2025 13:37:23 +0000 Subject: [PATCH] driver loan : ps --- app/Controllers/Driver.php | 80 ++++++++++- app/Controllers/Payslip.php | 168 +++++++++++++++++------ app/Models/Driver_model.php | 37 ++++- app/Views/driverPayslipGeneratePrint.php | 22 +-- app/Views/monthlypayinputs.php | 97 +++++++++++-- 5 files changed, 328 insertions(+), 76 deletions(-) diff --git a/app/Controllers/Driver.php b/app/Controllers/Driver.php index 8f091691..f73d7c7b 100755 --- a/app/Controllers/Driver.php +++ b/app/Controllers/Driver.php @@ -401,7 +401,7 @@ class Driver extends BaseController echo json_encode(count($result)); } - public function driverPayslip() + public function driverPayslip_old() { $PayOn = $this->request->getPost('payon'); @@ -426,6 +426,84 @@ class Driver extends BaseController } + public function driverPayslip() + { + + $PayOn = $this->request->getPost('payon'); + + $Driver = $this->request->getPost('employee'); + + $res = $this->driver_model->getMonthlyPayDetails($Driver, $PayOn); + + $result = $res[0]; + + + $loan = []; + $loanHistory = []; + $loan_id = 0; + $BalanceAdvance = 0; + if(is_null($result->Loan_ID)){ + + }else{ + if($result->Loan_Recovered > 0) + { + $loan_id = $result->Loan_ID; + + if($result->Remaining_Due - 1 == 0){ $is_Active = 0; }else{ $is_Active = 1; } + + $loan = [ + 'Paid_Due' => $result->Paid_Due + 1, + 'Remaining_Due' => $result->Remaining_Due - 1, + 'Paid_Amount' => $result->Paid_Amount + $result->Loan_Recovered, + 'is_Active' => $is_Active + ]; + + + $loanHistory = [ + 'Loan_ID' => $loan_id, + 'Due_Amount' => $result->Loan_Recovered, + 'Balance_Amount' => (int)$result->Loan_Amount - ((int)$result->Paid_Amount + (int)$result->Loan_Recovered), + 'Due_Date' => (string)$PayOn, + ]; + + $BalanceAdvance = $result->Loan_Amount - ($result->Paid_Amount + $result->Loan_Recovered); + + + } + } + + $data = [ + 'PayOn' => $result->month_year, + 'driver_id' => $result->driver_id, + 'no_of_loads' => $result->no_of_loads, + 'monthly_salary_amount' => $result->monthly_salary_amount, + 'monthly_food_amount' => $result->monthly_food_amount, + 'final_payment' => $result->final_payment, + 'created_by' => $this->session->get('userId'), + 'shed_amount' => $result->total_shed_amount, + 'diesel_amount' => $result->total_diesel_amount, + 'ESI' => $result->ESI, + 'PF' => $result->PF, + 'Advance' => $result->Loan_Recovered, + 'BalanceAdvance' => $BalanceAdvance, + 'LessAdvance' => 0, + 'Festival_Bonus' => $result->Festival_Bonus, + ]; + + + + $insert = $this->driver_model->insertPayroll($data); + if($insert){ + if(count($loan)){ + $this->driver_model->updateLoan($loan_id,$result->driver_id,$loan); + } + if(count($loanHistory)){ + $this->driver_model->insertLoanHistory($loanHistory); + } + } + return $insert; + } + public function driverPrintPdf() { diff --git a/app/Controllers/Payslip.php b/app/Controllers/Payslip.php index e1c7b5b2..28566e81 100755 --- a/app/Controllers/Payslip.php +++ b/app/Controllers/Payslip.php @@ -737,7 +737,7 @@ class Payslip extends BaseController $from_mysql_date = get_date_time_dynamical_format('d-m-Y','Y-m-d',"01-$month_in_number-$year"); $to_mysql_date = get_date_time_dynamical_format('d-m-Y','Y-m-d',"$get_last_date_of_the_month-$month_in_number-$year"); - + // $data['monthinputs'] $load_driver_data = $this->driver_model->driverAttendanceForMonthlyPayInputs($from_mysql_date,$to_mysql_date); // dd($load_driver_data); @@ -762,35 +762,108 @@ class Payslip extends BaseController $PF_Rate = $load_driver_data[$i]->PF_Rate; $ESI_Rate = $load_driver_data[$i]->ESI_Rate; - $basic = isset($load_driver_data[$i]->driver_earnings_amount) ? (int)$load_driver_data[$i]->driver_earnings_amount + (int)$load_driver_data[$i]->shed_amount+(int)$load_driver_data[$i]->diesel_amount : 0; + $salary = isset($load_driver_data[$i]->monthly_salary_amount) ? (int)$load_driver_data[$i]->monthly_salary_amount : 0; + $food = isset($load_driver_data[$i]->monthly_food_amount) ? (int)$load_driver_data[$i]->monthly_food_amount : 0; + $shed = isset($load_driver_data[$i]->shed_amount) ? (int)$load_driver_data[$i]->shed_amount : 0; + $diesel = isset($load_driver_data[$i]->diesel_amount) ? (int)$load_driver_data[$i]->diesel_amount : 0; - $load_driver_data[$i]->driver_basic = $basic; - $load_driver_data[$i]->driver_earnings_amount = $monthly_pay_array[$driver_id]->driver_earnings_amount; + $Monthly_Due = $load_driver_data[$i]->Monthly_Due; // AUTO LOAN DUE + $Loan_Recovered = $load_driver_data[$i]->Loan_Recovered; //MANUAL LOAN DUE + $loan = 0; + $due_start_date = $load_driver_data[$i]->DueDate; + $paydate = $current; //From POST parm + if ($Loan_Recovered == 'NA') { + $loan = 0.00; + } else if ($Loan_Recovered == 0.00) { + if (strtotime($due_start_date) <= strtotime($to_mysql_date)) { + $loan = $Monthly_Due; + } + } else if ($Loan_Recovered >= 0.00) { + if (strtotime($due_start_date) <= strtotime($to_mysql_date)) { + $loan = $Loan_Recovered; + } + } - // $load_driver_data[$i]->diesel = $monthly_pay_array[$driver_id]->diesel; - // $load_driver_data[$i]->shed_duty_amount = $monthly_pay_array[$driver_id]->shed_duty_amount; - $load_driver_data[$i]->driver_final_payment = $monthly_pay_array[$driver_id]->driver_final_payment; + $load_driver_data[$i]->driver_basic = $salary+$food; + $Loan_amount = $load_driver_data[$i]->Loan_Amount; + $Paid_Amount = $load_driver_data[$i]->Paid_Amount; + $Balance_Amount = $Loan_amount - $Paid_Amount; + if ($Monthly_Due > $Balance_Amount) { + $loan = $Balance_Amount; + } + + $empSalaryAdd = $salary+$food; + $empSalarySub = $loan; + $salaryInCurrentday = $empSalaryAdd - $empSalarySub; + $load_driver_data[$i]->driver_final_payment = $salaryInCurrentday+$shed+$diesel; + + $load_driver_data[$i]->driver_salary = $salary; + $load_driver_data[$i]->driver_food = $food; + $load_driver_data[$i]->driver_shed = $shed; + $load_driver_data[$i]->driver_diesel = $diesel; + $load_driver_data[$i]->payroll_id = $monthly_pay_array[$driver_id]->payroll_id; $load_driver_data[$i]->Festival_Bonus = $monthly_pay_array[$driver_id]->Festival_Bonus; - $load_driver_data[$i]->esi_amount = ($load_driver_data[$i]->esi_applicable == 1) ? $basic * $ESI_Rate / 100 : 0; - $load_driver_data[$i]->pf_amount = ($load_driver_data[$i]->pf_applicable == 1) ? $basic * $PF_Rate / 100 : 0; - $load_driver_data[$i]->basic_worked = $basic * 30 / 100; - $load_driver_data[$i]->hra_worked = $basic * 70 / 100; + + $load_driver_data[$i]->esi_amount = ($load_driver_data[$i]->esi_applicable == 1) ? ($salary+$food) * $ESI_Rate / 100 : 0; + $load_driver_data[$i]->pf_amount = ($load_driver_data[$i]->pf_applicable == 1) ? ($salary+$food) * $PF_Rate / 100 : 0; + $load_driver_data[$i]->basic_worked = ($salary+$food) * 30 / 100; + $load_driver_data[$i]->hra_worked = ($salary+$food) * 70 / 100; }else { $PF_Rate = $load_driver_data[$i]->PF_Rate; $ESI_Rate = $load_driver_data[$i]->ESI_Rate; + + $salary = isset($load_driver_data[$i]->monthly_salary_amount) ? (int)$load_driver_data[$i]->monthly_salary_amount : 0; + $food = isset($load_driver_data[$i]->monthly_food_amount) ? (int)$load_driver_data[$i]->monthly_food_amount : 0; + $shed = isset($load_driver_data[$i]->shed_amount) ? (int)$load_driver_data[$i]->shed_amount : 0; + $diesel = isset($load_driver_data[$i]->diesel_amount) ? (int)$load_driver_data[$i]->diesel_amount : 0; + + $load_driver_data[$i]->driver_basic = $salary+$food; + + $load_driver_data[$i]->driver_salary = $salary; + $load_driver_data[$i]->driver_food = $food; + $load_driver_data[$i]->driver_shed = $shed; + $load_driver_data[$i]->driver_diesel = $diesel; - $basic = isset($load_driver_data[$i]->driver_earnings_amount) ? (int)$load_driver_data[$i]->driver_earnings_amount + (int)$load_driver_data[$i]->shed_amount+(int)$load_driver_data[$i]->diesel_amount : 0; - $load_driver_data[$i]->driver_basic = $basic; - $load_driver_data[$i]->driver_earnings_amount = $load_driver_data[$i]->driver_earnings_amount; - $load_driver_data[$i]->driver_final_payment = $basic; $load_driver_data[$i]->payroll_id = ''; $load_driver_data[$i]->Festival_Bonus = 0; - $load_driver_data[$i]->esi_amount = ($load_driver_data[$i]->esi_applicable == 1) ? $basic * $ESI_Rate / 100 : 0; - $load_driver_data[$i]->pf_amount = ($load_driver_data[$i]->pf_applicable == 1) ? $basic * $PF_Rate / 100 : 0; - $load_driver_data[$i]->basic_worked = $basic * 30 / 100; - $load_driver_data[$i]->hra_worked = $basic * 70 / 100; + + $load_driver_data[$i]->esi_amount = ($load_driver_data[$i]->esi_applicable == 1) ? ($salary+$food) * $ESI_Rate / 100 : 0; + $load_driver_data[$i]->pf_amount = ($load_driver_data[$i]->pf_applicable == 1) ? ($salary+$food) * $PF_Rate / 100 : 0; + $load_driver_data[$i]->basic_worked = ($salary+$food) * 30 / 100; + $load_driver_data[$i]->hra_worked = ($salary+$food) * 70 / 100; + + $Monthly_Due = $load_driver_data[$i]->Monthly_Due; // AUTO LOAN DUE + $Loan_Recovered = $load_driver_data[$i]->Loan_Recovered; //MANUAL LOAN DUE + $loan = 0; + $due_start_date = $load_driver_data[$i]->DueDate; + $paydate = $current; //From POST parm + if ($Loan_Recovered == 'NA') { + $loan = 0.00; + } else if ($Loan_Recovered == 0.00) { + if (strtotime($due_start_date) <= strtotime($to_mysql_date)) { + $loan = $Monthly_Due; + } + } else if ($Loan_Recovered >= 0.00) { + if (strtotime($due_start_date) <= strtotime($to_mysql_date)) { + $loan = $Loan_Recovered; + } + } + + $load_driver_data[$i]->driver_basic = $salary+$food; + $Loan_amount = $load_driver_data[$i]->Loan_Amount; + $Paid_Amount = $load_driver_data[$i]->Paid_Amount; + $Balance_Amount = $Loan_amount - $Paid_Amount; + if ($Monthly_Due > $Balance_Amount) { + $loan = $Balance_Amount; + } + + $empSalaryAdd = $salary+$food; + $empSalarySub = $loan; + $salaryInCurrentday = $empSalaryAdd - $empSalarySub; + $load_driver_data[$i]->driver_final_payment = $salaryInCurrentday+$shed+$diesel; + } } // dd($load_driver_data); @@ -973,7 +1046,6 @@ class Payslip extends BaseController $month = $mon . "-" . $year; - //echo $month;die(); $total = 0; $ErrorEmpId = ''; $TotalErrorFlag = 0; @@ -1102,16 +1174,7 @@ class Payslip extends BaseController $Festival_Bonus = isset($j['Festival Bonus in ₹']) ? $j['Festival Bonus in ₹'] : 0.00; $tds_Deductions = isset($j['TDS Deductions in ₹']) ? $j['TDS Deductions in ₹'] : 0.00; $Estimate = isset($j['Estimate in ₹']) ? $j['Estimate in ₹'] : 0.00; - $Created_By = $this->session->get('userId'); - - $ID = $EmpID ; - $LOAD = $DaysWorked; - $SALARY = $Basic ; - $TOTAL = $Basic ; - $DIESEL = $Festival_Bonus ; - $GRAND = $Estimate; - $CREATED = $this->session->get('userId'); - $UPDATED = $this->session->get('userId'); + $Created_By = $this->session->get('userId'); if($is_driver == 0){ @@ -1142,21 +1205,35 @@ class Payslip extends BaseController $result = $this->monthlypay_model->saveMonthlyData_model($monthlypaydata); }else{ - $CREATED = $this->session->get('userId'); - $UPDATED = $this->session->get('userId'); + + $get_last_date_of_the_month = cal_days_in_month(CAL_GREGORIAN, $mon, $year); + $from_mysql_date = get_date_time_dynamical_format('d-m-Y','Y-m-d',"01-$mon-$year"); + $to_mysql_date = get_date_time_dynamical_format('d-m-Y','Y-m-d',"$get_last_date_of_the_month-$mon-$year"); + $load_driver_data = $this->driver_model->driverAttendanceForMonthlyPayInputs($from_mysql_date,$to_mysql_date); + $Food = isset($load_driver_data[0]->monthly_food_amount) ? (int)$load_driver_data[0]->monthly_food_amount : 0; + $Shed = isset($load_driver_data[0]->shed_amount) ? (int)$load_driver_data[0]->shed_amount : 0; + $Diesel = isset($load_driver_data[0]->diesel_amount) ? (int)$load_driver_data[0]->diesel_amount : 0; $drivermonthlypaydata = array( - 'month_year' => $month, - 'driver_id' =>$EmpID, - 'no_of_loads' =>(strpos($TotalCalDays, "(trip)") !== false) ? explode(" ", $TotalCalDays)[0] : 0, - 'driver_monthly_salary_amount' => $WorkedSalary, - 'Festival_Bonus' => $Festival_Bonus, - 'driver_final_payment' =>$Estimate, - 'created_by'=>$CREATED, - 'updated_by'=>$UPDATED + 'month_year'=>$month, + 'driver_id'=>$EmpID, + 'no_of_loads'=>(strpos($TotalCalDays, "(trip)") !== false) ? explode(" ", $TotalCalDays)[0] : 0, + 'monthly_food_amount'=>$Food, + 'total_diesel_amount'=>$Diesel, + 'total_shed_amount'=>$Shed, + 'monthly_salary_amount'=>($Basic+$Food), + 'final_payment'=>$Estimate, + 'HRA'=>$HRA, + 'ESI'=>$ESI, + 'PF'=>$PF, + 'Festival_Bonus'=>$Festival_Bonus, + 'Loan_Recovered'=>$Loan_Recovered, + 'created_by'=>$Created_By, + 'updated_by'=>$Created_By ); - + + // print_r($drivermonthlypaydata);die; $result = $this->driver_model->saveMonthlyData($drivermonthlypaydata); } @@ -1290,6 +1367,7 @@ class Payslip extends BaseController $y = substr((string)$Payon, 3); + // if condition for all while checkbox is checked means. if ($All != '') { $filename = 'PayslipFor-' . $m . '-' . $y; $result = $this->payroll_model->getEmpAll($Payon); @@ -1314,18 +1392,20 @@ class Payslip extends BaseController } } else { $EmpID = $this->request->getPost('Employee'); + // $EmpID = "RIPL136"; $is_driver = $this->driver_model->getDriverName($EmpID,1); + // print_r($is_driver);die; if($is_driver == "1"){ $Data['PayDetails'] = $this->driver_model->GetPayslipdata($Payon, $EmpID); - + // print_r($Data['PayDetails']);die; $name = $Data['PayDetails'][0]->driver_name; $filename = 'PayslipFor-' . $EmpID . ' ' . $name . ' ' . $m . ' ' . $y; - $totalsalary = $Data['PayDetails'][0]->driver_final_payment; + $totalsalary = $Data['PayDetails'][0]->final_payment; $totalsalaryinwords = $this->convertNumberToWords(round($totalsalary)); $Data['amtinwords'] = $totalsalaryinwords; - $currentDayBasic = isset($Data['PayDetails'][0]->driver_monthly_salary_amount) ? $Data['PayDetails'][0]->driver_monthly_salary_amount : 0; + $currentDayBasic = isset($Data['PayDetails'][0]->monthly_salary_amount) ? $Data['PayDetails'][0]->monthly_salary_amount : 0; $PF_Rate = $Data['PayDetails'][0]->PF_Rate; $ESI_Rate = $Data['PayDetails'][0]->ESI_Rate; $Data['esi_amount'] = ($Data['PayDetails'][0]->esi_applicable == 1) ? $currentDayBasic * $ESI_Rate / 100 : 0; diff --git a/app/Models/Driver_model.php b/app/Models/Driver_model.php index 6a15d465..55965a99 100755 --- a/app/Models/Driver_model.php +++ b/app/Models/Driver_model.php @@ -105,12 +105,15 @@ class Driver_model extends Model $builder = $this->db->table('t_driver_attendance') ->select('t_driver_attendance.driver_id,driver_details.FirstName as driver_name,driver_details.is_driver, DATE_FORMAT(date, "%M-%Y") AS month_year,COUNT(t_driver_attendance.load_type) AS no_of_loads,driver_details.*,t_emp_pay_data.PF_Rate,t_emp_pay_data.ESI_Rate') - ->select('SUM(t_driver_attendance.salary_amount) as driver_monthly_salary_amount, - SUM(t_driver_attendance.food_amount) as driver_monthly_food_amount, - SUM(salary_amount + food_amount) AS driver_earnings_amount, + ->select('SUM(t_driver_attendance.salary_amount) as monthly_salary_amount, + SUM(t_driver_attendance.food_amount) as monthly_food_amount, diesel_amount,shed_amount,CONCAT_WS(" ", driver_details.FirstName, driver_details.LastName) AS FullName') + ->select('t_loan_master.Loan_ID,Loan_Amount,Loan_Issued_Date,Monthly_Due,Due_Start_Date as DueDate,No_of_Dues,Paid_Due,Remaining_Due,Paid_Amount,t_loan_history.Balance_Amount, t_driver_monthly_pay_inputs.Loan_Recovered') ->join('t_employee_details as driver_details', 'driver_details.EmpID = t_driver_attendance.driver_id', 'left') ->join('t_emp_pay_data','t_emp_pay_data.EmpID=driver_details.EmpID','Left') + ->join('t_loan_master','t_loan_master.EmpID = driver_details.EmpID','Left') + ->join('t_loan_history','t_loan_history.Loan_ID = t_loan_master.Loan_ID','Left') + ->join('t_driver_monthly_pay_inputs','t_driver_monthly_pay_inputs.driver_id = driver_details.EmpID','Left') ->where('t_driver_attendance.date BETWEEN "'.$from.'" AND "'.$to.'"') ->groupBy('DATE_FORMAT(t_driver_attendance.date, "%M-%Y")'); @@ -226,15 +229,32 @@ class Driver_model extends Model function getMonthlyPayDetails($driver_id, $PayOn) { $builder = $this->db->table('t_driver_monthly_pay_inputs MonthlyPay ') - ->select('MonthlyPay.*,driver.EmpID as EmpId,CONCAT_WS(" ", driver.FirstName, driver.LastName) AS FullName') + ->select('CONCAT_WS(" ", driver.FirstName, driver.LastName) AS FullName') + ->select('MonthlyPay.*,driver.BankAccountNo , driver.PFNO , driver.ESI as ESINO , L.Loan_ID, L.Loan_Amount, L.Loan_Issued_Date, L.Monthly_Due, L.Due_Start_Date, L.No_of_Dues, L.Paid_Due, L.Remaining_Due, L.Paid_Amount') ->join('t_employee_details as driver', 'driver.EmpID = MonthlyPay.driver_id and driver.is_driver = 1', 'left') + ->join('t_loan_master as L', 'MonthlyPay.driver_id = L.EmpID and L.is_Active = 1', 'left') ->where('MonthlyPay.driver_id', $driver_id) ->where('MonthlyPay.month_year', $PayOn); $query = $builder->get(); return $query->getResult(); } - + function insertLoanHistory($data) + { + $builder = $this->db->table('t_loan_history'); + $builder->insert($data); + $count = $this->db->affectedRows(); + return $count; + } + function updateLoan($LoanID,$EmpID,$data) + { + $builder = $this->db->table('t_loan_master') + ->where('Loan_ID', $LoanID) + ->where('EmpID', $EmpID) + ->update($data); + $count = $this->db->affectedRows(); + return $count; + } function insertPayroll($data) { $builder = $this->db->table('t_driver_payroll'); @@ -261,13 +281,16 @@ class Driver_model extends Model function GetPayslipdata($PayOn = '', $EmpId = '') { //echo "FROM MODEL" . $PayOn . $EmpId; + + $builder = $this->db->table('t_driver_payroll Pay')->select('Pay.*') ->select('Emp.EmpID,CONCAT_WS(" ", Emp.FirstName, Emp.LastName) as driver_name,Emp.DateofBirth as Dob,Emp.PANNo as Pan,Emp.BankBranchName as BankName,Emp.BankAccountNo as BankAccountNumber,Emp.IFSCCode as IFSCCode,Emp.DateofJoining as DOJ,Emp.AadharNo,Emp.Designation as Designation,Dep.DepartmentName as DeptName,Emp.esi_applicable,Emp.pf_applicable') - ->select('att.diesel_amount , att.shed_amount,t_emp_pay_data.PF_Rate,t_emp_pay_data.ESI_Rate,month.Festival_Bonus') + ->select('t_emp_pay_data.PF_Rate,t_emp_pay_data.ESI_Rate') + ->select('month.Festival_Bonus,month.HRA,month.Loan_Recovered,month.total_diesel_amount,month.total_shed_amount') + // ->select('month.monthly_salary_amount,month.monthly_food_amount,month.Festival_Bonus,month.final_payment,month.HRA,month.ESI,month.PF,month.Loan_Recovered,month.total_diesel_amount,month.total_shed_amount') ->join('t_employee_details Emp', 'Pay.driver_id = Emp.EmpID') ->join('t_departmentdetails Dep', 'Emp.Departmentcode = Dep.DEPCode') ->join('t_emp_pay_data','t_emp_pay_data.EmpID=Emp.EmpID','Left') - ->join('t_driver_attendance att', 'att.driver_id = Emp.EmpID') ->join('t_driver_monthly_pay_inputs month', 'month.driver_id = Emp.EmpID'); if ($PayOn != '') { $builder->where('Pay.PayOn', $PayOn); diff --git a/app/Views/driverPayslipGeneratePrint.php b/app/Views/driverPayslipGeneratePrint.php index a9cc7576..9e82bc46 100755 --- a/app/Views/driverPayslipGeneratePrint.php +++ b/app/Views/driverPayslipGeneratePrint.php @@ -20,7 +20,7 @@ - + @@ -60,8 +60,8 @@ - - + +
Name driver_name; ?>Bank IFSC IFSCCode ?> Loan Balance BalanceAdvance ?>
@@ -71,8 +71,8 @@ - - + + @@ -85,8 +85,8 @@ - - + + @@ -103,7 +103,7 @@ @@ -111,18 +111,18 @@ - + - + diff --git a/app/Views/monthlypayinputs.php b/app/Views/monthlypayinputs.php index c6974478..badc95a6 100755 --- a/app/Views/monthlypayinputs.php +++ b/app/Views/monthlypayinputs.php @@ -511,8 +511,7 @@ if(!empty($drivermonthinputs)){ foreach ($drivermonthinputs as $i => $record) { $inx++; - $salary_amount = ($record->driver_basic); - + $sum_of_amount = ($record->driver_basic+$record->driver_shed+$record->driver_diesel); ?> @@ -593,13 +593,23 @@ - + @@ -640,6 +650,14 @@ ?> + + + + + @@ -854,7 +872,7 @@ $(document).ready(function () { // Convert the filtered array back to a JSON string if needed alldata = JSON.stringify(alldata); var month = $('#monthyear').val(); - + $('#loader').show(); $.ajax({ data: { @@ -1112,15 +1130,60 @@ $(document).ready(function () { var str = event.target.id; var sno = str.substr(8); + // console.log(sno);return true; + var driverEarn = parseFloat(document.getElementById('ttlsalary' + sno).textContent); var Festivals = parseFloat(document.getElementById('Festival' + sno).textContent); totalfestival[sno] = Festivals; + + var element = document.getElementById('loanatm' + sno); + + var loanamt = parseFloat(element.value); + + var paidamt = parseFloat(document.getElementById('paidamt' + sno).value); + var monthDue = parseFloat(document.getElementById('monthDue' + sno).textContent); + var duedate = document.getElementById('duedate' + sno).value; + + duedate = new Date(duedate); + var paydate = document.getElementById('paydate').value; + var paydate = document.getElementById('paydate').value; + if (paydate.length == 6) { + paydate = '0' + paydate; + } + var pmonthonly = paydate.substring(0, 2); + var pyearonly = paydate.substring(3); + var pday = new Date(pyearonly, pmonthonly, 0).getDate(); + var finalpaydate = pyearonly + '-' + pmonthonly + '-' + pday; + finalpaydate = new Date(finalpaydate); + + + var current_loan_amt = 0; + var autoLoan = parseFloat(monthDue); + var Balance_Amount = loanamt - paidamt; + + if (autoLoan > Balance_Amount) { + if (duedate <= finalpaydate) { + current_loan_amt = Balance_Amount; + } + } else { + current_loan_amt = autoLoan; + } if (isNaN(driverEarn)) { driverEarn = 0; } - var driverMonthSalary = driverEarn + Festivals + + + + + var driverSalaryAdd = driverEarn + Festivals; + + var driverSalarySub = current_loan_amt; + console.log(current_loan_amt); + + + var driverMonthSalary = driverSalaryAdd - driverSalarySub var driverSalary = Math.round(driverMonthSalary); var cals = (driverSalary).toFixed(0); @@ -1128,6 +1191,14 @@ $(document).ready(function () { document.getElementById("empsal" + sno).innerHTML = cals; // copied from calculategrandtotal() because we need those two only thats why + var AutoLoanDueIndex = 21; + var AutoLoanDue = 0; + $('#monthlylistings tbody tr').each(function() { + var value = $(this).find('td').eq(AutoLoanDueIndex).text(); + AutoLoanDue += parseFloat(value) || 0; + }); + $('#monthloan').text(AutoLoanDue); + var FestivalBonusIndex = 23; var FestivalBonus = 0; $('#monthlylistings tbody tr').each(function() {
EarningsAmount DeductionsAmount
 Monthly Salarydriver_monthly_salary_amount; ?>  Basicmonthly_salary_amount; ?>   PF  
 Shed Duty Amount shed_amount; ?>    Salary Advance Advance ?> 
 Total Earning (Rounded) driver_monthly_salary_amount + $PayDetails[0]->Festival_Bonus + $PayDetails[0]->diesel_amount + $PayDetails[0]->shed_amount; + $totEarning = $PayDetails[0]->monthly_salary_amount + $PayDetails[0]->Festival_Bonus + $PayDetails[0]->diesel_amount + $PayDetails[0]->shed_amount; echo number_format(round($totEarning),2) ?>   Total Deduction (Rounded) Advance+$esi_amount + $pf_amount ; echo number_format(round($totDeduction),2) ?>  
Net Pay(Rounded)  driver_final_payment),2,'.','') ?> final_payment),2,'.','') ?> 
Total Amount In Words  
This is a computer generated document. This document does not require signature.
@@ -552,7 +551,7 @@ - + @@ -560,7 +559,7 @@ - + @@ -568,16 +567,17 @@ - + + driver_basic, 2, '.', ''); ?> - driver_basic) * 70 / 100; echo number_format($basicWorked, 2, '.', ''); ?> - driver_basic) * 30 / 100; echo number_format($hraWorked, 2, '.', ''); ?> - Monthly_Due; - echo number_format(0.00, 2, '.', ''); ?> + + payroll_id)) { echo "contenteditable='true';"; } ?> + payroll_id)) { ?> title="Payslip Calculated" + style="text-align:right;color:blue;" + style="text-align:right;" > + + Monthly_Due)) { + echo $record->Monthly_Due; + $totalmonthloan[] = $record->Monthly_Due; + } else { + echo number_format(0.00, 2, '.', ''); + } ?>