diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index a7740738..c92e8115 100755
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -203,6 +203,9 @@ $routes->get('deleteLeaveApplicationForm', 'Monthlypay::deleteLeaveApplicationFo
$routes->post('validateDateRange', 'Monthlypay::validateDateRange');
$routes->match(['GET', 'POST'], 'leaveApplicationPDF/(:any)', 'Monthlypay::leaveApplicationPDF/$1');
$routes->match(['GET', 'POST'], 'overTimeDetails', 'Monthlypay::overTimeDetails');
+$routes->get('exportMonthlyPayInputs/(:any)', 'Payslip::exportMonthlyPayInputs/$1');
+$routes->get('leaveStatus/(:any)/(:any)', 'Monthlypay::leaveStatus/$1/$2');
+
$routes->get('emppaydate/addemppaydate', 'Emppaydate::addemppaydate');
$routes->post('emppaydate/addNewemppay', 'Emppaydate::addNewemppay');
@@ -248,6 +251,7 @@ $routes->post('EditRequisition', 'Requisitionform::EditRequisition');
$routes->post('addNewRequisition', 'Requisitionform::addNewRequisition');
$routes->post('getMaterialCode', 'Requisitionform::getMaterialCode');
$routes->post('getMaterialDetails', 'Requisitionform::getMaterialDetails');
+$routes->post('getCategoryDetails', 'Requisitionform::getCategoryDetails');
$routes->post('DeleteRequistionForm', 'Requisitionform::DeleteRequistionForm'); // recheck it used or not.
$routes->post('requisitionform/ApproveRequest', 'Requisitionform::ApproveRequest');
$routes->post('requisitionform/DeleteReqNo', 'Requisitionform::DeleteReqNo');
@@ -322,7 +326,7 @@ $routes->post('getCostCenterData', 'Inwardgateregister::getCostCenterData');
$routes->post('ViewIGRfile', 'Inwardgateregister::ViewIGRfile');
$routes->post('getAdditionalIGRFile', 'Inwardgateregister::getAdditionalIGRFile');
$routes->post('deleteAdditionalIGRFile', 'Inwardgateregister::deleteAdditionalIGRFile');
-$routes->get( 'download-files/(:segment)', 'Inwardgateregister::downloadFilesAsZip/$1');
+$routes->get( 'download-files', 'Inwardgateregister::downloadFilesAsZip');
$routes->post('inwardgateregister/edituploadfile', 'Inwardgateregister::edituploadfile');
$routes->post('getIGRRemarks', 'Inwardgateregister::getIGRRemarks');
$routes->post('saveIGRRemarks', 'Inwardgateregister::saveIGRRemarks');
diff --git a/app/Controllers/Driver.php b/app/Controllers/Driver.php
index 625175e4..e6ef6307 100755
--- a/app/Controllers/Driver.php
+++ b/app/Controllers/Driver.php
@@ -561,7 +561,6 @@ class Driver extends BaseController
$html = view("driverPayslipGeneratePrint", $Data);
}
-
$mpdf = new Mpdf([
'mode' => 'utf-8',
'format' => 'A4-P',
diff --git a/app/Controllers/Emppaydate.php b/app/Controllers/Emppaydate.php
index 067cb80c..6439057c 100755
--- a/app/Controllers/Emppaydate.php
+++ b/app/Controllers/Emppaydate.php
@@ -150,8 +150,28 @@ class Emppaydate extends BaseController
function downloadEmpLoanData($paydataid = "")
{
- $data['emppay'] = $this->emppaydate_model->getUserInfo($paydataid);
-
+ $emppay = $this->emppaydate_model->getUserInfo($paydataid);
+
+ $monthYear = get_date_time_dynamical_format('Y-m-d','m-Y',get_current_date());
+ // $monthYear = "02-2025";
+ foreach ($emppay as $index => $value) {
+ if($value->is_driver) {
+ $info = $this->emppaydate_model->driverPayInfo($value->PAYEMPID, $monthYear);
+
+ foreach ($info as $i => $v) {
+
+ $hra = $v->HRA; // => 885.60
+ $esi = $v->ESI; // => 0.00
+ $pf = $v->PF; // => 0.00
+ $basic = $v->BASIC;
+ $TotalSalary = ($basic + $hra + $v->Festival_Bonus) - ($value->Monthly_Due+$esi + $pf);
+ $emppay[$index]->TotalSalary = $TotalSalary;
+ $emppay[$index]->Basic_Pay = $basic;
+ }
+ }
+ }
+ $data['emppay'] = $emppay;
+
$data['loan_histoty'] = $this->emppaydate_model->getUserLoanHistoryInfo($data['emppay'][0]->Loan_ID);
diff --git a/app/Controllers/Inwardgateregister.php b/app/Controllers/Inwardgateregister.php
index 696df7f7..80cd15e5 100755
--- a/app/Controllers/Inwardgateregister.php
+++ b/app/Controllers/Inwardgateregister.php
@@ -299,8 +299,9 @@ class Inwardgateregister extends BaseController
$PO = $this->request->getPost('id');
$CreatedBy = $this->session->get('userId');
- $this->inwardgateregister_model->UpdatePOMaster($PO, $CreatedBy,IGR_CREATED);
+ // $this->inwardgateregister_model->UpdatePOMaster($PO, $CreatedBy,IGR_CREATED);
$data = $this->inwardgateregister_model->viewpurchaseorder($PO);
+ // echo "
"; print_r($data);die;
echo json_encode($data);
}
@@ -1080,24 +1081,29 @@ function updateIGRWeight(){
$this->saveIGRLineitemHistory($igr_lineitem, $IGRNO,$IGRItemNo);
$requestWeightFileName =null ;
- if($WeightFile){
- if (!empty($requestWeightFileName)) {
- if ($WeightFile && $WeightFile->isValid() && !$WeightFile->hasMoved()) {
- if (!empty($this->inwardgateregister_model->isFileExistsInIGRdetails($requestWeightFileName))) {
- log_message('error', 'File already exists in the database'.$requestWeightFileName);
- }
- else{
- $WeightFile->move($path, $requestWeightFileName);
- $igr_lineitem['WeightFile'] = $requestWeightFileName;
- }
- }
+ $msg = null;
+ if ($WeightFile && $WeightFile->isValid() && !$WeightFile->hasMoved()) {
+
+ $requestWeightFileName = $WeightFile->getName(); // Generate a unique name
+
+ // Optional: Check for duplicates in DB if needed
+ if (!empty($this->inwardgateregister_model->isFileExistsInIGRdetails($requestWeightFileName))) {
+ log_message('error', 'File already exists in the database: ' . $requestWeightFileName);
+ $msg = "'File already exists in the database: ' . $requestWeightFileName";
+ } else {
+ $WeightFile->move($path, $requestWeightFileName);
+ $igr_lineitem['WeightFile'] = $requestWeightFileName;
+ $msg = "";
}
+ }else{
+ log_message('error', 'File invlisd: ' . $requestWeightFileName);
+ $msg = "";
}
-
+
$update = $this->inwardgateregister_model->updateIGRLineItem($igr_lineitem, $IGRItemNo);
if ($update) {
- echo "Details update successfully!";
+ echo "Details updated successfully!\n".$msg;
}
}
function AddOgr()
@@ -1327,75 +1333,82 @@ function updateIGRWeight(){
}
}
- public function downloadFilesAsZip($igrno)
- {
- // Get all file details for the given IGR number
- $fileDetails = $this->inwardgateregister_model->getAllIgrFileDetails($igrno);
- // Define the root path for files
- $rootPath = ROOTPATH . 'public/uploads/Igrfiles/';
-
- // Check if the directory exists, create if it doesn't
- if (!is_dir($rootPath)) {
- if (!mkdir($rootPath, 0755, true)) {
- echo '';
- return;
- }
- }
-
- // Ensure the directory is writable
- if (!is_writable($rootPath)) {
- echo '';
- return;
- }
-
- // Create a new ZIP archive
- $zip = new ZipArchive();
- $zipFileName = $igrno . '.zip';
- $zipFilePath = $rootPath . $zipFileName;
-
- // Attempt to open the ZIP file
- if ($zip->open($zipFilePath, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== TRUE) {
- echo '';
- return redirect()->to('/ViewIGR');
- }
-
- $filesAdded = false;
-
- // Add each file to the ZIP archive
- foreach ($fileDetails as $file) {
- $filePath = $rootPath . $file->file;
-
- // Ensure file exists and is not a directory
- if (file_exists($filePath) && is_file($filePath)) {
- // Sanitize filename for ZIP
- $sanitizedFilename = preg_replace('/[^a-zA-Z0-9_\-\.]/', '_', $file->file);
- if (!$zip->addFile($filePath, $sanitizedFilename)) {
- echo '';
- $zip->close();
- return redirect()->to('/ViewIGR');
- }
- $filesAdded = true;
- } else {
- echo '';
- continue;
- }
- }
-
- // Close ZIP archive if files were added
- if ($filesAdded) {
- $zip->close(); // Close ZIP only if files were added
- return $this->response->download($zipFilePath, null)->setFileName($zipFileName);
- } else {
- // Close and remove any empty ZIP file created
- $zip->close();
- if (file_exists($zipFilePath)) {
- unlink($zipFilePath);
- }
- echo '';
- return redirect()->to('/ViewIGR');
- }
- }
+
+ public function downloadFilesAsZip()
+{
+ // Get the IGR number from query string
+ $igrno = $this->request->getGet('IGRNO');
+
+ // Get file details based on IGR number
+ $fileDetails = $this->inwardgateregister_model->getAllIgrFileDetails($igrno);
+
+ // Define root path for original files
+ $fileRootPath = ROOTPATH . 'public/uploads/Igrfiles/';
+
+ // Define separate directory for ZIP output
+ $zipDir = ROOTPATH . 'writable/zips/';
+ if (!is_dir($zipDir)) {
+ if (!mkdir($zipDir, 0777, true)) {
+ echo '';
+ return;
+ }
+ }
+
+ // Make sure ZIP directory is writable
+ if (!is_writable($zipDir)) {
+ echo '';
+ return;
+ }
+
+ // OPTIONAL: Set PHP's temp directory if the system one is failing
+ $customTemp = ROOTPATH . 'writable/tempzip/';
+ if (!is_dir($customTemp)) {
+ mkdir($customTemp, 0777, true);
+ }
+ ini_set('sys_temp_dir', $customTemp);
+
+ // Create ZIP archive
+ $zip = new ZipArchive();
+ $zipFileName = preg_replace('/[^a-zA-Z0-9_\-]/', '_', $igrno) . '.zip'; // sanitize filename
+ $zipFilePath = $zipDir . $zipFileName;
+
+ if ($zip->open($zipFilePath, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== TRUE) {
+ echo '';
+ return redirect()->to('/ViewIGR');
+ }
+
+ $filesAdded = false;
+
+ // Add each file to ZIP
+ foreach ($fileDetails as $file) {
+ $filePath = $fileRootPath . $file->file;
+
+ if (file_exists($filePath) && is_file($filePath)) {
+ $sanitizedFilename = preg_replace('/[^a-zA-Z0-9_\-\.]/', '_', $file->file);
+ if (!$zip->addFile($filePath, $sanitizedFilename)) {
+ echo '';
+ $zip->close();
+ return redirect()->to('/ViewIGR');
+ }
+ $filesAdded = true;
+ } else {
+ echo '';
+ }
+ }
+
+ if ($filesAdded) {
+ $zip->close();
+ return $this->response->download($zipFilePath, null)->setFileName($zipFileName);
+ } else {
+ $zip->close();
+ if (file_exists($zipFilePath)) {
+ unlink($zipFilePath);
+ }
+ echo '';
+ return redirect()->to('/ViewIGR');
+ }
+}
diff --git a/app/Controllers/Monthlypay.php b/app/Controllers/Monthlypay.php
index 453ffa6c..e29aba2e 100755
--- a/app/Controllers/Monthlypay.php
+++ b/app/Controllers/Monthlypay.php
@@ -991,18 +991,19 @@ class Monthlypay extends BaseController
$leave_details['created_by'] = $userId;
$affectedRows = $this->monthlypay_model->saveleaveApplicationForm($leave_details,$id);
- if ($affectedRows > 0) {
+ // if ($affectedRows > 0) {
$data = ['status' => true, 'message' => 'Leave Applicationform details created successfully.'];
- }
+ // }
} else {
$leave_details['leave_application_id'] = $id;
$leave_details['updated_by'] = $userId;
$affectedRows = $this->monthlypay_model->saveleaveApplicationForm($leave_details,$id);
- if ($affectedRows > 0) {
- $data = ['status' => true, 'message' => 'Leave Applicationform details updated successfully.'];
- }else{
- $data = ['status' => true, 'message' => 'There is no changes in Leave Applicationform details.'];
- }
+ // if ($affectedRows > 0) {
+ // $data = ['status' => true, 'message' => 'Leave Applicationform details updated successfully.'];
+ // }else{
+ // $data = ['status' => true, 'message' => 'There is no changes in Leave Applicationform details.'];
+ // }
+ $data = ['status' => true, 'message' => 'Leave Applicationform details updated successfully.'];
}
@@ -1041,6 +1042,26 @@ class Monthlypay extends BaseController
}
+ public function leaveStatus($leave_application_id, $status)
+ {
+ if (!empty($leave_application_id)) {
+ $data = [
+ 'status' => $status,
+ 'updated_by' => session()->get('userId')
+ ];
+
+ $affectedRows = $this->monthlypay_model->saveleaveApplicationForm($data, $leave_application_id);
+ $message = ($affectedRows > 0)
+ ? "Leave Application updated successfully."
+ : "No changes were made.";
+
+ return $this->response->setJSON(['status' => true, 'message' => $message]);
+ } else {
+ return $this->response->setJSON(['status' => false, 'message' => 'Invalid leave application ID.']);
+ }
+ }
+
+
public function leaveApplicationPDF($leave_application_id){
diff --git a/app/Controllers/Payslip.php b/app/Controllers/Payslip.php
index 5d09e9e2..a53dc65f 100755
--- a/app/Controllers/Payslip.php
+++ b/app/Controllers/Payslip.php
@@ -287,14 +287,7 @@ class Payslip extends BaseController
$empSalarySub = $esiAmount + $pfAmount + $loan;
$salaryInCurrentday = $empSalaryAdd - $empSalarySub;
- // echo $esiAmount .'';
- // echo $pfAmount .'';
- // echo $loan .'';
- // echo $empSalarySub .'';
- // echo $empSalaryAdd .'';
- // echo $salaryInCurrentday .'';
- // die;
-
+
$employeeSalary[] = round($salaryInCurrentday);
$esi[] = number_format($esiAmount,2, '.', '');
$pf[] = number_format($pfAmount,2, '.', '');
@@ -309,6 +302,331 @@ class Payslip extends BaseController
$this->loadViews("monthlypayinputs", $this->global, $data, NULL);
}
+ public function exportMonthlyPayInputs1($value)
+ {
+ $headlines = [
+ 'company_name' => 'Resico Solutions',
+ 'file_name' => 'Resico_Salary_'.$value.'.xls',
+ 'type' => 1,
+ 'header1' => ['Emp ID', 'Name', 'Department', 'Salary'], // example headers
+ 'header2' => [],
+ 'footer' => false,
+ ];
+
+ $xldata = [
+ ['E001', 'Arun', 'HR', 25000],
+ ['E002', 'Meena', 'Finance', 28000],
+ ];
+
+ helper('excel');
+ generate_excel($headlines, $xldata);
+ }
+
+
+ public function exportMonthlyPayInputs($value){
+
+ helper('excel');
+ $monthyear = get_date_time_dynamical_format('n-Y','m-Y',"$value");
+ $employee = [];$i=0; $j=0;
+ $company_info = $this->payroll_model->getCompanyInformation();
+ $employee_monthinputs_info = $this->monthlypay_model->getEmpPayDetailsforMonthInputs($monthyear);
+ $driver_monthinputs_info = $this->driverMonthlyPayInputs($monthyear);
+ // $headlines_main = ['S. No','Emp ID','Employees Name','Date of Joining','Destingnation','Total Days' ,'Days Worked','Leave','Basic Salary','Per day Salary','Worked Salary','Per Hours Salary','Earned Salary', '70% BASIC','30% HRA','Gross Salary','Esi 0.75%','Pf 12%','Esi + Pf (Ee`s)' ,'Over Time','Feb-25 Advance','TDS 92B','Refuned PF Nov24','Net Salary','Gross Salary','Over Time','Gross Net Salary','Esi (0)','Pf (0)','Sep-24 Advance','TDS 92B','Refuned PF Nov24','Net Salary','Diff'];
+ $headlines_main = ['S. No','Emp ID','Employees Name','Date of Joining','Destingnation','Total','Days','Leave','Basic','Per day','Worked','Per Hours','Earned','70%','30%','Gross','Esi','Pf','Esi + Pf','Over Time','Feb-25 Advance','TDS 92B','Refuned PF Nov24','Net Salary','Gross','Over Time','Gross Net','Esi','Pf','Sep-24 Advance','TDS 92B','Refuned PF Nov24','Net Salary','Diff'];
+
+ $headlines_sub = ['', '', '', '', '', 'Days','Worked','', 'Salary','Salary','Salary','Salary','Salary', 'BASIC','HRA','Salary','0.75%','12%','Ee`s','','','','','','Salary','','Salary',' 0','0','','','','',''];
+
+ $dum = [];
+ foreach ($employee_monthinputs_info as $key => $rec) {
+ // echo $rec->EmpID;
+ // print_r($dum);die;
+ $dum[$rec->EmpID] = $rec;
+ }
+ $employee_monthinputs_info = array_values($dum);
+
+
+ foreach ($employee_monthinputs_info as $value) {
+
+ $employee[$i]['SNO'] = $i+1;
+ $employee[$i]['ID'] = $value->EmpID;
+ $employee[$i]['Name'] = $value->FirstName;
+ $employee[$i]['DOJ'] = get_date_time_dynamical_format('Y-m-d H:i:s','d-m-Y',"$value->DateofJoining");
+ $employee[$i]['Designation'] = $value->Designation ;
+ $NoofDays = $value->NoofDays; // Month day 30,31,28
+ $employee[$i]['NoofDays'] = round($NoofDays);
+ $Days_worked = $value->Days_worked; // Work day
+ $employee[$i]['Days_worked'] = round($Days_worked);
+ $employee[$i]['Leave'] = round($value->NoofDays - ($Days_worked)); // Absent Days LOP
+ $Basic_Pay = $value->Basic_Pay;
+ // $employee[$i]['Basic_Pay'] = $Basic_Pay;
+ $TotalSalary = $value->TotalSalary;
+ $employee[$i]['TotalSalary'] = number_format($TotalSalary, 2, '.', '');
+ $PerDaySalary = $value->TotalSalary / $NoofDays;
+ $employee[$i]['PerDaySalary'] = number_format($PerDaySalary, 2, '.', '');
+
+ $WorkedSalary = $PerDaySalary * ($Days_worked);
+ $employee[$i]['WorkedSalary'] = number_format($WorkedSalary, 2, '.', '');
+ $PerHrSalary = $PerDaySalary / 8;
+ $employee[$i]['PerHrSalary'] = number_format($PerHrSalary, 2, '.', '');
+ $employee[$i]['EarnedSalary'] = number_format($WorkedSalary, 2, '.', '');
+
+ $BasicWorked = $WorkedSalary * 70 / 100;
+ $employee[$i]['BasicWorked'] = number_format($BasicWorked, 2, '.', '');
+ $HraWorked = $WorkedSalary * 30 / 100;
+ $employee[$i]['HraWorked'] = number_format($HraWorked, 2, '.', '');
+ $employee[$i]['GrossSalary'] = number_format($BasicWorked + $HraWorked, 2, '.', '');
+ if ($value->is_management_team == 1)
+ {
+ $OT_Hrs_Worked = 0; //OT hours
+ $value->OT_Hrs_Worked = 0;
+ } else {
+ $OT_Hrs_Worked = $value->OT_Hrs_Worked; //OT hours
+ }
+ $totSalayOT = ($OT_Hrs_Worked != 0) ? $OT_Hrs_Worked * $PerHrSalary : 0;
+
+ $HRA_Amount = $value->HRA_Amount;
+ $Paid_leave = $value->Paid_leave; // leave day
+ $Monthly_Due = $value->Monthly_Due; // AUTO LOAN DUE
+ $Loan_Recovered = $value->Loan_Recovered; //MANUAL LOAN DUE
+ $due_start_date = $value->DueDate;
+
+ if (strlen((string)$monthyear) == 6) {
+ $monthyear = '0' . $monthyear;
+ }
+ $pmonth = substr($monthyear, 0, 2);
+ $pyear = substr($monthyear, -4);
+
+ $pmonth = substr($monthyear, 0, 2);
+ $pyear = substr($monthyear, -4);
+ $pday = cal_days_in_month(CAL_GREGORIAN, $pmonth, $pyear);
+ $payfulldate = $pyear . '-' . $pmonth . '-' . $pday;
+ $totalDaysWorked = $Days_worked + $Paid_leave;
+ $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;
+ } else if ($Loan_Recovered == 0.00) {
+ if (strtotime($due_start_date) <= strtotime($payfulldate)) {
+ $loan = $Monthly_Due;
+ }
+ } else if ($Loan_Recovered >= 0.00) {
+ if (strtotime($due_start_date) <= strtotime($payfulldate)) {
+ $loan = $Loan_Recovered;
+ }
+ }
+
+ if ($Monthly_Due > $Balance_Amount) {
+ $loan = $Balance_Amount;
+ }
+
+ $PF_Rate = $value->PF_Rate;
+ $ESI_Rate = $value->ESI_Rate;
+
+ $dayHra = $HRA_Amount / $NoofDays;
+ $dayBasic = $Basic_Pay / $NoofDays;
+
+ //current day basic and hra salary
+ if ($value->is_management_team == 1)
+ {
+ $currentDayBasic = $dayBasic * $NoofDays;
+ $currentDayHra = $dayHra * $NoofDays;
+ } else {
+ $currentDayBasic = $dayBasic * $totalDaysWorked;
+ $currentDayHra = $dayHra * $totalDaysWorked;
+ }
+
+ if ($value->esi_applicable == 1) { $esiAmount = ($currentDayBasic + $currentDayHra) * $ESI_Rate / 100; } else { $esiAmount = 0; }
+ if ($value->pf_applicable == 1) { $pfAmount = $currentDayBasic * $PF_Rate / 100; } else { $pfAmount = 0; }
+
+ /** pf amount per day**/
+
+ //echo $totalothour;die;
+ $empSalaryAdd = $currentDayBasic + $currentDayHra + $totSalayOT;
+
+ $empSalarySub = $esiAmount + $pfAmount + $loan;
+
+ $salaryInCurrentday = $empSalaryAdd - $empSalarySub;
+
+ $employee[$i]['ESI'] = number_format($esiAmount, 2, '.', '');
+ $employee[$i]['PF'] = number_format($pfAmount, 2, '.', '');
+ $employee[$i]['ESI_PF'] = number_format($esiAmount + $pfAmount, 2, '.', '');
+ $employee[$i]['OT'] = number_format($totSalayOT, 2, '.', '');
+
+ $employee[$i]['Feb_25_Advance'] = "-";
+ $employee[$i]['TDS_92B'] ="-";
+ $employee[$i]['Refuned_PF_Nov24'] ="-";
+ $employee[$i]['NetSalary'] = round($salaryInCurrentday);
+
+ $employee[$i]['GrossSalary2'] = "-";
+ $employee[$i]['OT2'] = "-";
+ $employee[$i]['GrossNetSalary'] = "-";
+ $employee[$i]['ESI2'] ="-";
+ $employee[$i]['PF2'] ="-";
+ $employee[$i]['Sep_24_Advance'] = "-";
+ $employee[$i]['TDS_92B'] = "-";
+ $employee[$i]['Refuned_PF_Nov24'] = "-";
+ $employee[$i]['Net_Salary'] = "-";
+ $employee[$i]['Diff'] = "-";
+ $employee[$i]['work_location'] = $value->work_location;
+ $employee[$i]['tds_applicable'] = $value->tds_applicable;
+ $employee[$i]['pf_applicable'] = $value->pf_applicable;
+ $employee[$i]['esi_applicable'] = $value->esi_applicable;
+ $i++;
+
+ }
+ $j = $i;
+ foreach($driver_monthinputs_info as $record ){
+ $hra_worked = $record->hra_worked;
+ $basic_worked = $record->basic_worked;
+ $sum_of_amount = ($record->driver_salary+$record->driver_shed+$record->driver_diesel);
+
+ $employee[$j]['SNO'] = $j+1;
+ $employee[$j]['ID'] = $record->EmpID;
+ $employee[$j]['Name'] = $record->FirstName;
+ $employee[$j]['DOJ'] = get_date_time_dynamical_format('Y-m-d H:i:s','d-m-Y',"$record->DateofJoining");
+ $employee[$j]['Designation'] = $record->Designation;
+ $employee[$j]['NoofDays'] = round($record->total_cal_days);
+ $employee[$j]['Days_worked'] = round($record->unique_days);
+ $employee[$j]['Leave'] = round($record->total_cal_days - $record->unique_days);
+ // number_format(0.00, 2, '.', ''); // paid leave
+ // number_format(0.00, 2, '.', ''); //ot hours
+ $employee[$j]['TotalSalary'] = number_format($sum_of_amount, 2, '.', '');
+ $worked_amt = $sum_of_amount / $record->total_cal_days ;
+ $employee[$j]['PerDaySalary'] = number_format($worked_amt, 2, '.', '');
+ $employee[$j]['WorkedSalary'] = number_format($worked_amt, 2, '.', '');
+ $hr_amt = $worked_amt/8;
+ $employee[$j]['PerHrSalary'] = number_format($hr_amt, 2, '.', '');
+ $employee[$j]['EarnedSalary'] = number_format($sum_of_amount, 2, '.', '');
+ $employee[$j]['BasicWorked'] = number_format($basic_worked, 2, '.', '');
+ $employee[$j]['HraWorked'] = number_format($hra_worked, 2, '.', '');
+ $employee[$j]['GrossSalary'] = number_format($basic_worked + $hra_worked, 2, '.', '');
+
+ $employee[$j]['ESI'] = number_format($record->esi_amount, 2, '.', '');
+ $employee[$j]['PF'] = number_format($record->pf_amount, 2, '.', '');
+ $employee[$j]['ESI_PF'] = number_format($record->esi_amount + $record->pf_amount, 2, '.', '');
+ $employee[$j]['OT'] = number_format(0, 2, '.', '');
+ $estTotal = ($basic_worked + $hra_worked + $record->Festival_Bonus)-($record->Monthly_Due+$record->esi_amount+$record->pf_amount);
+
+ $employee[$j]['Feb_25_Advance'] = "-";
+ $employee[$j]['TDS_92B'] ="-";
+ $employee[$j]['Refuned_PF_Nov24'] ="-";
+ $employee[$j]['NetSalary'] = round($estTotal);
+
+ $employee[$j]['GrossSalary2'] = "-";
+ $employee[$j]['OT2'] = "-";
+ $employee[$j]['GrossNetSalary'] = "-";
+ $employee[$j]['ESI2'] ="-";
+ $employee[$j]['PF2'] ="-";
+ $employee[$j]['Sep_24_Advance'] = "-";
+ $employee[$j]['TDS_92B'] = "-";
+ $employee[$j]['Refuned_PF_Nov24'] = "-";
+ $employee[$j]['Net_Salary'] = "-";
+ $employee[$j]['Diff'] = "-";
+ $employee[$j]['work_location'] = $record->work_location;
+ $employee[$j]['tds_applicable'] = $record->tds_applicable;
+ $employee[$j]['pf_applicable'] = $record->pf_applicable;
+ $employee[$j]['esi_applicable'] = $record->esi_applicable;
+ $j++;
+ }
+ $finalFooter[] = $employee;
+ // do not try chatgpt please.
+ $location_info = [];
+ foreach ($employee as $key => $value)
+ {
+ if (isset($value['work_location']) && $value['work_location'] == "Thiruvenkadu") {
+ array_push($location_info,$value);
+ unset($employee[$key]);
+ }
+ }
+
+ $tds_info = [];
+ foreach ($employee as $key => $value)
+ {
+ if (isset($value['tds_applicable']) && (int)$value['tds_applicable'] == 1) {
+ array_push($tds_info,$value);
+ unset($employee[$key]);
+ }
+ }
+
+ $esi_or_pf_info = [];
+ foreach ($employee as $key => $value)
+ {
+ if (isset($value['pf_applicable']) && (int)$value['pf_applicable'] == 1 || isset($value['esi_applicable']) && (int)$value['esi_applicable'] == 1) {
+ array_push($esi_or_pf_info,$value);
+ unset($employee[$key]);
+ }
+ }
+
+ $keysToRemove = ['work_location','tds_applicable','pf_applicable','esi_applicable'];
+ foreach ($tds_info as &$t_item) {
+ foreach ($keysToRemove as $key) {
+ unset($t_item[$key]);
+ }
+ }
+ unset($t_item);
+
+ foreach ($esi_or_pf_info as &$e_item) {
+ foreach ($keysToRemove as $key) {
+ unset($e_item[$key]);
+ }
+ }
+ unset($e_item);
+
+ foreach ($location_info as &$l_item) {
+ foreach ($keysToRemove as $key) {
+ unset($l_item[$key]);
+ }
+ }
+ unset($l_item);
+
+ foreach ($employee as &$o_item) {
+ foreach ($keysToRemove as $key) {
+ unset($o_item[$key]);
+ }
+ }
+ unset($o_item);
+
+ foreach ($finalFooter as &$topLevelArray) {
+ if (is_array($topLevelArray)) {
+ foreach ($topLevelArray as &$employeeArray) { // Changed from $finalFooter to $employeeArray
+ if (is_array($employeeArray)) { // Check $employeeArray instead of $x
+ foreach ($keysToRemove as $key) {
+ if (array_key_exists($key, $employeeArray)) {
+ unset($employeeArray[$key]);
+ }
+ }
+ }
+ }
+ unset($employeeArray); // Break the reference
+ }
+ }
+ unset($topLevelArray); // Break the reference
+
+ $xl[] = array_values($tds_info);
+ $xl[] = array_values($esi_or_pf_info);
+ $xl[] = array_values($location_info);
+ $xl[] = array_values($employee);
+
+ // dd($xl);
+
+ $headlines['company_name'] = isset($company_info[0]->CompanyName) ? $company_info[0]->CompanyName : "Resico India Pvt Ltd";
+ $headlines['header1'] = $headlines_main;
+ $headlines['header2'] = $headlines_sub;
+ $headlines['type'] = 2;
+ $headlines['header2'] = $headlines_sub;
+ $headlines['merge_end_column'] = 7;
+ $headlines['file_name'] = 'ResicoSalary'.$pmonth.'-'.$pyear.'.xls';
+ $headlines['final_Footer'] = $finalFooter;
+
+ generate_excel($headlines,$xl);
+
+
+ // dd($employee);
+
+ }
+
public function driverMonthlyPayInputs($current)
{
@@ -576,7 +894,7 @@ class Payslip extends BaseController
$Estimate_first = explode(".", $Estimate);
- if (!is_numeric($Estimate) || (strlen((string)$Estimate)) > 8 || (strlen((string)$Estimate_first[0])) > 6) {
+ if (!is_numeric($Estimate) || (strlen((string)$Estimate)) > 10 || (strlen((string)$Estimate_first[0])) > 8) {
// echo $Estimate_first[0];
// echo $EmpID . "-Estimate Invalid Data!";
$ErrorFlag++;
@@ -602,7 +920,7 @@ class Payslip extends BaseController
$EmpID = $j['Emp ID'];
$is_driver = $this->driver_model->getDriverName($EmpID,1);
$DaysWorked = $j['Days Worked'];
- $NoTrips = isset($j['Number Of Trips']) ? $j['Number Of Trips'] : 0.00 ;
+ // $NoTrips = isset($j['Number Of Trips']) ? $j['Number Of Trips'] : 0.00 ;
$TotalCalDays = isset($j['Total Days']) ? $j['Total Days'] : 0.00 ;
$ActualSalary = isset($j['Basic Salary']) ? $j['Basic Salary'] : 0.00 ;
$WorkedSalary = isset($j['Worked Salary']) ? $j['Worked Salary'] : 0.00 ;
@@ -659,12 +977,11 @@ class Payslip extends BaseController
$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,
'TotalCalDays' => $TotalCalDays,
- 'no_of_loads'=>(strpos($NoTrips, "(trip)") !== false) ? explode(" ", $NoTrips)[0] : 0,
'monthly_food_amount'=>$Food,
'total_diesel_amount'=>$Diesel,
'total_shed_amount'=>$Shed,
@@ -681,7 +998,6 @@ class Payslip extends BaseController
);
- // print_r($drivermonthlypaydata);die;
$result = $this->driver_model->saveMonthlyData($drivermonthlypaydata);
}
@@ -845,7 +1161,6 @@ class Payslip extends BaseController
// 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;
@@ -878,7 +1193,7 @@ class Payslip extends BaseController
}
}
-
+// echo $html;die;
$mpdf = new Mpdf([
'mode' => 'utf-8',
@@ -899,7 +1214,7 @@ class Payslip extends BaseController
$mpdf->WriteHTML($html);
$mpdf->SetTitle('Resico:Payslip');
- $mpdf->Output("Payslip-" . $filename . ".pdf", 'D');
+ $mpdf->Output($filename . ".pdf", 'D');
}
diff --git a/app/Controllers/Requisitionform.php b/app/Controllers/Requisitionform.php
index 287dee63..e6cd0c8d 100755
--- a/app/Controllers/Requisitionform.php
+++ b/app/Controllers/Requisitionform.php
@@ -130,18 +130,7 @@ class Requisitionform extends BaseController
// echo 'ReqType'.$ReqPOType;
$data['ReqPOType'] = $ReqPOType == '' ? $ReqType : $ReqPOType;
$data['LineItem'] = $this->requistion_model->getEditRequistItemList($ReqNo);
-
$data['description'] = '';
- foreach ($data['LineItem'] as $key => $line) {
- $description = isset($line->MaterialDescription) ? $line->MaterialDescription : null;
-
- $data['LineItem'][$key]->CategoryName = $line->MaterialCode
- ? $this->requistion_model->getCategoryName($line->MaterialCode)
- : "";
- }
-
-
-
$data['CostCenter'] = $this->requistion_model->getCostCenterUserID($userID);
// $data['MaterialCode'] = $this->requistion_model->EditMaterialCode($ReqNo, $ReqType); // Old Based on Type..
$data['MaterialCode'] = $this->requistion_model->EditMaterialCode($ReqNo);
@@ -163,7 +152,7 @@ class Requisitionform extends BaseController
}
$this->requistion_model->DeleteRequistionLineItem($ReqNo, $MaterialCode);
- return $this->response->setJSON("Successfully Deleted the Line item" . $ReqNo);
+ return $this->response->setJSON("Successfully Deleted the Line item " . $ReqNo);
}
/**
@@ -215,49 +204,6 @@ class Requisitionform extends BaseController
$this->loadViews("requisitionlistapproval", $this->global, $data, NULL);
}
- /**
- * This function used to load the Employee details based on the EmpID selection
- */
- function GetSelectedEmpDetails()
- {
- $ReqType = $_GET['ReqType'];
- $EmpID = $this->request->getPost('id');
- $empDetails = $this->requistion_model->GetEmployeeDetails($EmpID);
- $DeptCode = $empDetails[0]['DEPCode'];
- $CostList = $this->requistion_model->GetCostCenterByDept($DeptCode);
- $HTML = "";
- $BudAmount = "";
- if (count($CostList) > 0) {
- for ($j = 0; $j < count($CostList); $j++) {
- $Code = $CostList[$j]['CostCenterCode'];
- $Name = $CostList[$j]['CostCenterName'];
- $HTML .= "";
- }
- }
- if (count($CostList) == 1) {
-
- $FYStart = '';
- $FYEnd = '';
- $FiscalYear = $this->costcenter_model->getFiscalYear();
- if (!empty($FiscalYear)) {
- foreach ($FiscalYear as $Fy) {
- $FYStart = $Fy->StartYear;
- $FYEnd = $Fy->EndYear;
- }
- }
-
- $FYdt = $FYStart . " - " . $FYEnd;
-
-
- $result = $this->purchaseorder_model->GetAvailableBudgetAmount($CostCode, $FYdt, $ReqType);
- //print_r($result);
- $AvilBudAmt = '0';
- if (count($result) > 0) {
- $BudAmount = $result[0]['BudgetAmount'] - $result[0]['Totalvalue'];
- }
- }
- die(json_encode(array('emp' => $empDetails, 'Cost' => $HTML, 'AvlAmount' => $BudAmount)));
- }
function getAvailableBudAmount()
{
@@ -288,6 +234,7 @@ class Requisitionform extends BaseController
{
$ReqType = $this->request->getPost('id');
+ $CatType = $this->request->getPost('cid');
$MaterialCode = $this->requistion_model->GetMaterialCode($ReqType);
$MaterialName = "";
@@ -298,7 +245,9 @@ class Requisitionform extends BaseController
for ($j = 0; $j < count($MaterialCode); $j++) {
$Code = $MaterialCode[$j]['MaterialCode'];
$Name = $MaterialCode[$j]['MaterialName'];
- $HTML .= "";
+ $HSN = $MaterialCode[$j]['HSNCODE'] ? $MaterialCode[$j]['HSNCODE']." - " : "";
+ // $HTML .= "";
+ $HTML .= "";
}
$MaterialName = $MaterialCode[0]['MaterialName'];
$UOM = $MaterialCode[0]['UOM'];
@@ -319,6 +268,28 @@ class Requisitionform extends BaseController
return $this->response->setJSON(['MatDetail' => $MaterialDetails]);
}
+
+ function getCategoryDetails()
+ {
+
+ $CategoryDetails = $this->requistion_model->getmaterialCategory();
+ $HTML = "";
+
+ if (count($CategoryDetails) > 0) {
+ for ($j = 0; $j < count($CategoryDetails); $j++) {
+ $Code = $CategoryDetails[$j]['Key'];
+ $Name = $CategoryDetails[$j]['ConfigValue'];
+
+ $HTML .= "";
+
+ }
+
+ }
+
+ $response = ['Category' => $HTML];
+ return $this->response->setJSON($response);
+ }
+
/**
* To Insert the Requistion Details to Database
*/
@@ -399,9 +370,13 @@ class Requisitionform extends BaseController
}
if ($Status == REQ_DRAFT) {
- $display_message = 'Successfully Saved the Requistion details.Requistion No is ' . $ReqNumber;
- } else {
- $display_message = 'Successfully Created the Requistion details.Requistion No is ' . $ReqNumber;
+ $display_message = "Successfully Saved the Requisition details in Draft!\nRequistion Number Is: ". $ReqNumber;
+ // $display_message = "Requistion Saved as Draft!\nRequistion Number Is: ". $ReqNumber;
+ } else if($Status == REQ_APPROVED) {
+ $display_message = "Successfully Updated the Requistion details as Approved!\nRequistion Number Is: ". $ReqNumber;
+ // $display_message = "Requistion Created Successfully!\nRequistion Number Is: ". $ReqNumber;
+ }else{
+ $display_message = "Successfully Created the Requistion details!\nRequistion Number Is: ". $ReqNumber;
}
return $this->response->setJSON([$display_message]);
@@ -468,7 +443,8 @@ class Requisitionform extends BaseController
}
}
}
- $display_message = 'Successfully Updated the Requistion details.Requistion No is ' . $ReqNumber;
+
+ $display_message = "Successfully Updated the Requistion details!\nRequistion Number Is: ". $ReqNumber;
return $this->response->setJSON([$display_message]);
}
@@ -601,7 +577,8 @@ class Requisitionform extends BaseController
$Request = array('Status' => $Status, 'Comments' => $Remarks, 'ApprovedOn' => $ApprovedDate, 'Approvedby' => $ApprovedBy);
$this->requistion_model->UpdateRequistion($Request, $ReqNo);
- return $this->response->setJSON(['message' => "Successfully Updated the Requisition No: " . $ReqNo]);
+
+ return $this->response->setJSON(['message' => "Requistion Updated Successfully!\nRequistion Number Is: ".$ReqNo]);
}
}
diff --git a/app/Helpers/excel_helper.php b/app/Helpers/excel_helper.php
index c4ab8e73..3ae8c548 100755
--- a/app/Helpers/excel_helper.php
+++ b/app/Helpers/excel_helper.php
@@ -3,47 +3,412 @@ use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Reader\Exception as SpreadsheetReaderException;
+use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
+use PhpOffice\PhpSpreadsheet\Style\Alignment;
+use PhpOffice\PhpSpreadsheet\Style\Color;
+use PhpOffice\PhpSpreadsheet\Style\Font;
+use PhpOffice\PhpSpreadsheet\Style\Fill;
+use PhpOffice\PhpSpreadsheet\Style\Border;
+use PhpOffice\PhpSpreadsheet\Style\Borders;
+
if (!function_exists('generate_excel')) {
-
- /*
- This function generates an Excel file using the given headers and data and saves it with the specified filename.
- It utilizes the PhpSpreadsheet library to create and manipulate Excel files.
-
- Parameters:
- - $headers: An array containing the column headers for the Excel sheet.
- - $data: An array containing the data to be inserted into the Excel sheet.
- - $filename: The name of the file to be saved.
- - $totals (optional): A flag indicating whether to include total calculations in the Excel sheet.
- */
-
-
- function generate_excel($headers, $data, $filename)
+
+ function generate_excel($headlines, $xldata)
{
+
+ $headersMain = $headlines['header1'];
+ $headersSub = $headlines['header2'];
+ $company = $headlines['company_name'];
+ $filename = $headlines['file_name'];
+ $type = $headlines['type'];
+ $footer = false;
+ $mergeEndCol = $headlines['merge_end_column'];
+ // $type = 1 means $data is single
+ // $type = 2 means $data is multiple array
+
+
// Create new Spreadsheet object
$spreadsheet = new Spreadsheet();
+ $sheet = $spreadsheet->getActiveSheet();
+
+ // Set worksheet title
+ $sheet->setTitle('Sheet 1');
- // Set worksheet title
- $spreadsheet->getActiveSheet()->setTitle('Sheet 1');
+
+ // A1 Start here... should be compnay name ....
+ $sheet->setCellValue('A1', $company);
- // Set headers into the spreadsheet
- $spreadsheet->getActiveSheet()->fromArray([$headers], null, 'A1');
+ // Get last column letter based on headers count
+ // $lastColumnLetter = getExcelColumnName(count($headers) - 1);
+ $colCount = count($headersMain);
+
+ // Calculate end column by character math (works up to 'ZZ')
+ $lastColumnLetter = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($colCount);
- // Set data into the spreadsheet
- $spreadsheet->getActiveSheet()->fromArray($data, null, 'A2');
+ $sheet->mergeCells("A1:{$lastColumnLetter}1");
+ // Style A1
+ $sheet->getStyle("A1")->getFill()
+ ->setFillType(Fill::FILL_SOLID)
+ ->getStartColor()->setRGB('ADD8E6'); // Light blue
+ $sheet->getStyle("A1")->getAlignment()
+ ->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER)
+ ->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
+
+ $sheet->getStyle("A1")->getFont()->setBold(true)->setSize(14);
+
+ $sheet->getStyle("A1")->getFont()
+ ->getColor()
+ ->setRGB(Color::COLOR_WHITE);
+
+ // /. A1 ends here
+ $currentRow = 2; // Start at row 2
+ if($type == 1){
+ $startCell = 'A' . $currentRow;
+ $lastcolrow = callHeader($sheet, $headersMain, $startCell,$headersSub);
+ $lastcolrow2 = callSkipRow($lastcolrow);
+ $lastcolrow3 = callData($sheet,$headersMain,$xldata,$lastcolrow2,$mergeEndCol);
+ $lastcolrow4 = callSkipRow($lastcolrow3);
+ if($footer){
+ $lastcolrow5 = callFooter($sheet, $headersMain, $xldata, $lastcolrow4,'','',$mergeEndCol);
+ }
+
+
+ }else if($type == 2){
+ // $final_Footer=[];
+ // foreach($xldata as $i => $xl){
+ // echo $i;
+ // echo "";
+ // print_r($xl[$i]);
+ // echo "
";
+ // // echo count($xl[$i])."**";
+ // // $forFinalFooter
+ // }
+ // foreach ($xldata as $i => $xl) {
+ // $forFinalFooter[] = $xl[$i];
+ // }
+ $final_Footer = isset($headlines['final_Footer']) && !empty($headlines['final_Footer']) ? $headlines['final_Footer'] : [];
+
+ foreach ($xldata as $index => $data) {
+ if (!empty($data)) {
+ $startCell = 'A' . $currentRow;
+
+ $lastcolrow = callHeader($sheet, $headersMain, $startCell,$headersSub);
+ $lastcolrow2 = callSkipRow($lastcolrow);
+ $lastcolrow3 = callData($sheet, $headersMain, $data, $lastcolrow2);
+ $lastcolrow4 = callSkipRow($lastcolrow3);
+ $lastcolrow5 = callFooter($sheet, $headersMain, $data, $lastcolrow4,'Total Amount Rs','228B22',$mergeEndCol);
+ $lastcolrow6 = callSkipRow($lastcolrow5);
+
+ // Update currentRow for next iteration
+ $currentRow = (int) filter_var($lastcolrow6, FILTER_SANITIZE_NUMBER_INT);
+ } else {
+ $startCell = 'A' . $currentRow;
+ $lastcolrow = callHeader($sheet, $headersMain, $startCell,$headersSub);
+ $lastcolrow2 = callSkipRow($lastcolrow);
+
+ $currentRow = (int) filter_var($lastcolrow2, FILTER_SANITIZE_NUMBER_INT);
+ }
+ }
+
+ if(!empty($final_Footer)){
+ $startCell = 'A' . $currentRow;
+ callFooter($sheet, $headersMain, $final_Footer[0], $startCell,'Final Net Salary Amount Rs','DC143C',$mergeEndCol);
+ // echo "cr".$currentRow;die;
+ }
+
+ // $final_Footer
+
+ }
// Create Excel writer
$writer = new Xlsx($spreadsheet);
+ $columnCount = count($headersMain);
+ for ($col = 1; $col <= $columnCount; $col++) {
+ $columnLetter = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($col);
+ $sheet->getColumnDimension($columnLetter)->setAutoSize(true);
+ }
+
+ $highestColumn = $sheet->getHighestColumn(); // e.g., 'E'
+ $highestRow = $sheet->getHighestRow(); // e.g., 10
+
+ // Build the full range (e.g., 'A1:E10')
+ $range = 'A1:' . $highestColumn . $highestRow;
+
+ // Apply border to that range
+ $sheet->getStyle($range)->applyFromArray([
+ 'borders' => [
+ 'allBorders' => [
+ 'borderStyle' => Border::BORDER_THIN,
+ 'color' => ['argb' => 'FF000000'],
+ ],
+ ],
+ ]);
try {
+
// Save Excel file to the specified path
- $writer->save($filename);
- return true; // Return true if file was successfully saved
+ ob_clean();
+ header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
+ header("Content-Disposition: attachment; filename=\"$filename\"");
+ header('Cache-Control: max-age=0');
+
+ $writer->save('php://output'); // stream to browser
+ exit; // Return true if file was successfully saved
+
} catch (\Exception $e) {
// Log or handle the exception
return false; // Return false if there was an error saving the file
}
}
}
+
+
+function callHeader($sheet, $headersMain, $startCell, $headersSub = []) {
+ $rowNumber = (int) filter_var($startCell, FILTER_SANITIZE_NUMBER_INT);
+
+ $startCol = 'A';
+ $colCount = count($headersMain);
+
+ // Calculate end column by character math (works up to 'ZZ')
+ $endCol = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($colCount);
+
+ // Check if sub-header has any non-empty value
+ $hasSubHeader = !empty(array_filter($headersSub, function ($val) {
+ return trim($val) !== '';
+ }));
+
+ // 1. Write Main Header
+ $sheet->fromArray([$headersMain], null, $startCell);
+ $mainHeaderRange = "{$startCol}{$rowNumber}:{$endCol}{$rowNumber}";
+
+ // Style Main Header
+ $sheet->getStyle($mainHeaderRange)->applyFromArray([
+ 'font' => [
+ 'bold' => true,
+ 'color' => ['rgb' => 'FF0000'],
+ 'size' => 12,
+ ],
+ 'alignment' => [
+ 'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
+ 'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,
+ ]
+ ]);
+
+ if ($hasSubHeader) {
+ // 2. Write Sub Header
+ $subHeaderRow = $rowNumber + 1;
+ $sheet->fromArray([$headersSub], null, "A{$subHeaderRow}");
+
+ $subHeaderRange = "{$startCol}{$subHeaderRow}:{$endCol}{$subHeaderRow}";
+
+
+ $sheet->getStyle($subHeaderRange)->applyFromArray([
+ 'font' => [
+ 'bold' => true,
+ 'color' => ['rgb' => 'FF0000'],
+ 'size' => 12,
+ ],
+ 'alignment' => [
+ 'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
+ 'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,
+ ]
+ ]);
+
+ return 'A' . ($subHeaderRow + 1);
+ } else {
+ return 'A' . ($rowNumber + 1);
+ }
+}
+
+
+
+function callData($sheet, $headers, $data, $startCell) {
+
+ $startRow = (int) filter_var($startCell, FILTER_SANITIZE_NUMBER_INT);
+ $startCol = 'A';
+ $sheet->fromArray($data, null, $startCell);
+
+ $dataRowCount = count($data);
+ $lastDataRow = $startRow + $dataRowCount;
+
+ // $dataColCount = count($headers);
+ // $lastDataColumn = getExcelColumnName($dataColCount - 1);
+ // $dataRange = "{$startCol}{$startRow}:{$lastDataColumn}{$lastDataRow}";
+ // Set font color to black
+ // $sheet->getStyle($dataRange)->getFont()->getColor()->setRGB('000000');
+
+ return 'A' . ($lastDataRow + 1); // return next row
+}
+
+function callSkipRow($startCell){
+ $row = (int) filter_var($startCell, FILTER_SANITIZE_NUMBER_INT);
+ return 'A' . ($row + 1); // just skip a line
+}
+
+// function callFooter($sheet, $headers, $data, $startCell,$mergeEndindex) {
+
+// $row = (int) filter_var($startCell, FILTER_SANITIZE_NUMBER_INT);
+
+// $startCol = preg_replace('/[0-9]/', '', $startCell);
+
+// // Determine numeric columns dynamically
+// // $numericIndexes = [];
+// // foreach ($data as $index => $val) {
+// // foreach ($data as $rowData) {
+// // if (isset($rowData[$index]) && is_numeric($rowData[$index])) {
+// // $numericIndexes[] = $index;
+// // break;
+// // }
+// // }
+// // }
+// if (!empty($data)) {
+// // Look at the first row
+// $firstRow = $data[0];
+
+// foreach ($firstRow as $key => $value) {
+// foreach ($data as $row) {
+// if (isset($row[$key]) && is_numeric($row[$key])) {
+// $numericIndexes[] = $key; // use the key (could be column name)
+// break;
+// }
+// }
+// }
+// }
+
+// // Get first numeric column index for placing totals
+// if (empty($numericIndexes)) return 'A' . ($row + 1); // Nothing to total
+
+// sort($numericIndexes);
+// $firstNumericIndex = $numericIndexes[0];
+// $colCount = count($headers);
+
+// // Calculate end column by character math (works up to 'ZZ')
+// if($mergeEndindex == ''){
+// $mergeEndCol = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex($colCount - 1);
+
+// }else{
+// $mergeEndCol = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex((int)$mergeEndindex);
+// }
+
+
+
+// // echo gettype($row);die;
+
+// // Merge from A to column before first numeric column (for "TOTAL" label)
+// $sheet->mergeCells("A{$row}:{$mergeEndCol}{$row}");
+// $sheet->setCellValue("A{$row}", 'TOTAL');
+
+// // Style for TOTAL label
+// $sheet->getStyle("A{$row}:{$mergeEndCol}{$row}")->applyFromArray([
+// 'font' => [
+// 'bold' => true,
+// 'size' => 14,
+// 'color' => ['rgb' => '228B22']
+// ],
+// 'alignment' => [
+// 'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
+// 'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER
+// ]
+// ]);
+
+// // Total each numeric column and write to corresponding cell
+// foreach ($numericIndexes as $index) {
+// $total = 0;
+// foreach ($data as $rowData) {
+// $value = $rowData[$index] ?? 0;
+// if (is_numeric($value)) {
+// $total += $value;
+// }
+// }
+// $colLetter = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::stringFromColumnIndex((int)$index);
+// $sheet->setCellValue("{$colLetter}{$row}", $total);
+// }
+
+// return 'A' . ($row + 1); // Return next available row
+// }
+function callFooter($sheet, $headers, $data, $startCell,$label,$code,$mergeEndIndex = null) {
+ $row = (int) filter_var($startCell, FILTER_SANITIZE_NUMBER_INT);
+ $startCol = preg_replace('/[0-9]/', '', $startCell);
+
+ $numericKeys = [];
+ $columnKeys = array_keys($data[0] ?? []);
+ $columnKeyToIndex = array_flip($columnKeys); // key => index
+
+ // Detect numeric columns
+ foreach ($columnKeys as $key) {
+ foreach ($data as $rowData) {
+ if (isset($rowData[$key]) && is_numeric($rowData[$key])) {
+ $numericKeys[] = $key;
+ break;
+ }
+ }
+ }
+
+ // If no numeric columns, skip total row
+ if (empty($numericKeys)) {
+ return $startCol . ($row + 1);
+ }
+
+ // Determine where to end the merge for the TOTAL label
+ if ($mergeEndIndex === null || $mergeEndIndex === '') {
+ $firstNumericKey = $numericKeys[0];
+ $firstNumericIndex = $columnKeyToIndex[$firstNumericKey];
+ $mergeEndIndex = $firstNumericIndex > 0 ? $firstNumericIndex - 1 : 0;
+ }
+
+ // Write totals for each numeric column
+ foreach ($numericKeys as $colKey) {
+ $total = 0;
+ foreach ($data as $rowData) {
+ $val = $rowData[$colKey] ?? 0;
+ if (is_numeric($val)) {
+ $total += $val;
+ }
+ }
+
+ $colIndex = $columnKeyToIndex[$colKey];
+ $colLetter = Coordinate::stringFromColumnIndex($colIndex + 1);
+ $sheet->setCellValue("{$colLetter}{$row}", $total);
+ $sheet->getStyle("{$colLetter}{$row}")->getNumberFormat()->setFormatCode('#,##0.00');
+ $sheet->getStyle("{$colLetter}{$row}")->applyFromArray([
+ 'font' => [
+ 'bold' => true,
+ 'size' => 12
+ ],
+ 'alignment' => [
+ 'horizontal' => Alignment::HORIZONTAL_CENTER,
+ 'vertical' => Alignment::VERTICAL_CENTER
+ ]
+ ]);
+
+
+ }
+
+
+ $mergeEndCol = Coordinate::stringFromColumnIndex((int)$mergeEndIndex + 1);
+ $mergeRange = "{$startCol}{$row}:{$mergeEndCol}{$row}";
+
+ // Merge cells and write $label name = "TOTAL"
+ $sheet->mergeCells($mergeRange);
+ $sheet->setCellValue("{$startCol}{$row}", $label);
+
+ // Style "TOTAL" label
+ $sheet->getStyle($mergeRange)->applyFromArray([
+ 'font' => [
+ 'bold' => true,
+ 'size' => 14,
+ 'color' => ['rgb' => $code]
+ ],
+ 'alignment' => [
+ 'horizontal' => Alignment::HORIZONTAL_CENTER,
+ 'vertical' => Alignment::VERTICAL_CENTER
+ ]
+ ]);
+
+ // Return next row cell reference
+ return $startCol . ($row + 1);
+}
+
diff --git a/app/Models/Config_model.php b/app/Models/Config_model.php
index cd16446c..34fb88c8 100755
--- a/app/Models/Config_model.php
+++ b/app/Models/Config_model.php
@@ -337,6 +337,7 @@ return $result;
$result = $this->db->table('t_configdetails')
->where('Config_ID','C023')
+ ->where('isActive',1)
->get()
->getResultArray();
diff --git a/app/Models/Driver_model.php b/app/Models/Driver_model.php
index 5fee3b33..3a446d87 100755
--- a/app/Models/Driver_model.php
+++ b/app/Models/Driver_model.php
@@ -131,12 +131,14 @@ class Driver_model extends Model
}
function driverAttendanceForMonthlyPayInputs($from,$to){
- // list($year,$month,$date) = explode('-', get_current_date());
+ list($year,$month,$date) = explode('-', $from);
+ $t_driver_monthly_pay_inputs_month_year = "$month-$year";
// $new_date_format = "$year-$month-01";
$builder = $this->db->table('t_driver_attendance')
->select('t_driver_attendance.driver_id,driver_details.FirstName as driver_name,driver_details.is_driver,COUNT(DISTINCT t_driver_attendance.date) AS unique_days,
- 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')
+ DATE_FORMAT(date, "%M-%Y") AS month_year,driver_details.*,t_emp_pay_data.PF_Rate,t_emp_pay_data.ESI_Rate,
+ COUNT(t_driver_attendance.load_type) AS no_of_loads')
->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')
@@ -145,18 +147,21 @@ class Driver_model extends Model
->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 and t_loan_master.Remaining_Due != 0','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')
+ ->join('t_driver_monthly_pay_inputs',
+ 't_driver_monthly_pay_inputs.driver_id = driver_details.EmpID AND
+ t_driver_monthly_pay_inputs.month_year = "'.$t_driver_monthly_pay_inputs_month_year.'"',
+ 'left'
+ )
->where('t_driver_attendance.date BETWEEN "'.$from.'" AND "'.$to.'"')
// ->where("t_loan_master.Due_Start_Date", $new_date_format)
->groupBy('DATE_FORMAT(t_driver_attendance.date, "%M-%Y"),t_driver_attendance.driver_id');
$query = $builder->get();
// $last_query = $this->db->getLastQuery();
- // echo $last_query;die;
+ // echo $last_query;
return $query->getResult();
}
-
function driverMonthlyPayInputs($monthYear){
$builder = $this->db->table('t_driver_monthly_pay_inputs');
@@ -221,7 +226,8 @@ class Driver_model extends Model
->where('DATE_FORMAT(`t_driver_attendance`.`date`, "%Y-%m")',$monthyear)
->where('t_driver_attendance.driver_id',$input_driver_id);
$query = $builder->get()->getRow();
- // $last_query = $this->db->getLastQuery();
+ // $last_query = $this->db->getLastQuery();
+ // echo $last_query;die;
return $query;
}
function getPayOn()
@@ -317,13 +323,14 @@ class Driver_model extends Model
$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('t_emp_pay_data.PF_Rate,t_emp_pay_data.ESI_Rate')
+ ->select('t_emp_pay_data.PF_Rate,t_emp_pay_data.ESI_Rate,COUNT(t_driver_attendance.load_type) AS no_of_load')
->select('month.Festival_Bonus,month.BASIC,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_monthly_pay_inputs month', 'month.driver_id = Emp.EmpID');
+ ->join('t_driver_monthly_pay_inputs month', 'month.driver_id = Emp.EmpID')
+ ->join('t_driver_attendance','t_driver_attendance.driver_id = Emp.EmpID');
if ($PayOn != '') {
$builder->where('Pay.PayOn', $PayOn);
}
diff --git a/app/Models/Employeedetails_model.php b/app/Models/Employeedetails_model.php
index 9e2348e0..fd8e6aa6 100755
--- a/app/Models/Employeedetails_model.php
+++ b/app/Models/Employeedetails_model.php
@@ -264,7 +264,8 @@ class Employeedetails_model extends Model
->join('t_employee_details as emp', 'emp.empid=tbl.empid', 'left')
->join('tbl_users as tbl1', ' ed.UpdatedBy = tbl1.userid', 'left')
->join('t_employee_details as emp1', 'emp1.empid=tbl1.empid', 'left')
- ->join('t_emp_pay_data', 'ed.EmpID=t_emp_pay_data.EmpID', 'left');
+ ->join('t_emp_pay_data', 'ed.EmpID=t_emp_pay_data.EmpID', 'left')
+ ->groupBy('ed.EmpID');
return $builder->get()->getResultArray();
diff --git a/app/Models/Emppaydate_model.php b/app/Models/Emppaydate_model.php
index 3a185c4d..b31e7bec 100755
--- a/app/Models/Emppaydate_model.php
+++ b/app/Models/Emppaydate_model.php
@@ -68,7 +68,7 @@ class Emppaydate_model extends Model
}
function getUserInfo($paydataid)
{
- $sql = 'select t_emp_pay_data.Pay_Data_ID,t_emp_pay_data.EmpID as PAYEMPID,t_emp_pay_data.Basic_Pay,t_emp_pay_data.HRA_Rate,t_emp_pay_data.Allowances,t_emp_pay_data.Food_Allowances,t_emp_pay_data.Incentives,t_emp_pay_data.PF_Rate,t_emp_pay_data.ESI_Rate,t_emp_pay_data.HRA_Amount,t_emp_pay_data.TotalSalary,t_employee_details.FirstName,t_employee_details.LastName,t_loan_master.*from t_emp_pay_data
+ $sql = 'select t_emp_pay_data.Pay_Data_ID,t_emp_pay_data.EmpID as PAYEMPID,t_emp_pay_data.Basic_Pay,t_emp_pay_data.HRA_Rate,t_emp_pay_data.Allowances,t_emp_pay_data.Food_Allowances,t_emp_pay_data.Incentives,t_emp_pay_data.PF_Rate,t_emp_pay_data.ESI_Rate,t_emp_pay_data.HRA_Amount,t_emp_pay_data.TotalSalary,t_employee_details.FirstName,t_employee_details.LastName,t_employee_details.is_driver,t_loan_master.*from t_emp_pay_data
join t_employee_details on t_emp_pay_data.EmpID=t_employee_details.EmpID
left join t_loan_master on t_emp_pay_data.EmpID=t_loan_master.EmpID and t_loan_master.is_Active = 1
where t_emp_pay_data.Pay_Data_ID = ?;';
@@ -76,6 +76,23 @@ class Emppaydate_model extends Model
return $query->getResult();
}
+
+ function driverPayInfo($EmpID,$monthYear){
+
+ $builder = $this->db->table('t_driver_monthly_pay_inputs');
+ $builder->select('t_driver_monthly_pay_inputs.*, t_driver_payroll.id as payroll_id');
+ $builder->join('t_driver_payroll', 't_driver_payroll.driver_id = t_driver_monthly_pay_inputs.driver_id', 'left');
+ $builder->where('t_driver_monthly_pay_inputs.driver_id', $EmpID);
+ $builder->where('t_driver_monthly_pay_inputs.month_year', $monthYear);
+ $builder->groupBy('t_driver_monthly_pay_inputs.driver_id, t_driver_monthly_pay_inputs.month_year');
+
+ $query = $builder->get();
+ $result = $query->getResult();
+
+ return $result;
+
+ }
+
function getUserLoanHistoryInfo($loan_id)
{
$sql = 'select * from t_loan_history where Loan_ID = ?;';
diff --git a/app/Models/Inwardgateregister_model.php b/app/Models/Inwardgateregister_model.php
index a7983aa8..db7dbb13 100755
--- a/app/Models/Inwardgateregister_model.php
+++ b/app/Models/Inwardgateregister_model.php
@@ -195,7 +195,7 @@ class Inwardgateregister_model extends Model
function viewpurchaseorder($PO)
{
- $subQuery = 'SELECT distinct POM.PONO, POL.MaterialCode, POL.Quantity, POL.ReceivedQuantity, (POL.Quantity - POL.ReceivedQuantity) as PendingQty, QuantityRejected, POL.PONO, MM.MaterialName, MM.UOM,POL.Rate
+ $subQuery = 'SELECT distinct POM.PONO, POL.MaterialCode, POL.Quantity, POL.ReceivedQuantity, (POL.Quantity - POL.ReceivedQuantity) as PendingQty, QuantityRejected, POL.PONO, MM.MaterialName, MM.UOM,MM.HSNCODE,POL.Rate
FROM t_purchaseorder_master POM
LEFT JOIN t_purchaseorder_lineitem POL ON POL.PONO = POM.PONO
LEFT JOIN t_igr_master IGM ON IGM.PONO = POL.PONO
@@ -568,7 +568,7 @@ class Inwardgateregister_model extends Model
->distinct()
->select("
igr.IGRNO,igr.*,igrd.*,
- MM.MaterialName,MM.UOM,
+ MM.MaterialName,MM.UOM,MM.HSNCODE,
sup.Address,sup.SupplierName,
POL.Rate,
POM.ServiceDescription,POL.Quantity,POM.POType,POM.IsOpenOrder,
diff --git a/app/Models/Monthlypay_model.php b/app/Models/Monthlypay_model.php
index d984d3d6..12903b92 100755
--- a/app/Models/Monthlypay_model.php
+++ b/app/Models/Monthlypay_model.php
@@ -103,7 +103,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.*,t_employee_details.FirstName,t_employee_details.DateofJoining,t_employee_details.Designation,t_employee_details.esi_applicable,t_employee_details.pf_applicable,t_employee_details.is_management_team,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.Id,t_monthly_pay_inputs.Loan_Recovered,t_monthly_pay_inputs.Estimate,t_monthly_pay_inputs.Festival_Bonus,t_monthly_pay_inputs.Other_Deductions,t_monthly_pay_inputs.is_payslip_generated,t_loan_history .Balance_Amount,t_employee_details.is_driver
+ $sql = "select t_emp_pay_data.EmpID,t_emp_pay_data.*,t_employee_details.work_location,t_employee_details.tds_applicable,t_employee_details.FirstName,t_employee_details.DateofJoining,t_employee_details.Designation,t_employee_details.esi_applicable,t_employee_details.pf_applicable,t_employee_details.is_management_team,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.Id,t_monthly_pay_inputs.Loan_Recovered,t_monthly_pay_inputs.Estimate,t_monthly_pay_inputs.Festival_Bonus,t_monthly_pay_inputs.Other_Deductions,t_monthly_pay_inputs.is_payslip_generated,t_loan_history .Balance_Amount,t_employee_details.is_driver
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 = ?
@@ -119,7 +119,7 @@ class Monthlypay_model extends Model
$query = $this->db->query($sql, array($month, $month, $lastdate, $current, $current));
// Get the last executed query
// $last_query = $this->db->getLastQuery();
- // echo $last_query;
+ // echo $last_query;die;
return $query->getResult();
}
diff --git a/app/Models/Purchaseorder_model.php b/app/Models/Purchaseorder_model.php
index 8ce9adcd..82deffbd 100755
--- a/app/Models/Purchaseorder_model.php
+++ b/app/Models/Purchaseorder_model.php
@@ -1096,7 +1096,7 @@ mstr.CourierNo,pom.Status,pom.POType') //,bill.BillNo,bill.FilePath,
{
$subQuery = 'SELECT distinct LineItem.LineitemAuditorNotes,LineItem.LineItemNo,LineItem.ReqNo,LineItem.Per,Mat.MaterialCode,Mat.MaterialName,Mat.UOM,LineItem.Quantity,ReceivedQuantity,Rate,LineItem.Status,(LineItem.Quantity *Rate) as BasicValue ,(After_CGST + After_SGST + After_IGST) as Taxamount,Dept.DepartmentName
- ,TotalValue,CGST,After_CGST,SGST,After_SGST,IGST,After_IGST,otherallowance,LineItem.CostCenterCode,LineItem.ServiceFrequency,LineItem.ServiceMaterialDescription,Req.Schedule_Type,Req.NumberOfService,Req.Service_Period,ReqDet.MaterialDescription
+ ,TotalValue,CGST,After_CGST,SGST,After_SGST,IGST,After_IGST,otherallowance,LineItem.CostCenterCode,LineItem.ServiceFrequency,LineItem.ServiceMaterialDescription,Req.Schedule_Type,Req.NumberOfService,Req.Service_Period,ReqDet.MaterialDescription,Mat.HSNCODE
FROM t_purchaseorder_lineitem LineItem
left join t_materialmaster Mat on Mat.MaterialCode = LineItem.MaterialCode
left join t_service_tax Tax on Tax.LineItemNo = LineItem.LineItemNo
@@ -1142,7 +1142,7 @@ mstr.CourierNo,pom.Status,pom.POType') //,bill.BillNo,bill.FilePath,
{
$subQuery = 'SELECT distinct LineItem.LineitemAuditorNotes,LineItem.LineItemNo,Req.ReqNo,Mat.MaterialCode,Mat.MaterialName,Mat.UOM,Quantity,Per,ServiceMaterialDescription,ReceivedQuantity,Rate,Req.Status,(Quantity *Rate) as BasicValue , (( AfterSGST + AfterCGST +
- AfterIGST )) as Taxamount ,TotalValue,Tax.*,Req.CostCenterCode,Dept.DepartmentName,LineItem.LineitemAuditorNotes
+ AfterIGST )) as Taxamount ,TotalValue,Tax.*,Req.CostCenterCode,Dept.DepartmentName,LineItem.LineitemAuditorNotes,Mat.HSNCODE
FROM t_purchaseorder_lineitem LineItem
join t_materialmaster Mat on Mat.MaterialCode = LineItem.MaterialCode
left join t_revenue_tax Tax on Tax.LineItemNo = LineItem.LineItemNo
@@ -1337,7 +1337,7 @@ mstr.CourierNo,pom.Status,pom.POType') //,bill.BillNo,bill.FilePath,
ExciseDutySHCess, AfterCustomEdCess, ROUND((Quantity * Rate), 2) AS TotalOrderValue,
ROUND((POMast.ExchangeRate * BasicPriceInMTon), 2) AS BasicINRValue, TotalValue, CurrencyType,
ReceivedQuantity, Tax.*, LineItem.ServiceMaterialDescription, Req.CostCenterCode,
- Dept.DepartmentName
+ Dept.DepartmentName,Mat.HSNCODE
FROM t_purchaseorder_lineitem LineItem
LEFT JOIN t_purchaseorder_master POMast ON POMast.PONO = LineItem.PONO
@@ -1743,7 +1743,7 @@ mstr.CourierNo,pom.Status,pom.POType') //,bill.BillNo,bill.FilePath,
$subQuery = 'SELECT distinct LineItem.LineItemNo,LineItem.Per,LineItem.ServiceMaterialDescription,Req.ReqNo,Mat.MaterialCode,Mat.MaterialName,LineItem.ServiceMaterialDescription,LineItem.ServiceFrequency,
Mat.UOM,Quantity,ReceivedQuantity,Rate,Req.Status,Tax.*,
ROUND((RMCIncludingCustomersPerKG*Quantity),2)as Taxamount,LandingCharge,HighSeasSalesCharge,CustomDuty,ExciseDuty,ExciseDutyEdCess,CustomEdCess,POMast.ExchangeRate,POMast.ExchangeRateCalculatedon,POMast.TotalOrderValue as BasicValue,POMast.CapitalRange,AfterLandingCharge,AfterHighSeasSalesCharge,AfterCustomDuty,AfterExciseDuty,AfterExciseDutyEdCess,AddlExciseDuty,AfterAddlExciseDuty,Grossdutypayable,AvailableModvat,Grossexpensesduetocustomduty,purchaseratePerKG,CustomDutyExpensesPerKG,RMCIncludingCustomersPerKG,QuantityKG,BasicPriceInMTon,ProductPrice,CustomSHCess,AfterCustomSHCess,AfterExciseDutySHCess,ExciseDutySHCess,AfterCustomEdCess,ROUND((POMast.ExchangeRate*BasicPriceInMTon*Quantity),2) as BasicINRValue,Tax.TotalValue as ImportTotalValue,Tax.FreightType,Tax.NoOfTrip,Tax.FreightValue,Tax.AfterFreightValue,POMast.CurrencyType,
- LineItem.LineitemAuditorNotes,
+ LineItem.LineitemAuditorNotes,Mat.HSNCODE,
Req.CostCenterCode,Dept.DepartmentName FROM t_purchaseorder_lineitem LineItem
join t_purchaseorder_master POMast on POMast.PONO = LineItem.PONO
join t_materialmaster Mat on Mat.MaterialCode = LineItem.MaterialCode
@@ -1802,7 +1802,7 @@ mstr.CourierNo,pom.Status,pom.POType') //,bill.BillNo,bill.FilePath,
Mat.UOM,Quantity,ReceivedQuantity,Rate,Req.Status,ROUND((ServiceTax.After_CGST + ServiceTax.After_SGST + ServiceTax.After_IGST),2) as ServiceTaxamount
,ServiceTax.TotalValue,ServiceTax.CGST,ServiceTax.After_CGST,ServiceTax.SGST,ServiceTax.After_SGST,ServiceTax.IGST,ServiceTax.After_IGST,ServiceTax.otherallowance,ServiceTax.discount,ServiceTax.discountval,ServiceTax.Afterdiscountval,
POMast.ExchangeRate,POMast.ExchangeRateCalculatedon,POMast.TotalOrderValue as BasicValue,POMast.CapitalRange,ROUND((POMast.TotalOrderValue),2) as BasicINRValue,POMast.CurrencyType,FreightType as Ftype,NoOfTrip as NoTrip,FreightValue as Fvalue,AfterFreightValue as Afvalue,
- LineItem.LineitemAuditorNotes,
+ LineItem.LineitemAuditorNotes,Mat.HSNCODE,
Req.CostCenterCode,Dept.DepartmentName FROM t_purchaseorder_lineitem LineItem
join t_purchaseorder_master POMast on POMast.PONO = LineItem.PONO
join t_materialmaster Mat on Mat.MaterialCode = LineItem.MaterialCode
diff --git a/app/Models/Rawmaterialdetails_model.php b/app/Models/Rawmaterialdetails_model.php
index 51e60c69..469884c6 100755
--- a/app/Models/Rawmaterialdetails_model.php
+++ b/app/Models/Rawmaterialdetails_model.php
@@ -74,16 +74,16 @@ class Rawmaterialdetails_model extends Model
}
//This function used to get the material category using configdetails table
- function getmaterialCategory($MaterialCategory = '')
+ function getmaterialCategory()
{
$Config_ID = 'C023';
$builder = $this->db->table('t_configdetails')
->select('Key,Config_ID,ConfigValue')
->where('isActive', 1)
->where('Config_id', $Config_ID);
- if ($MaterialCategory != '') {
- $builder->where('ConfigValue !=', $MaterialCategory);
- }
+ // if ($MaterialCategory != '') {
+ // $builder->where('ConfigValue !=', $MaterialCategory);
+ // }
$query = $builder->get();
return $query->getResult();
@@ -143,6 +143,7 @@ class Rawmaterialdetails_model extends Model
return $query->getResult();
}
+
function getAllSilicaRawMaterialCode(){
$builder = $this->db->table('t_materialmaster')
@@ -444,7 +445,7 @@ where (CurrentStock+OpeningStock)db->table('t_materialmaster MM')
- ->select('MM.MaterialCode,MM.MaterialName,MM.MaterialType,MM.Category,MM.IsActive,MM.UOM')
+ ->select('MM.MaterialCode,MM.MaterialName,MM.MaterialType,MM.Category,MM.IsActive,MM.UOM,MM.HSNCODE')
->where('MM.Category' , $configKey);
$query = $builder->get();
diff --git a/app/Models/Requistion_model.php b/app/Models/Requistion_model.php
index e4cfd50b..7bd246fb 100755
--- a/app/Models/Requistion_model.php
+++ b/app/Models/Requistion_model.php
@@ -155,7 +155,7 @@ class Requistion_model extends Model
// This function also called in store req. also $reqType not removed.....
function EditMaterialCode($ReqNo, $ReqType = NULL){
- $subQuery = 'SELECT Mat.MaterialCode, Mat.MaterialName, Mat.UOM FROM t_materialmaster Mat
+ $subQuery = 'SELECT Mat.MaterialCode, Mat.MaterialName, Mat.UOM,Mat.HSNCODE FROM t_materialmaster Mat
WHERE Mat.MaterialCode NOT IN (
SELECT Req.MaterialCode FROM t_requestion_details Req
JOIN t_requestion_master mast ON Req.ReqNo = mast.ReqNo
@@ -175,7 +175,7 @@ class Requistion_model extends Model
function GetMaterialCode($ReqType,$NotArray='')
{
$builder = $this->db->table('t_materialmaster')
- ->select('MaterialCode, MaterialName,UOM,material_rate')
+ ->select('MaterialCode, MaterialName,UOM,material_rate,HSNCODE')
->where('IsActive',1);
//->where('MaterialType',$ReqType );
@@ -190,6 +190,7 @@ class Requistion_model extends Model
return $query->getResult();
}
}
+
/**
* This function is used to get the Raw Material information
* @return array $result : This is result of the query
@@ -197,7 +198,7 @@ class Requistion_model extends Model
function getRawMaterialList($MaterialCode)
{
$builder = $this->db->table('t_materialmaster MM')
- ->select('MM.MaterialName,MM.UOM,MM.Category,CD.ConfigValue as CategoryName')
+ ->select('MM.MaterialName,MM.UOM,MM.Category,CD.ConfigValue as CategoryName,MM.HSNCODE')
->join('t_configdetails CD', 'CD.Key = MM.Category', 'left')
->where('MM.MaterialCode',$MaterialCode );
$query = $builder->get();
@@ -587,13 +588,24 @@ class Requistion_model extends Model
function getCategoryName($materialCode){
$subQuery ='SELECT MM.MaterialCode,MM.MaterialName,MM.MaterialType,MM.Category,MM.IsActive,CD.ConfigValue
from t_materialmaster as MM
- left join t_configdetails as CD on CD.Key = MM.Category
+ left join t_configdetails as CD on CD.Key = MM.Category
where MM.MaterialCode = '.$materialCode;
$categoryName = $this->db->query($subQuery)->getRow()->ConfigValue;
return $categoryName;
}
+ function getmaterialCategory()
+ {
+ $Config_ID = 'C023';
+ $builder = $this->db->table('t_configdetails')
+ ->select('Key,Config_ID,ConfigValue')
+ ->where('isActive', 1)
+ ->where('Config_id', $Config_ID);
+ $query = $builder->get();
+ return $query->getResultArray();
+ }
+
}
\ No newline at end of file
diff --git a/app/Views/EditservicePurchaseorder.php b/app/Views/EditservicePurchaseorder.php
index 401b562d..df60b841 100755
--- a/app/Views/EditservicePurchaseorder.php
+++ b/app/Views/EditservicePurchaseorder.php
@@ -861,7 +861,7 @@ if (!empty($getlogpodtl)) {
$('#EditAfterServiceTax').val('');
$('#EditAfterKrishiTax').val('');
$('#EditAfterSwachhTax').val('');
- $('#EditTotalOrderValue ').val('');
+ $('#EditTotalOrderValue').val('');
$('#EditRate').val('');
$("#EditItemName").val('');
@@ -1274,6 +1274,7 @@ if (!empty($getlogpodtl)) {
Requisition No |
Item Code |
Item Description |
+ HSN/SAC |
Line Item Specs |
Quantity |
UOM |
@@ -1309,6 +1310,7 @@ if (!empty($getlogpodtl)) {
MaterialCode ?> |
MaterialName, 0, 13, "...");
echo $shortName; ?> |
+ HSNCODE ?> |
;
+ var openOrder = ;
if(openOrder){
$('#Quantity').val(0);
$('#Quantity').removeAttr('required');
@@ -2583,7 +2585,7 @@ if (!empty($getlogpodtl)) {
$('#EditotherDescription').hide();
- $('#otherdescription').hide()
+ $('#otherdescription').hide();
@@ -2597,6 +2599,14 @@ if (!empty($getlogpodtl)) {
var AvilBudget = $('#AvlBudAmt').val();
var costCode = $('#CostCenter').val();
var materialCode = $('#MaterialCode').val();
+ var selectedText = $('#MaterialCode option:selected').text();
+ var parts = selectedText.split('-');
+ var HSN = selectedText.includes('-') && /^\d+$/.test(parts[0].trim())
+ ? parts[0].trim()
+ : '';
+
+
+
var materialName = $("#ItemName").val();
var uom = $("#UOM").val();
var addPer = '';
@@ -2666,8 +2676,9 @@ if (!empty($getlogpodtl)) {
| ${temp} |
${Reqnumber} |
${materialCode} |
- ${shorten} | `;
- if (PONOStatus === "PO_DRAFT" || PONOStatus === "PO_CREATED") {
+ ${shorten} |
+ ${HSN} | `;
+ if (PONOStatus === "" || PONOStatus === "") {
rowHtml += `-
@@ -2781,8 +2792,13 @@ if (!empty($getlogpodtl)) {
var FrequencyValue = $("#EditFrequencyNo").val();
var ServiceDescription = $('#EdittxtSpcialInstruction').val();
var OtherAmt = $('#EditOtherAllowances').val();
- var TotalOrderValue = $("#EditTotalOrderValue ").val();
+ var TotalOrderValue = $("#EditTotalOrderValue").val();
+ var editselectedText = $('#EditMaterialCode option:selected').text();
+ var editparts = editselectedText.split('-');
+ var editHSN = editselectedText.includes('-') && /^\d+$/.test(editparts[0].trim())
+ ? editparts[0].trim()
+ : '';
var basicval = $("#txtEditBasicValue").val();
@@ -2795,12 +2811,13 @@ if (!empty($getlogpodtl)) {
cellval[2].innerHTML = editMaterialCode;
cellval[3].innerHTML = editDescription;
- cellval[5].innerHTML = editQuantity;
- cellval[6].innerHTML = editUOM;
- cellval[7].innerHTML = parseFloat(itemRate).toFixed(2);
- cellval[8].innerHTML = parseFloat(basicval).toFixed(2);
- cellval[9].innerHTML = parseFloat(TotalTaxValue).toFixed(2);
- cellval[10].innerHTML = parseFloat(TotalOrderValue).toFixed(2);
+ cellval[4].innerHTML = editHSN;
+ cellval[6].innerHTML = editQuantity;
+ cellval[7].innerHTML = editUOM;
+ cellval[8].innerHTML = parseFloat(itemRate).toFixed(2);
+ cellval[9].innerHTML = parseFloat(basicval).toFixed(2);
+ cellval[10].innerHTML = parseFloat(TotalTaxValue).toFixed(2);
+ cellval[11].innerHTML = parseFloat(TotalOrderValue).toFixed(2);
$('#materialCode' + userid).val(editMaterialCode);
@@ -3118,7 +3135,7 @@ if (!empty($getlogpodtl)) {
$('#txtSpcialInstruction').focus();
return false;
} else {
- var openOrder = ;
+ var openOrder = ;
if(!openOrder){
if ($('#Quantity').val() == '') {
alert('Please Enter the Quantity value');
@@ -3356,6 +3373,7 @@ if (!empty($getlogpodtl)) {
//If others is the payment terms to display mandatory field
$(document).ready(function() {
+ $('#otherdescription').hide();
$("#PaymentTerms").change(function() {
var otherPayment = '';
if ($('#PaymentTerms').val().trim() == 'PT08') {
@@ -3417,8 +3435,8 @@ if (!empty($getlogpodtl)) {
if (obj.materialCode == materialCode) {
$("#MaterialCode").val('');
} else {
- $("#MaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
-
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#MaterialCode").append($('').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
}
@@ -3469,8 +3487,9 @@ if (!empty($getlogpodtl)) {
if (isAdded == "0") {
-
- $("#MaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#MaterialCode").append($('').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
+ // $("#MaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
}
}
@@ -3514,7 +3533,7 @@ if (!empty($getlogpodtl)) {
RateValue = $('#itemRate' + userid).val();
RateValue = parseFloat(RateValue).toFixed(2)
$('#EditRate').val(RateValue);
- $('#txtEditBasicValue').val(cellval[8].innerHTML);
+ $('#txtEditBasicValue').val(cellval[9].innerHTML);
$('#EditCgst').val($('#Cgst' + userid).val());
$('#EditSgst').val($('#Sgst' + userid).val());
$('#EditIgst').val($('#Igst' + userid).val());
@@ -3544,7 +3563,7 @@ if (!empty($getlogpodtl)) {
$("#EditFrequencyNo").val($('#FrequencyValue' + userid).val());
}
- $('#EditTotalOrderValue').val(cellval[10].innerHTML);
+ $('#EditTotalOrderValue').val(cellval[11].innerHTML);
$('#EditOtherAllowances').val($('#OtherAmt' + userid).val());
tinyMCE.get('EdittxtSpcialInstruction').setContent($('#ItemDescription' + userid).val());
RequistQuantity = $('#quantity' + userid).val();
@@ -3552,9 +3571,14 @@ if (!empty($getlogpodtl)) {
$("#EditMaterialCode").empty();
+ var P0 = cellval[4].innerHTML;
+ var P1 = (P0) ? P0 + " - " : "";
+ var P2 = P1 + $('#materialName' + userid).val() ;
+ var P3 = P2 + " ( " + $('#materialCode' + userid).val() + ' ) ';
+
$("#EditMaterialCode").append($('')
.val($('#materialCode' + userid).val())
- .html($('#materialCode' + userid).val() + "-" + $('#materialName' + userid).val())
+ .html(P3)
.prop('selected', true)
);
// Make the select element read-only (disable it)
@@ -3589,8 +3613,9 @@ if (!empty($getlogpodtl)) {
if (isAdded == "0") {
-
- $("#EditMaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ // $("#EditMaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#EditMaterialCode").append($('').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
}
}
@@ -3627,7 +3652,7 @@ if (!empty($getlogpodtl)) {
RateValue = $('#itemRate' + userid).val();
RateValue = parseFloat(RateValue).toFixed(2)
$('#ViewRate').val(RateValue);
- $('#txtViewBasicValue').val(cellval[8].innerHTML);
+ $('#txtViewBasicValue').val(cellval[9].innerHTML);
$('#ViewCgst').val($('#Cgst' + userid).val());
$('#ViewSgst').val($('#Sgst' + userid).val());
$('#ViewIgst').val($('#Igst' + userid).val());
@@ -3654,7 +3679,7 @@ if (!empty($getlogpodtl)) {
$("#ViewFrequencyNo").val($('#FrequencyValue' + userid).val());
}
- $('#ViewTotalOrderValue').val(cellval[10].innerHTML);
+ $('#ViewTotalOrderValue').val(cellval[11].innerHTML);
$('#ViewOtherAllowances').val($('#OtherAmt' + userid).val());
tinyMCE.get('ViewtxtSpcialInstruction').setContent($('#ItemDescription' + userid).val());
diff --git a/app/Views/accountsDashboard.php b/app/Views/accountsDashboard.php
index 534550c1..ea3bdd4a 100644
--- a/app/Views/accountsDashboard.php
+++ b/app/Views/accountsDashboard.php
@@ -209,7 +209,7 @@
if(!empty($draft)){
?>
|
- |
+ |
IGRNO ?>
|
@@ -218,7 +218,7 @@
SupplierName ?> |
DeliveryChellanOrInvoiceNo ?> |
- DeliveryChellanDate;
if(!$invdate || $invdate == 'null' || $invdate === '0000-00-00 00:00:00'){
echo "";
@@ -262,7 +262,7 @@
isIgrFilePresent)){ ?>
-
+
@@ -427,6 +427,7 @@
| SNo |
Item Code |
Item Description |
+ HSN/SAC |
UOM |
Ordered Qty |
Received Qty |
@@ -804,6 +805,7 @@
'' + i + ' | ' +
'' + item.MaterialCode + ' | ' +
'' + item.MaterialName + ' | ' +
+ '' + ((item.HSNCODE) ? item.HSNCODE : '') + ' | ' +
'' + item.UOM + ' | ' +
'' + parseInt(item.Quantity) + ' | ' +
' | ' +
@@ -843,6 +845,7 @@
'' + i + ' | ' +
'' + item.MaterialCode + ' | ' +
'' + item.MaterialName + ' | ' +
+ '' + ((item.HSNCODE) ? item.HSNCODE : '') + ' | ' +
'' + item.UOM + ' | ' +
'' + parseInt(item.Quantity) + ' | ' +
' | ' +
@@ -878,6 +881,7 @@
'' + i + ' | ' +
'' + item.MaterialCode + ' | ' +
'' + item.MaterialName + ' | ' +
+ '' + ((item.HSNCODE) ? item.HSNCODE : '') + ' | ' +
'' + item.UOM + ' | ' +
'' + item.Quantity + ' | ' +
'' + item.QuantityAsPerInvoice + ' | ' +
diff --git a/app/Views/alterpurchaseorder.php b/app/Views/alterpurchaseorder.php
index 03e67068..17818529 100755
--- a/app/Views/alterpurchaseorder.php
+++ b/app/Views/alterpurchaseorder.php
@@ -2083,8 +2083,11 @@ if (!empty($INRSYMBOL)) {
}
$(document).ready(function () {
$('#ServiceMaterialCode').change(function () {
+
var selectedMaterialCode = '';
- selectedMaterialCode = $("#ServiceMaterialCode").val();
+ selectedMaterialCode = $("#ServiceMaterialCode").val(); // First I have get the data from materialcode dropdown
+ // clearServiceModalFields(); // then Clear All Fields
+ $("#ServiceMaterialCode").val(selectedMaterialCode); // again i fetched the materialcode in that dropdown // konjam loose thaan
$.each(JSON.parse(materialData), function (index, value) {
if (selectedMaterialCode == value.MaterialCode) {
$("#ServiceDescription").val(value.MaterialName);
@@ -2222,8 +2225,8 @@ if (!empty($INRSYMBOL)) {
$("#ServiceMaterialCode").append($('').val("0").html("Select Item Code"));
$.each(JSON.parse(data), function (index, value) {
- $("#ServiceMaterialCode").append($('').val(value.MaterialCode).html(value.MaterialCode + "-" + value.MaterialName));
-
+ var HSNCODE = value.HSNCODE ? value.HSNCODE+" - " : "";
+ $("#ServiceMaterialCode").append($('').val(value.MaterialCode).html( HSNCODE + value.MaterialName+ " ( "+value.MaterialCode+" ) "));
});
} else if (input == 'REVENUE') {
@@ -2233,9 +2236,8 @@ if (!empty($INRSYMBOL)) {
$("#MaterialCode").append($('').val("0").html("Select Item Code"));
$.each(JSON.parse(data), function (index, value) {
- $("#MaterialCode").append($('').val(value.MaterialCode).html(value.MaterialCode + "-" + value.MaterialName));
-
-
+ var HSNCODE = value.HSNCODE ? value.HSNCODE+"-" : "";
+ $("#MaterialCode").append($('').val(value.MaterialCode).html( HSNCODE + value.MaterialName+ " ( "+value.MaterialCode+" ) "));
});
} else {
@@ -2293,17 +2295,17 @@ if (!empty($INRSYMBOL)) {
*/
$('#MaterialCode').on('change', function () {
console.log("111111111111");
-
- // $('#MaterialCode').change(function() {
var selectedRevenueMaterialCode = '';
- selectedRevenueMaterialCode = $("#MaterialCode").val();
- console.log(materialData);
- console.log("materialData - 1111111");
+ selectedRevenueMaterialCode = $("#MaterialCode").val();// First I have get the data from materialcode dropdown
+ // clearRevenueModalFields();// then Clear All Fields
+ // $('#MaterialCode').change(function() {
+ $("#MaterialCode").val(selectedRevenueMaterialCode); // again i fetched the materialcode in that dropdown // konjam loose thaan
$.each(JSON.parse(materialData), function (index, value) {
if (selectedRevenueMaterialCode == value.MaterialCode) {
$("#ItemName").val(value.MaterialName);
$("#UOM").val(value.UOM);
$("#Rate").val(value.material_rate);
+ $("#Quantity").val(0);
}
});
@@ -2366,7 +2368,8 @@ if (!empty($INRSYMBOL)) {
//This function is used to add material list after delete
$.each(JSON.parse(materialData), function (index, value) {
if (value.MaterialCode == materialCode) {
- $("#MaterialCode").append($('').val(value.MaterialCode).html(value.MaterialCode + "-" + value.MaterialName));
+ var HSNCODE = value.HSNCODE ? value.HSNCODE+"-" : "";
+ $("#MaterialCode").append($('').val(value.MaterialCode).html( HSNCODE + value.MaterialName+ " ( "+value.MaterialCode+" ) "));
}
});
@@ -2940,31 +2943,44 @@ if (!empty($INRSYMBOL)) {
-
+
+
+
-
-
-
- | SNo |
- Requisition No |
- Item Code |
- Item Description |
- Line Item Specs |
- Quantity |
- UOM |
- Rate |
- Basic Amount |
- Tax Amount |
- Total Order Amount |
- Action |
-
-
-
-
-
+
+
+
+
+ | SNo |
+ Requisition No |
+ Item Code |
+ Item Description |
+ HSN/SAC |
+ Line Item Specs |
+ Quantity |
+ UOM |
+ Rate |
+ Basic Amount |
+ Tax Amount |
+ Total Order Amount |
+ Action |
+
+
+
+
+
+
-
+
@@ -3598,7 +3614,7 @@ if (!empty($INRSYMBOL)) {
@@ -3892,7 +3908,7 @@ if (!empty($INRSYMBOL)) {
@@ -6080,6 +6096,12 @@ if (!empty($INRSYMBOL)) {
// $('#ReqNo').val(Reqnumber).remove();
// $('#ReqNo option[value='+Reqnumber+']').remove();
+ var selectedRText = $('#MaterialCode option:selected').text();
+ var Rparts = selectedRText.split('-');
+ var RHSN = selectedRText.includes('-') && /^\d+$/.test(Rparts[0].trim())
+ ? Rparts[0].trim()
+ : '';
+
$('#MaterialCode option[value=' + materialCode + ']').remove();
@@ -6100,6 +6122,7 @@ if (!empty($INRSYMBOL)) {
${Reqnumber} |
${materialCode} |
${rshorten} |
+ ${RHSN} |
-
@@ -6240,7 +6263,7 @@ if (!empty($INRSYMBOL)) {
$('#deptName').val('');
$('#CostCenter').val("0");
$('#AvlBudAmt').val(0);
- $('#MaterialCode').val('');
+ $('#MaterialCode').val("").select2();
$("#ItemName").val('');
$('#UOM').val('');
$("#Rate").val('');
@@ -6748,6 +6771,12 @@ if (!empty($INRSYMBOL)) {
var AvilBudget = $('#AvalBuget').val();
var costCode = $('#CostCenterName').val();
var materialCode = $('#ServiceMaterialCode').val();
+ var SselectedText = $('#ServiceMaterialCode option:selected').text();
+ var Sparts = SselectedText.split('-');
+ var SHSN = SselectedText.includes('-') && /^\d+$/.test(Sparts[0].trim())
+ ? Sparts[0].trim()
+ : '';
+
var materialName = $("#ServiceDescription").val();
var uom = $("#ServiceUOM").val();
var addPer = '';
@@ -6804,6 +6833,7 @@ if (!empty($INRSYMBOL)) {
| ${Reqnumber} |
${materialCode} |
${sshorten} |
+ ${SHSN} |
-
@@ -7007,14 +7037,14 @@ if (!empty($INRSYMBOL)) {
$('#EditEmergPer').val($('#Serviceper' + userid).val());
$('#EditQuantity').val($('#quantity' + userid).val());
$('#EditRate').val($('#itemRate' + userid).val());
- $('#txtEditBasicValue').val(cellval[8].innerHTML);
+ $('#txtEditBasicValue').val(cellval[9].innerHTML);
$('#EditAfterCgst').val($('#AfterCgst' + userid).val());
$('#EditAfterSgst').val($('#AfterSgst' + userid).val());
$('#EditAfterIgst').val($('#AfterIgst' + userid).val());
$('#EditCgst').val($('#Cgst' + userid).val());
$('#EditSgst').val($('#Sgst' + userid).val());
$('#EditIgst').val($('#Igst' + userid).val());
- $('#EditTotalOrderValue').val(cellval[10].innerHTML);
+ $('#EditTotalOrderValue').val(cellval[11].innerHTML);
$('#EditOtherAllowances').val($('#OtherAmt' + userid).val());
tinyMCE.get('EdittxtSpcialInstructionSingle').setContent($('#ItemServiceDescription' + userid).val());
@@ -7026,7 +7056,11 @@ if (!empty($INRSYMBOL)) {
$("#EditMaterialCode").empty();
// $('#EditMaterialCode').val("").select2();
- $("#EditMaterialCode").append($('').val($('#materialCode' + userid).val()).html($('#materialCode' + userid).val() + "-" + $('#materialName' + userid).val()));
+ var P0 = cellval[4].innerHTML;
+ var P1 = (P0) ? P0 + " - " : "";
+ var P2 = P1 + $('#materialName' + userid).val() ;
+ var P3 = P2 + " ( " + $('#materialCode' + userid).val() + ' ) ';
+ $("#EditMaterialCode").append($('').val($('#materialCode' + userid).val()).html(P3));
if (typeof materialData !== 'undefined' && materialData !== null && materialData !== '') {
var parsedMaterialData = JSON.parse(materialData);
@@ -7034,7 +7068,9 @@ if (!empty($INRSYMBOL)) {
$.each(parsedMaterialData, function (index, value) {
// Assuming userid is defined somewhere in your code
if ($('#materialCode' + userid).val() != value.MaterialCode) {
- $("#EditMaterialCode").append($('').val(value.MaterialCode).html(value.MaterialCode + "-" + value.MaterialName));
+ // $("#EditMaterialCode").append($('').val(value.MaterialCode).html(value.MaterialCode + "-" + value.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#EditMaterialCode").append($('').val(value.MaterialCode).html( HSNCODE + value.MaterialName+ " ( "+value.MaterialCode+" ) "));
}
});
} else {
@@ -7127,17 +7163,23 @@ if (!empty($INRSYMBOL)) {
var TotalTaxValue = calculateEditTaxValue();
+ var editselectedText = $('#EditMaterialCode option:selected').text();
+ var editparts = editselectedText.split('-');
+ var editHSN = editselectedText.includes('-') && /^\d+$/.test(editparts[0].trim())
+ ? editparts[0].trim()
+ : '';
var tr = document.getElementById(userid);
var cellval = tr.cells;
cellval[2].innerHTML = editMaterialCode;
cellval[3].innerHTML = editDescription;
- cellval[5].innerHTML = editQuantity;
- cellval[6].innerHTML = editUOM;
- cellval[7].innerHTML = itemRate;
- cellval[8].innerHTML = basicval;
- cellval[9].innerHTML = TotalTaxValue;
- cellval[10].innerHTML = TotalOrderValue;
+ cellval[4].innerHTML = editHSN;
+ cellval[6].innerHTML = editQuantity;
+ cellval[7].innerHTML = editUOM;
+ cellval[8].innerHTML = itemRate;
+ cellval[9].innerHTML = basicval;
+ cellval[10].innerHTML = TotalTaxValue;
+ cellval[11].innerHTML = TotalOrderValue;
$('#materialCode' + userid).val(editMaterialCode);
@@ -7268,7 +7310,7 @@ if (!empty($INRSYMBOL)) {
$.each(JSON.parse(materialData), function (index, value) {
if (value.MaterialCode == materialCode) {
- // $("#ServiceMaterialCode").append( $('').val(value.MaterialCode).html(value.MaterialCode + "-" + value.MaterialName) );
+ $("#ServiceMaterialCode").append( $('').val(value.MaterialCode).html(value.MaterialCode + "-" + value.MaterialName) );
}
@@ -7674,7 +7716,7 @@ if (!empty($INRSYMBOL)) {
$('#EditRevenueQuantity').val($('#quantity' + userid).val());
$('#EditRevenueRate').val($('#itemRate' + userid).val());
$('#editrevenueEmergPer').val($('#per' + userid).val());
- $('#txtEditRevenueBasicValue').val(cellval[8].innerHTML);
+ $('#txtEditRevenueBasicValue').val(cellval[9].innerHTML);
RequistQuantity = $('#quantity' + userid).val();
$('#txtEditDiscount').val($('#DisVal' + userid).val());
$('#txtEditAfterDiscount').val($('#AfterDisVal' + userid).val());
@@ -7708,14 +7750,18 @@ if (!empty($INRSYMBOL)) {
$("#EditRevenueMaterialCode").empty();
-
- $("#EditRevenueMaterialCode").append($('').val($('#materialCode' + userid).val()).html($('#materialCode' + userid).val() + "-" + $('#materialName' + userid).val()));
+ var P0 = cellval[4].innerHTML;
+ var P1 = (P0) ? P0 + " - " : "";
+ var P2 = P1 + $('#materialName' + userid).val() ;
+ var P3 = P2 + " ( " + $('#materialCode' + userid).val() + ' ) ';
+ $("#EditRevenueMaterialCode").append($('').val($('#materialCode' + userid).val()).html(P3));
if (typeof materialData !== 'undefined' && materialData !== null && materialData !== '') {
var parsedMaterialData = JSON.parse(materialData);
$.each(parsedMaterialData, function (index, value) {
if ($('#materialCode' + userid).val() != value.MaterialCode) {
- $("#EditRevenueMaterialCode").append($('').val(value.MaterialCode).html(value.MaterialCode + "-" + value.MaterialName));
+ var HSNCODE = value.HSNCODE ? value.HSNCODE+" - " : "";
+ $("#EditRevenueMaterialCode").append($('').val(value.MaterialCode).html( HSNCODE + value.MaterialName+ " ( "+obj.MaterialCode+" ) "));
}
});
} else {
@@ -7733,6 +7779,12 @@ if (!empty($INRSYMBOL)) {
var editselectedMaterialCode = '';
editselectedMaterialCode = $("#EditRevenueMaterialCode").val();
+ var selectedRevenuText = $('#EditRevenueMaterialCode option:selected').text();
+ var editRevenuparts = selectedRevenuText.split('-');
+ var editRevenueHSN = editselectedText.includes('-') && /^\d+$/.test(editRevenuparts[0].trim())
+ ? editRevenuparts[0].trim()
+ : '';
+
$.each(JSON.parse(materialData), function (index, value) {
if (editselectedMaterialCode == value.MaterialCode) {
@@ -7806,15 +7858,23 @@ if (!empty($INRSYMBOL)) {
var userid = $("#hiddenRevenueuserid").val();
var tr = document.getElementById(userid);
+
+ var editRselectedText = $('#EditRevenueMaterialCode option:selected').text();
+ var editRparts = editRselectedText.split('-');
+ var editRHSN = editRselectedText.includes('-') && /^\d+$/.test(editRparts[0].trim())
+ ? editRparts[0].trim()
+ : '';
+
var cellval = tr.cells;
cellval[2].innerHTML = editMaterialCode;
cellval[3].innerHTML = editDescription;
- cellval[5].innerHTML = parseFloat(editQuantity).toFixed(2);
- cellval[6].innerHTML = editUOM;
- cellval[7].innerHTML = parseFloat(itemRate).toFixed(2);
- cellval[8].innerHTML = parseFloat(basicval).toFixed(2);
- cellval[9].innerHTML = parseFloat(TotalTaxValue).toFixed(2);
- cellval[10].innerHTML = parseFloat(TotalOrderValue).toFixed(2);
+ cellval[4].innerHTML = editRHSN;
+ cellval[6].innerHTML = parseFloat(editQuantity).toFixed(2);
+ cellval[7].innerHTML = editUOM;
+ cellval[8].innerHTML = parseFloat(itemRate).toFixed(2);
+ cellval[9].innerHTML = parseFloat(basicval).toFixed(2);
+ cellval[10].innerHTML = parseFloat(TotalTaxValue).toFixed(2);
+ cellval[11].innerHTML = parseFloat(TotalOrderValue).toFixed(2);
$('#materialCode' + userid).val(editMaterialCode);
diff --git a/app/Views/capitalpurchaseorder.php b/app/Views/capitalpurchaseorder.php
index d9eff2ad..d9c3e40a 100755
--- a/app/Views/capitalpurchaseorder.php
+++ b/app/Views/capitalpurchaseorder.php
@@ -804,6 +804,7 @@ if (!empty($INRSYMBOL)) {
| Requisition No |
Item Code |
Item Description |
+ HSN/SAC |
Line Item Specs |
Quantity |
UOM |
@@ -2643,8 +2644,9 @@ if (!empty($INRSYMBOL)) {
if (isAdded == "0") {
-
- $("#MaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#MaterialCode").append($('').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
+ // $("#MaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
}
}
@@ -3443,6 +3445,11 @@ if (!empty($INRSYMBOL)) {
+ var selectedText = $('#MaterialCode option:selected').text();
+ var parts = selectedText.split('-');
+ var HSN = selectedText.includes('-') && /^\d+$/.test(parts[0].trim())
+ ? parts[0].trim()
+ : '';
$('#MaterialCode option[value=' + materialCode + ']').remove();
@@ -3484,6 +3491,7 @@ if (!empty($INRSYMBOL)) {
${Reqnumber} |
${materialCode} |
${shorten} |
+ ${HSN} |
-
@@ -3992,8 +4000,8 @@ if (!empty($INRSYMBOL)) {
if (value.MaterialCode == materialCode) {
-
- $("#MaterialCode").append($('').val(value.MaterialCode).html(value.MaterialCode + "-" + value.MaterialName));
+ var HSNCODE = value.HSNCODE ? value.HSNCODE+"-" : "";
+ $("#MaterialCode").append($('').val(value.MaterialCode).html( HSNCODE + value.MaterialName+ " ( "+value.MaterialCode+" ) "));
}
@@ -4298,7 +4306,7 @@ if (!empty($INRSYMBOL)) {
console.log($('#Igst' + userid).val());
- $('#EdittxtTotalOrderValue').val(cellval[10].innerHTML);
+ $('#EdittxtTotalOrderValue').val(cellval[11].innerHTML);
$('#EditCgst').val($('#Cgst' + userid).val());
$('#EditAfterCgst').val($('#AfterCgst' + userid).val());
$('#EditSgst').val($('#Sgst' + userid).val());
@@ -4375,13 +4383,23 @@ if (!empty($INRSYMBOL)) {
var Material = ;
$("#EditMaterialCode").empty();
+ var P0 = cellval[4].innerHTML;
+ var P1 = (P0) ? P0 + " - " : "";
+ var P2 = P1 + $('#materialName' + userid).val() ;
+ var P3 = P2 + " ( " + $('#materialCode' + userid).val() + ' ) ';
- $("#EditMaterialCode").append($('').val($('#materialCode' + userid).val()).html($('#materialCode' + userid).val() + "-" + $('#materialName' + userid).val()));
+ $("#EditMaterialCode").append($('')
+ .val($('#materialCode' + userid).val())
+ .html(P3)
+ .prop('selected', true)
+ );
+ // $("#EditMaterialCode").append($('').val($('#materialCode' + userid).val()).html($('#materialCode' + userid).val() + "-" + $('#materialName' + userid).val()));
$('#EditRateIn').html('Rate(in' + " " + DisplayCurrencySymbol + '/' + EditUOM + ')');
for (i = 0; i < Material.length; i++) {
$.each(Material[i], function(idx, obj) {
if (obj.MaterialCode != $('#materialCode' + userid).val()) {
- $("#EditMaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#EditMaterialCode").append($('').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
}
});
@@ -4923,6 +4941,12 @@ if (!empty($INRSYMBOL)) {
$('#ClearingCharges' + userid).val(Clearing);
$('#Subtotal' + userid).val(Subtotal);
+ var editselectedText = $('#EditMaterialCode option:selected').text();
+ var editparts = editselectedText.split('-');
+ var editHSN = editselectedText.includes('-') && /^\d+$/.test(editparts[0].trim())
+ ? editparts[0].trim()
+ : '';
+
if (capitalType == 'International') {
TotalTaxValue = 0.00;
Total = basicval;
@@ -4930,13 +4954,14 @@ if (!empty($INRSYMBOL)) {
cellval[2].innerHTML = materialCode;
cellval[3].innerHTML = materialName;
+ cellval[4].innerHTML = editHSN;
- cellval[5].innerHTML = quantity;
- cellval[6].innerHTML = uom;
- cellval[7].innerHTML = itemRate;
- cellval[8].innerHTML = basicval;
- cellval[9].innerHTML = TotalTaxValue;
- cellval[10].innerHTML = Total;
+ cellval[6].innerHTML = quantity;
+ cellval[7].innerHTML = uom;
+ cellval[8].innerHTML = itemRate;
+ cellval[9].innerHTML = basicval;
+ cellval[10].innerHTML = TotalTaxValue;
+ cellval[11].innerHTML = Total;
$('#EDITCAPITAL').modal('hide');
diff --git a/app/Views/driverAttendance.php b/app/Views/driverAttendance.php
index 4be0a29a..7837df3c 100755
--- a/app/Views/driverAttendance.php
+++ b/app/Views/driverAttendance.php
@@ -553,7 +553,6 @@ $datefordropdown = format_date($datefordropdown, 0, 'M-Y');
var diesel = parseFloat($('input[data-column="diesel_amount"]').val()) || 0;
var shed = parseFloat($('input[data-column="shed_amount"]').val()) || 0;
var row = parseInt($('#rowTotalAmount').text()) || 0;
- console.log(row);
var total = row + diesel + shed;
$('#totalAmount').text(total); // Display the total with 2 decimal places
@@ -570,15 +569,16 @@ $datefordropdown = format_date($datefordropdown, 0, 'M-Y');
let param_month_year = urlParams.get("month_year");
let param_date = urlParams.get("date");
-
- if(param_date == ""){
- let monthMap = {"Jan": "01", "Feb": "02", "Mar": "03", "Apr": "04","May": "05", "Jun": "06", "Jul": "07", "Aug": "08","Sep": "09", "Oct": "10", "Nov": "11", "Dec": "12"};
- let [month, year] = param_month_year.split('-');
- input_date = `01-${monthMap[month]}-${year}`;
- }else{
- input_date = param_date;
- }
+ if (!param_date || param_date.trim() === "") {
+
+ let new_my = param_month_year ? param_month_year : "";
+ let monthMap = {"Jan": "01", "Feb": "02", "Mar": "03", "Apr": "04", "May": "05", "Jun": "06", "Jul": "07", "Aug": "08", "Sep": "09", "Oct": "10", "Nov": "11", "Dec": "12"};
+ let [month, year] = new_my.split('-');
+ input_date = `01-${monthMap[month]}-${year}`;
+
+ } else { input_date = param_date; }
+
// Send data to the server using AJAX
$.ajax({
diff --git a/app/Views/driverPayslipGeneratePrint.php b/app/Views/driverPayslipGeneratePrint.php
index 916654aa..f6500eee 100755
--- a/app/Views/driverPayslipGeneratePrint.php
+++ b/app/Views/driverPayslipGeneratePrint.php
@@ -19,65 +19,88 @@
|
-
-
-
-| Name |
-driver_name; ?> |
-= ' ' ?> |
-Employee ID |
-EmpID ?> |
-
-
-| Designation |
- Designation ?> |
-= ' ' ?> |
-Department |
-DeptName ?> |
-
-
-| Date Of Joining |
- DOJ)) ?> |
-= ' ' ?> |
-No Of Loads |
- no_of_loads ?> |
-
-
-| Bank Name |
-BankName ?> |
-= ' ' ?> |
-PAN Number |
-Pan;?> |
-
-
-| Bank Acc No |
- BankAccountNumber ?> |
-= ' ' ?> |
- Aadhar Number |
-AadharNo);?> |
-
-
-| Bank IFSC |
-IFSCCode ?> |
-= ' ' ?> |
-Loan Balance |
-BalanceAdvance ?> |
-
-
-| |
- |
-= ' ' ?> |
-Diesel |
-diesel_amount; ?> |
-
-
-| |
- |
-= ' ' ?> |
-Shed Duty Amount |
-shed_amount; ?> |
-
-
+
+
+
+ | Name |
+ : |
+ driver_name; ?> |
+ |
+ Employee ID |
+ : |
+ EmpID ?> |
+
+
+
+ | Designation |
+ : |
+ Designation ?> |
+ |
+ Department |
+ : |
+ DeptName ?> |
+
+
+
+ | Date Of Joining |
+ : |
+ DOJ)) ?> |
+ |
+ No Of Loads |
+ : |
+ no_of_load ?> |
+
+
+
+ | Bank Name |
+ : |
+ BankName ?> |
+ |
+ PAN Number |
+ : |
+ Pan; ?> |
+
+
+
+ | Bank Acc No |
+ : |
+ BankAccountNumber ?> |
+ |
+ Aadhar Number |
+ : |
+ AadharNo); ?> |
+
+
+
+ | Bank IFSC |
+ : |
+ IFSCCode ?> |
+ |
+ Loan Balance |
+ : |
+ ₹BalanceAdvance ?> |
+
+
+
+ |
+ |
+ |
+ |
+ Diesel Amount |
+ : |
+ ₹diesel_amount; ?> |
+
+
+
+ |
+ |
+ |
+ |
+ Shed Duty Amount |
+ : |
+ ₹shed_amount; ?> |
+
+
@@ -85,7 +108,7 @@
| Earnings | Amount ₹ | Deductions | Amount ₹ |
-| BASIC |
+ BASIC |
BASIC; ?> |
PF |
|
diff --git a/app/Views/editCapitalAmendPO.php b/app/Views/editCapitalAmendPO.php
index fb7a822a..92e28978 100755
--- a/app/Views/editCapitalAmendPO.php
+++ b/app/Views/editCapitalAmendPO.php
@@ -888,6 +888,7 @@ if (!empty($POItem) && $CapitalRange == '1') {
SNo |
Requisition No |
Item Description |
+ HSN/SAC |
Line Item Specs |
Quantity |
UOM |
@@ -913,6 +914,7 @@ if (!empty($POItem) && $CapitalRange == '1') {
ReqNo ?> |
MaterialName, 0, 13, "...");
echo $shortName; ?> |
+ HSNCODE ?> |
').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#MaterialCode").append($('').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
+ // $("#MaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
}
}
@@ -3345,7 +3348,7 @@ Calculate Landing charge
$('#EditOtherAllowances').val($('#otherallowance' + userid).val());
//$('#Editservicetotalordervaue').val($('#totalservicevalue'+userid).val());
- $('#Editservicetotalordervaue').val(cellval[9].innerHTML);
+ $('#Editservicetotalordervaue').val(cellval[10].innerHTML);
@@ -3433,12 +3436,22 @@ Calculate Landing charge
$("#EditMaterialCode").empty();
- $("#EditMaterialCode").append($('').val($('#materialCode' + userid).val()).html($('#materialCode' + userid).val() + "-" + $('#materialName' + userid).val()));
+ var P0 = cellval[3].innerHTML;
+ var P1 = (P0) ? P0 + " - " : "";
+ var P2 = P1 + $('#materialName' + userid).val() ;
+ var P3 = P2 + " ( " + $('#materialCode' + userid).val() + ' ) ';
+
+ $("#EditMaterialCode").append($('')
+ .val($('#materialCode' + userid).val())
+ .html(P3)
+ .prop('selected', true)
+ );
for (i = 0; i < Material.length; i++) {
$.each(Material[i], function (idx, obj) {
if (obj.MaterialCode != $('#materialCode' + userid).val()) {
- $("#EditMaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSN = (obj.HSNCODE) ? obj.HSNCODE+" - " : "";
+ $("#EditMaterialCode").append($('').val(obj.MaterialCode).html(HSN + obj.MaterialName + " ( "+obj.MaterialCode+" ) "));
}
});
@@ -4056,19 +4069,26 @@ Calculate Landing charge
$('#DisVal' + userid).val(DisVal);
$('#AfterDisVal' + userid).val(AfterDisVal);
var shorten = materialName.length > 13 ? materialName.slice(0, 13) + "..." : materialName;
+ var editselectedText = $('#EditMaterialCode option:selected').text();
+ var editparts = editselectedText.split('-');
+ var editHSN = editselectedText.includes('-') && /^\d+$/.test(editparts[0].trim())
+ ? editparts[0].trim()
+ : '';
+
cellval[2].innerHTML = shorten;
//alert(materialName);
- cellval[4].innerHTML = parseFloat(quantity).toFixed(2);
+ cellval[4].innerHTML = editHSN;
+ cellval[5].innerHTML = parseFloat(quantity).toFixed(2);
//alert(quantity);
- cellval[5].innerHTML = uom;
+ cellval[6].innerHTML = uom;
//alert(uom);
- cellval[6].innerHTML = parseFloat(itemRate).toFixed(2);
+ cellval[7].innerHTML = parseFloat(itemRate).toFixed(2);
//alert(itemRate);
- cellval[7].innerHTML = parseFloat(basicval).toFixed(2);
+ cellval[8].innerHTML = parseFloat(basicval).toFixed(2);
//alert(basicval);
- cellval[8].innerHTML = parseFloat(TotalTaxValue).toFixed(2);
+ cellval[9].innerHTML = parseFloat(TotalTaxValue).toFixed(2);
//alert(TotalTaxValue);
- cellval[9].innerHTML = parseFloat(totalservicevalue).toFixed(2);
+ cellval[10].innerHTML = parseFloat(totalservicevalue).toFixed(2);
//alert(basicval);
diff --git a/app/Views/editCapitalPo.php b/app/Views/editCapitalPo.php
index ba8ab4c0..df550de9 100755
--- a/app/Views/editCapitalPo.php
+++ b/app/Views/editCapitalPo.php
@@ -943,6 +943,7 @@ $(document).ready(function () {
| Requisition No |
Item Code |
Item Description |
+ HSN/SAC |
Line Item Specs |
Quantity |
UOM |
@@ -976,6 +977,7 @@ $(document).ready(function () {
MaterialCode ?> |
MaterialName, 0, 13, "...");
echo $shortName; ?> |
+ HSNCODE ?> |
').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#MaterialCode").append($('').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
}
}
@@ -4802,6 +4804,14 @@ $(document).ready(function () {
var costCode = $('#CostCenter').val();
var materialCode = $('#MaterialCode').val();
+ var selectedText = $('#MaterialCode option:selected').text();
+ var parts = selectedText.split('-');
+ var HSN = selectedText.includes('-') && /^\d+$/.test(parts[0].trim())
+ ? parts[0].trim()
+ : '';
+
+
+
var materialName = $("#CapitalItemName").val();
var uom = $("#CPUOM").val();
var addPer = '';
@@ -4942,8 +4952,9 @@ $(document).ready(function () {
| ${temp} |
${Reqnumber} |
${materialCode} |
- ${shorten} | `;
- if (PONOStatus === "PO_DRAFT" || PONOStatus === "PO_CREATED") {
+ ${shorten} |
+ ${HSN} | `;
+ if (PONOStatus === "" || PONOStatus === "") {
rowHtml += `-
@@ -5466,9 +5477,8 @@ $(document).ready(function () {
if (value.MaterialCode == materialCode) {
-
-
- $("#MaterialCode").append($('').val(value.MaterialCode).html(value.MaterialCode + "-" + value.MaterialName));
+ var HSNCODE = value.HSNCODE ? value.HSNCODE+"-" : "";
+ $("#MaterialCode").append($('').val(value.MaterialCode).html( HSNCODE + value.MaterialName+ " ( "+value.MaterialCode+" ) "));
}
@@ -5835,7 +5845,7 @@ $(document).ready(function () {
$('#EditCustomDutyExpenses').val($('#CustomDutyExpenses' + userid).val());
//$('#txtEditInsurance').val($('#RMCIncludingCustomers'+userid).val());
- $('#EdittxtTotalOrderValue').val(cellval[10].innerHTML);
+ $('#EdittxtTotalOrderValue').val(cellval[11].innerHTML);
@@ -5887,13 +5897,25 @@ $(document).ready(function () {
var Material = ;
$("#EditMaterialCode").empty();
+ var P0 = cellval[4].innerHTML;
+ var P1 = (P0) ? P0 + " - " : "";
+ var P2 = P1 + $('#materialName' + userid).val() ;
+ var P3 = P2 + " ( " + $('#materialCode' + userid).val() + ' ) ';
- $("#EditMaterialCode").append($('').val($('#materialCode' + userid).val()).html($('#materialCode' + userid).val() + "-" + $('#materialName' + userid).val()));
+ $("#EditMaterialCode").append($('')
+ .val($('#materialCode' + userid).val())
+ .html(P3)
+ .prop('selected', true)
+ );
+
+ // $("#EditMaterialCode").append($('').val($('#materialCode' + userid).val()).html($('#materialCode' + userid).val() + "-" + $('#materialName' + userid).val()));
for (i = 0; i < Material.length; i++) {
$.each(Material[i], function(idx, obj) {
if (obj.MaterialCode != $('#materialCode' + userid).val()) {
- $("#EditMaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ // $("#EditMaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSN = (obj.HSNCODE) ? obj.HSNCODE+" - " : "";
+ $("#EditMaterialCode").append($('').val(obj.MaterialCode).html(HSN + obj.MaterialName + " ( "+obj.MaterialCode+" ) "));
}
});
@@ -5942,7 +5964,7 @@ $(document).ready(function () {
$('#ViewAfterSgst').val($('#AfterSgst' + userid).val());
$('#ViewAfterIgst').val($('#AfterIgst' + userid).val());
$('#ViewOtherAllowances').val($('#OtherAmt' + userid).val());
- $('#ViewTotalAmountlocal').val(cellval[10].innerHTML);
+ $('#ViewTotalAmountlocal').val(cellval[11].innerHTML);
$('#drpFreightviewloc').val($("#Ftype" + userid).val());
@@ -6555,12 +6577,12 @@ $(document).ready(function () {
var itemRate = parseFloat(convertRate).toFixed(2);
var basicval = $("#EditCPTotalAmount").val();
var Cgst = $("#EditCgst").val();
- var AfterCgst = $("#EditAfterCgst").val();
+ var AfterCgst = $("#EditAfterCgst").val() == '' ? 0 : $("#EditAfterCgst").val();
var Sgst = $("#EditSgst").val();
- var AfterSgst = $("#EditAfterSgst").val();
+ var AfterSgst = $("#EditAfterSgst").val() == '' ? 0 : $("#EditAfterSgst").val();
var Igst = $("#EditIgst").val(); //Dom Caps
- var AfterIgst = $("#EditAfterIgst").val(); //Dom Caps
- var OtherAmt = parseFloat($("#EditOtherAllowances").val() == '' ? "0.00" : $('#EditOtherAllowances').val()).toFixed(2);
+ var AfterIgst = $("#EditAfterIgst").val() == '' ? 0 :$("#EditAfterIgst").val(); //Dom Caps
+ var OtherAmt = parseFloat($("#EditOtherAllowances").val() == '' ? 0 : $('#EditOtherAllowances').val()).toFixed(2);
var TotalTaxValue = EditcalculateTaxValue();
@@ -6601,7 +6623,7 @@ $(document).ready(function () {
var NoOfTrip = $("#EditNOOfTrips").val();
var DisType = $("#EditDiscountType").val();
var DisVal = $("#txtEditDiscount").val();
- var AfterDisVal = $("#txtEditAfterDiscount").val();
+ var AfterDisVal = $("#txtEditAfterDiscount").val() == '' ? 0 : $("#txtEditAfterDiscount").val();
@@ -6618,13 +6640,10 @@ $(document).ready(function () {
var FreightTypeloc = $('#drpFreighteditloc').val();
var FreightRateloc = $('#txtFreightlocedit').val();
- var FreightRateAmountloc = $('#txtAfterFreightlocedit').val();
+ var FreightRateAmountloc = $('#txtAfterFreightlocedit').val() == '' ? 0 : $('#txtAfterFreightlocedit').val();
var Nooftriploc = $('#NOOfTripslocedit').val();
-
-
-
var Total = (parseFloat(basicval) + parseFloat(AfterCgst) + parseFloat(AfterSgst) + parseFloat(AfterIgst) + parseFloat(OtherAmt) - parseFloat(AfterDisVal) + parseFloat(FreightRateAmountloc)).toFixed(2);
if (capital == 0) {
@@ -6715,19 +6734,24 @@ $(document).ready(function () {
$('#DutyImpact' + userid).val(DutyImpact);
$('#NetValue' + userid).val(Nett);
$('#ClearingCharge' + userid).val(ClearingCharges);
+ var editselectedText = $('#EditMaterialCode option:selected').text();
+ var editparts = editselectedText.split('-');
+ var editHSN = editselectedText.includes('-') && /^\d+$/.test(editparts[0].trim())
+ ? editparts[0].trim()
+ : '';
var shorten = materialName.length > 13 ? materialName.slice(0, 13) + "..." : materialName;
cellval[2].innerHTML = materialCode;
cellval[3].innerHTML = shorten;
-
- cellval[5].innerHTML = quantity;
- cellval[6].innerHTML = uom;
- cellval[7].innerHTML = parseFloat(itemRate).toFixed(2);
- cellval[8].innerHTML = parseFloat(basicval).toFixed(2);
- cellval[9].innerHTML = parseFloat(TotalTaxValue).toFixed(2); // what should i display here ?? if international means
- cellval[10].innerHTML = parseFloat(Total).toFixed(2);
+ cellval[4].innerHTML = editHSN;
+ cellval[6].innerHTML = quantity;
+ cellval[7].innerHTML = uom;
+ cellval[8].innerHTML = parseFloat(itemRate).toFixed(2);
+ cellval[9].innerHTML = parseFloat(basicval).toFixed(2);
+ cellval[10].innerHTML = parseFloat(TotalTaxValue).toFixed(2); // what should i display here ?? if international means
+ cellval[11].innerHTML = parseFloat(Total).toFixed(2);
diff --git a/app/Views/editImportAmendPO.php b/app/Views/editImportAmendPO.php
index 1500d30e..4e38583b 100755
--- a/app/Views/editImportAmendPO.php
+++ b/app/Views/editImportAmendPO.php
@@ -1279,6 +1279,7 @@ if (!empty($RequistionDetails)) {
| SNo |
Requisition No |
Item Description |
+ HSN/SAC |
Line Item Specs |
Quantity |
UOM |
@@ -1304,6 +1305,7 @@ if (!empty($RequistionDetails)) {
ReqNo ?> |
MaterialName, 0, 13, "...");
echo $shortName; ?> |
+ HSNCODE ?> |
').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#MaterialCode").append($('').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
}
}
@@ -2678,10 +2680,19 @@ if (!empty($RequistionDetails)) {
- $('#EditTotalOrderValue').val(cellval[6].innerHTML);
+ $('#EditTotalOrderValue').val(cellval[7].innerHTML);
$("#EditMaterialCode").empty();
var Material = ;
- $("#EditMaterialCode").append($('').val($('#materialCode' + userid).val()).html($('#materialCode' + userid).val() + "-" + $('#materialName' + userid).val()));
+ var P0 = cellval[3].innerHTML;
+ var P1 = (P0) ? P0 + " - " : "";
+ var P2 = P1 + $('#materialName' + userid).val() ;
+ var P3 = P2 + " ( " + $('#materialCode' + userid).val() + ' ) ';
+
+ $("#EditMaterialCode").append($('')
+ .val($('#materialCode' + userid).val())
+ .html(P3)
+ .prop('selected', true)
+ );
var isAdded = "0";
for (i = 0; i < Material.length; i++) {
$.each(Material[i], function(idx, obj) {
@@ -2724,6 +2735,13 @@ if (!empty($RequistionDetails)) {
var CostCode = $("#EditCostCenter").val();
var AvilBudget = $('#EditAvlBudAmt').val();
var editMaterialCode = $("#EditMaterialCode").val();
+
+ var editselectedText = $('#EditMaterialCode option:selected').text();
+ var editparts = editselectedText.split('-');
+ var editHSN = editselectedText.includes('-') && /^\d+$/.test(editparts[0].trim())
+ ? editparts[0].trim()
+ : '';
+
var edititemname = $("#EditItemName").val();
var editUOM = $('#EditUOM').val();
var editQuantity = $('#EditQuantity').val();
@@ -2799,11 +2817,11 @@ if (!empty($RequistionDetails)) {
var tr = document.getElementById(userid);
var cellval = tr.cells;
-
- cellval[4].innerHTML = editQuantity;
- cellval[5].innerHTML = editUOM;
- cellval[6].innerHTML = itemRate;
- cellval[7].innerHTML = BasicValue;
+ cellval[4].innerHTML = editHSN;
+ cellval[5].innerHTML = editQuantity;
+ cellval[6].innerHTML = editUOM;
+ cellval[7].innerHTML = itemRate;
+ cellval[8].innerHTML = BasicValue;
$('#materialCode' + userid).val(editMaterialCode);
$('#materialName' + userid).val(edititemname);
diff --git a/app/Views/editRevenueAmendPO.php b/app/Views/editRevenueAmendPO.php
index 5fd2ce98..91c73689 100755
--- a/app/Views/editRevenueAmendPO.php
+++ b/app/Views/editRevenueAmendPO.php
@@ -1316,6 +1316,7 @@ if (!empty($INRSYMBOL)) {
| SNo |
Requisition No |
Item Description |
+ HSN/SAC |
Line Item Specs |
Quantity |
UOM |
@@ -1341,6 +1342,7 @@ if (!empty($INRSYMBOL)) {
ReqNo ?> |
MaterialName, 0, 13, "...");
echo $shortName; ?> |
+ HSNCODE ?> |
';
userid = $(e.relatedTarget).data('userid');
+
$('#isEdit').val(1);
$('#isEdit').val(1);
- if (tempUserId == 0) {
var tr = document.getElementById(userid);
var cellval = tr.cells;
var id = $('#Reqnumber' + userid).val();
@@ -2364,6 +2366,7 @@ if (!empty($INRSYMBOL)) {
$('#EditAvlBudAmt').val(AvlBudAmt);
$('#EditMaterialCode').val($('#materialCode' + userid).val());
+
$('#EditItemName').val($('#materialName' + userid).val());
$('#EditUOM').val($('#uom' + userid).val());
$('#EditQuantity').val($('#quantity' + userid).val());
@@ -2372,7 +2375,7 @@ if (!empty($INRSYMBOL)) {
var EdititemRate = parseFloat($('#itemRate' + userid).val()).toFixed(2);
$('#EditRate').val(EdititemRate);
- $('#txtEditBasicValue').val(parseFloat(cellval[7].innerHTML).toFixed(2));
+ $('#txtEditBasicValue').val(parseFloat(cellval[8].innerHTML).toFixed(2));
RequistQuantity = $('#quantity' + userid).val();
$('#txtEditDiscount').val($('#DisVal' + userid).val());
$('#txtEditAfterDiscount').val($('#AfterDisVal' + userid).val());
@@ -2400,7 +2403,16 @@ if (!empty($INRSYMBOL)) {
$("#EditMaterialCode").empty();
var Material = ;
// For Binding Material list center for the selected Requistion Number
- $("#EditMaterialCode").append($('').val($('#materialCode' + userid).val()).html($('#materialCode' + userid).val() + "-" + $('#materialName' + userid).val()));
+ var P0 = cellval[3].innerHTML;
+ var P1 = (P0) ? P0 + " - " : "";
+ var P2 = P1 + $('#materialName' + userid).val() ;
+ var P3 = P2 + " ( " + $('#materialCode' + userid).val() + ' ) ';
+
+ $("#EditMaterialCode").append($('')
+ .val($('#materialCode' + userid).val())
+ .html(P3)
+ .prop('selected', true)
+ );
var isAdded = "0";
for (i = 0; i < Material.length; i++) {
$.each(Material[i], function (idx, obj) {
@@ -2416,7 +2428,8 @@ if (!empty($INRSYMBOL)) {
}
});
if (isAdded == "0") {
- $("#EditMaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#EditMaterialCode").append($('').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
}
}
});
@@ -2428,7 +2441,7 @@ if (!empty($INRSYMBOL)) {
$("input:radio[name='optExcise'][value='" + $('#ExciseOption' + userid).val() + "']").prop('checked', 'checked');
$("input:radio[name='optVat'][value='" + $('#VatOption' + userid).val() + "']").prop('checked', 'checked');
$("input:radio[name='optCST'][value='" + $('#CSTOption' + userid).val() + "']").prop('checked', 'checked');
- }
+
if (userid) {
tempUserId = userid;
@@ -2487,18 +2500,23 @@ if (!empty($INRSYMBOL)) {
var TotalOrderValue = $("#txtEditTotalOrderValue").val();
var Service_Description = $("#Edit_Service_Description").val();
var TotalTaxValue = calculateEditTaxValue();
+ var editselectedText = $('#EditMaterialCode option:selected').text();
+ var editparts = editselectedText.split('-');
+ var editHSN = editselectedText.includes('-') && /^\d+$/.test(editparts[0].trim())
+ ? editparts[0].trim()
+ : '';
var tr = document.getElementById(userid);
var cellval = tr.cells;
var shorten = editDescription.length > 13 ? editDescription.slice(0, 13) + "..." : editDescription;
cellval[2].innerHTML = shorten;
-
- cellval[4].innerHTML = parseFloat(editQuantity).toFixed(2);
- cellval[5].innerHTML = editUOM;
- cellval[6].innerHTML = parseFloat(itemRate).toFixed(2);
- cellval[7].innerHTML = parseFloat(basicval).toFixed(2);
- cellval[8].innerHTML = parseFloat(TotalTaxValue).toFixed(2);
- cellval[9].innerHTML = parseFloat(TotalOrderValue).toFixed(2);
+ cellval[3].innerHTML = editHSN;
+ cellval[5].innerHTML = parseFloat(editQuantity).toFixed(2);
+ cellval[6].innerHTML = editUOM;
+ cellval[7].innerHTML = parseFloat(itemRate).toFixed(2);
+ cellval[8].innerHTML = parseFloat(basicval).toFixed(2);
+ cellval[9].innerHTML = parseFloat(TotalTaxValue).toFixed(2);
+ cellval[10].innerHTML = parseFloat(TotalOrderValue).toFixed(2);
$('#materialCode' + userid).val(editMaterialCode);
$('#materialName' + userid).val(editDescription);
@@ -2865,7 +2883,7 @@ if (!empty($INRSYMBOL)) {
+
+
diff --git a/app/Views/importpo.php b/app/Views/importpo.php
index 56790240..4d034d64 100755
--- a/app/Views/importpo.php
+++ b/app/Views/importpo.php
@@ -322,10 +322,19 @@ if (isset($AvlimportBudAmt) && !empty($AvlimportBudAmt)) {
$('#editTripsValue').hide();
}
$('#EditPer').val($('#Per' + userid).val());
- $('#EditTotalOrderValue').val(cellval[9].innerHTML);
+ $('#EditTotalOrderValue').val(cellval[10].innerHTML);
$("#EditMaterialCode").empty();
var Material = ;
- $("#EditMaterialCode").append($('').val($('#materialCode' + userid).val()).html($('#materialCode' + userid).val() + "-" + $('#materialName' + userid).val()));
+ var P0 = cellval[4].innerHTML;
+ var P1 = (P0) ? P0 + " - " : "";
+ var P2 = P1 + $('#materialName' + userid).val() ;
+ var P3 = P2 + " ( " + $('#materialCode' + userid).val() + ' ) ';
+
+ $("#EditMaterialCode").append($('')
+ .val($('#materialCode' + userid).val())
+ .html(P3)
+ .prop('selected', true)
+ );
var isAdded = "0";
for (i = 0; i < Material.length; i++) {
$.each(Material[i], function(idx, obj) {
@@ -341,7 +350,9 @@ if (isset($AvlimportBudAmt) && !empty($AvlimportBudAmt)) {
}
});
if (isAdded == "0") {
- $("#EditMaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#EditMaterialCode").append($('').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
+ // $("#EditMaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
}
}
});
@@ -842,6 +853,7 @@ if (isset($AvlimportBudAmt) && !empty($AvlimportBudAmt)) {
| Requisition No |
Item Code |
Item Description |
+ HSN/SAC |
Line Item Specs |
Quantity |
UOM |
@@ -2355,8 +2367,9 @@ if (isset($AvlimportBudAmt) && !empty($AvlimportBudAmt)) {
if (isAdded == "0") {
-
- $("#MaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#MaterialCode").append($('').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
+
}
}
@@ -3439,6 +3452,14 @@ if (isset($AvlimportBudAmt) && !empty($AvlimportBudAmt)) {
var AvilBudget = $('#AvlBudAmt').val();
var costCode = $('#CostCenter').val();
var materialCode = $('#MaterialCode').val();
+ var selectedText = $('#MaterialCode option:selected').text();
+ var parts = selectedText.split('-');
+ var HSN = selectedText.includes('-') && /^\d+$/.test(parts[0].trim())
+ ? parts[0].trim()
+ : '';
+
+
+
var materialName = $("#ItemName").val();
var uom = $("#UOM").val();
var quantity = $("#Quantity").val();
@@ -3533,6 +3554,7 @@ if (isset($AvlimportBudAmt) && !empty($AvlimportBudAmt)) {
${Reqnumber} |
${materialCode} |
${shorten} |
+ ${HSN} |
-
@@ -3873,13 +3895,20 @@ if (isset($AvlimportBudAmt) && !empty($AvlimportBudAmt)) {
if (FreightTypename != "PER TRIP") {
Nooftrip = '';
}
+
+ var editselectedText = $('#EditMaterialCode option:selected').text();
+ var editparts = editselectedText.split('-');
+ var editHSN = editselectedText.includes('-') && /^\d+$/.test(editparts[0].trim())
+ ? editparts[0].trim()
+ : '';
var tr = document.getElementById(userid);
var cellval = tr.cells;
- cellval[5].innerHTML = editQuantity;
- cellval[6].innerHTML = editUOM;
- cellval[7].innerHTML = itemRate;
- cellval[8].innerHTML = BasicValue;
+ cellval[4].innerHTML = editHSN;
+ cellval[6].innerHTML = editQuantity;
+ cellval[7].innerHTML = editUOM;
+ cellval[8].innerHTML = itemRate;
+ cellval[9].innerHTML = BasicValue;
$('#materialCode' + userid).val(editMaterialCode);
$('#materialName' + userid).val(edititemname);
diff --git a/app/Views/inwardgateregister.php b/app/Views/inwardgateregister.php
index ba94d820..ea89ce2c 100755
--- a/app/Views/inwardgateregister.php
+++ b/app/Views/inwardgateregister.php
@@ -160,6 +160,7 @@
| # |
Item Code |
Item Description |
+ HSN/SAC |
Rate |
UOM |
Ordered Quantity |
@@ -297,13 +298,35 @@
$(".searchabledropdown").select2();
- $('#IGRLink').on('click', function() {
- filecheck(1);
+ function debounce(func, timeout = 300) {
+ let timer;
+ return (...args) => {
+ clearTimeout(timer);
+ timer = setTimeout(() => { func.apply(this, args); }, timeout);
+ };
+ }
+
+ $('#IGRLink, #IGRDraftLink').on('click', function(e) {
+ e.preventDefault();
+ const $btn = $(this);
+ const strMsg = $btn.is('#IGRLink')
+ ? 'generate the IGR?'
+ : 'Save as draft IGR?';
+
+ if (confirm('Are you sure you want to ' + strMsg)) {
+ $btn.prop("disabled", true)
+ .html(' Processing...');
+ filecheck($btn.is('#IGRLink') ? 1 : 0);
+ }
});
- $('#IGRDraftLink').on('click', function() {
- filecheck(0);
- });
+ // $('#IGRLink').on('click', function() {
+ // filecheck(1);
+ // });
+
+ // $('#IGRDraftLink').on('click', function() {
+ // filecheck(0);
+ // });
function filecheck(status) {
$('#hideIGRStatus').val(status);
@@ -320,9 +343,19 @@
// }
// }
function Save() {
- $("#IGRLink, #IGRDraftLink").prop("disabled", true);
+
+ $("#IGRLink, #IGRDraftLink")
+ .prop("disabled", true)
+ .html(' Processing...');
if (validate()) { $("#IGRForm").submit(); }
- else { $("#IGRLink, #IGRDraftLink").prop("disabled", false); }
+ else {
+ // Re-enable buttons and restore original text
+ $("#IGRLink, #IGRDraftLink")
+ .prop("disabled", false)
+ .text(function() {
+ return $(this).attr('id') === 'IGRLink' ? 'Generate IGR' : 'Save as Draft IGR';
+ });
+ }
}
});
@@ -380,10 +413,10 @@
$('#MaterialRcvdDate').focus();
return false;
} else if (Noval == 0) {
- alert('Invoice Quantity is Empty.Please Enter the value');
+ alert('Invoice Quantity is Missing. Kindly Enter the Value');
return false;
} else if (isExceed == 1 && formatted_IsOpenOrder == 0) {
- alert("Invoice Quantity is exceeding the Ordered Quantity.Please Contact Purchase Team for further Process ")
+ alert("Invoice Quantity is exceeding the Ordered Quantity. Please Contact Purchase Team for further Process ")
return false;
} else {
return true;
@@ -466,6 +499,7 @@
'' + j + ' | ' +
'' + item.MaterialCode + ' | ' +
'' + item.MaterialName + ' | ' +
+ '' + ((item.HSNCODE) ? item.HSNCODE : '') + ' | ' +
'' + Number(item.Rate).toFixed(2) + ' | ' +
'' + item.UOM + ' | ' +
'' + item.Quantity + ' | ' +
@@ -898,6 +932,7 @@
'' + j + ' | ' +
'' + item.MaterialCode + ' | ' +
'' + item.MaterialName + ' | ' +
+ '' + ((item.HSNCODE) ? item.HSNCODE : '') + ' | ' +
'' + Number(item.Rate).toFixed(2) + ' | ' +
'' + item.UOM + ' | ' +
'' + item.Quantity + ' | ' +
diff --git a/app/Views/monthlypayinputs.php b/app/Views/monthlypayinputs.php
index d55a9f6c..24f83734 100755
--- a/app/Views/monthlypayinputs.php
+++ b/app/Views/monthlypayinputs.php
@@ -203,6 +203,12 @@
border: 1px solid #ccc;border-radius: 5px;margin-right:15px;">
+ "
+ title="">
+
+
+
@@ -498,7 +504,7 @@
+ value="is_driver ?>">
@@ -561,8 +567,8 @@
-
-
+ |
+
|
@@ -614,7 +620,7 @@
- payroll_id)) { echo "contenteditable='true';"; } ?>
payroll_id)) { ?> title="Payslip Calculated"
style="text-align:right;color:blue;"
@@ -634,7 +640,7 @@
|
-
+
exportMonthlyPayInputs",
+ success: function(data) {
+ if(data){
+ alert("step1");
+ }else{
+ alert("false");
+ }
+ },
+ error:function(error){
+ alert("error");
+ console.log("error occured..!!" ,error);
+ },
+ complete:function(){
+ $('#loader').hide();
+ console.log('ajax call completed..!!');
+ }
+ });
+
+ }
+
$("#monthyear").change(function() {
@@ -1233,7 +1265,7 @@ $(document).ready(function () {
var driverMonthSalary = driverSalaryAdd - driverSalarySub
var driverSalary = Math.round(driverMonthSalary);
- console.log("Sal ",driverSalary);
+ console.log("Driver Sal ",driverSalary);
var cals = (driverSalary).toFixed(0);
@@ -1241,35 +1273,41 @@ $(document).ready(function () {
document.getElementById("empsal" + sno).innerHTML = cals;
// copied from calculategrandtotal() because we need those two only thats why
- var AutoLoanDueIndex = 22;
+ const td = document.querySelector('.monthDue');
+ var AutoLoanDueIndex = td ? td.cellIndex : -1;
var AutoLoanDue = 0;
$('#monthlylistings tbody tr').each(function() {
var value = $(this).find('td').eq(AutoLoanDueIndex).text();
AutoLoanDue += parseFloat(value) || 0;
});
$('#monthloan').text(AutoLoanDue);
+
+ console.log("AutoLoanDue ",AutoLoanDue);
- var FestivalBonusIndex = 24;
+ var FestivalBonusIndex = 23;
var FestivalBonus = 0;
$('#monthlylistings tbody tr').each(function() {
var value = $(this).find('td').eq(FestivalBonusIndex).text();
FestivalBonus += parseFloat(value) || 0;
});
$('#fest').text(FestivalBonus);
+ console.log("FestivalBonus ",FestivalBonus);
- var EstimateIndex = 25;
+ var EstimateIndex = 24;
var Estimate = 0;
$('#monthlylistings tbody tr').each(function() {
var value = $(this).find('td').eq(EstimateIndex).text();
Estimate += parseFloat(value) || 0;
});
$('#estsal').text(Estimate);
+ console.log("Estimate ",Estimate);
}
function calculategrandtotal()
{
- var AutoLoanDueIndex = 22;
+ const td = document.querySelector('.monthDue');
+ var AutoLoanDueIndex = td ? td.cellIndex : -1;
var AutoLoanDue = 0;
$('#monthlylistings tbody tr').each(function() {
var value = $(this).find('td').eq(AutoLoanDueIndex).text();
@@ -1277,7 +1315,7 @@ $(document).ready(function () {
});
$('#monthloan').text(AutoLoanDue);
- var TDSDeductionsIndex = 23;
+ var TDSDeductionsIndex = 22;
var TDSDeductions = 0;
$('#monthlylistings tbody tr').each(function() {
var value = $(this).find('td').eq(TDSDeductionsIndex).text();
@@ -1285,7 +1323,7 @@ $(document).ready(function () {
});
$('#other').text(TDSDeductions);
- var FestivalBonusIndex = 24;
+ var FestivalBonusIndex = 23;
var FestivalBonus = 0;
$('#monthlylistings tbody tr').each(function() {
var value = $(this).find('td').eq(FestivalBonusIndex).text();
@@ -1293,7 +1331,7 @@ $(document).ready(function () {
});
$('#fest').text(FestivalBonus);
- var EstimateIndex = 25;
+ var EstimateIndex = 24;
var Estimate = 0;
$('#monthlylistings tbody tr').each(function() {
var value = $(this).find('td').eq(EstimateIndex).text();
@@ -1306,11 +1344,10 @@ $(document).ready(function () {
-function openDriverLoad(element) {
- var empId = $(element).data("empid"); // Get the empid from clicked element
+function openDriverLoad(empId) {
var monthYear = $('#monthyear').val();
- // Convert "03-2025" to "Mar-2025"
- var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
+ // Convert "03-2025" to "Mar-2025"
+ var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var parts = monthYear.split('-');
var monthIndex = parseInt(parts[0], 10) - 1; // Convert "03" to index 2 (March)
var formattedMonthYear = monthNames[monthIndex] + '-' + parts[1];
diff --git a/app/Views/publicholidays.php b/app/Views/publicholidays.php
index 117e9d85..50fae240 100755
--- a/app/Views/publicholidays.php
+++ b/app/Views/publicholidays.php
@@ -94,61 +94,100 @@
-
\ No newline at end of file
diff --git a/app/Views/requisitionlisting.php b/app/Views/requisitionlisting.php
index 8cc36bac..aa7686a2 100755
--- a/app/Views/requisitionlisting.php
+++ b/app/Views/requisitionlisting.php
@@ -170,7 +170,7 @@ if (!empty($Status)) {
| newLineItem ?> |
- StatusName); ?> |
+ StatusName); ?> |
Sales
- Invoices List
+ Invoice List
@@ -341,7 +341,7 @@
-
+
$value) { ?>
@@ -541,7 +541,7 @@ $(document).ready(function () {
console.log(element);
var fileName = element.file_name;
var attachmentName = element.attachment_name;
- attachmentsHtml += `
+ attachmentsHtml += `
File Name
@@ -576,11 +576,11 @@ $(document).ready(function () {
var newRowHtml = `
- File name
+ File name*
- File
+ File*
diff --git a/app/Views/servicePurchaseorder.php b/app/Views/servicePurchaseorder.php
index 4022cf07..8a329e85 100755
--- a/app/Views/servicePurchaseorder.php
+++ b/app/Views/servicePurchaseorder.php
@@ -336,8 +336,8 @@ if (!empty($INRSYMBOL)) {
if (isAdded == "0") {
-
- $("#MaterialCode").append($(' ').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#MaterialCode").append($(' ').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
}
}
@@ -686,6 +686,13 @@ if (!empty($INRSYMBOL)) {
var CostCode = $("#EditCostCenter").val();
var AvilBudget = $('#EditAvlBudAmt').val();
var editMaterialCode = $("#EditMaterialCode").val();
+ var selectedText = $('#EditMaterialCode option:selected').text();
+ var editselectedText = $('#EditMaterialCode option:selected').text();
+ var editparts = editselectedText.split('-');
+ var editHSN = editselectedText.includes('-') && /^\d+$/.test(editparts[0].trim())
+ ? editparts[0].trim()
+ : '';
+
var editDescription = $("#EditItemName").val();
var editUOM = $('#EditUOM').val();
var editPer = '';
@@ -725,12 +732,13 @@ if (!empty($INRSYMBOL)) {
cellval[2].innerHTML = editMaterialCode;
cellval[3].innerHTML = editDescription;
- cellval[5].innerHTML = editQuantity;
- cellval[6].innerHTML = editUOM;
- cellval[7].innerHTML = parseFloat(itemRate).toFixed(2);
- cellval[8].innerHTML = parseFloat(basicval).toFixed(2);
- cellval[9].innerHTML = parseFloat(TotalTaxValue).toFixed(2);
- cellval[10].innerHTML = parseFloat(TotalOrderValue).toFixed(2);
+ cellval[4].innerHTML = editHSN;
+ cellval[6].innerHTML = editQuantity;
+ cellval[7].innerHTML = editUOM;
+ cellval[8].innerHTML = parseFloat(itemRate).toFixed(2);
+ cellval[9].innerHTML = parseFloat(basicval).toFixed(2);
+ cellval[10].innerHTML = parseFloat(TotalTaxValue).toFixed(2);
+ cellval[11].innerHTML = parseFloat(TotalOrderValue).toFixed(2);
$('#materialCode' + userid).val(editMaterialCode);
@@ -1069,6 +1077,7 @@ if (!empty($INRSYMBOL)) {
Requisition No |
Item Code |
Item Description |
+ HSN/SAC |
Line Item Specs |
Quantity |
UOM |
@@ -1824,7 +1833,7 @@ if (!empty($INRSYMBOL)) {
$('#EditQuantity').val($('#quantity' + userid).val());
RequistQuantity = $('#quantity' + userid).val();
$('#EditRate').val($('#itemRate' + userid).val());
- $('#txtEditBasicValue').val(cellval[7].innerHTML);
+ $('#txtEditBasicValue').val(cellval[9].innerHTML);
$('#EditCgst').val($('#Cgst' + userid).val());
$('#EditAfterCgst').val($('#AfterCgst' + userid).val());
$('#EditSgst').val($('#Sgst' + userid).val());
@@ -1842,7 +1851,7 @@ if (!empty($INRSYMBOL)) {
$("#EditFrequencyNo").val($('#FrequencyValue' + userid).val());
}
- $('#EditTotalOrderValue').val(cellval[9].innerHTML);
+ $('#EditTotalOrderValue').val(cellval[11].innerHTML);
$('#EditOtherAllowances').val($('#OtherAmt' + userid).val());
$('#EditOtheritemDescription').val($('#OtherServiceDescription' + userid).val());
@@ -1863,7 +1872,12 @@ if (!empty($INRSYMBOL)) {
$("#EditMaterialCode").empty();
var Material = ;
// For Binding Material list center for the selected Requistion Number
- $("#EditMaterialCode").append($(' ').val($('#materialCode' + userid).val()).html($('#materialCode' + userid).val() + "-" + $('#materialName' + userid).val()));
+ var P0 = cellval[4].innerHTML;
+ var P1 = (P0) ? P0 + " - " : "";
+ var P2 = P1 + $('#materialName' + userid).val() ;
+ var P3 = P2 + " ( " + $('#materialCode' + userid).val() + ' ) ';
+
+ $("#EditMaterialCode").append($(' ').val($('#materialCode' + userid).val()).html(P3));
var isAdded = "0";
for (i = 0; i < Material.length; i++) {
$.each(Material[i], function(idx, obj) {
@@ -1891,8 +1905,8 @@ if (!empty($INRSYMBOL)) {
if (isAdded == "0") {
-
- $("#EditMaterialCode").append($(' ').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName));
+ var HSNCODE = obj.HSNCODE ? obj.HSNCODE+" - " : "";
+ $("#EditMaterialCode").append($(' ').val(obj.MaterialCode).html( HSNCODE + obj.MaterialName+ " ( "+obj.MaterialCode+" ) "));
}
}
@@ -1919,6 +1933,11 @@ if (!empty($INRSYMBOL)) {
var AvilBudget = $('#AvlBudAmt').val();
var costCode = $('#CostCenter').val();
var materialCode = $('#MaterialCode').val();
+ var selectedText = $('#MaterialCode option:selected').text();
+ var parts = selectedText.split('-');
+ var HSN = selectedText.includes('-') && /^\d+$/.test(parts[0].trim())
+ ? parts[0].trim()
+ : '';
var materialName = $("#ItemName").val();
var uom = $("#UOM").val();
@@ -1991,6 +2010,7 @@ if (!empty($INRSYMBOL)) {
${Reqnumber} |
${materialCode} |
${shorten} |
+ ${HSN} |
-
diff --git a/app/Views/viewinwardgateregister.php b/app/Views/viewinwardgateregister.php
index f1e04c44..9c90c0c9 100755
--- a/app/Views/viewinwardgateregister.php
+++ b/app/Views/viewinwardgateregister.php
@@ -248,7 +248,7 @@
$time = $createddate->format('h:i A');
?>
|
- |
+ |
|
@@ -267,7 +267,7 @@
|
SupplierName ?> |
DeliveryChellanOrInvoiceNo ?> |
- DeliveryChellanDate;
if(!$invdate || $invdate == 'null' || $invdate === '0000-00-00 00:00:00'){
echo "";
@@ -301,7 +301,7 @@
isIgrFilePresent)){ ?>
-
+
@@ -497,6 +497,7 @@
| SNo |
Item Code |
Item Description |
+ HSN/SAC |
UOM |
Ordered Qty |
Received Qty |
@@ -629,7 +630,7 @@
?>
-
+
| |