diff --git a/src/main/java/com/gcc_manpower/config/WebConfig.java b/src/main/java/com/gcc_manpower/config/WebConfig.java index d587d49..97a75ee 100644 --- a/src/main/java/com/gcc_manpower/config/WebConfig.java +++ b/src/main/java/com/gcc_manpower/config/WebConfig.java @@ -21,7 +21,7 @@ public class WebConfig implements WebMvcConfigurer { @Value("${toner.upload.path:gcctonermanagementfiles}") private String tonerUploadPathConfig; - @Value("${adjustment.upload.path:gccadjustmentmanagementfiles}") + @Value("${adjustment.upload.path:uploads/file-data}") private String adjustmentUploadPathConfig; @Override @@ -63,5 +63,11 @@ public class WebConfig implements WebMvcConfigurer { String rootUploadPath = Paths.get("uploads").toAbsolutePath().toUri().toString(); registry.addResourceHandler("/uploads/**") .addResourceLocations(rootUploadPath); + + // Map URL path /file-data/** to the physical uploads/file-data folder in the + // project root + String fileDataPath = Paths.get("uploads/file-data").toAbsolutePath().toUri().toString(); + registry.addResourceHandler("/file-data/**") + .addResourceLocations(fileDataPath); } } diff --git a/src/main/java/com/gcc_manpower/gccadjustmentmanagement/controller/AdjustmentController.java b/src/main/java/com/gcc_manpower/gccadjustmentmanagement/controller/AdjustmentController.java index 694341f..8f65f7c 100644 --- a/src/main/java/com/gcc_manpower/gccadjustmentmanagement/controller/AdjustmentController.java +++ b/src/main/java/com/gcc_manpower/gccadjustmentmanagement/controller/AdjustmentController.java @@ -43,7 +43,7 @@ public class AdjustmentController { @Autowired private AuthenticationManager authenticationManager; - @Value("${adjustment.upload.path:gccadjustmentmanagementfiles}") + @Value("${adjustment.upload.path:uploads/file-data}") private String adjustmentUploadPathConfig; @GetMapping({ "", "/", "/dashboard" }) diff --git a/src/main/resources/templates/gccadjustmentmanagement/dashboard.html b/src/main/resources/templates/gccadjustmentmanagement/dashboard.html index 0c3c203..af5ed9a 100644 --- a/src/main/resources/templates/gccadjustmentmanagement/dashboard.html +++ b/src/main/resources/templates/gccadjustmentmanagement/dashboard.html @@ -2680,7 +2680,8 @@ function filterDashboardByReason(catId, reason) { const fy = document.getElementById('filter-fin-year').value; const url = `${contextPath}gccadjustmentmanagement/details?status=${activeStatusFilter}&catId=${catId}&reason=${reason}&fy=${fy}`; - window.open(url, '_blank'); + //window.open(url, '_blank'); + window.location.href = url; } function goToListViewWithFilter(vendor) { @@ -3274,15 +3275,15 @@ document.getElementById('form-rtgs-date').value = r.rtgs_date || ''; document.getElementById('form-dc-completed-date').value = r.dc_completed_date || ''; - // Hide financial year input in edit mode (keep enabled but hidden so its value gets submitted) - document.getElementById('form-fin-year-container').style.display = 'none'; + // Show financial year input in edit mode + document.getElementById('form-fin-year-container').style.display = 'block'; document.getElementById('form-fin-year').removeAttribute('disabled'); - document.getElementById('form-fin-year').required = false; + document.getElementById('form-fin-year').required = true; // Run visibility check after populating fields toggleVendorNameVisibility(); - // Reset indicators + // Reset indicators document.querySelectorAll('.file-selected-indicator').forEach(ind => { ind.style.display = 'none'; ind.querySelector('span').textContent = ''; diff --git a/src/main/resources/templates/gccadjustmentmanagement/details.html b/src/main/resources/templates/gccadjustmentmanagement/details.html index 1d97cb7..57dd84b 100644 --- a/src/main/resources/templates/gccadjustmentmanagement/details.html +++ b/src/main/resources/templates/gccadjustmentmanagement/details.html @@ -270,7 +270,11 @@ class="btn btn-sm btn-outline-light rounded-pill px-3"> Back to Dashboard --> - + + Back to Dashboard @@ -1209,10 +1213,10 @@ document.getElementById('form-rtgs-date').value = r.rtgs_date || ''; document.getElementById('form-dc-completed-date').value = r.dc_completed_date || ''; - // Hide financial year input in edit mode (keep enabled but hidden so its value gets submitted) - document.getElementById('form-fin-year-container').style.display = 'none'; + // Show financial year input in edit mode + document.getElementById('form-fin-year-container').style.display = 'block'; document.getElementById('form-fin-year').removeAttribute('disabled'); - document.getElementById('form-fin-year').required = false; + document.getElementById('form-fin-year').required = true; // Run visibility check after populating fields toggleVendorNameVisibility(); @@ -1675,7 +1679,11 @@ return; } - const fileUrl = contextPath + 'gccadjustmentmanagementfiles/' + filePath; + let cleanPath = String(filePath).trim(); + if (cleanPath.startsWith('/')) { + cleanPath = cleanPath.substring(1); + } + const fileUrl = contextPath + cleanPath; const titleEl = document.getElementById('docViewerModalLabel'); if (titleEl) { @@ -1790,20 +1798,64 @@ return; } + const formatDateForExcel = dateStr => { + if (!dateStr || dateStr === '-' || dateStr === 'null') return ''; + try { + const date = new Date(dateStr); + if (isNaN(date.getTime())) { + return dateStr; + } + const pad = num => String(num).padStart(2, '0'); + const dd = pad(date.getDate()); + const mm = pad(date.getMonth() + 1); + const yyyy = date.getFullYear(); + return `${dd}/${mm}/${yyyy}`; + } catch (e) { + return dateStr; + } + }; + const data = filteredRecords.map((r, index) => ({ 'S.No': index + 1, - 'Fin Year': r.fin_year || '', - 'File Num': r.file_num || '', + 'File Number': r.file_data_num || '', + 'Financial Year': r.fin_year || '', + 'Subject': r.subject || '', + 'Vendor Name': r.vend_name || '', 'Advance Type': r.adv_type || '', - // 'File Available': r.file_available_status || '', + 'Fund Type': r.fund_type || '', + 'A/C Head Code': r.ac_code || '', + 'File Available Status': r.file_available_status || '', + 'File Status (Category)': r.file_status || '', 'Bal Amount': r.bal_amt || 0, + 'AS Signed Date': formatDateForExcel(r.as_file_gen_date), 'PO Amount': r.po_amt || 0, + 'PO Completed Date': formatDateForExcel(r.po_file_gen_date), 'PI Amount': r.pi_amt || 0, + 'PI Completed Date': formatDateForExcel(r.pi_file_gen_date), + 'RTGS Date': formatDateForExcel(r.rtgs_date), 'FI Amount': r.fi_amt || 0, + 'FI Completed Date': formatDateForExcel(r.fi_file_gen_date), + 'DC Completed Date': formatDateForExcel(r.dc_completed_date), 'EJV Num': r.ejv_num || '', + 'EJV Date': formatDateForExcel(r.ejv_num_file_gen_date), + 'AS Final Date': formatDateForExcel(r.as_final_file_gen_date), + 'TC Date': formatDateForExcel(r.tc_file_gen_date), 'Status': isAdjusted(r) ? 'Adjusted' : 'Pending', - 'Remarks': r.remarks || '', - 'Created Date': r.cdate || '' + 'Remarks': r.file_remark || '', + 'Created Date': formatDateForExcel(r.cdate), + 'Updated Date': formatDateForExcel(r.updated_date), + 'AS File Path': r.as_file_path || '', + 'PI File Path': r.pi_file_path || '', + 'RTGS File Path': r.rtgs_file_path || '', + 'PO File Path': r.po_file_path || '', + 'DC File Path': r.dc_file_path || '', + 'SR File Path': r.sr_filepath || '', + 'IR File Path': r.ir_file_path || '', + 'FI File Path': r.fi_file_path || '', + 'AS Final File Path': r.as_final_file_path || '', + 'TC File Path': r.tc_file_path || '', + 'EJV File Path': r.ejv_num_file_path || '', + 'Main File Path': r.file_path || '' })); const ws = XLSX.utils.json_to_sheet(data); diff --git a/src/main/resources/templates/gccservicepaymenttracker/dashboard.html b/src/main/resources/templates/gccservicepaymenttracker/dashboard.html index 10733fa..d4be027 100644 --- a/src/main/resources/templates/gccservicepaymenttracker/dashboard.html +++ b/src/main/resources/templates/gccservicepaymenttracker/dashboard.html @@ -1048,8 +1048,8 @@ style="border: 1px solid #e2e8f0; font-size: 0.88rem; color: #475569; font-weight: 600;"> Completed View Mode: -