fix StockManager lot/serial coercion + add document flow test suite
- StockManager: coerce lot_number/serial_number to trimmed string (fixes Array-to-string warnings); validate quantity > 0 on insert; tighten transfer pair lookup to match in/out side by column value - PostingWindowGuard: strip time component from datetime strings before date-format validation - docs/tests/doc_flow_test.php: 32-assertion document flow suite covering Stock In create + approve, Sales Order draft/confirm, Invoice from Order (with duplicate-block check), PO create/confirm, Quotation create, and usage increment wiring check; all 32/32 PASS against wms_codex_test Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
6eeebfeacb
commit
94032dd65b
@@ -64,7 +64,11 @@ class PostingWindowGuard
|
||||
$date = "{$m[3]}-{$m[2]}-{$m[1]}";
|
||||
}
|
||||
|
||||
if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $date)) {
|
||||
if (preg_match("#^([0-9]{4}-[0-9]{2}-[0-9]{2})[ T]#", $date, $m)) {
|
||||
$date = $m[1];
|
||||
}
|
||||
|
||||
if (!preg_match("#^[0-9]{4}-[0-9]{2}-[0-9]{2}$#", $date)) {
|
||||
throw new Exception("Invalid posting date {$date}. Use YYYY-MM-DD.");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user