diff --git a/src/main/java/com/adjustment_file_management_system/springboot/mapper/FileDataMapper.java b/src/main/java/com/adjustment_file_management_system/springboot/mapper/FileDataMapper.java
index e2afed3..e6cafe5 100644
--- a/src/main/java/com/adjustment_file_management_system/springboot/mapper/FileDataMapper.java
+++ b/src/main/java/com/adjustment_file_management_system/springboot/mapper/FileDataMapper.java
@@ -23,7 +23,7 @@ public class FileDataMapper {
@Autowired
private AdvanceTypeMapper advTypeMap;
-
+
public FileData toFileDataEnt(FileDataResponseDTO fileDataResDTO) {
FileData fileData = new FileData();
fileData.setAdvType(advTypeRepo.findById(fileDataResDTO.getAdvTypeResDTO().getAdvTypeId()).get());
@@ -54,6 +54,7 @@ public class FileDataMapper {
fileData.setTcFileGenDate(fileDataResDTO.getTcFileGenDate());
fileData.setTcFilePath(fileDataResDTO.getTcFilePath());
fileData.setVendName(fileDataResDTO.getVendName());
+ fileData.setDbUpdatedTimestamp(fileDataResDTO.getUpdatedDate());
return fileData;
}
@@ -67,7 +68,7 @@ public class FileDataMapper {
fileData.setBalAmt(fileDataReqDTO.getBalAmt());
fileData.setDcFilePath(fileDataReqDTO.getDcFilePath());
fileData.setEjvNum(fileDataReqDTO.getEjvNum());
- fileData.setEjvNumFilePath(fileDataReqDTO.getEjvNumFilePath());
+ // fileData.setEjvNumFilePath(fileDataReqDTO.getEjvNumFilePath());
fileData.setFiAmt(fileDataReqDTO.getFiAmt());
fileData.setFiFileGenDate(fileDataReqDTO.getFiFileGenDate());
fileData.setFiFilePath(fileDataReqDTO.getFiFilePath());
@@ -121,6 +122,7 @@ public class FileDataMapper {
fileDataResDTO.setTcFilePath(fileData.getTcFilePath());
fileDataResDTO.setVendName(fileData.getVendName());
fileDataResDTO.setEjvNumFileGenDate(fileData.getEjvNumFileGenDate());
+ fileDataResDTO.setUpdatedDate(fileData.getDbUpdatedTimestamp());
return fileDataResDTO;
}
diff --git a/src/main/java/com/adjustment_file_management_system/springboot/request_dto/AddFileDataRequestDTO.java b/src/main/java/com/adjustment_file_management_system/springboot/request_dto/AddFileDataRequestDTO.java
index 576442a..47fde3f 100644
--- a/src/main/java/com/adjustment_file_management_system/springboot/request_dto/AddFileDataRequestDTO.java
+++ b/src/main/java/com/adjustment_file_management_system/springboot/request_dto/AddFileDataRequestDTO.java
@@ -22,6 +22,9 @@ public class AddFileDataRequestDTO {
@DateTimeFormat(pattern = "dd-MM-yyyy")
private Date asFileGenDate;
@DateTimeFormat(pattern = "dd-MM-yyyy")
+ private Date updatedDate;
+ @DateTimeFormat(pattern = "dd-MM-yyyy")
+ private Date createdDate;
private Date piFileGenDate;
private Double piAmt;
private String fileRmrk;
diff --git a/src/main/java/com/adjustment_file_management_system/springboot/request_dto/FileDataRequestDTO.java b/src/main/java/com/adjustment_file_management_system/springboot/request_dto/FileDataRequestDTO.java
index 0f74d35..61ac459 100644
--- a/src/main/java/com/adjustment_file_management_system/springboot/request_dto/FileDataRequestDTO.java
+++ b/src/main/java/com/adjustment_file_management_system/springboot/request_dto/FileDataRequestDTO.java
@@ -31,6 +31,7 @@ public class FileDataRequestDTO {
private String irFilePath;
private String asFinalFilePath;
private Date asFinalFileGenDate;
+ private Date updatedDate;
private String ejvNum;
private String ejvNumFilePath;
private String tcFilePath;
diff --git a/src/main/java/com/adjustment_file_management_system/springboot/response_dto/FileDataResponseDTO.java b/src/main/java/com/adjustment_file_management_system/springboot/response_dto/FileDataResponseDTO.java
index 7d28b27..755b255 100644
--- a/src/main/java/com/adjustment_file_management_system/springboot/response_dto/FileDataResponseDTO.java
+++ b/src/main/java/com/adjustment_file_management_system/springboot/response_dto/FileDataResponseDTO.java
@@ -43,4 +43,5 @@ public class FileDataResponseDTO {
private Date ejvNumFileGenDate;
private FundTypeResponseDTO fundTypeResDTO;
private Long daysPass;
+ private Date updatedDate;
}
diff --git a/src/main/java/com/adjustment_file_management_system/springboot/service/FileDataService.java b/src/main/java/com/adjustment_file_management_system/springboot/service/FileDataService.java
index b7a782c..8e05e6a 100644
--- a/src/main/java/com/adjustment_file_management_system/springboot/service/FileDataService.java
+++ b/src/main/java/com/adjustment_file_management_system/springboot/service/FileDataService.java
@@ -162,18 +162,18 @@ public class FileDataService {
private MultipartFile getFileByType(Object obj, String type) {
if (obj instanceof AddFileDataRequestDTO addFileDataReqDTO) {
return switch (type) {
- case "AS" -> addFileDataReqDTO.getAsFile();
- case "PI" -> addFileDataReqDTO.getPiFile();
- default -> null;
+ case "AS" -> addFileDataReqDTO.getAsFile();
+ case "PI" -> addFileDataReqDTO.getPiFile();
+ default -> null;
};
} else if (obj instanceof UpdateFileDataRequestDTO updFileDataReqDTO) {
return switch (type) {
- case "AS" -> updFileDataReqDTO.getAsFile();
- case "PI" -> updFileDataReqDTO.getPiFile();
- case "FI" -> updFileDataReqDTO.getFiFile();
- case "AS-Final" -> updFileDataReqDTO.getAsFinalFile();
- case "TC" -> updFileDataReqDTO.getTcFile();
- default -> null;
+ case "AS" -> updFileDataReqDTO.getAsFile();
+ case "PI" -> updFileDataReqDTO.getPiFile();
+ case "FI" -> updFileDataReqDTO.getFiFile();
+ case "AS-Final" -> updFileDataReqDTO.getAsFinalFile();
+ case "TC" -> updFileDataReqDTO.getTcFile();
+ default -> null;
};
}
return null;
@@ -244,26 +244,26 @@ public class FileDataService {
}
switch (fileType) {
- case "AS", "PI", "RTGS", "PO", "DC", "SR", "IR", "EJV-Number", "AS-Final", "FI", "TC" -> {
-
- // Remove duplicate prefix from filePath if present
- if (filePath.startsWith("/uploads/file-data/")) {
- filePath = filePath.substring("/uploads/file-data/".length());
- } else if (filePath.startsWith("uploads/file-data/")) {
- filePath = filePath.substring("uploads/file-data/".length());
- }
-
- // Resolve relative path inside uploadDir
- File baseDir = fileDataPropsConfig.getUploadDirFile();
- Path fullPath = Path.of(baseDir.getAbsolutePath(), filePath).normalize();
-
- if (!Files.exists(fullPath)) {
- throw new IOException("File not found for file number: " + fileNum);
+ case "AS", "PI", "RTGS", "PO", "DC", "SR", "IR", "EJV-Number", "AS-Final", "FI", "TC" -> {
+
+ // Remove duplicate prefix from filePath if present
+ if (filePath.startsWith("/uploads/file-data/")) {
+ filePath = filePath.substring("/uploads/file-data/".length());
+ } else if (filePath.startsWith("uploads/file-data/")) {
+ filePath = filePath.substring("uploads/file-data/".length());
+ }
+
+ // Resolve relative path inside uploadDir
+ File baseDir = fileDataPropsConfig.getUploadDirFile();
+ Path fullPath = Path.of(baseDir.getAbsolutePath(), filePath).normalize();
+
+ if (!Files.exists(fullPath)) {
+ throw new IOException("File not found for file number: " + fileNum);
+ }
+ return Files.readAllBytes(fullPath);
}
- return Files.readAllBytes(fullPath);
- }
- default ->
- throw new IllegalArgumentException("Unknown file type: " + fileType + " for file number: " + fileNum);
+ default ->
+ throw new IllegalArgumentException("Unknown file type: " + fileType + " for file number: " + fileNum);
}
}
@@ -299,6 +299,7 @@ public class FileDataService {
try {
String fileNum = addFileDataReqDTO.getFileNum().trim();
+
String vendName = (addFileDataReqDTO.getVendName() != null
&& !addFileDataReqDTO.getVendName().trim().isEmpty())
? addFileDataReqDTO.getVendName().trim().toUpperCase()
@@ -309,6 +310,8 @@ public class FileDataService {
: placeHolderDate;
Date asFileGenDate = addFileDataReqDTO.getAsFileGenDate() != null ? addFileDataReqDTO.getAsFileGenDate()
: placeHolderDate;
+ Date asUpdatedDate = addFileDataReqDTO.getUpdatedDate() != null ? addFileDataReqDTO.getUpdatedDate()
+ : placeHolderDate;
// 1️. Get or create AdvanceType
AdvanceTypeResponseDTO advTypeResDTO = advTypeMap
@@ -328,6 +331,7 @@ public class FileDataService {
fileDataReqDTO.setPiAmt(piAmt);
fileDataReqDTO.setAsFileGenDate(asFileGenDate);
fileDataReqDTO.setPiFileGenDate(piFileGenDate);
+ fileDataReqDTO.setUpdatedDate(asUpdatedDate);
// Set default values
setDefaultFileDataValues(fileDataReqDTO);
diff --git a/src/main/resources/static/js/view-file-detail-script.js b/src/main/resources/static/js/view-file-detail-script.js
index cc3187d..87fba9d 100644
--- a/src/main/resources/static/js/view-file-detail-script.js
+++ b/src/main/resources/static/js/view-file-detail-script.js
@@ -1,3 +1,12 @@
+$(document).ready(function () {
+
+ const today = new Date().toLocaleDateString("en-GB");
+
+ $("#updatedDate").text("Updated Date : " + today);
+
+});
+
+
// Function to view Supporting Document in modal
function viewFileInModal(fileNum, fileType, filePath) {
var pdfModal = new bootstrap.Modal(document.getElementById('pdf-modal'));
@@ -21,12 +30,12 @@ function viewFileInModal(fileNum, fileType, filePath) {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: params.toString()
- }).then(function(response) {
+ }).then(function (response) {
if (!response.ok) {
throw new Error('Failed to fetch PDF: ' + response.statusText);
}
return response.arrayBuffer();
- }).then(function(pdfData) {
+ }).then(function (pdfData) {
var blob = new Blob([pdfData], { type: 'application/pdf' });
var blobUrl = URL.createObjectURL(blob);
@@ -36,9 +45,9 @@ function viewFileInModal(fileNum, fileType, filePath) {
downloadBtn.download = fileName;
return pdfjsLib.getDocument({ data: pdfData }).promise;
- }).then(function(pdf) {
- let renderPage = function(pageNum) {
- return pdf.getPage(pageNum).then(function(page) {
+ }).then(function (pdf) {
+ let renderPage = function (pageNum) {
+ return pdf.getPage(pageNum).then(function (page) {
var viewport = page.getViewport({ scale: 1.5 });
var canvas = document.createElement('canvas');
canvas.classList.add('mb-3');
@@ -59,14 +68,14 @@ function viewFileInModal(fileNum, fileType, filePath) {
}
return sequence;
- }).then(function() {
+ }).then(function () {
pdfModal.show();
- }).catch(function(error) {
+ }).catch(function (error) {
alert('Error loading PDF: ' + error.message);
});
}
-$(document).ready(function() {
+$(document).ready(function () {
// Initialize DataTable
var table = $('#file-data-det-tbl').DataTable({
@@ -86,7 +95,7 @@ $(document).ready(function() {
{
orderable: false,
targets: 0, // S.No column
- render: function(data, type, row, meta) {
+ render: function (data, type, row, meta) {
return meta.row + 1;
}
}
@@ -110,19 +119,19 @@ $(document).ready(function() {
$('#custom-length').html($('.dataTables_length'));
// Custom export buttons
- $('#export-excel').on('click', function() {
+ $('#export-excel').on('click', function () {
table.button('.buttons-excel').trigger();
});
- $('#export-pdf').on('click', function() {
+ $('#export-pdf').on('click', function () {
var originalLength = table.page.len();
- table.one('draw', function() {
+ table.one('draw', function () {
var tableClone = $('#file-det-tbl').clone();
tableClone.removeClass('dataTable');
tableClone.find('thead, tbody, tfoot').removeAttr('style');
// Remove "Supporting Documents" column (13th col = index 12)
- tableClone.find('tr').each(function() {
+ tableClone.find('tr').each(function () {
$(this).find('th:eq(12), td:eq(12)').remove();
});
@@ -147,7 +156,7 @@ $(document).ready(function() {
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2, useCORS: true },
jsPDF: { unit: 'in', format: 'a3', orientation: 'landscape' }
- }).from(pdfContainer[0]).save().then(function() {
+ }).from(pdfContainer[0]).save().then(function () {
table.page.len(originalLength).draw();
pdfContainer.hide();
});
diff --git a/src/main/resources/templates/file/view-file-detail.html b/src/main/resources/templates/file/view-file-detail.html
index 3588a1c..6d426f3 100644
--- a/src/main/resources/templates/file/view-file-detail.html
+++ b/src/main/resources/templates/file/view-file-detail.html
@@ -26,9 +26,27 @@