Browse Source

new changes in penalty pdf food distribution report

master
yoganandhan 5 months ago
parent
commit
4f6a160d6f
  1. 1
      src/main/java/com/gcc/commissionerreview/service/Fooddistributionservice.java
  2. 114
      src/main/resources/templates/modules/fooddistribution/fooddistributiondetailedreport.html

1
src/main/java/com/gcc/commissionerreview/service/Fooddistributionservice.java

@ -146,6 +146,7 @@ public class Fooddistributionservice {
"pqm.q_english, " +
"pam.english_name, " +
"hm.si_name AS name, " +
"hm.permanent_location, " +
"dl.name AS raisedBy, " +
"pf.remarks AS pmcRemarks, " +
"CONCAT('" + fileBaseUrl + "/gccofficialapp/files', pf.image) AS videoLink, " +

114
src/main/resources/templates/modules/fooddistribution/fooddistributiondetailedreport.html

@ -168,6 +168,7 @@
<th class="text-center">CE Remarks</th>
<th class="text-center">CE Updated By</th>
<th class="text-center">Penalty Amount</th>
<th class="text-center">Combined Issue</th>
</tr>
</thead>
<tbody>
@ -281,7 +282,8 @@
{ width: "120px", targets: 17 },
{ width: "220px", targets: 18 },
{ width: "150px", targets: 19 },
{ width: "150px", targets: 20 }
{ width: "150px", targets: 20 },
{ targets: 21, visible: false }
],
responsive: false,
scrollX: true,
@ -294,6 +296,107 @@
dom: '<"d-flex justify-content-between align-items-center mb-3"lfB>rtip',
lengthMenu: [[10, 50, 100, -1], [10, 50, 100, "All"]],
buttons: [
{
extend: 'pdfHtml5',
text: '<i class="fa-solid fa-file-pdf"></i> Penalty PDF',
className: 'btn btn-warning btn-sm me-2',
orientation: 'portrait',
pageSize: 'A4',
title: function () {
function formatDDMMYYYY(d) {
if (!d) return '';
var p = d.split('-');
return p.length === 3 ? p[2] + '-' + p[1] + '-' + p[0] : d;
}
var fromStr = formatDDMMYYYY($('#fromDate').val());
var toStr = formatDDMMYYYY($('#toDate').val());
return 'NON COMPLIANCE- PENALTY DETAILS\n' + fromStr + ' to ' + toStr;
},
filename: function () {
var kitchen = $('#hubId option:selected').text().replace(/[^a-zA-Z0-9]/g, '_');
return 'Penalty_Details_' + kitchen + '_' + ($('#fromDate').val() || 'All') + '_to_' + ($('#toDate').val() || 'All');
},
exportOptions: {
stripHtml: false,
columns: [0, 1, 9, 21, 12, 20],
format: {
header: function (data, columnIdx) {
if (columnIdx === 0) return 'S.NO';
if (columnIdx === 1) return 'DATE';
if (columnIdx === 9) return 'KITCHEN NAME';
if (columnIdx === 21) return 'ISSUE';
if (columnIdx === 12) return 'EVIDENCE';
if (columnIdx === 20) return 'PENALTY';
return data;
},
body: function (data, row, column, node) {
if (typeof data === 'string' && data.indexOf('showMedia') !== -1) {
var match = data.match(/showMedia\('([^']+)'/);
if (match) return match[1];
}
if (typeof data === 'string' && data.indexOf('data-fulltext') !== -1) {
var match = data.match(/data-fulltext="([^"]+)"/);
if (match) return decodeURIComponent(match[1]);
}
var div = document.createElement("div");
div.innerHTML = data;
var text = div.textContent || div.innerText || "";
if (column === 0 && text) {
var num = parseInt(text);
if (!isNaN(num)) {
return (num < 10 ? '0' + num : num) + '.';
}
}
if (column === 1 && text && text !== '-') {
var parts = text.split('-');
if (parts.length === 3) {
if (parts[0].length === 4) {
var yy = parts[0].substring(2, 4);
return parts[2] + '.' + parts[1] + '.' + yy;
} else if (parts[2].length === 4) {
var yy = parts[2].substring(2, 4);
return parts[0] + '.' + parts[1] + '.' + yy;
}
}
}
if (column === 5 && text !== '-' && text !== 'Pending' && text !== '') {
return 'Rs. ' + text;
}
return text;
}
}
},
customize: function (doc) {
doc.styles.title = {
fontSize: 14,
bold: true,
alignment: 'center',
margin: [0, 0, 0, 10]
};
doc.styles.tableHeader.fontSize = 10;
doc.styles.tableHeader.alignment = 'left';
doc.defaultStyle.fontSize = 9;
doc.content[1].table.widths = ['8%', '12%', '15%', '35%', '20%', '10%'];
doc.content[1].table.dontBreakRows = true;
var rowCount = doc.content[1].table.body.length;
for (var i = 1; i < rowCount; i++) {
var evidenceCell = doc.content[1].table.body[i][4];
var urlText = typeof evidenceCell === 'object' ? evidenceCell.text : evidenceCell;
if (urlText && typeof urlText === 'string' && urlText.startsWith('http')) {
var wrapped = urlText.length > 30 ? urlText.split('').join('\u200B') : urlText;
doc.content[1].table.body[i][4] = {
text: wrapped,
link: urlText,
target: '_blank',
color: 'blue',
decoration: 'underline'
};
}
}
}
},
{
extend: 'excelHtml5',
text: '<i class="fa-solid fa-file-excel"></i> Excel',
@ -306,6 +409,7 @@
return 'Detailed_Food_Distribution_' + kitchen + '_' + ($('#fromDate').val() || 'All') + '_to_' + ($('#toDate').val() || 'All');
},
exportOptions: {
stripHtml: false,
format: {
body: function (data, row, column, node) {
if (typeof data === 'string' && data.indexOf('showMedia') !== -1) {
@ -337,6 +441,7 @@
return 'Detailed_Food_Distribution_' + kitchen + '_' + ($('#fromDate').val() || 'All') + '_to_' + ($('#toDate').val() || 'All');
},
exportOptions: {
stripHtml: false,
format: {
body: function (data, row, column, node) {
if (typeof data === 'string' && data.indexOf('showMedia') !== -1) {
@ -441,6 +546,8 @@
finalPenalty = '-';
}
var combinedIssue = (item.pmcRemarks && item.pmcRemarks !== '-' && item.pmcRemarks !== 'null' ? item.pmcRemarks : '-');
dataTable.row.add([
index + 1,
item.auditDate || '-',
@ -451,7 +558,7 @@
item.audit_category || '-',
item.q_english || '-',
item.english_name || '-',
item.name || '-',
item.permanent_location || item.name || '-',
item.raisedBy || '-',
formatRemark(item.pmcRemarks, 'PMC Remarks'),
imgBtn,
@ -462,7 +569,8 @@
item.chief_engineer_status || '-',
formatRemark(item.chief_engineer_remarks, 'CE Remarks'),
item.chief_engineer || '-',
finalPenalty
finalPenalty,
combinedIssue
]);
});
dataTable.draw();

Loading…
Cancel
Save