Implement move collected invoice to customer functionality with API endpoint and associated tests

This commit is contained in:
Jeppe Bundgaard
2026-06-09 13:12:55 +02:00
parent fb1f0883e1
commit aca8be51dc
7 changed files with 237 additions and 1 deletions
@@ -0,0 +1,19 @@
<?php
it('wires collected invoice customer moves through the dedicated route and permission', function (): void {
$routeContent = file_get_contents(app_path('routes/orderInvoicesRoute.php'));
$objectContent = file_get_contents(app_path('objects/collected_order_invoices_o.php'));
expect($routeContent)->not->toBeFalse()
->and($routeContent)->toContain("\$this->post('/collected-invoices/move-to-customer'")
->and($routeContent)->toContain("self::requirePermission('move_collected_invoice_customer')")
->and($routeContent)->toContain('$collected_order_invoices->moveToCustomer')
->and($routeContent)->toContain("\$response->add_meta('move', \$move_result)")
->and($objectContent)->not->toBeFalse()
->and($objectContent)->toContain('public function moveToCustomer(int $target_customer_number): array')
->and($objectContent)->toContain('Invoice collections with an external or booked invoice cannot be moved')
->and($objectContent)->toContain('SELECT id FROM orders WHERE invoice_collection_id = {$invoice_collection_id}')
->and($objectContent)->toContain('$order->customer_id->set($target_customer_number)')
->and($objectContent)->toContain('$this->customer_number->set($target_customer_number)')
->and($objectContent)->toContain('$db->conn()->begin_transaction()');
});