driver loan : ps
This commit is contained in:
parent
926c3ed2a9
commit
7de5cc4ac7
@ -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()
|
||||
{
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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 ': '.$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 ': '.$PayDetails[0]->IFSCCode ?></td>
|
||||
<td><?= ' ' ?></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 ': Rs '.$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;">₹</span></th><th>Deductions</th><th>Amount <span style="font-family: DejaVu Sans; sans-serif;">₹</span></th></tr>
|
||||
<tr>
|
||||
<td width="25%;"> Monthly Salary</td>
|
||||
<td width="20%;" style="text-align: right;" ><?php echo $PayDetails[0]->driver_monthly_salary_amount; ?> </td>
|
||||
<td width="25%;"> Basic</td>
|
||||
<td width="20%;" style="text-align: right;" ><?php echo $PayDetails[0]->monthly_salary_amount; ?> </td>
|
||||
<td width="25%;"> PF</td>
|
||||
<td width="30%;" style="text-align: right;" ><?php echo $pf_amount; ?> </td>
|
||||
</tr>
|
||||
@ -85,8 +85,8 @@
|
||||
<tr>
|
||||
<td width="25%;"> Shed Duty Amount</td>
|
||||
<td width="20%;" style="text-align: right;" ><?php echo $PayDetails[0]->shed_amount; ?> </td>
|
||||
<td width="25%;"> </td>
|
||||
<td width="30%;" style="text-align: right;" > </td>
|
||||
<td> Salary Advance</td>
|
||||
<td style="text-align: right;"> <?php echo $PayDetails[0]->Advance ?> </td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -103,7 +103,7 @@
|
||||
<tr><th nowrap> 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)
|
||||
?>
|
||||
</td>
|
||||
@ -111,18 +111,18 @@
|
||||
<th nowrap> 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)
|
||||
?>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr><th style="text-align: right;" colspan="3">Net Pay(Rounded) </th>
|
||||
<td style="text-align: right;" colspan="1"><?php echo number_format(round($PayDetails[0]->driver_final_payment),2,'.','') ?> </td>
|
||||
<td style="text-align: right;" colspan="1"><?php echo number_format(round($PayDetails[0]->final_payment),2,'.','') ?> </td>
|
||||
</tr>
|
||||
|
||||
<tr><th style="text-align: right;" colspan="1">Total Amount In Words </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>
|
||||
|
||||
@ -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() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user