From 963b6d888d46a44aaed2867d809f4e697f8c3254 Mon Sep 17 00:00:00 2001 From: VE10-Sanjeev Date: Thu, 10 Apr 2025 13:02:26 +0000 Subject: [PATCH 1/8] export XL --- app/Config/Routes.php | 2 + app/Controllers/Payslip.php | 318 ++++++++++++++++++++++++- app/Helpers/excel_helper.php | 409 ++++++++++++++++++++++++++++++-- app/Models/Monthlypay_model.php | 4 +- app/Views/monthlypayinputs.php | 32 +++ 5 files changed, 733 insertions(+), 32 deletions(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index f3ea3138..7070883c 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -203,6 +203,8 @@ $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('emppaydate/addemppaydate', 'Emppaydate::addemppaydate'); $routes->post('emppaydate/addNewemppay', 'Emppaydate::addNewemppay'); diff --git a/app/Controllers/Payslip.php b/app/Controllers/Payslip.php index 5d09e9e2..26810657 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,315 @@ 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); + + $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) { 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/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/Views/monthlypayinputs.php b/app/Views/monthlypayinputs.php index 1cb5f9e8..cc6704ee 100755 --- a/app/Views/monthlypayinputs.php +++ b/app/Views/monthlypayinputs.php @@ -201,6 +201,12 @@ + " + title=""> + + + @@ -949,6 +955,32 @@ $(document).ready(function () { }); } + function DataForExportExcel(){ + var my = $('#monthyear').val(); + $('#loader').show(); + $.ajax({ + data:{MY:my}, + type: "POST", + url: "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() { From 8a76fbcf52af53e96aeb81987b83702aeb515de6 Mon Sep 17 00:00:00 2001 From: VE10-Sanjeev Date: Sun, 13 Apr 2025 16:22:31 +0000 Subject: [PATCH 2/8] tracker issues fixes --- app/Config/Routes.php | 1 + app/Controllers/Inwardgateregister.php | 3 +- app/Controllers/Monthlypay.php | 20 +++ app/Controllers/Payslip.php | 18 ++- app/Controllers/Requisitionform.php | 17 +-- app/Models/Config_model.php | 1 + app/Models/Employeedetails_model.php | 3 +- app/Models/Inwardgateregister_model.php | 4 +- app/Models/Purchaseorder_model.php | 10 +- app/Models/Rawmaterialdetails_model.php | 2 +- app/Models/Requistion_model.php | 8 +- app/Views/EditservicePurchaseorder.php | 71 ++++++---- app/Views/accountsDashboard.php | 8 +- app/Views/alterpurchaseorder.php | 97 ++++++++++---- app/Views/capitalpurchaseorder.php | 51 ++++++-- app/Views/driverPayslipGeneratePrint.php | 143 ++++++++++++--------- app/Views/editCapitalAmendPO.php | 42 ++++-- app/Views/editCapitalPo.php | 61 ++++++--- app/Views/editImportAmendPO.php | 36 ++++-- app/Views/editRevenueAmendPO.php | 46 +++++-- app/Views/editRevenuepurchaseorder.php | 64 ++++++--- app/Views/editServiceAmendPO.php | 50 ++++--- app/Views/editconfig.php | 27 ++-- app/Views/editimportpo.php | 61 ++++++--- app/Views/editrequisitionform.php | 46 +++++-- app/Views/employeeLeaveApplicationForm.php | 75 ++++++++++- app/Views/importpo.php | 47 +++++-- app/Views/inwardgateregister.php | 49 ++++++- app/Views/purchaseorder.php | 51 ++++++-- app/Views/rawmaterialListing.php | 8 +- app/Views/requisitionform.php | 32 ++++- app/Views/requisitionlisting.php | 2 +- app/Views/servicePurchaseorder.php | 46 +++++-- app/Views/viewinwardgateregister.php | 8 +- 34 files changed, 871 insertions(+), 337 deletions(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index a6c7e695..929c4b0b 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -204,6 +204,7 @@ $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'); diff --git a/app/Controllers/Inwardgateregister.php b/app/Controllers/Inwardgateregister.php index 696df7f7..e42414ab 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);
   }
diff --git a/app/Controllers/Monthlypay.php b/app/Controllers/Monthlypay.php
index 453ffa6c..9ec20dd5 100755
--- a/app/Controllers/Monthlypay.php
+++ b/app/Controllers/Monthlypay.php
@@ -1041,6 +1041,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 26810657..d493ed23 100755
--- a/app/Controllers/Payslip.php
+++ b/app/Controllers/Payslip.php
@@ -587,7 +587,23 @@ class Payslip extends BaseController
 			}
 		}
 		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);
diff --git a/app/Controllers/Requisitionform.php b/app/Controllers/Requisitionform.php
index 287dee63..df083ed1 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);
 	}
 
 	/**
@@ -298,7 +287,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'];
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/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/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/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..8017f97e 100755
--- a/app/Models/Rawmaterialdetails_model.php
+++ b/app/Models/Rawmaterialdetails_model.php
@@ -444,7 +444,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..d2fe8011 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 );
@@ -197,7 +197,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,7 +587,7 @@ 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;
diff --git a/app/Views/EditservicePurchaseorder.php b/app/Views/EditservicePurchaseorder.php
index 401b562d..2ee52d2a 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,7 +2676,8 @@ if (!empty($getlogpodtl)) {
 						${temp}
 						${Reqnumber}
 						${materialCode}
-						${shorten}`;
+						${shorten}
+						${HSN}`;
 			if (PONOStatus === "PO_DRAFT" || PONOStatus === "PO_CREATED") {
 				rowHtml += `;
+			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..efe753ab 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 "";
@@ -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..ffea7946 100755
--- a/app/Views/alterpurchaseorder.php
+++ b/app/Views/alterpurchaseorder.php
@@ -2222,8 +2222,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 +2233,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 {
 
@@ -2366,7 +2365,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+" ) "));
                 }
             });
 
@@ -2950,6 +2950,7 @@ if (!empty($INRSYMBOL)) {
                                                 Requisition No
                                                 Item Code
                                                 Item Description
+                                                HSN/SAC
                                                 Line Item Specs
                                                 Quantity
                                                 UOM
@@ -6080,6 +6081,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 +6107,7 @@ if (!empty($INRSYMBOL)) {
                     ${Reqnumber}
                     ${materialCode}
                     ${rshorten}
+                    ${RHSN}
                     -
@@ -6748,6 +6756,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 +6818,7 @@ if (!empty($INRSYMBOL)) {
                     ${Reqnumber}
                     ${materialCode}
                     ${sshorten}
+                    ${SHSN}
                     -
@@ -7007,14 +7022,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 +7041,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 +7053,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 +7148,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);
@@ -7674,7 +7701,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 +7735,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 +7764,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 +7843,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/driverPayslipGeneratePrint.php b/app/Views/driverPayslipGeneratePrint.php
index 916654aa..6002e57b 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 NumberAadharNo);?>
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_loads ?>
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 @@ - + 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') { + @@ -913,6 +914,7 @@ if (!empty($POItem) && $CapitalRange == '1') { + + @@ -976,6 +977,7 @@ $(document).ready(function () { + - `; + + `; if (PONOStatus === "PO_DRAFT" || PONOStatus === "PO_CREATED") { rowHtml += ` + @@ -1304,6 +1305,7 @@ if (!empty($RequistionDetails)) { + + @@ -1341,6 +1342,7 @@ if (!empty($INRSYMBOL)) { + + @@ -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)) { + + @@ -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 IGR?' + : 'Save as draft IGR?'; + + if (confirm('Are you sure? ' + 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'; + }); + } } }); @@ -466,6 +499,7 @@ '' + '' + '' + + '' + '' + '' + '' + @@ -898,6 +932,7 @@ '' + '' + '' + + '' + '' + '' + '' + diff --git a/app/Views/purchaseorder.php b/app/Views/purchaseorder.php index 72935ced..8dbe100b 100755 --- a/app/Views/purchaseorder.php +++ b/app/Views/purchaseorder.php @@ -406,8 +406,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)); } } @@ -2191,6 +2192,7 @@ if (!empty($INRSYMBOL)) { + @@ -3311,7 +3313,7 @@ if (!empty($INRSYMBOL)) { } else { $('#EditPer').val($('#uom' + userid).val()); } - $('#txtEditBasicValue').val(cellval[8].innerHTML); + $('#txtEditBasicValue').val(cellval[9].innerHTML); RequistQuantity = $('#quantity' + userid).val(); $('#txtEditDiscount').val($('#DisVal' + userid).val()); $('#txtEditAfterDiscount').val($('#AfterDisVal' + userid).val()); @@ -3346,7 +3348,17 @@ 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())); + // $("#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++) { @@ -3373,7 +3385,9 @@ 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+" ) ")); + // $("#EditMaterialCode").append($('').val(obj.MaterialCode).html(obj.MaterialCode + "-" + obj.MaterialName)); } } @@ -3443,6 +3457,12 @@ if (!empty($INRSYMBOL)) { // $('#ReqNo').val(Reqnumber).remove(); // $('#ReqNo option[value='+Reqnumber+']').remove(); + 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(); @@ -3485,6 +3505,7 @@ if (!empty($INRSYMBOL)) { +
EarningsAmount DeductionsAmount
 BASIC BASIC BASIC; ?>   PF  SNo Requisition No Item DescriptionHSN/SAC Line Item Specs Quantity UOMReqNo ?> 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..f8ad6ac1 100755 --- a/app/Views/editCapitalPo.php +++ b/app/Views/editCapitalPo.php @@ -943,6 +943,7 @@ $(document).ready(function () { Requisition No Item Code Item DescriptionHSN/SAC Line Item Specs Quantity UOMMaterialCode ?> 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,7 +4952,8 @@ $(document).ready(function () { ${temp} ${Reqnumber} ${materialCode}${shorten}${shorten}${HSN}').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()); @@ -6715,19 +6737,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 DescriptionHSN/SAC Line Item Specs Quantity UOMReqNo ?> 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 DescriptionHSN/SAC Line Item Specs Quantity UOMReqNo ?> 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 DescriptionHSN/SAC Line Item Specs Quantity UOM${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..9ca75e3d 100755 --- a/app/Views/inwardgateregister.php +++ b/app/Views/inwardgateregister.php @@ -160,6 +160,7 @@ # Item Code Item DescriptionHSN/SAC Rate UOM Ordered Quantity' + j + '' + item.MaterialCode + '' + item.MaterialName + '' + ((item.HSNCODE) ? item.HSNCODE : '') + '' + Number(item.Rate).toFixed(2) + '' + item.UOM + '' + item.Quantity + '' + j + '' + item.MaterialCode + '' + item.MaterialName + '' + ((item.HSNCODE) ? item.HSNCODE : '') + '' + Number(item.Rate).toFixed(2) + '' + item.UOM + '' + item.Quantity + 'Requisition No Item Code Item DescriptionHSN/SAC Line Item Specs Quantity UOM${Reqnumber} ${materialCode} ${shorten}${HSN} - @@ -3602,17 +3623,23 @@ if (!empty($INRSYMBOL)) { 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; 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); diff --git a/app/Views/rawmaterialListing.php b/app/Views/rawmaterialListing.php index 565072ef..ae25f7b5 100755 --- a/app/Views/rawmaterialListing.php +++ b/app/Views/rawmaterialListing.php @@ -315,7 +315,7 @@ $(document).ready(function () { let result = JSON.parse(response); if (result.length > 0) { let tableHtml = ` - +
@@ -337,12 +337,12 @@ $(document).ready(function () { tableHtml += ` - + - - + + @@ -205,6 +206,7 @@ if (!empty($Emp)) { + + - + + @@ -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)) { + - + - + @@ -1253,6 +1254,7 @@ '' + '' + '' + + '' + '' + '' + '' + @@ -1307,6 +1309,7 @@ '' + '' + '' + + '' + '' + ''; if (userRole == 5) { // 5 - lab staff @@ -1367,6 +1370,7 @@ '' + '' + '' + + '' + '' + '' ; if (userRole == 5) { // 5 - lab staff From 75110ae438f7bf14bc579ed956fcc5a8102c8fa5 Mon Sep 17 00:00:00 2001 From: VE10-Sanjeev Date: Tue, 15 Apr 2025 06:02:32 +0000 Subject: [PATCH 3/8] Raised trackers issues --- app/Config/Routes.php | 1 + app/Controllers/Requisitionform.php | 84 +++++++++++-------------- app/Models/Rawmaterialdetails_model.php | 9 +-- app/Models/Requistion_model.php | 18 ++++-- app/Views/editrequisitionform.php | 62 ++++++++++++++++-- app/Views/inwardgateregister.php | 4 +- app/Views/requisitionform.php | 78 ++++++++++++++++------- 7 files changed, 171 insertions(+), 85 deletions(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 929c4b0b..110b49d4 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -251,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'); diff --git a/app/Controllers/Requisitionform.php b/app/Controllers/Requisitionform.php index df083ed1..39f1d4e3 100755 --- a/app/Controllers/Requisitionform.php +++ b/app/Controllers/Requisitionform.php @@ -204,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() { @@ -277,8 +234,9 @@ class Requisitionform extends BaseController { $ReqType = $this->request->getPost('id'); + $CatType = $this->request->getPost('cid'); - $MaterialCode = $this->requistion_model->GetMaterialCode($ReqType); + $MaterialCode = $this->requistion_model->GetMaterialCode($ReqType,$CatType); $MaterialName = ""; $UOM = ""; $HTML = ""; @@ -310,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 */ @@ -390,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]); @@ -459,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 as Created!\nRequistion Number Is: ". $ReqNumber; return $this->response->setJSON([$display_message]); } @@ -592,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/Models/Rawmaterialdetails_model.php b/app/Models/Rawmaterialdetails_model.php index 8017f97e..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') diff --git a/app/Models/Requistion_model.php b/app/Models/Requistion_model.php index d2fe8011..897c3df8 100755 --- a/app/Models/Requistion_model.php +++ b/app/Models/Requistion_model.php @@ -172,14 +172,13 @@ class Requistion_model extends Model * This function is used to get the Material details for the Request type * @return array $result : This is result of the query */ - function GetMaterialCode($ReqType,$NotArray='') + function GetMaterialCode($ReqType,$CatType,$NotArray='') { $builder = $this->db->table('t_materialmaster') ->select('MaterialCode, MaterialName,UOM,material_rate,HSNCODE') - - ->where('IsActive',1); + ->where('IsActive',1) + ->where('Category',$CatType); //->where('MaterialType',$ReqType ); - $query = $builder->get(); if($NotArray == '') { @@ -594,6 +593,17 @@ class Requistion_model extends Model 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/editrequisitionform.php b/app/Views/editrequisitionform.php index 68f64d22..8fe49172 100755 --- a/app/Views/editrequisitionform.php +++ b/app/Views/editrequisitionform.php @@ -322,6 +322,17 @@ td { aria-hidden="true">× @@ -620,7 +620,7 @@ - - +
Date
${CreatedDate}${CreatedDate} ${item.SupplierName} + ${item.PONO} ${item.POType}${item.POType} ${TotalOrderValue} diff --git a/app/Views/requisitionform.php b/app/Views/requisitionform.php index 50e95219..b14c6f0c 100755 --- a/app/Views/requisitionform.php +++ b/app/Views/requisitionform.php @@ -155,6 +155,7 @@ if (!empty($Emp)) { Material Code Material Name Material CategoryHSN/SAC Uom Quantity Action ${materialCode} ${materialName} ${categoryName}${HSN} ${uom} ${quantity} @@ -760,11 +769,14 @@ if (!empty($Emp)) { var userid = $triggerElement.data('userid'); var $tr = $('#' + userid); var $cells = $tr.find('td'); + var HSN = $cells.eq(4).text()?$cells.eq(4).text()+'-':''; + var MaterialType = HSN+$cells.eq(2).text()+' ( '+$cells.eq(1).text()+ ' ) '; $('#EditMaterialCode').val($cells.eq(1).text()); + $('#EditMaterialType').val(MaterialType); $('#EditDescription').val($cells.eq(2).text()); $('#EditCategory').val($cells.eq(3).text()); - $('#EditUOM').val($cells.eq(4).text()); - $('#EditQuantity').val($cells.eq(5).text()); + $('#EditUOM').val($cells.eq(5).text()); + $('#EditQuantity').val($cells.eq(6).text()); $('#Edituserid').val(userid); }); }); @@ -783,6 +795,13 @@ if (!empty($Emp)) { var editMaterialCode = $("#EditMaterialCode").val(); var editDescription = $("#EditDescription").val(); var editCategory = $("#EditCategory").val(); + + var editMaterialType = $('#EditMaterialType').val(); + var editparts = editMaterialType.split('-'); + var editHSN = editselectedText.includes('-') && /^\d+$/.test(editparts[0].trim()) + ? editparts[0].trim() + : ''; + var editUOM = $('#EditUOM').val(); var editQuantity = $('#EditQuantity').val(); @@ -791,8 +810,9 @@ if (!empty($Emp)) { cells.eq(1).text(editMaterialCode); cells.eq(2).text(editDescription); cells.eq(3).text(editCategory); - cells.eq(4).text(editUOM); - cells.eq(5).text(editQuantity); + cells.eq(4).text(editHSN); + cells.eq(5).text(editUOM); + cells.eq(6).text(editQuantity); $('#MaterialCode' + edituserid).val(editMaterialCode); $('#Description' + edituserid).val(editDescription); 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); ?> ').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 DescriptionHSN/SAC Line Item Specs Quantity UOM${Reqnumber} ${materialCode} ${shorten}${HSN} - diff --git a/app/Views/viewinwardgateregister.php b/app/Views/viewinwardgateregister.php index f1e04c44..34f49cb0 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 ""; @@ -497,6 +497,7 @@ SNo Item Code Item DescriptionHSN/SAC UOM Ordered Qty Received Qty' + i + '' + item.MaterialCode + '' + item.MaterialName + '' + ((item.HSNCODE) ? item.HSNCODE : '') + '' + item.UOM + '' + parseInt(item.Quantity) + '' + i + '' + item.MaterialCode + '' + item.MaterialName + '' + ((item.HSNCODE) ? item.HSNCODE : '') + '' + item.UOM + '' + parseInt(item.Quantity) + '' + i + '' + item.MaterialCode + '' + item.MaterialName + '' + ((item.HSNCODE) ?item.HSNCODE : '') + '' + item.UOM + '' + item.Quantity + ' - + + payroll_id)) { echo "contenteditable='true';"; } ?> payroll_id)) { ?> title="Payslip Calculated" style="text-align:right;color:blue;" @@ -640,7 +640,7 @@ -