Add unit tests for invoicing period pagination, normalization, and filtering logic
- Implemented `InvoicingPeriodPaginationTest` for testing period pagination modes, normalization of options, search functionality, and visibility filters. - Added comprehensive tests to validate scenarios such as active period views, exact counts, and customer-card level search. - Improved cURL timeout settings with `CURLOPT_CONNECTTIMEOUT` and `CURLOPT_TIMEOUT` adjustments. - Introduced and documented helper classes/methods for local caching, pagination response structure, and customer name retrieval.
This commit is contained in:
@@ -70,13 +70,39 @@ class xlvaskUsageLogsRoute
|
||||
$automation = $automation_service->evaluateUsageLogRow($log, (int)$user->id, true);
|
||||
// Remove the 'id' field from the log
|
||||
$id = (int)$log['id'];
|
||||
$amount_summary = $xlvask_usage_logs->getCachedAmountSummaryFromRow($log);
|
||||
unset($log['id']);
|
||||
// Convert the 'WashItems' field from JSON to an array
|
||||
$log['WashItems'] = json_decode($log['WashItems'], true);
|
||||
$usage_log_payload = array_intersect_key($log, array_flip([
|
||||
'WashId',
|
||||
'CustomerId',
|
||||
'Customer',
|
||||
'VatNumber',
|
||||
'Location',
|
||||
'Hall',
|
||||
'HallId',
|
||||
'StartTime',
|
||||
'FinishTime',
|
||||
'RegistrationNumber',
|
||||
'VehicleType',
|
||||
'IdentificationType',
|
||||
'IdentificationId',
|
||||
'Info',
|
||||
'Updated',
|
||||
'Prepaid',
|
||||
'FinishStatus',
|
||||
'CustomerGuid',
|
||||
'VehicleId',
|
||||
'WashItems',
|
||||
'ignored_at',
|
||||
'ignored_by',
|
||||
'ignored_reason',
|
||||
]));
|
||||
// Create a new xlvask usage log object
|
||||
$tmp = $xlvask->new($xlvask->helpers->xlvask_usage_log);
|
||||
// Set the properties of the temporary object
|
||||
$tmp->setProperties($log);
|
||||
$tmp->setProperties($usage_log_payload);
|
||||
$wash_id = (string)$tmp->WashId;
|
||||
if ($wash_id !== '' && !array_key_exists($wash_id, $linked_order_ids_by_wash_id)) {
|
||||
$linked_order = (new orders_o())->selectByWashId($wash_id);
|
||||
@@ -98,6 +124,9 @@ class xlvaskUsageLogsRoute
|
||||
// Return the result
|
||||
$tmp_res = ($isEligibleForAutomaticContinuance ? (new orders_o())->simulateOrderFromXLVask($tmp, $response_includes_items) : []);
|
||||
$tmp_res['order']['customer_name'] = $tmp->Customer; // Add the customer name to the order
|
||||
$tmp_res['order']['total_net_amount'] = $amount_summary['total_net_amount'];
|
||||
$tmp_res['order']['xlvask_primary_product_name'] = $amount_summary['primary_product_name'];
|
||||
$tmp_res['order']['xlvask_amount_cached'] = $amount_summary['cached'];
|
||||
// Clear memory
|
||||
unset($tmp);
|
||||
unset($log);
|
||||
|
||||
Reference in New Issue
Block a user