Add invoice period review workflow (#336)
Improve the superuser invoice-period review API, stale-preview protection, queue visibility, review blockers, and e-conomic eligibility.
This commit is contained in:
@@ -11,6 +11,7 @@ use classes\economic_v2_line_normalizer;
|
||||
use classes\economic_v2_revenue_statistics_service;
|
||||
use classes\invoice_store;
|
||||
use classes\invoice_collection_bulk_action_service;
|
||||
use classes\invoice_collection_bulk_action_conflict;
|
||||
use classes\invoicing_period_utils;
|
||||
use classes\response;
|
||||
use classes\router;
|
||||
@@ -818,6 +819,8 @@ class orderInvoicesRoute
|
||||
(int)$user->id,
|
||||
$locale
|
||||
);
|
||||
} catch (invoice_collection_bulk_action_conflict $e) {
|
||||
$response->error($e->getMessage(), 409);
|
||||
} catch (\Throwable $e) {
|
||||
$response->error($e->getMessage(), 400);
|
||||
}
|
||||
@@ -865,15 +868,11 @@ class orderInvoicesRoute
|
||||
$collected_order_invoices = (new collected_order_invoices_o())->select((int)self::getParameter('id'));
|
||||
$collected_order_invoices->requireSelected();
|
||||
try {
|
||||
$this->assertCollectedInvoiceCanBeExportedToEconomic($collected_order_invoices);
|
||||
invoice_collection_bulk_action_service::assertCollectionCanQueueEconomic($collected_order_invoices);
|
||||
} catch (\Throwable $e) {
|
||||
$response->error($e->getMessage(), 400);
|
||||
}
|
||||
|
||||
if ($collected_order_invoices->booked_invoice_id->value() !== null) {
|
||||
$response->error('Invoice has already been booked', 400);
|
||||
}
|
||||
|
||||
if (!$this->isEconomicTransferQueueAvailable()) {
|
||||
try {
|
||||
$result = $this->exportCollectedInvoiceSynchronously($collected_order_invoices, $send_as_is);
|
||||
@@ -2736,8 +2735,7 @@ class orderInvoicesRoute
|
||||
*/
|
||||
private function assertCollectedInvoiceCanBeExportedToEconomic(collected_order_invoices_o $collected_order_invoices): void
|
||||
{
|
||||
$collected_order_invoices->requireSelected();
|
||||
(new economic())->assertCustomerNumberIsNotDraft((int)$collected_order_invoices->customer_number->value());
|
||||
invoice_collection_bulk_action_service::assertCollectionCanQueueEconomic($collected_order_invoices);
|
||||
}
|
||||
|
||||
private function requireCollectedInvoiceBulkActionPermission(string $action): void
|
||||
|
||||
Reference in New Issue
Block a user