Merge branch 'CI4-Application' of bitbucket.org:venbainformationtechnology/ria into CI4-Application
This commit is contained in:
commit
d1c871b876
@ -27,7 +27,6 @@ $routes->post('user/Deleteuserdepartment', 'User::Deleteuserdepartment');
|
||||
// $routes->match(['GET', 'POST', 'PUT', 'DELETE'],'resetPasswordConfirmUser/(:any)/(:any)', 'Login::resetPasswordConfirmUser/$1/$2');
|
||||
// $routes->match(['GET', 'POST', 'PUT', 'DELETE'],'createPasswordUser', 'Login::createPasswordUser');
|
||||
$routes->get('dashboard', 'User::index');
|
||||
$routes->get('sales_invoice', 'User::sales_invoice');
|
||||
$routes->get('reports', 'Report::index');
|
||||
|
||||
// User Routes
|
||||
@ -360,9 +359,10 @@ $routes->get('shortagematerialListing', 'Rawmaterialdetails::shortagematerialLis
|
||||
$routes->get('inprocess', 'Inprocess::index');
|
||||
|
||||
|
||||
// Sales Invoice routes
|
||||
$routes->get('invoicedetails/ViewInvoice', 'User::ViewInvoice');
|
||||
$routes->get('getInvoiceAttachments', 'User::getInvoiceAttachments');
|
||||
$routes->get('deleteAttachment', 'User::deleteAttachment');
|
||||
$routes->post('saveAttachment', 'User::saveAttachment');
|
||||
|
||||
// Sales Controller
|
||||
$routes->get('sales_dashboard', 'Sales::sales_dashboard');
|
||||
$routes->get('invoicedetails/ViewInvoice', 'Sales::ViewInvoice');
|
||||
$routes->get('getInvoiceAttachments', 'Sales::getInvoiceAttachments');
|
||||
$routes->get('deleteAttachment', 'Sales::deleteAttachment');
|
||||
$routes->post('saveAttachment', 'Sales::saveAttachment');
|
||||
$routes->get('sales_invoice', 'Sales::sales_invoice');
|
||||
|
||||
@ -138,6 +138,7 @@ class Monthlypay extends BaseController
|
||||
}
|
||||
$begin->modify('+1 day');
|
||||
}
|
||||
// dd( $sundayarray);
|
||||
$noofsundays = count($sundayarray);
|
||||
|
||||
$publicholidaysarray = $this->monthlypay_model->getPublicHoldays($current);
|
||||
@ -150,6 +151,7 @@ class Monthlypay extends BaseController
|
||||
$data['datefordropdown'] = $current;
|
||||
$data['attendance'] = $this->monthlypay_model->monthlyAttendance($current);
|
||||
$data['emppay'] = $this->monthlypay_model->getEmpPayDetails($current, $string);
|
||||
|
||||
$this->global['pageTitle'] = 'Monthly Attendance';
|
||||
$this->loadViews("attendance", $this->global, $data, NULL);
|
||||
}
|
||||
@ -264,6 +266,7 @@ class Monthlypay extends BaseController
|
||||
$paidleave = $data['Paid Leave'];
|
||||
$daysworked = $data['Days Worked'];
|
||||
$absent = $data['Absent'];
|
||||
$sundayCount = $data['Total Sunday'];
|
||||
|
||||
$monthattendance = array(
|
||||
'Month_Year' => $Month_Year, 'NoofDays' => $NoofDays, 'EmpID' => $EmpID, 'WH1' => $W1H, 'OT1' => $W1OT, 'WH2' => $W2H, 'OT2' => $W2OT, 'WH3' => $W3H, 'OT3' => $W3OT,
|
||||
@ -272,7 +275,7 @@ class Monthlypay extends BaseController
|
||||
'WH17' => $W17H, 'OT17' => $W17OT, 'WH18' => $W18H, 'OT18' => $W18OT, 'WH19' => $W19H, 'OT19' => $W19OT, 'WH20' => $W20H, 'OT20' => $W20OT, 'WH21' => $W21H, 'OT21' => $W21OT, 'WH22' => $W22H, 'OT22' => $W22OT,
|
||||
'WH23' => $W23H, 'OT23' => $W23OT, 'WH24' => $W24H, 'OT24' => $W24OT, 'WH25' => $W25H, 'OT25' => $W25OT, 'WH26' => $W26H, 'OT26' => $W26OT, 'WH27' => $W27H, 'OT27' => $W27OT, 'WH28' => $W28H, 'OT28' => $W28OT,
|
||||
'WH29' => $W29H, 'OT29' => $W29OT, 'WH30' => $W30H, 'OT30' => $W30OT, 'WH31' => $W31H, 'OT31' => $W31OT, 'Total_WHrs' => $totalworkinghrs, 'Total_OTHrs' => $totalothrs, 'Paid_Leave' => $paidleave,
|
||||
'Days_Worked' => $daysworked, 'Absent' => $absent, 'Created_by' => $CreateBy
|
||||
'Days_Worked' => $daysworked, 'Absent' => $absent, 'sunday_count' => $sundayCount , 'Created_by' => $CreateBy
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -504,15 +504,16 @@ class Payslip extends BaseController
|
||||
public function monthlyInputs()
|
||||
{
|
||||
$current = date("m-Y");
|
||||
// echo $current;
|
||||
|
||||
|
||||
$data['month'] = $this->monthlypay_model->monthlyListing($current);
|
||||
// $data['fresh'] = $this-> monthlypay_model->getEmpPayDetails($current);
|
||||
$data['dropdownvalue'] = $current;
|
||||
$data['fresh'] = $this->monthlypay_model->getEmpPayDetailsforMonthInputs($current);
|
||||
// dd($data['fresh']);
|
||||
|
||||
$employeeSalary = [];
|
||||
|
||||
|
||||
$esi = [];
|
||||
$pf = [];
|
||||
$ot = [];
|
||||
foreach ($data['fresh'] as $value) {
|
||||
|
||||
|
||||
@ -526,28 +527,21 @@ class Payslip extends BaseController
|
||||
$Paid_leave = $value->Paid_leave; // leave day
|
||||
$OT_Hrs_Worked = $value->OT_Hrs_Worked; //OT hours
|
||||
$Monthly_Due = $value->Monthly_Due; // AUTO LOAN DUE
|
||||
|
||||
$Sunday = $value->sunday_count; // Sunday count
|
||||
$Loan_Recovered = $value->Loan_Recovered; //MANUAL LOAN DUE
|
||||
|
||||
$MasterIncentives = $value->MasterIncentives; //Master values get
|
||||
// echo 'master'.$MasterIncentives;
|
||||
|
||||
|
||||
$due_start_date = $value->DueDate;
|
||||
$paydate = $current; //From POST parm
|
||||
|
||||
$pmonth = substr($paydate, 0, 2);
|
||||
$pyear = substr($paydate, -4);
|
||||
|
||||
$pday = cal_days_in_month(CAL_GREGORIAN, $pmonth, $pyear);
|
||||
$paymonth = $pyear . '-' . $pmonth . '-' . $pday;
|
||||
|
||||
$Loan_amount = $value->Loan_Amount;
|
||||
$Paid_Amount = $value->Paid_Amount;
|
||||
|
||||
|
||||
$Balance_Amount = $Loan_amount - $Paid_Amount;
|
||||
|
||||
|
||||
|
||||
$loan = 0;
|
||||
if ($Loan_Recovered == 'NA') {
|
||||
$loan = 0.00;
|
||||
@ -563,87 +557,77 @@ class Payslip extends BaseController
|
||||
|
||||
|
||||
if ($Monthly_Due > $Balance_Amount) {
|
||||
|
||||
// current= Balance_Amount - autoLoan;
|
||||
//alert('hi');
|
||||
$loan = $Balance_Amount;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$Allowances = $value->Allowances;
|
||||
$HRA_Rate = $value->HRA_Rate;
|
||||
$PF_Rate = $value->PF_Rate;
|
||||
$ESI_Rate = $value->ESI_Rate;
|
||||
|
||||
$MonthIncentive = $value->MonthlyIncentives; //t_monthly_pay_inputs,for change month
|
||||
|
||||
$Incentive = 0;
|
||||
|
||||
if (empty($MonthIncentive)) {
|
||||
|
||||
$Incentive = $MasterIncentives;
|
||||
} else {
|
||||
$Incentive = $MonthIncentive;
|
||||
}
|
||||
// echo $Incentive;
|
||||
|
||||
|
||||
$dayFood_Allowance = $Food_Allowances * ($Days_worked + $Sunday);
|
||||
|
||||
$totalDaysWorked = ($Days_worked + $Sunday) + $Paid_leave;
|
||||
|
||||
$daySalarys = $Days_worked + $Paid_leave;
|
||||
|
||||
//echo "hra amount";print_r(array($HRA_Amount,$Basic_Pay,$totalsalary));
|
||||
//$Allowances = $allowances * $values;
|
||||
$dayFood_Allowance = $Food_Allowances * $Days_worked;
|
||||
|
||||
$daySalary = $Basic_Pay / $NoofDays;
|
||||
/**per day salary working hour**/
|
||||
//echo $daySalary.'<br/>';
|
||||
|
||||
$dayBasic = $Basic_Pay / $NoofDays;
|
||||
$dayHra = $HRA_Amount / $NoofDays;
|
||||
/** per day hra amount **/
|
||||
//echo $dayHra.'<br/>';
|
||||
$onehoursSalary = ($dayBasic + $dayHra) / 8;
|
||||
|
||||
$onehoursSalary = ($daySalary + $dayHra) / 8;
|
||||
/**one hour salay ot calculation**/
|
||||
if ($OT_Hrs_Worked != 0) {
|
||||
$totSalayOT = $OT_Hrs_Worked * $onehoursSalary;
|
||||
} else {
|
||||
$totSalayOT = 0;
|
||||
}
|
||||
$currentDaySalary = $daySalary * $daySalarys;
|
||||
/** current day salary working days calculation**/
|
||||
|
||||
|
||||
//current day basic and hra salary
|
||||
$currentDayBasic = $dayBasic * $totalDaysWorked;
|
||||
$currentDayHra = $dayHra * $totalDaysWorked;
|
||||
|
||||
|
||||
//$totalSalary = $currentDayBasic + $currentDayHra + $totSalayOT;
|
||||
|
||||
$currentDayHra = $dayHra * $daySalarys;
|
||||
/** total working days hra calculations**/
|
||||
// echo $currentDayHra.'<br/>';
|
||||
$currentDatePF = $currentDaySalary + $currentDayHra + $totSalayOT;
|
||||
/** current date pf calculation**/
|
||||
if ($TotalSalary <= 20000) {
|
||||
|
||||
$esiAmount = $currentDatePF * $ESI_Rate / 100;
|
||||
/** esiamount not elgiable for 20000 **/
|
||||
} else {
|
||||
$esiAmount = 0;
|
||||
}
|
||||
$pfAmount = $currentDaySalary * $PF_Rate / 100;
|
||||
|
||||
if ($TotalSalary <= 20000) { $esiAmount = $currentDayBasic * $ESI_Rate / 100; } else { $esiAmount = 0;}
|
||||
$pfAmount = $currentDayBasic * $PF_Rate / 100;
|
||||
/** pf amount per day**/
|
||||
|
||||
//echo $totalothour;die;
|
||||
$empSalaryAdd = $currentDaySalary + $totSalayOT + $currentDayHra + $dayFood_Allowance + $Allowances + $Incentive;
|
||||
$empSalaryAdd = $currentDayBasic + $currentDayHra + $totSalayOT + $dayFood_Allowance + $Allowances + $Incentive;
|
||||
// echo $totalDaysWorked .'</br>';
|
||||
// echo $currentDayBasic .'</br>';
|
||||
// echo $currentDayHra .'</br>';
|
||||
// echo $totSalayOT .'</br>';
|
||||
// echo $dayFood_Allowance .'</br>';
|
||||
// echo $Allowances .'</br>';
|
||||
// echo $Incentive .'</br>';
|
||||
// die;
|
||||
$empSalarySub = $esiAmount + $pfAmount + $loan;
|
||||
|
||||
$salaryInCurrentday = $empSalaryAdd - $empSalarySub;
|
||||
|
||||
|
||||
$employeeSalary[] = round($salaryInCurrentday);
|
||||
$esi[] = number_format($esiAmount,2);
|
||||
$pf[] = number_format($pfAmount,2);
|
||||
$ot[] = number_format($totSalayOT,2);
|
||||
}
|
||||
$data['empSalary'] = $employeeSalary;
|
||||
|
||||
$data['esi'] = $esi;
|
||||
$data['pf'] = $pf;
|
||||
$data['over_time'] = $ot;
|
||||
|
||||
|
||||
//echo sizeof($data['fresh'])."-".sizeof($data['empSalary']);die;
|
||||
$this->global['pageTitle'] = 'Payroll Monthly Inputs';
|
||||
@ -657,19 +641,17 @@ class Payslip extends BaseController
|
||||
$current = $this->request->getPost('monthyear');
|
||||
|
||||
$data['month'] = $this->monthlypay_model->monthlyListing($current);
|
||||
//print_r($data['month']);
|
||||
$data['dropdownvalue'] = $current;
|
||||
$data['fresh'] = $this->monthlypay_model->getEmpPayDetailsforMonthInputs($current);
|
||||
|
||||
// dd($data['fresh']);
|
||||
|
||||
$employeeSalary = [];
|
||||
|
||||
|
||||
|
||||
$employeeSalary = [];
|
||||
$esi = [];
|
||||
$pf = [];
|
||||
$ot = [];
|
||||
foreach ($data['fresh'] as $value) {
|
||||
|
||||
//print_r($value);
|
||||
//die();
|
||||
|
||||
$NoofDays = $value->NoofDays; //Month day 30,31,28
|
||||
$HRA_Amount = $value->HRA_Amount;
|
||||
@ -681,6 +663,9 @@ class Payslip extends BaseController
|
||||
$Paid_leave = $value->Paid_leave; // leave day
|
||||
$OT_Hrs_Worked = $value->OT_Hrs_Worked; //OT hours
|
||||
$Monthly_Due = $value->Monthly_Due; // AUTO LOAN DUE
|
||||
$Sunday = $value->sunday_count; // Sunday count
|
||||
$Loan_Recovered = $value->Loan_Recovered; //MANUAL LOAN DUE
|
||||
$MasterIncentives = $value->MasterIncentives; //Master values get
|
||||
$due_start_date = $value->DueDate;
|
||||
$paydate = $current; //From POST parm
|
||||
|
||||
@ -693,18 +678,10 @@ class Payslip extends BaseController
|
||||
$pday = cal_days_in_month(CAL_GREGORIAN, $pmonth, $pyear);
|
||||
$paymonth = $pyear . '-' . $pmonth . '-' . $pday;
|
||||
|
||||
$Loan_Recovered = $value->Loan_Recovered; //MANUAL LOAN DUE
|
||||
|
||||
$MasterIncentives = $value->MasterIncentives; //Master values get
|
||||
// echo 'master'.$MasterIncentives;
|
||||
$Loan_amount = $value->Loan_Amount;
|
||||
$Paid_Amount = $value->Paid_Amount;
|
||||
|
||||
|
||||
$Balance_Amount = $Loan_amount - $Paid_Amount;
|
||||
|
||||
|
||||
|
||||
$loan = 0;
|
||||
if ($Loan_Recovered == 'NA') {
|
||||
$loan = 0.00;
|
||||
@ -713,7 +690,6 @@ class Payslip extends BaseController
|
||||
$loan = $Monthly_Due;
|
||||
}
|
||||
} else if ($Loan_Recovered >= 0.00) {
|
||||
|
||||
if (strtotime($due_start_date) <= strtotime($paymonth)) {
|
||||
$loan = $Loan_Recovered;
|
||||
}
|
||||
@ -721,86 +697,76 @@ class Payslip extends BaseController
|
||||
|
||||
|
||||
if ($Monthly_Due > $Balance_Amount) {
|
||||
|
||||
// current= Balance_Amount - autoLoan;
|
||||
//alert('hi');
|
||||
$loan = $Balance_Amount;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$Allowances = $value->Allowances;
|
||||
$HRA_Rate = $value->HRA_Rate;
|
||||
$PF_Rate = $value->PF_Rate;
|
||||
$ESI_Rate = $value->ESI_Rate;
|
||||
|
||||
$MonthIncentive = $value->MonthlyIncentives; //t_monthly_pay_inputs,for change month
|
||||
|
||||
$Incentive = 0;
|
||||
|
||||
if (empty($MonthIncentive)) {
|
||||
|
||||
$Incentive = $MasterIncentives;
|
||||
} else {
|
||||
$Incentive = $MonthIncentive;
|
||||
}
|
||||
// echo $Incentive;
|
||||
|
||||
|
||||
$dayFood_Allowance = $Food_Allowances * ($Days_worked + $Sunday);
|
||||
|
||||
$totalDaysWorked = ($Days_worked + $Sunday) + $Paid_leave;
|
||||
|
||||
$daySalarys = $Days_worked + $Paid_leave;
|
||||
|
||||
//echo "hra amount";print_r(array($HRA_Amount,$Basic_Pay,$totalsalary));
|
||||
//$Allowances = $allowances * $values;
|
||||
$dayFood_Allowance = $Food_Allowances * $Days_worked;
|
||||
|
||||
$daySalary = $Basic_Pay / $NoofDays;
|
||||
/**per day salary working hour**/
|
||||
//echo $daySalary.'<br/>';
|
||||
|
||||
$dayBasic = $Basic_Pay / $NoofDays;
|
||||
$dayHra = $HRA_Amount / $NoofDays;
|
||||
/** per day hra amount **/
|
||||
//echo $dayHra.'<br/>';
|
||||
$onehoursSalary = ($dayBasic + $dayHra) / 8;
|
||||
|
||||
$onehoursSalary = ($daySalary + $dayHra) / 8;
|
||||
/**one hour salay ot calculation**/
|
||||
if ($OT_Hrs_Worked != 0) {
|
||||
$totSalayOT = $OT_Hrs_Worked * $onehoursSalary;
|
||||
} else {
|
||||
$totSalayOT = 0;
|
||||
}
|
||||
$currentDaySalary = $daySalary * $daySalarys;
|
||||
/** current day salary working days calculation**/
|
||||
|
||||
|
||||
//current day basic and hra salary
|
||||
$currentDayBasic = $dayBasic * $totalDaysWorked;
|
||||
$currentDayHra = $dayHra * $totalDaysWorked;
|
||||
|
||||
|
||||
//$totalSalary = $currentDayBasic + $currentDayHra + $totSalayOT;
|
||||
|
||||
$currentDayHra = $dayHra * $daySalarys;
|
||||
/** total working days hra calculations**/
|
||||
// echo $currentDayHra.'<br/>';
|
||||
$currentDatePF = $currentDaySalary + $currentDayHra + $totSalayOT;
|
||||
/** current date pf calculation**/
|
||||
if ($TotalSalary <= 20000) {
|
||||
|
||||
$esiAmount = $currentDatePF * $ESI_Rate / 100;
|
||||
/** esiamount not elgiable for 20000 **/
|
||||
} else {
|
||||
$esiAmount = 0;
|
||||
}
|
||||
$pfAmount = $currentDaySalary * $PF_Rate / 100;
|
||||
|
||||
if ($TotalSalary <= 20000) { $esiAmount = $currentDayBasic * $ESI_Rate / 100; } else { $esiAmount = 0;}
|
||||
$pfAmount = $currentDayBasic * $PF_Rate / 100;
|
||||
/** pf amount per day**/
|
||||
|
||||
//echo $totalothour;die;
|
||||
$empSalaryAdd = $currentDaySalary + $totSalayOT + $currentDayHra + $dayFood_Allowance + $Allowances + $Incentive;
|
||||
$empSalaryAdd = $currentDayBasic + $currentDayHra + $totSalayOT + $dayFood_Allowance + $Allowances + $Incentive;
|
||||
// echo $totalDaysWorked .'</br>';
|
||||
// echo $currentDayBasic .'</br>';
|
||||
// echo $currentDayHra .'</br>';
|
||||
// echo $totSalayOT .'</br>';
|
||||
// echo $dayFood_Allowance .'</br>';
|
||||
// echo $Allowances .'</br>';
|
||||
// echo $Incentive .'</br>';
|
||||
// die;
|
||||
$empSalarySub = $esiAmount + $pfAmount + $loan;
|
||||
|
||||
$salaryInCurrentday = $empSalaryAdd - $empSalarySub;
|
||||
|
||||
|
||||
$employeeSalary[] = round($salaryInCurrentday);
|
||||
$esi[] = number_format($esiAmount,2);
|
||||
$pf[] = number_format($pfAmount,2);
|
||||
$ot[] = number_format($totSalayOT,2);
|
||||
}
|
||||
$data['empSalary'] = $employeeSalary;
|
||||
$data['esi'] = $esi;
|
||||
$data['pf'] = $pf;
|
||||
$data['over_time'] = $ot;
|
||||
|
||||
//echo sizeof($data['fresh'])."-".sizeof($data['empSalary']);die;
|
||||
$this->global['pageTitle'] = 'Payroll Monthly Inputs';
|
||||
|
||||
127
app/Controllers/Sales.php
Normal file
127
app/Controllers/Sales.php
Normal file
@ -0,0 +1,127 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
|
||||
use App\Models\Ipinvoice_model;
|
||||
require_once 'vendor/autoload.php';
|
||||
|
||||
|
||||
class Sales extends BaseController
|
||||
{
|
||||
protected $ipinvoice_model;
|
||||
protected $session;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->ipinvoice_model = new Ipinvoice_model();
|
||||
$this->session = session();
|
||||
$this->isLoggedIn();
|
||||
}
|
||||
|
||||
public function sales_dashboard()
|
||||
{
|
||||
$this->global['pageTitle'] = 'Sales Dashboard';
|
||||
$data = [];
|
||||
$data['today_sales'] = $this->ipinvoice_model->todaySales();
|
||||
$data['this_month_sales'] = $this->ipinvoice_model->thisMonthSales();
|
||||
$data['this_year_sales'] = $this->ipinvoice_model->thisYearSales();
|
||||
$data['this_year_sales_trend'] = $this->ipinvoice_model->thisYearSalesTrend();
|
||||
$data['get_today_invoices'] = $this->ipinvoice_model->getTodayInvoices();
|
||||
echo "<pre>";
|
||||
print_r($data);die;
|
||||
$this->loadViews("sales_dashboard", $this->global, $data, NULL);
|
||||
}
|
||||
|
||||
// Sales Invoice List
|
||||
function sales_invoice(){
|
||||
$this->global['pageTitle'] = 'Sales Invoice';
|
||||
$data['sales_invoice'] = $this->ipinvoice_model->saleInvoiceListing();
|
||||
// echo "<pre>";
|
||||
// print_r($data);die;
|
||||
$this->loadViews("sales_invoice", $this->global, $data, NULL);
|
||||
}
|
||||
|
||||
// View Invoice
|
||||
function ViewInvoice($InvoiceNO = '')
|
||||
{
|
||||
if ($InvoiceNO == '') {
|
||||
$InvoiceID = $_GET['InvoiceID'];
|
||||
} else {
|
||||
$InvoiceID = $InvoiceNO;
|
||||
}
|
||||
|
||||
$data['invoiceDetails'] = $this->ipinvoice_model->getInvoice($InvoiceID);
|
||||
|
||||
$data['invoiceAttachment'] = $this->ipinvoice_model->getinvoiceAttachment($InvoiceID);
|
||||
|
||||
// echo "<pre>";
|
||||
// print_r($data);die;
|
||||
$this->global['pageTitle'] = 'View Invoice';
|
||||
|
||||
$this->loadViews("editInvoice", $this->global, $data, NULL);
|
||||
}
|
||||
|
||||
|
||||
// Invoice Attachments
|
||||
function getInvoiceAttachments(){
|
||||
$data['invoiceAttachment'] = $this->ipinvoice_model->getinvoiceAttachment($this->request->getGet('invoice_id'));
|
||||
|
||||
return json_encode($data);
|
||||
}
|
||||
|
||||
|
||||
// Delete Attachment
|
||||
function deleteAttachment()
|
||||
{
|
||||
$invoice_attachment_id = $this->request->getGet('invoice_attachment_id'); // Get the attachment ID from the request
|
||||
// Ensure ID is not empty
|
||||
if ($invoice_attachment_id) {
|
||||
// Load the model
|
||||
|
||||
// Call the model method to delete the attachment
|
||||
$result = $this->ipinvoice_model->deleteAttachment($invoice_attachment_id);
|
||||
|
||||
if ($result) {
|
||||
echo json_encode(['status' => 'success', 'message' => 'Attachment deleted successfully.']);
|
||||
} else {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Failed to delete attachment.']);
|
||||
}
|
||||
} else {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Invalid attachment ID.']);
|
||||
}
|
||||
}
|
||||
|
||||
// Save Attachment
|
||||
function saveAttachment() {
|
||||
$invoiceId = $this->request->getPost('invoice_id');
|
||||
$fileNames = $this->request->getPost('file_name[]');
|
||||
$files = $this->request->getFiles();
|
||||
if ($files && isset($files['emp_file']) && is_array($files['emp_file'])) {
|
||||
foreach ($files['emp_file'] as $key => $file) {
|
||||
if ($file->isValid() && !$file->hasMoved()) {
|
||||
// Generate a unique name for the file
|
||||
$newFileName = $file->getRandomName();
|
||||
|
||||
// Move the file to the target directory
|
||||
$file->move('./public/uploads/images/invoice_files/', $newFileName);
|
||||
|
||||
// Insert the file info into the database
|
||||
$data = [
|
||||
'invoice_id' => $invoiceId,
|
||||
'file_name' => $newFileName,
|
||||
'attachment_name' => $fileNames[$key]
|
||||
];
|
||||
|
||||
$this->ipattachment_model->addNewAttachment($data);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return $this->response->setJSON(['success' => false, 'message' => 'No files uploaded or incorrect input name.']);
|
||||
}
|
||||
|
||||
return $this->response->setJSON(['success' => true]);
|
||||
}
|
||||
}
|
||||
@ -921,7 +921,7 @@ class User extends BaseController
|
||||
|
||||
$data['roles'] = $this->user_model->getUserRoles();
|
||||
|
||||
$data['Department'] = $this->costcenter_model->getDepartment();
|
||||
// $data['Department'] = $this->costcenter_model->getDepartment();
|
||||
|
||||
$this->global['pageTitle'] = 'Add New User';
|
||||
|
||||
@ -1637,99 +1637,4 @@ class User extends BaseController
|
||||
}
|
||||
// END zoho API
|
||||
|
||||
// Sales Invoice List
|
||||
|
||||
function sales_invoice(){
|
||||
$this->global['pageTitle'] = 'Sales Invoice';
|
||||
$data['sales_invoice'] = $this->ipinvoice_model->saleInvoiceListing();
|
||||
// echo "<pre>";
|
||||
// print_r($data);die;
|
||||
$this->loadViews("sales_invoice", $this->global, $data, NULL);
|
||||
}
|
||||
// Sales Invoice List
|
||||
|
||||
// Sales Invoice
|
||||
function ViewInvoice($InvoiceNO = ''){
|
||||
if ($InvoiceNO == '') {
|
||||
$InvoiceID = $_GET['InvoiceID'];
|
||||
} else {
|
||||
$InvoiceID = $InvoiceNO;
|
||||
}
|
||||
|
||||
$data['invoiceDetails'] = $this->ipinvoice_model->getInvoice($InvoiceID);
|
||||
|
||||
$data['invoiceAttachment'] = $this->ipinvoice_model->getinvoiceAttachment($InvoiceID);
|
||||
|
||||
// echo "<pre>";
|
||||
// print_r($data);die;
|
||||
$this->global['pageTitle'] = 'View Invoice';
|
||||
|
||||
$this->loadViews("editInvoice", $this->global, $data, NULL);
|
||||
}
|
||||
// Sales Invoice
|
||||
|
||||
|
||||
// Sales Invoice
|
||||
function getInvoiceAttachments(){
|
||||
$data['invoiceAttachment'] = $this->ipinvoice_model->getinvoiceAttachment($this->request->getGet('invoice_id'));
|
||||
|
||||
return json_encode($data);
|
||||
}
|
||||
// Sales Invoice
|
||||
|
||||
|
||||
// User Controller
|
||||
function deleteAttachment() {
|
||||
$invoice_attachment_id = $this->request->getGet('invoice_attachment_id'); // Get the attachment ID from the request
|
||||
// Ensure ID is not empty
|
||||
if ($invoice_attachment_id) {
|
||||
// Load the model
|
||||
|
||||
// Call the model method to delete the attachment
|
||||
$result = $this->ipinvoice_model->deleteAttachment($invoice_attachment_id);
|
||||
|
||||
if ($result) {
|
||||
echo json_encode(['status' => 'success', 'message' => 'Attachment deleted successfully.']);
|
||||
} else {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Failed to delete attachment.']);
|
||||
}
|
||||
} else {
|
||||
echo json_encode(['status' => 'error', 'message' => 'Invalid attachment ID.']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function saveAttachment() {
|
||||
$invoiceId = $this->request->getPost('invoice_id');
|
||||
$fileNames = $this->request->getPost('file_name[]');
|
||||
$files = $this->request->getFiles();
|
||||
if ($files && isset($files['emp_file']) && is_array($files['emp_file'])) {
|
||||
foreach ($files['emp_file'] as $key => $file) {
|
||||
if ($file->isValid() && !$file->hasMoved()) {
|
||||
// Generate a unique name for the file
|
||||
$newFileName = $file->getRandomName();
|
||||
|
||||
// Move the file to the target directory
|
||||
$file->move('./public/uploads/images/invoice_files/', $newFileName);
|
||||
|
||||
// Insert the file info into the database
|
||||
$data = [
|
||||
'invoice_id' => $invoiceId,
|
||||
'file_name' => $newFileName,
|
||||
'attachment_name' => $fileNames[$key]
|
||||
];
|
||||
|
||||
$this->ipattachment_model->addNewAttachment($data);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return $this->response->setJSON(['success' => false, 'message' => 'No files uploaded or incorrect input name.']);
|
||||
}
|
||||
|
||||
return $this->response->setJSON(['success' => true]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -225,4 +225,217 @@ class Ipinvoice_model extends Model
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This function is used to get the Today Sales
|
||||
* @return array $result : This is result of the query
|
||||
*/
|
||||
function todaySales()
|
||||
{
|
||||
$builder = $this->db->table('ip_invoices a')
|
||||
->select('COUNT(DISTINCT(a.invoice_number)) as Invoices, IFNULL(SUM(b.item_quantity), 0) as Qty, IFNULL(SUM(c.item_subtotal), 0) as Sales')
|
||||
->join('ip_invoice_items b', 'a.invoice_id = b.invoice_id', 'left')
|
||||
->join('ip_invoice_item_amounts c', 'b.item_id = c.item_id', 'left')
|
||||
->where('a.invoice_date_created', date('Y-m-d'))
|
||||
->where('a.invoice_status_id', 2);
|
||||
|
||||
$query = $builder->get();
|
||||
return $query->getRow(); // Assuming you want a single row of aggregated results
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This function is used to get the This Month Sales
|
||||
* @return array $result : This is result of the query
|
||||
*/
|
||||
function thisMonthSales()
|
||||
{
|
||||
// Calculate the start date for the current fiscal month
|
||||
$fiscalMonthStart = date('Y') . '-04-01'; // Assuming the fiscal year starts in April
|
||||
$currentYear = date('Y');
|
||||
$currentMonth = date('m');
|
||||
|
||||
// If the current month is before April, subtract one year for the fiscal year start
|
||||
if ($currentMonth < 4) {
|
||||
$fiscalMonthStart = ($currentYear - 1) . '-' . $currentMonth . '-01';
|
||||
} else {
|
||||
$fiscalMonthStart = $currentYear . '-' . $currentMonth . '-01';
|
||||
}
|
||||
|
||||
// Build the query
|
||||
$builder = $this->db->table('ip_invoices a')
|
||||
->select('COUNT(DISTINCT(a.invoice_number)) as Invoices,
|
||||
IFNULL(SUM(b.item_quantity), 0) as Qty,
|
||||
IFNULL(SUM(c.item_subtotal), 0) as Sales')
|
||||
->join('ip_invoice_items b', 'a.invoice_id = b.invoice_id', 'left')
|
||||
->join('ip_invoice_item_amounts c', 'b.item_id = c.item_id', 'left')
|
||||
->where('a.invoice_date_created >=', $fiscalMonthStart)
|
||||
->where('a.invoice_status_id', 2);
|
||||
|
||||
// Execute the query
|
||||
$query = $builder->get();
|
||||
|
||||
// Log the SQL query for debugging
|
||||
log_message('debug', $builder->getCompiledSelect());
|
||||
|
||||
// Return the aggregated results
|
||||
return $query->getRow();
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is used to get the This Year Sales
|
||||
* @return array $result : This is result of the query
|
||||
*/
|
||||
function thisYearSales()
|
||||
{
|
||||
// Calculate the start date for the current fiscal year
|
||||
$fiscalYearStart = date('Y') . '-04-01';
|
||||
$currentYear = date('Y');
|
||||
$currentMonth = date('m');
|
||||
|
||||
// If the current month is before April, subtract one year for the fiscal year start
|
||||
if ($currentMonth < 4) {
|
||||
$fiscalYearStart = ($currentYear - 1) . '-04-01';
|
||||
} else {
|
||||
$fiscalYearStart = $currentYear . '-04-01';
|
||||
}
|
||||
|
||||
// Build the query
|
||||
$builder = $this->db->table('ip_invoices a')
|
||||
->select('COUNT(DISTINCT(a.invoice_number)) as Invoices,
|
||||
IFNULL(SUM(b.item_quantity), 0) as Qty,
|
||||
IFNULL(SUM(c.item_subtotal), 0) as Sales')
|
||||
->join('ip_invoice_items b', 'a.invoice_id = b.invoice_id', 'left')
|
||||
->join('ip_invoice_item_amounts c', 'b.item_id = c.item_id', 'left')
|
||||
->where('a.invoice_date_created >=', $fiscalYearStart)
|
||||
->where('a.invoice_status_id', 2);
|
||||
|
||||
// Execute the query
|
||||
$query = $builder->get();
|
||||
|
||||
// Log the SQL query for debugging
|
||||
log_message('debug', $builder->getCompiledSelect());
|
||||
|
||||
// Return the aggregated results
|
||||
return $query->getRow();
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is used to get the This Year Sales Trend
|
||||
* @return array $result : This is result of the query
|
||||
*/
|
||||
function thisYearSalesTrend()
|
||||
{
|
||||
$currentYear = date('Y');
|
||||
$currentMonth = date('m');
|
||||
|
||||
// Calculate the start date for the current and last fiscal years
|
||||
if ($currentMonth < 4) {
|
||||
$fiscalYearStartCurrent = ($currentYear - 1) . '-04-01';
|
||||
$fiscalYearStartLast = ($currentYear - 2) . '-04-01';
|
||||
$fiscalYearEndLast = ($currentYear - 1) . '-03-31';
|
||||
} else {
|
||||
$fiscalYearStartCurrent = $currentYear . '-04-01';
|
||||
$fiscalYearStartLast = ($currentYear - 1) . '-04-01';
|
||||
$fiscalYearEndLast = $currentYear . '-03-31';
|
||||
}
|
||||
|
||||
// Build query for the current fiscal year
|
||||
$builderCurrent = $this->db->table('ip_invoices a')
|
||||
->select("DATE_FORMAT(a.invoice_date_created, '%b') as Month,
|
||||
IFNULL(SUM(c.item_total), 0) as Sales")
|
||||
->join('ip_invoice_items b', 'a.invoice_id = b.invoice_id', 'left')
|
||||
->join('ip_invoice_item_amounts c', 'b.item_id = c.item_id', 'left')
|
||||
->where('a.invoice_date_created >=', $fiscalYearStartCurrent)
|
||||
->where('a.invoice_status_id', 2)
|
||||
->groupBy("DATE_FORMAT(a.invoice_date_created, '%b')")
|
||||
->orderBy('MONTH(a.invoice_date_created)');
|
||||
|
||||
// Build query for the last fiscal year
|
||||
$builderLast = $this->db->table('ip_invoices a')
|
||||
->select("DATE_FORMAT(a.invoice_date_created, '%b') as Month,
|
||||
IFNULL(SUM(c.item_total), 0) as Sales")
|
||||
->join('ip_invoice_items b', 'a.invoice_id = b.invoice_id', 'left')
|
||||
->join('ip_invoice_item_amounts c', 'b.item_id = c.item_id', 'left')
|
||||
->where('a.invoice_date_created >=', $fiscalYearStartLast)
|
||||
->where('a.invoice_date_created <', $fiscalYearStartCurrent)
|
||||
->where('a.invoice_status_id', 2)
|
||||
->groupBy("DATE_FORMAT(a.invoice_date_created, '%b')")
|
||||
->orderBy('MONTH(a.invoice_date_created)');
|
||||
|
||||
// Execute the queries
|
||||
$currentYearData = $builderCurrent->get()->getResultArray();
|
||||
$lastYearData = $builderLast->get()->getResultArray();
|
||||
|
||||
// Combine the data
|
||||
$salesComparison = [];
|
||||
foreach ($lastYearData as $lastYearRow) {
|
||||
$month = $lastYearRow['Month'];
|
||||
$salesComparison[$month]['Last Year'] = $lastYearRow['Sales'];
|
||||
}
|
||||
|
||||
foreach ($currentYearData as $currentYearRow) {
|
||||
$month = $currentYearRow['Month'];
|
||||
$salesComparison[$month]['Current Year'] = $currentYearRow['Sales'];
|
||||
}
|
||||
|
||||
// Log the SQL queries for debugging
|
||||
log_message('debug', $builderCurrent->getCompiledSelect());
|
||||
log_message('debug', $builderLast->getCompiledSelect());
|
||||
|
||||
// Return the comparison results
|
||||
return $salesComparison;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is used to get the Today invoices
|
||||
* @return array $result : This is result of the query
|
||||
*/
|
||||
function getTodayInvoices()
|
||||
{
|
||||
// Define the custom field ID for the vehicle number
|
||||
$vehicleCustomFieldId = 8; // Adjust this ID if necessary
|
||||
|
||||
// Build the query to get today's invoices with detailed information
|
||||
$builder = $this->db->table('ip_invoices ii')
|
||||
->select("
|
||||
ii.invoice_number AS 'Invoice No.',
|
||||
DATE_FORMAT(ii.invoice_date_created, '%d-%m-%Y') AS 'Invoice Date',
|
||||
TIME_FORMAT(ii.invoice_time_created, '%l:%i %p') AS 'Invoice Time',
|
||||
icf.invoice_custom_fieldvalue AS 'Vehicle No.',
|
||||
IF(iit.item_description = '', iit.item_name, iit.item_description) AS 'Product',
|
||||
ic.client_name AS 'Client',
|
||||
SUM(iit.item_quantity) AS 'Quantity',
|
||||
SUM(iit.item_price) AS 'Rate',
|
||||
SUM(iia.item_subtotal) AS 'Value',
|
||||
SUM(iia.item_cgst_amt) AS 'CGST',
|
||||
SUM(iia.item_sgst_amt) AS 'SGST',
|
||||
SUM(iia.item_igst_amt) AS 'IGST',
|
||||
SUM(IFNULL(tcs.tax_rate_percent * iia.item_total / 100, 0)) AS 'TCS',
|
||||
SUM(IFNULL(tcs.tax_rate_percent * iia.item_total / 100, 0)) + SUM(iia.item_total) AS 'Total'
|
||||
")
|
||||
->join('ip_invoice_custom icf', 'icf.invoice_id = ii.invoice_id', 'left')
|
||||
->join('ip_invoice_tax_rates tc', 'tc.invoice_id = ii.invoice_id', 'left')
|
||||
->join('ip_invoice_items iit', 'iit.invoice_id = ii.invoice_id', 'left')
|
||||
->join('ip_invoice_item_amounts iia', 'iia.item_id = iit.item_id', 'left')
|
||||
->join('ip_clients ic', 'ic.client_id = ii.client_id', 'left')
|
||||
->join('ip_tax_rates sgst', 'sgst.tax_rate_id = iit.sgst_item_tax_rate_id', 'left')
|
||||
->join('ip_tax_rates cgst', 'cgst.tax_rate_id = iit.cgst_item_tax_rate_id', 'left')
|
||||
->join('ip_tax_rates igst', 'igst.tax_rate_id = iit.igst_item_tax_rate_id', 'left')
|
||||
->join('ip_tax_rates tcs', 'tcs.tax_rate_id = tc.tax_rate_id', 'left')
|
||||
->where('icf.invoice_custom_fieldid', $vehicleCustomFieldId)
|
||||
->where('ii.invoice_status_id', 2)
|
||||
->where('ii.invoice_date_created', date('Y-m-d'))
|
||||
->groupBy('ii.invoice_number, iit.item_description')
|
||||
->orderBy('ii.invoice_number');
|
||||
|
||||
// Execute the query
|
||||
$query = $builder->get();
|
||||
|
||||
// Log the SQL query for debugging
|
||||
log_message('debug', $builder->getCompiledSelect());
|
||||
|
||||
// Return the detailed invoice data
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
}
|
||||
@ -100,7 +100,7 @@ class Monthlypay_model extends Model
|
||||
//echo $lastdate;
|
||||
|
||||
//left join t_payroll on t_employee_details.EmpID = t_payroll.EmpID and month(t_payroll.PayOn) = month(?) and year(t_payroll.PayOn) = year(?)
|
||||
$sql = "select t_emp_pay_data.EmpID, t_emp_pay_data.Incentives as MasterIncentives,t_emp_pay_data.*,t_employee_details.FirstName,t_employee_details.LastName,t_employee_details.DateofJoining,t_employee_details.Designation,t_attendance.Days_Worked as Days_worked,t_attendance.Absent as LOP_Days,t_attendance.Paid_Leave as Paid_leave,t_attendance.Total_OTHrs as OT_Hrs_Worked,t_attendance.NoofDays,t_loan_master.Loan_ID,t_loan_master.Monthly_Due,t_loan_master.Due_Start_Date as DueDate,t_loan_master.Loan_Amount,t_loan_master.Paid_Amount,t_payroll.Key,t_monthly_pay_inputs.Incentives as MonthlyIncentives,t_monthly_pay_inputs.Loan_Recovered,t_monthly_pay_inputs.Estimate,t_monthly_pay_inputs.Festival_Bonus,t_monthly_pay_inputs.Other_Deductions,t_loan_history .Balance_Amount
|
||||
$sql = "select t_emp_pay_data.EmpID, t_emp_pay_data.Incentives as MasterIncentives,t_emp_pay_data.*,t_employee_details.FirstName,t_employee_details.LastName,t_employee_details.DateofJoining,t_employee_details.Designation,t_attendance.Days_Worked as Days_worked,t_attendance.Absent as LOP_Days,t_attendance.Paid_Leave as Paid_leave,t_attendance.Total_OTHrs as OT_Hrs_Worked,t_attendance.NoofDays,t_attendance.sunday_count,t_loan_master.Loan_ID,t_loan_master.Monthly_Due,t_loan_master.Due_Start_Date as DueDate,t_loan_master.Loan_Amount,t_loan_master.Paid_Amount,t_payroll.Key,t_monthly_pay_inputs.Incentives as MonthlyIncentives,t_monthly_pay_inputs.Loan_Recovered,t_monthly_pay_inputs.Estimate,t_monthly_pay_inputs.Festival_Bonus,t_monthly_pay_inputs.Other_Deductions,t_loan_history .Balance_Amount
|
||||
from t_emp_pay_data
|
||||
left join t_employee_details on t_employee_details.EmpID = t_emp_pay_data.EmpID
|
||||
left join t_payroll on t_employee_details.EmpID = t_payroll.EmpID and t_payroll.PayOn = ?
|
||||
|
||||
@ -401,7 +401,7 @@ function validatePF() {
|
||||
|
||||
if (PF != '') {
|
||||
if (regpf.test(PF) == false) {
|
||||
alert('Please Enter Valid PF Number');
|
||||
alert('Please Enter Valid UAN');
|
||||
return (false);
|
||||
} else {
|
||||
return true;
|
||||
@ -1001,7 +1001,7 @@ legend {
|
||||
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="form-group"><span>PF Number</span>
|
||||
<div class="form-group"><span>UAN</span>
|
||||
<input type="text" id="pfno" name="pfno" maxlength="22"
|
||||
onchange="validatePF();" class="form-control"
|
||||
style="text-transform:uppercase"
|
||||
|
||||
@ -329,6 +329,7 @@ $currentday = date('d');
|
||||
<th class="celda_encabezado_general" >Paid Leave</th>
|
||||
<th class="celda_encabezado_general" >Days Worked</th>
|
||||
<th class="celda_encabezado_general" >Absent</th>
|
||||
<th class="celda_encabezado_general" >Total Sunday</th>
|
||||
|
||||
</tr>
|
||||
|
||||
@ -391,6 +392,7 @@ $currentday = date('d');
|
||||
<td class="celda_normal" id="<?php echo $row.'PL';?>"><?php if(!empty($a->Paid_Leave)){echo number_format($a->Paid_Leave,2,'.','.');}else{echo "0.00";}?></td>
|
||||
<td class="celda_normal" id="<?php echo $row.'DW';?>"><?php if(!empty($a->Days_Worked)){echo $a->Days_Worked;}else{echo "0.00";}?></td>
|
||||
<td class="celda_normal"id="<?php echo $row.'AB';?>"><?php if(!empty($a->Absent)){echo $a->Absent;}else{echo "0.00";}?></td>
|
||||
<td class="celda_normal"id="<?php echo $row.'TS';?>"><?php if(!empty($noofsundays)){echo $noofsundays;}else{echo "0";}?></td>
|
||||
</tr>
|
||||
<?php }?>
|
||||
|
||||
@ -428,29 +430,28 @@ $currentday = date('d');
|
||||
|
||||
//alert(s);
|
||||
if(s == 0){
|
||||
resetFinalValues();
|
||||
|
||||
resetFinalValues();
|
||||
var Totalnoofdays = <?php echo $monthdays?>;
|
||||
var alldata = $("#attendance").tableToJSON();
|
||||
// alert(JSON.stringify(alldata));
|
||||
alldata=JSON.stringify(alldata);
|
||||
// alert(alldata);
|
||||
|
||||
|
||||
var month = $('#month').val();
|
||||
var currentmonth = month.substr(0,3);
|
||||
var currentyear = month.substr(4,4);
|
||||
// alert(currentyear);
|
||||
|
||||
var montharray = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
|
||||
var currentmonth = jQuery.inArray(currentmonth,montharray);//!== -1
|
||||
currentmonth++;
|
||||
var currentmonth = jQuery.inArray(currentmonth,montharray);//!== -1
|
||||
currentmonth++;
|
||||
|
||||
//alert(currentmonth);
|
||||
var currentdate = '01-'+currentmonth+'-'+currentyear;
|
||||
|
||||
var currentdate = '01-'+currentmonth+'-'+currentyear;
|
||||
|
||||
var totaldata = 0;
|
||||
$('.content').loader('show');
|
||||
$.ajax({
|
||||
data:{param1:alldata,param2:currentdate,param3:Totalnoofdays},
|
||||
data:{param1:alldata,param2:currentdate,param3:Totalnoofdays},
|
||||
//dataType:"json",
|
||||
type:"POST",
|
||||
url:"<?php echo base_url() ?>monthlypay/saveAttendance",
|
||||
@ -643,11 +644,13 @@ function myFunction(p,i,v)
|
||||
|
||||
|
||||
var totalworkingHrs=0;
|
||||
var sundayWorkingHr=0;
|
||||
var totalOTHrs = 0;
|
||||
var paidleave = 0;
|
||||
var totalDaysWorked=0;
|
||||
var absent = 0;
|
||||
var sundays = <?php echo $noofsundays?>;
|
||||
var sundaysArray = <?php echo json_encode($sundayarray); ?>;
|
||||
var publicholidays = <?php echo $noofpublicholidays?>;
|
||||
|
||||
var totaldays = <?php echo $monthdays?>;
|
||||
@ -681,12 +684,30 @@ function myFunction(p,i,v)
|
||||
var str1 = str.substr(-1);
|
||||
var str2 = str.substr(-2);
|
||||
var str3 = str.substr(-3);
|
||||
|
||||
|
||||
|
||||
|
||||
if(str1 == 'W')
|
||||
{
|
||||
var current = value.textContent == '' ? 0:parseFloat(value.textContent);
|
||||
totalworkingHrs += current;
|
||||
sundayValidation = false;
|
||||
let dateInt = +str3.replace(/\D/g, '');
|
||||
sundaysArray.forEach(element => {
|
||||
if(+element == dateInt){
|
||||
sundayValidation = true;
|
||||
var current = value.textContent == '' ? 0:parseFloat(value.textContent);
|
||||
sundayWorkingHr += current;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
if(sundayValidation == false){
|
||||
var current = value.textContent == '' ? 0:parseFloat(value.textContent);
|
||||
totalworkingHrs += current;
|
||||
}
|
||||
|
||||
if(current == 0){absent++;}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -702,28 +723,29 @@ function myFunction(p,i,v)
|
||||
// break;
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
// if(paidleave == 1 )
|
||||
// {
|
||||
// absent = 0;
|
||||
// alert('if');
|
||||
// }
|
||||
// if(paidleave == 0)
|
||||
// {
|
||||
// absent = 0;
|
||||
// alert('else if');
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // absent = paidleave-0;
|
||||
// // paidleave = 0;
|
||||
// absent = paidleave;
|
||||
// paidleave = 0;
|
||||
// alert('else');
|
||||
// }
|
||||
// if(paidleave == 0)
|
||||
// {
|
||||
// absent = 0;
|
||||
// alert('else if');
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // absent = paidleave-0;
|
||||
// // paidleave = 0;
|
||||
// absent = paidleave;
|
||||
// paidleave = 0;
|
||||
// alert('else');
|
||||
// }
|
||||
TotalOT = totalOTHrs + sundayWorkingHr;
|
||||
document.getElementById(totalhrsid).textContent = parseFloat(totalworkingHrs).toFixed(2);// == ''?0:parseFloat(totalworkingHrs));
|
||||
document.getElementById(totalothrsid).textContent = parseFloat(totalOTHrs).toFixed(2);// == ''?0:parseFloat(totalOTHrs));
|
||||
document.getElementById(totalothrsid).textContent = parseFloat(TotalOT).toFixed(2);// == ''?0:parseFloat(totalOTHrs));
|
||||
document.getElementById(paidleaveid).textContent = parseFloat(paidleave).toFixed(2);
|
||||
document.getElementById(daysworkedid).textContent = parseFloat((totalworkingHrs/8)).toFixed(2);
|
||||
document.getElementById(absentid).textContent = parseFloat(absent).toFixed(2);
|
||||
|
||||
@ -500,7 +500,7 @@ function validatePF() {
|
||||
|
||||
if (PF != '') {
|
||||
if (regpf.test(PF) == false) {
|
||||
alert('Please Enter Valid PF Number');
|
||||
alert('Please Enter Valid UAN');
|
||||
return (false);
|
||||
} else {
|
||||
return true;
|
||||
@ -1302,7 +1302,7 @@ legend {
|
||||
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="form-group"><span>PF Number</span>
|
||||
<div class="form-group"><span>UAN</span>
|
||||
<input type="text" id="pfno" name="pfno" maxlength="22"
|
||||
value="<?php echo $pfno; ?>"
|
||||
onchange="validatePF();" class="form-control"
|
||||
|
||||
@ -341,7 +341,8 @@
|
||||
</a>
|
||||
</li><!--Dashboard active treeview -->
|
||||
<li class="treeview">
|
||||
<a id="salesDashboardLin" href="https://vu.venbait.in/d/d9eb820b-60aa-4fe6-9de0-531924185b77/sales-at-a-glance?orgId=2&from=1715215911333&to=1715237511333" target="_blank">
|
||||
<!-- <a id="salesDashboardLin" href="https://vu.venbait.in/d/d9eb820b-60aa-4fe6-9de0-531924185b77/sales-at-a-glance?orgId=2&from=1715215911333&to=1715237511333" target="_blank"> -->
|
||||
<a id="salesDashboardLin" href="<?php echo base_url(); ?>sales_dashboard">
|
||||
<i class="fa fa-dashboard"></i><span>Sales Dashboard</span>
|
||||
</a>
|
||||
</li><!--Dashboard active treeview -->
|
||||
|
||||
@ -157,18 +157,37 @@ $('html').bind('keypress', function(e)
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="overflow-x:scroll;">
|
||||
<table id="monthlylistings" class="table table-bordered table-hover" style="background-color:#fff;font-size:12px" >
|
||||
<thead style="background-color: #ddd;">
|
||||
<tr>
|
||||
<tr>
|
||||
|
||||
<th>S.No</th>
|
||||
<th>Emp ID </th>
|
||||
<th>Employee </th>
|
||||
<!-- <th>Employee Name</th> -->
|
||||
<th>DOJ</th>
|
||||
<th>Designation</th>
|
||||
<th>Total Days</th>
|
||||
<th>Days Worked</th>
|
||||
<th>LOP Days</th>
|
||||
<th>Paid Leave</th>
|
||||
<th>Paid Leave</th>
|
||||
<th>OT Hrs</th>
|
||||
|
||||
<th>Basic Salary</th>
|
||||
<th>Pre Day Salary</th>
|
||||
<th>Worked Salary</th>
|
||||
<th>Pre hr Salary</th>
|
||||
<th>Earned Salary</th>
|
||||
<th>Basic Salary(0.7)</th>
|
||||
<th>HRA Salary(0.3)</th>
|
||||
<th>Gross Salary</th>
|
||||
<th>ESI</th>
|
||||
<th>PF</th>
|
||||
<th>Over Time</th>
|
||||
|
||||
|
||||
|
||||
<th>Auto Loan Due ₹</th>
|
||||
|
||||
<th>Manual Loan Due ₹</th>
|
||||
@ -185,56 +204,63 @@ $('html').bind('keypress', function(e)
|
||||
<tbody>
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
$index=0;
|
||||
$testarray=array();
|
||||
|
||||
|
||||
|
||||
if(!empty($sample))
|
||||
|
||||
{
|
||||
|
||||
//print_r($sample); die;
|
||||
|
||||
$index = 0;
|
||||
$i = 0;
|
||||
|
||||
foreach($sample as $i=> $record)
|
||||
{
|
||||
//echo 'PAY'.$record->Key;
|
||||
$index++;
|
||||
|
||||
if(in_array($record->EmpID,$testarray))
|
||||
{
|
||||
$index--;
|
||||
|
||||
|
||||
}
|
||||
else{
|
||||
if(in_array($record->EmpID,$testarray))
|
||||
{
|
||||
$index--;
|
||||
}else{
|
||||
|
||||
|
||||
array_push($testarray,$record->EmpID);
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
<tr class="lastvalue">
|
||||
<td style="text-align:right;" style="background-color:blue;"><?php echo $index; ?></td>
|
||||
<!-- <td style="text-align:right;"><?php echo $record->EmpID ?></td> -->
|
||||
<td style="max-width:80px"><?php echo $record->EmpID ."-".$record->FirstName ."". $record->LastName ?></td>
|
||||
|
||||
|
||||
<td id="dayWork<?php echo $index?>"<?php if(empty($record->Key)){echo "contenteditable='false';"; } ?> <?php if(!empty($record->Key)){?> title="Payslip Calculated" style="text-align:right;color:blue;"<?php } else{?>style="text-align:right;"<?php }?> ><?php if(!empty($record->Days_worked)){echo $record->Days_worked;}else{echo "0.00";}?></td>
|
||||
|
||||
<td id="lopDay<?php echo $index?>"<?php if(empty($record->Key)){echo "contenteditable='false';"; } ?> <?php if(!empty($record->Key)){?> title="Payslip Calculated" style="text-align:right;color:blue;"<?php } else{?>style="text-align:right;"<?php }?> ><?php if(!empty($record->LOP_Days)){echo $record->LOP_Days;}else{echo "0.00";}?></td>
|
||||
|
||||
<td style="max-width:80px"><?php echo $record->EmpID ; ?></td>
|
||||
<td style="max-width:80px"><?php echo $record->FirstName; ?></td>
|
||||
<td style="max-width:80px">
|
||||
<?php
|
||||
$date = DateTime::createFromFormat('Y-m-d H:i:s', $record->DateofJoining);
|
||||
$newDateFormat = $date->format('d-m-Y');
|
||||
echo $newDateFormat;
|
||||
?>
|
||||
</td>
|
||||
<td style="max-width:80px"><?php echo $record->Designation; ?></td>
|
||||
<td style="max-width:80px"><?php echo $record->NoofDays; ?></td>
|
||||
<td id="dayWork<?php echo $index?>"<?php if(empty($record->Key)){echo "contenteditable='false';"; } ?> <?php if(!empty($record->Key)){?> title="Payslip Calculated" style="text-align:right;color:blue;"<?php } else{?>style="text-align:right;"<?php }?> ><?php if(!empty($record->Days_worked)){echo $record->Days_worked+$record->sunday_count;}else{echo "0.00";}?></td>
|
||||
<td id="lopDay<?php echo $index?>"<?php if(empty($record->Key)){echo "contenteditable='false';"; } ?> <?php if(!empty($record->Key)){?> title="Payslip Calculated" style="text-align:right;color:blue;"<?php } else{?>style="text-align:right;"<?php }?> ><?php if(!empty($record->LOP_Days)){echo $record->LOP_Days;}else{echo "0.00";}?></td>
|
||||
<td id="paidLeave<?php echo $index?>"<?php if(empty($record->Key)){echo "contenteditable='false';"; } ?> <?php if(!empty($record->Key)){?> title="Payslip Calculated" style="text-align:right;color:blue;"<?php } else{?>style="text-align:right;"<?php }?> ><?php if(!empty($record->Paid_leave)){echo number_format($record->Paid_leave,2,'.','');}else { echo number_format(0.00,2,'.','');} ?></td>
|
||||
<td id="otHrsWork<?php echo $index?>"<?php if(empty($record->Key)){echo "contenteditable='false';"; } ?> <?php if(!empty($record->Key)){?> title="Payslip Calculated" style="text-align:right;color:blue;"<?php } else{?>style="text-align:right;"<?php }?> ><?php if(!empty($record->OT_Hrs_Worked)){echo $record->OT_Hrs_Worked;}else { echo number_format(0.00,2,'.','');} ?></td>
|
||||
|
||||
<td style="max-width:80px"><?php echo $record->TotalSalary; ?></td>
|
||||
<td style="max-width:80px"><?php $perDaySalary = $record->TotalSalary / $record->NoofDays; echo number_format($perDaySalary, 2); ?></td>
|
||||
<td style="max-width:80px"><?php $workedSalary = $perDaySalary * ($record->Days_worked+$record->sunday_count); echo number_format($workedSalary, 2); ?></td>
|
||||
<td style="max-width:80px"><?php $perHrSalary = $perDaySalary / 8; echo number_format($perHrSalary, 2); ?></td>
|
||||
<td style="max-width:80px"><?php echo number_format($workedSalary, 2); ?></td>
|
||||
<td style="max-width:80px"><?php $basicWorked = $workedSalary * 70 / 100; echo number_format($basicWorked, 2); ?></td>
|
||||
<td style="max-width:80px"><?php $hraWorked = $workedSalary * 30 / 100; echo number_format($hraWorked, 2); ?></td>
|
||||
<td style="max-width:80px"><?php echo number_format($basicWorked+$hraWorked, 2); ?></td>
|
||||
<td style="max-width:80px"> <?php echo $esi[$i]; ?> </td>
|
||||
<td style="max-width:80px"> <?php echo $pf[$i]; ?> </td>
|
||||
<td style="max-width:80px"> <?php echo $over_time[$i]; ?> </td>
|
||||
|
||||
|
||||
|
||||
|
||||
<td id="otHrsWork<?php echo $index?>"<?php if(empty($record->Key)){echo "contenteditable='false';"; } ?> <?php if(!empty($record->Key)){?> title="Payslip Calculated" style="text-align:right;color:blue;"<?php } else{?>style="text-align:right;"<?php }?> ><?php if(!empty($record->OT_Hrs_Worked)){echo $record->OT_Hrs_Worked;}else { echo number_format(0.00,2,'.','');} ?></td>
|
||||
|
||||
<td id="monthDue<?php echo $index?>" <?php if(empty($record->Key)){echo "contenteditable='false';"; } ?> <?php if(!empty($record->Key)){?> 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="monthDue<?php echo $index?>" <?php if(empty($record->Key)){echo "contenteditable='false';"; } ?> <?php if(!empty($record->Key)){?> 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>
|
||||
|
||||
|
||||
|
||||
@ -272,8 +298,13 @@ $('html').bind('keypress', function(e)
|
||||
|
||||
<?php $totalfestival [] = isset($Festival_Bonus) ? $Festival_Bonus : [];?>
|
||||
|
||||
<td id="empsal<?php echo $index?>"<?php if(empty($record->Key)){echo "contenteditable='false';"; } ?> <?php if(!empty($record->Key)){?> title="Payslip Calculated" style="text-align:right;color:blue;"<?php }?>> <?php if(!empty($record->Estimate)){echo $record->Estimate; $estTotal [] = $record->Estimate; }else { echo $empSalary[$i]; $estTotal [] = $empSalary[$i];
|
||||
}?></td>
|
||||
<td id="empsal<?php echo $index?>"<?php if(empty($record->Key)){echo "contenteditable='false';"; } ?> <?php if(!empty($record->Key)){?> title="Payslip Calculated" style="text-align:right;color:blue;"<?php }?>>
|
||||
<?php if(!empty($record->Estimate)){
|
||||
echo $record->Estimate; $estTotal [] = $record->Estimate;
|
||||
}else {
|
||||
echo $empSalary[$i]; $estTotal [] = $empSalary[$i];
|
||||
}?>
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
@ -282,7 +313,7 @@ $('html').bind('keypress', function(e)
|
||||
|
||||
|
||||
|
||||
<!-- <input type="hidden" id = "eid" value="<?php echo $record->EmpID?>">
|
||||
<!--<input type="hidden" id = "eid" value="<?php echo $record->EmpID?>">
|
||||
<input type="hidden" id = "inv" value="<?php echo $record->Incentives?>">
|
||||
<input type="hidden" id = "pdi" value="<?php echo $record->Pay_Data_ID?>"> -->
|
||||
<input type="hidden" id = "bPay<?php echo $index?>" value="<?php echo $record->Basic_Pay?>">
|
||||
@ -334,7 +365,7 @@ $('html').bind('keypress', function(e)
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<p> </p>
|
||||
<div class="row">
|
||||
<div class="col-md-3" id="savebutton">
|
||||
@ -428,7 +459,9 @@ $('html').bind('keypress', function(e)
|
||||
"info": true,
|
||||
"paging": false,
|
||||
"autoWidth": true,
|
||||
"order": [[ 1, 'asc' ]]
|
||||
|
||||
// "scrollX": true,
|
||||
"order": [[ 1, 'asc' ]],
|
||||
} );
|
||||
|
||||
t.on( 'order.dt search.dt', function () {
|
||||
@ -477,7 +510,7 @@ function isCheckKeyCode(event){
|
||||
data:{param1:alldata,param2:month},
|
||||
//dataType:"json",
|
||||
type:"POST",
|
||||
url:"<?php echo base_url() ?>payslip/saveMonthlyData",
|
||||
url:"<?php echo base_url() ?>payslip/saveMonthlyData",
|
||||
success:function(data) {
|
||||
if(data)
|
||||
{
|
||||
|
||||
23
app/Views/sales_dashboard.php
Normal file
23
app/Views/sales_dashboard.php
Normal file
@ -0,0 +1,23 @@
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
|
||||
|
||||
<div class="content-wrapper">
|
||||
<!-- Content Header (Page header) -->
|
||||
<section class="content-header">
|
||||
<h1><center>Sales Dashboard</center></h1>
|
||||
</section>
|
||||
<section class="content">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 text-right">
|
||||
<div class="form-group"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="box">
|
||||
<div class="box-header"></div><!-- /.box-header -->
|
||||
<div class="box-body"></div><!-- /.box-body -->
|
||||
</div><!-- /.box -->
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
Loading…
Reference in New Issue
Block a user