Files
opensourcepos/app/Views/reports/tabular_details.php
objecttothis 658a9ce553 Fixing routes
- Refactored function name to match the route.
- Added null check on sale date.
- enabled escaping in bootstrap-tables
- removed the esc() function from the

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00

110 lines
2.8 KiB
PHP

<?php
/**
* @var string $title
* @var string $subtitle
* @var array $overall_summary_data
* @var array $details_data
* @var array $headers
* @var array $summary_data
* @var array $config
*/
?>
<?= view('partial/header') ?>
<div id="page_title"><?= esc($title) ?></div>
<div id="page_subtitle"><?= esc($subtitle) ?></div>
<div id="table_holder">
<table id="table"></table>
</div>
<div id="report_summary">
<?php
foreach($overall_summary_data as $name => $value)
{
?>
<div class="summary_row"><?= lang("Reports.$name") . ': ' . to_currency($value) ?></div>
<?php
}
?>
</div>
<script type="application/javascript">
$(document).ready(function()
{
<?= view('partial/bootstrap_tables_locale') ?>
var details_data = <?= json_encode(esc($details_data)) ?>;
<?php
if($config['customer_reward_enable'] && !empty($details_data_rewards))
{
?>
var details_data_rewards = <?= json_encode(esc($details_data_rewards)) ?>;
<?php
}
?>
var init_dialog = function() {
<?php
if(isset($editable))
{
?>
table_support.submit_handler('<?= esc(site_url("reports/get_detailed_$editable" . '_row'), 'url') ?>');
dialog_support.init("a.modal-dlg");
<?php
}
?>
};
$('#table')
.addClass("table-striped")
.addClass("table-bordered")
.bootstrapTable({
columns: <?= transform_headers(esc($headers['summary']), true) ?>,
stickyHeader: true,
stickyHeaderOffsetLeft: $('#table').offset().left + 'px',
stickyHeaderOffsetRight: $('#table').offset().right + 'px',
pageSize: <?= $config['lines_per_page'] ?>,
pagination: true,
sortable: true,
showColumns: true,
uniqueId: 'id',
showExport: true,
exportDataType: 'all',
exportTypes: ['json', 'xml', 'csv', 'txt', 'sql', 'excel', 'pdf'],
data: <?= json_encode($summary_data) ?>,
iconSize: 'sm',
paginationVAlign: 'bottom',
detailView: true,
escape: true,
search: true,
onPageChange: init_dialog,
onPostBody: function() {
dialog_support.init("a.modal-dlg");
},
onExpandRow: function (index, row, $detail) {
$detail.html('<table></table>').find("table").bootstrapTable({
columns: <?= transform_headers_readonly(esc($headers['details'])) ?>,
data: details_data[(!isNaN(row.id) && row.id) || $(row[0] || row.id).text().replace(/(POS|RECV)\s*/g, '')]
});
<?php
if($config['customer_reward_enable'] && !empty($details_data_rewards))
{
?>
$detail.append('<table></table>').find("table").bootstrapTable({
columns: <?= transform_headers_readonly(esc($headers['details_rewards'])) ?>,
data: details_data_rewards[(!isNaN(row.id) && row.id) || $(row[0] || row.id).text().replace(/(POS|RECV)\s*/g, '')]
});
<?php
}
?>
}
});
init_dialog();
});
</script>
<?= view('partial/footer') ?>