diff --git a/app/Classes/Modules/Transactions/Processors/CreateStorageInvoiceDocTransactionFixProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateStorageInvoiceDocTransactionFixProcessor.php new file mode 100644 index 00000000..95a70932 --- /dev/null +++ b/app/Classes/Modules/Transactions/Processors/CreateStorageInvoiceDocTransactionFixProcessor.php @@ -0,0 +1,79 @@ +updatesTransactionStatus = $updatesTransactionStatus; + $this->createsDocument = $createsDocument; + $this->createsFiles = $createsFiles; + } + + + /** + * @throws MalformedRequestException + */ + public function execute(PackingList $packingList) + { + /** @var Transaction $invoice_transaction */ + $invoice_transaction = $packingList->transactions()->where('transactions.type', TransactionType::STORAGE_INVOICE)->whereIn('status', [ApprovalStatus::COMPLETED])->first(); + + // $this->updatesTransactionStatus->execute($invoice_transaction, ApprovalStatus::APPROVED); + + $transaction_invoice_pdf = LaravelMpdf::loadView('pages.pdfs.shipping_invoice', ['invoice_transaction' => $invoice_transaction]); + + $document_object = new DocumentObject( + DocumentType::STORAGE_INVOICE, + [chunk_split('data:application/pdf;base64,'.base64_encode($transaction_invoice_pdf->output()))], + '', + ApprovalStatus::COMPLETED, + 'storage_invoice' + ); + + $invouce_transaction_document = $invoice_transaction->documents()->where('document_type', DocumentType::STORAGE_INVOICE)->first(); + // if(!$invouce_transaction_document){ + /** @var Document $document */ + $document = $this->createsDocument->execute($invoice_transaction, $document_object); + + $this->createsFiles->execute($document, $document_object); + $user = $packingList->owner->companyModule->employees()->first(); + // if(app()->environment(['production'])) { + // $user->notify(new InvoiceIssuedEmail($user, $packingList)); + // } + // } + } + +} diff --git a/app/Classes/Modules/Transactions/Processors/CreateStorageInvoiceDocTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateStorageInvoiceDocTransactionProcessor.php index 574c34b2..d46f5661 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateStorageInvoiceDocTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateStorageInvoiceDocTransactionProcessor.php @@ -46,7 +46,7 @@ class CreateStorageInvoiceDocTransactionProcessor /** * @throws MalformedRequestException */ - public function execute(PackingList $packingList, bool $isOverwrite = false) + public function execute(PackingList $packingList) { /** @var Transaction $invoice_transaction */ $invoice_transaction = $packingList->transactions()->where('transactions.type', TransactionType::STORAGE_INVOICE)->whereIn('status', [ApprovalStatus::COMPLETED])->first(); @@ -64,7 +64,7 @@ class CreateStorageInvoiceDocTransactionProcessor ); $invouce_transaction_document = $invoice_transaction->documents()->where('document_type', DocumentType::STORAGE_INVOICE)->first(); - if(!$invouce_transaction_document || $isOverwrite){ + if(!$invouce_transaction_document){ /** @var Document $document */ $document = $this->createsDocument->execute($invoice_transaction, $document_object); diff --git a/app/Console/Commands/FixGroupPaymentProblem.php b/app/Console/Commands/FixGroupPaymentProblem.php index df759d33..fee8fb35 100644 --- a/app/Console/Commands/FixGroupPaymentProblem.php +++ b/app/Console/Commands/FixGroupPaymentProblem.php @@ -6,7 +6,7 @@ namespace App\Console\Commands; use App\Classes\Modules\Transactions\Services\FetchesGroup; use App\Classes\Modules\Orders\Services\FetchesOrder; use App\Classes\Modules\Transactions\Processors\ReleaseGoodsToCustomerProcessor; -use App\Classes\Modules\Transactions\Processors\CreateStorageInvoiceDocTransactionProcessor; +use App\Classes\Modules\Transactions\Processors\CreateStorageInvoiceDocTransactionFixProcessor; use Carbon\Carbon; use Illuminate\Console\Command; @@ -35,7 +35,7 @@ class FixGroupPaymentProblem extends Command /** @var FetchesOrder */ private $fetchesOrder; - /** @var CreateStorageInvoiceDocTransactionProcessor */ + /** @var CreateStorageInvoiceDocTransactionFixProcessor */ private $createStorageInvoiceDocTransactionProcessor; /** @@ -43,7 +43,7 @@ class FixGroupPaymentProblem extends Command * * @return void */ - public function __construct(FetchesGroup $fetchesGroup, ReleaseGoodsToCustomerProcessor $releaseGoodsToCustomerProcessor, FetchesOrder $fetchesOrder, CreateStorageInvoiceDocTransactionProcessor $createStorageInvoiceDocTransactionProcessor) + public function __construct(FetchesGroup $fetchesGroup, ReleaseGoodsToCustomerProcessor $releaseGoodsToCustomerProcessor, FetchesOrder $fetchesOrder, CreateStorageInvoiceDocTransactionFixProcessor $createStorageInvoiceDocTransactionProcessor) { parent::__construct(); $this->fetchesGroup = $fetchesGroup;