Add unit tests for invoicing, orders normalization, gateway commands, and department complaints. Update schema bootstraps and improve agent command execution logic.

This commit is contained in:
Jeppe Bundgaard
2026-04-09 12:24:22 +02:00
parent 9e9372db05
commit 22f856c62a
35 changed files with 2346 additions and 167 deletions
+27 -2
View File
@@ -6,6 +6,7 @@ use attachments\helpers\attachment_content;
use classes\attachment_store;
use classes\attachments;
use classes\authentication;
use classes\orders_input_normalizer;
use classes\response;
use classes\stripe;
use JetBrains\PhpStorm\NoReturn;
@@ -141,6 +142,15 @@ class ordersRoute
$reg_1 = preg_replace('/\s+/', '', $reg_1);
$reg_2 = preg_replace('/\s+/', '', $reg_2);
$reg_3 = preg_replace('/\s+/', '', $reg_3);
try {
$createdAt = orders_input_normalizer::normalizeCreatedAt($data['created_at'] ?? date('Y-m-d H:i:s'));
$includeInInvoice = array_key_exists('include_in_invoice', $data)
? orders_input_normalizer::normalizeIncludeInInvoice($data['include_in_invoice'])
: null;
} catch (\InvalidArgumentException $e) {
$response->error($e->getMessage(), 400);
}
$new_data = [
'customer_id' => (int)$data['customer_id'],
'department_id' => (int)$data['department_id'],
@@ -153,7 +163,8 @@ class ordersRoute
...(!empty($data['lane']) ? ['lane' => (int)$data['lane']] : []), // Optional lane
...(!empty($data['wash_id']) ? ['wash_id' => (string)$data['wash_id']] : []), // Optional wash ID
...(!empty($data['booking_id']) ? ['booking_id' => (int)$data['booking_id']] : []), // Optional booking ID
'created_at' => (string)($data['created_at'] ?? date('Y-m-d H:i:s')), // Default to current time if not set
'created_at' => $createdAt, // Default to current time if not set
...(array_key_exists('include_in_invoice', $data) ? ['include_in_invoice' => $includeInInvoice] : []),
];
// Create the order
//$order = (new orders_o())->add((int)$data['customer_id'], $user->id, $data['reference'], $data['notes'], (int)$data['department_id'], (string)$reg_1, (string)$reg_2, (string)$reg_3);
@@ -1056,7 +1067,21 @@ class ordersRoute
}
// Check if the created_at is set
if (isset($data['created_at'])) {
$order->created_at->set($data['created_at']);
try {
$order->created_at->set(orders_input_normalizer::normalizeCreatedAt($data['created_at']));
} catch (\InvalidArgumentException $e) {
$response->error($e->getMessage(), 400);
}
}
// Check if include_in_invoice is set
if (array_key_exists('include_in_invoice', $data)) {
try {
$order->include_in_invoice->set(
orders_input_normalizer::normalizeIncludeInInvoice($data['include_in_invoice'])
);
} catch (\InvalidArgumentException $e) {
$response->error($e->getMessage(), 400);
}
}
// Void any cached key for the order
$order->objectChanged();