diff --git a/app/Classes/Modules/Transactions/ControllersLogic/RegenerateSingleStorageInvoiceTransactionLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/RegenerateSingleStorageInvoiceTransactionLogic.php new file mode 100644 index 00000000..51166015 --- /dev/null +++ b/app/Classes/Modules/Transactions/ControllersLogic/RegenerateSingleStorageInvoiceTransactionLogic.php @@ -0,0 +1,58 @@ + 'Regenerate Storage Invoice', + 'message' => 'You have successfully regenerated storage invoice' + ]; + } + + + /** @var FetchesTransaction */ + private $fetchesTransaction; + + /** @var CreateStorageInvoiceDocTransactionFixProcessor */ + private $createStorageInvoiceDocTransactionProcessor; + + /** @var CanRegenerateStorageInvoice */ + private $canRegenerateStorageInvoice; + + /** + * @param CreatesDocument $createsDocument + */ + public function __construct(FetchesTransaction $fetchesTransaction, CreateStorageInvoiceDocTransactionFixProcessor $createStorageInvoiceDocTransactionProcessor, CanRegenerateStorageInvoice $canRegenerateStorageInvoice) + { + $this->fetchesTransaction = $fetchesTransaction; + $this->createStorageInvoiceDocTransactionProcessor = $createStorageInvoiceDocTransactionProcessor; + $this->canRegenerateStorageInvoice = $canRegenerateStorageInvoice; + } + + public function logic(Request $request) : JsonResponse + { + $this->canRegenerateStorageInvoice->passes(); + + $invoice = $this->fetchesTransaction->execute(['id' => $request->route('invoice_id')]); + $packingList = $invoice->owner; + + $this->createStorageInvoiceDocTransactionProcessor->execute($packingList, true); + + return $this->response([]); + } + +} diff --git a/app/Classes/Modules/Transactions/Standards/Rules/CanRegenerateStorageInvoice.php b/app/Classes/Modules/Transactions/Standards/Rules/CanRegenerateStorageInvoice.php new file mode 100644 index 00000000..d7a7a9bf --- /dev/null +++ b/app/Classes/Modules/Transactions/Standards/Rules/CanRegenerateStorageInvoice.php @@ -0,0 +1,47 @@ +user(); + if($user){ + $roleToCheck = Auth()->user()->type; + if (in_array($roleToCheck, RoleTypes::ADMIN_ROLES)) { + return true; + } + } + + return false; + } + + /** + * @param $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return true; + } + + /** + * @param $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Http/Controllers/Transactions/RegenerateSingleStorageInvoiceTransactionController.php b/app/Http/Controllers/Transactions/RegenerateSingleStorageInvoiceTransactionController.php new file mode 100644 index 00000000..0edebadd --- /dev/null +++ b/app/Http/Controllers/Transactions/RegenerateSingleStorageInvoiceTransactionController.php @@ -0,0 +1,21 @@ +execute($request); + } +} diff --git a/resources/assets/vue/components/paymentsBilling/elements/CustomerPaymentsBillingVariant2Component.vue b/resources/assets/vue/components/paymentsBilling/elements/CustomerPaymentsBillingVariant2Component.vue index dd73291f..cb589896 100644 --- a/resources/assets/vue/components/paymentsBilling/elements/CustomerPaymentsBillingVariant2Component.vue +++ b/resources/assets/vue/components/paymentsBilling/elements/CustomerPaymentsBillingVariant2Component.vue @@ -41,7 +41,21 @@ -