FIX_TOTAL_TAT : RV

This commit is contained in:
VENKATESHWARAN 2025-02-04 16:14:54 +05:30
parent 66dedc24e7
commit 9ce63504c0

View File

@ -1,25 +1,25 @@
<style> <style>
.table th, .table th,
.table td { .table td {
padding: 8px; padding: 8px;
} }
table.dataTable tbody td { table.dataTable tbody td {
padding: 4px 4px !important; padding: 4px 4px !important;
} }
.col-12 { .col-12 {
max-width: 98% !important; max-width: 98% !important;
} }
.dataTables_filter { .dataTables_filter {
position: absolute; position: absolute;
} }
.right-align-input { .right-align-input {
text-align: right; text-align: right;
} }
</style> </style>
<div class="col-12" id="second_page"> <div class="col-12" id="second_page">
@ -35,20 +35,51 @@ table.dataTable tbody td {
<table id="scroll-horizontal-datatable" class="table w-100 nowrap"> <table id="scroll-horizontal-datatable" class="table w-100 nowrap">
<thead> <thead>
<tr> <tr>
<?php foreach (array_keys($data[0]) as $header): ?> <?php
<th><?= esc($header) ?></th> // Get headers dynamically
$headers = array_keys($data[0]);
?>
<?php foreach ($headers as $header): ?>
<th><?= esc($header) ?></th>
<?php endforeach; ?> <?php endforeach; ?>
<th>TOTAL</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php
// Initialize column-wise totals
$columnTotals = array_fill_keys($headers, 0);
?>
<?php foreach ($data as $row): ?> <?php foreach ($data as $row): ?>
<tr> <tr>
<?php foreach ($row as $value): ?> <?php
<td class="right-align-input"><?= esc($value) ?></td> $rowTotal = 0; // Initialize row total
<?php endforeach; ?> foreach ($row as $key => $value):
</tr> // Convert numeric values to integer (ignore 'tat_category')
$numValue = is_numeric($value) ? (int) $value : 0;
if ($key != 'TAT_Category') {
$columnTotals[$key] += $numValue; // Add to column total
$rowTotal += $numValue; // Add to row total
}
?>
<td><?= esc($value) ?></td>
<?php endforeach; ?>
<td><strong><?= esc($rowTotal) ?></strong></td> <!-- Display row total -->
</tr>
<?php endforeach; ?> <?php endforeach; ?>
</tbody> </tbody>
<tfoot>
<tr>
<?php foreach ($columnTotals as $key => $total): ?>
<th><?= ($key == "TAT_Category") ? "TOTAL" : esc($total) ?></th>
<?php endforeach; ?>
<th><strong><?= array_sum(array_filter($columnTotals, 'is_numeric')) ?></strong></th>
<!-- Grand Total -->
</tr>
</tfoot>
</table>
</table> </table>
<div> <div>
@ -61,41 +92,41 @@ table.dataTable tbody td {
<!--------------------------------------------------------------------------------------------------> <!-------------------------------------------------------------------------------------------------->
<script> <script>
// Datatable document ready // Datatable document ready
$(document).ready(function() { $(document).ready(function() {
var ticketsTable = $('#scroll-horizontal-datatable'); var ticketsTable = $('#scroll-horizontal-datatable');
if (ticketsTable.length) { if (ticketsTable.length) {
ticketsTable.DataTable({ ticketsTable.DataTable({
scrollX: true, scrollX: true,
dom: "<'row'<'col-sm-6'f><'col-sm-6 text-right'B>>" + // Filter left, buttons right dom: "<'row'<'col-sm-6'f><'col-sm-6 text-right'B>>" + // Filter left, buttons right
"<'row'<'col-sm-12'tr>>" + "<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-5'i><'col-sm-7'p>>", // Pagination at the bottom, without page length selector "<'row'<'col-sm-5'i><'col-sm-7'p>>", // Pagination at the bottom, without page length selector
buttons: [{ buttons: [{
extend: 'csv', extend: 'csv',
text: 'CSV', text: 'CSV',
title: 'TAT BAND WISE DATA', title: 'TAT BAND WISE DATA',
},
{
extend: 'excel',
text: 'Excel',
title: 'TAT BAND WISE DATA',
}
],
language: {
search: "_INPUT_",
searchPlaceholder: "Search..."
}, },
{ paging: true, // Enable pagination
extend: 'excel', pageLength: 10, // Set default number of rows per page (optional)
text: 'Excel', ordering: false,
title: 'TAT BAND WISE DATA', });
} } else {
console.error("Table atet found.");
}
});
], // ----------------------------------------------------------------------------------------------------
language: {
search: "_INPUT_",
searchPlaceholder: "Search..."
},
paging: true, // Enable pagination
pageLength: 10, // Set default number of rows per page (optional)
ordering: false,
});
} else {
console.error("Table atet found.");
}
});
// ----------------------------------------------------------------------------------------------------
</script> </script>