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:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user