IPD cash balance: fix date range picker submission and parser
This commit is contained in:
parent
a02340b90c
commit
fd28d6a01e
|
|
@ -2165,14 +2165,36 @@ class Ipd extends BaseController
|
|||
$start = date('Y-m-d');
|
||||
$end = $start;
|
||||
|
||||
if ($range !== '') {
|
||||
$parts = explode('S', $range);
|
||||
if (count($parts) === 2) {
|
||||
$start = $parts[0];
|
||||
$end = $parts[1];
|
||||
$range = trim(urldecode($range));
|
||||
if ($range === '') {
|
||||
return [$start, $end];
|
||||
}
|
||||
|
||||
// Preferred format from UI: YYYY-MM-DDSYYYY-MM-DD
|
||||
if (strpos($range, 'S') !== false) {
|
||||
$parts = explode('S', $range, 2);
|
||||
$startCandidate = trim((string) ($parts[0] ?? ''));
|
||||
$endCandidate = trim((string) ($parts[1] ?? ''));
|
||||
if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $startCandidate) === 1
|
||||
&& preg_match('/^\d{4}-\d{2}-\d{2}$/', $endCandidate) === 1
|
||||
) {
|
||||
return [$startCandidate, $endCandidate];
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback: extract first two ISO dates from any incoming range string.
|
||||
$dates = [];
|
||||
if (preg_match_all('/\d{4}-\d{2}-\d{2}/', $range, $matches) > 0) {
|
||||
$dates = $matches[0] ?? [];
|
||||
}
|
||||
|
||||
if (count($dates) >= 2) {
|
||||
return [(string) $dates[0], (string) $dates[1]];
|
||||
}
|
||||
if (count($dates) === 1) {
|
||||
return [(string) $dates[0], (string) $dates[0]];
|
||||
}
|
||||
|
||||
return [$start, $end];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -116,14 +116,31 @@
|
|||
fallbackRangeToday();
|
||||
}
|
||||
|
||||
function getSelectedRangeValue() {
|
||||
var picker = $('#reportrange').data('daterangepicker');
|
||||
if (picker && picker.startDate && picker.endDate) {
|
||||
var value = picker.startDate.format('YYYY-MM-DD') + 'S' + picker.endDate.format('YYYY-MM-DD');
|
||||
$('#ipd_date_range').val(value);
|
||||
return value;
|
||||
}
|
||||
|
||||
var fallback = ($('#ipd_date_range').val() || '').toString().trim();
|
||||
if (fallback === '') {
|
||||
fallbackRangeToday();
|
||||
fallback = ($('#ipd_date_range').val() || '').toString().trim();
|
||||
}
|
||||
|
||||
return fallback;
|
||||
}
|
||||
|
||||
$('#showreport1').click(function() {
|
||||
var range = $('#ipd_date_range').val();
|
||||
var range = getSelectedRangeValue();
|
||||
var url = '<?= base_url('billing/ipd/cash-balance/report') ?>?range=' + encodeURIComponent(range);
|
||||
load_form_div(url, 'show_report');
|
||||
});
|
||||
|
||||
$('#showreportexport').click(function() {
|
||||
var range = $('#ipd_date_range').val();
|
||||
var range = getSelectedRangeValue();
|
||||
var url = '<?= base_url('billing/ipd/cash-balance/export') ?>?range=' + encodeURIComponent(range);
|
||||
window.open(url, '_blank');
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user