|
|
|
@ -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(); |
|
|
|
|