driver loan : ps

This commit is contained in:
VE10-Sanjeev 2025-02-27 13:37:23 +00:00
parent 926c3ed2a9
commit 7de5cc4ac7
5 changed files with 328 additions and 76 deletions

View File

@ -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()
{

View File

@ -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;

View File

@ -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);

View File

@ -20,7 +20,7 @@
<tr>
<td colspan="11">
<table>
<tbody>
<tbody>
<tr >
<td width="160px;" style="border-left: 0px ;border-bottom: 0px; border-right: 0px ;border-top: 0px ; white-space: nowrap;">Name </td>
<td width="200px;" style="border-left: 0px ;border-bottom: 0px; border-right: 0px ;border-top: 0px ; white-space: nowrap;"><?php echo ':&nbsp;'.$PayDetails[0]->driver_name; ?></td>
@ -60,8 +60,8 @@
<td style="border-left: 0px ;border-bottom: 0px; border-right: 0px ;border-top: 0px ; white-space: nowrap;">Bank IFSC </td>
<td style="border-left: 0px ;border-bottom: 0px; border-right: 0px ;border-top: 0px ; white-space: nowrap;"><?php echo ':&nbsp;'.$PayDetails[0]->IFSCCode ?></td>
<td><?= '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' ?></td>
<td style="border-left: 0px ;border-bottom: 0px; border-right: 0px ;border-top: 0px ; white-space: nowrap;"> </td>
<td style="border-left: 0px ;border-bottom: 0px; border-right: 0px ;border-top: 0px ; white-space: nowrap;"> </td>
<td style="border-left: 0px ;border-bottom: 0px; border-right: 0px ;border-top: 0px ; white-space: nowrap;">Loan Balance </td>
<td style="border-left: 0px ;border-bottom: 0px; border-right: 0px ;border-top: 0px ; white-space: nowrap;" ><?php echo ':&nbsp;Rs&nbsp;'.$PayDetails[0]->BalanceAdvance ?></td>
</tr>
</tbody>
</table>
@ -71,8 +71,8 @@
<table style="border-collapse: collapse;border-top:#fff;" cellpadding="0" cellspacing="0" border="1" width="100%" >
<tr><th>Earnings</th><th>Amount <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></th><th>Deductions</th><th>Amount <span style="font-family: DejaVu Sans; sans-serif;">&#8377;</span></th></tr>
<tr>
<td width="25%;">&nbsp;Monthly Salary</td>
<td width="20%;" style="text-align: right;" ><?php echo $PayDetails[0]->driver_monthly_salary_amount; ?>&nbsp;</td>
<td width="25%;">&nbsp;Basic</td>
<td width="20%;" style="text-align: right;" ><?php echo $PayDetails[0]->monthly_salary_amount; ?>&nbsp;</td>
<td width="25%;">&nbsp;PF</td>
<td width="30%;" style="text-align: right;" ><?php echo $pf_amount; ?>&nbsp;</td>
</tr>
@ -85,8 +85,8 @@
<tr>
<td width="25%;">&nbsp;Shed Duty Amount</td>
<td width="20%;" style="text-align: right;" ><?php echo $PayDetails[0]->shed_amount; ?>&nbsp;</td>
<td width="25%;">&nbsp;</td>
<td width="30%;" style="text-align: right;" >&nbsp;</td>
<td>&nbsp;Salary Advance</td>
<td style="text-align: right;"> <?php echo $PayDetails[0]->Advance ?>&nbsp;</td>
</tr>
@ -103,7 +103,7 @@
<tr><th nowrap>&nbsp;Total Earning (Rounded)</th>
<td style="text-align: right;">
<?php
$totEarning = $PayDetails[0]->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)
?>
&nbsp;</td>
@ -111,18 +111,18 @@
<th nowrap>&nbsp;Total Deduction (Rounded)</th>
<td style="text-align: right;">
<?php
$totDeduction = $esi_amount + $pf_amount ;
$totDeduction = $PayDetails[0]->Advance+$esi_amount + $pf_amount ;
echo number_format(round($totDeduction),2)
?>
&nbsp;</td>
</tr>
<tr><th style="text-align: right;" colspan="3">Net Pay(Rounded) &nbsp;</th>
<td style="text-align: right;" colspan="1"><?php echo number_format(round($PayDetails[0]->driver_final_payment),2,'.','') ?>&nbsp;</td>
<td style="text-align: right;" colspan="1"><?php echo number_format(round($PayDetails[0]->final_payment),2,'.','') ?>&nbsp;</td>
</tr>
<tr><th style="text-align: right;" colspan="1">Total Amount In Words &nbsp;</th>
<td style="text-align: right;" colspan="3"><?php if(!empty($amtinwords)){ print_r($amtinwords);} ?></td>
<td style="text-align: right;" colspan="3"><?php if(!empty($amtinwords)){ echo($amtinwords);} ?></td>
</tr>
<tr><td style="text-align: center;" colspan="4">This is a computer generated document. This document does not require signature.</td></tr>
</tbody>

View File

@ -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);
?>
<tr class="lastvalue">
<td style="text-align:right;" style="background-color:blue;">
@ -552,7 +551,7 @@
</td>
<td id="ttlsalary<?php echo $inx ?>" style="max-width:80px;text-align:right;">
<?php echo number_format($salary_amount, 2, '.', ''); ?>
<?php echo number_format($sum_of_amount, 2, '.', ''); ?>
</td>
<td style="max-width:80px;text-align:right;">
@ -560,7 +559,7 @@
</td>
<td style="max-width:80px;text-align:right;">
<?php echo number_format($salary_amount, 2, '.', ''); ?>
<?php echo number_format($sum_of_amount, 2, '.', ''); ?>
</td>
<td style="max-width:80px;text-align:right;">
@ -568,16 +567,17 @@
</td>
<td style="max-width:80px;text-align:right;">
<?php echo number_format($salary_amount, 2, '.', ''); ?>
<!-- $record->driver_salary_amount -->
<?php echo number_format($record->driver_basic, 2, '.', ''); ?>
</td>
<td style="max-width:80px;text-align:right;">
<?php $basicWorked = ($salary_amount) * 70 / 100;
<?php $basicWorked = ($record->driver_basic) * 70 / 100;
echo number_format($basicWorked, 2, '.', ''); ?>
</td>
<td style="max-width:80px;text-align:right;">
<?php $hraWorked = ($salary_amount) * 30 / 100;
<?php $hraWorked = ($record->driver_basic) * 30 / 100;
echo number_format($hraWorked, 2, '.', ''); ?>
</td>
@ -593,13 +593,23 @@
<?php echo number_format(0.00, 2, '.', ''); ?>
</td>
<td id="monthDue<?php echo $inx ?>" onkeypress="return isNumber(event);" onkeyup="changeInput(event);" style="text-align:right;">
<?php
// $totalmonthloan[] = $record->Monthly_Due;
echo number_format(0.00, 2, '.', ''); ?>
<td id="monthDue<?php echo $inx ?>" onkeypress="return isNumber(event);" onkeyup="driverchangeInput(event);"
<?php if (empty($record->payroll_id)) { echo "contenteditable='true';"; } ?>
<?php if (!empty($record->payroll_id)) { ?> title="Payslip Calculated"
style="text-align:right;color:blue;"
<?php } else { ?>style="text-align:right;" <?php } ?>>
<?php if (!empty($record->Monthly_Due)) {
echo $record->Monthly_Due;
$totalmonthloan[] = $record->Monthly_Due;
} else {
echo number_format(0.00, 2, '.', '');
} ?>
</td>
<td id="otherDet<?php echo $inx ?>" onkeypress="return isNumber(event);" onkeyup="changeInput(event);" style="text-align:right;">
<?php echo number_format(0.00, 2, '.', ''); ?>
</td>
@ -640,6 +650,14 @@
?>
</td>
<input type="hidden" id="loanatm<?php echo $inx ?>"
value="<?php echo isset($record->Loan_Amount) ? $record->Loan_Amount : 0 ?>">
<input type="hidden" id="paidamt<?php echo $inx ?>"
value="<?php echo $record->Paid_Amount ?>">
<input type="hidden" id="duedate<?php echo $inx ?>"
value="<?php echo $record->DueDate ?>">
<input type="hidden" id="is_driver<?php echo $inx ?>"
value="<?php echo $record->is_driver ?>">
@ -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() {