mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-23 06:24:10 +00:00
56 lines
1.6 KiB
PHP
56 lines
1.6 KiB
PHP
<?php
|
|
|
|
|
|
namespace App\Classes\Modules\Transactions\ControllersLogic;
|
|
|
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
|
use App\Models\Transaction;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
use App\Classes\Modules\Transactions\Processors\CheckStorageInvoiceTransactionProcessor;
|
|
use App\Http\Resources\TransactionVerifyResource;
|
|
|
|
class VerifyTransactionsLogic extends AbstractControllerLogic
|
|
{
|
|
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
protected function notification():array {
|
|
return [
|
|
'title' => 'Verify Transactions',
|
|
'message' => 'You have successfully verified submitted transactions'
|
|
];
|
|
}
|
|
|
|
/** @var CheckStorageInvoiceTransactionProcessor */
|
|
private $checkStorageInvoiceTransactionProcessor;
|
|
|
|
|
|
public function __construct(
|
|
CheckStorageInvoiceTransactionProcessor $checkStorageInvoiceTransactionProcessor
|
|
)
|
|
{
|
|
$this->checkStorageInvoiceTransactionProcessor = $checkStorageInvoiceTransactionProcessor;
|
|
}
|
|
|
|
public function logic(Request $request) : JsonResponse
|
|
{
|
|
$invoice_ids = json_decode($request->route('transaction_ids'));
|
|
$invoices = Transaction::whereIn('id', $invoice_ids)->get();
|
|
|
|
$result = $this->processInvoices($invoices);
|
|
return $this->collectionResponse(TransactionVerifyResource::collection($result));
|
|
|
|
}
|
|
|
|
private function processInvoices($invoices){
|
|
foreach ($invoices as $invoice) {
|
|
$storages = $this->checkStorageInvoiceTransactionProcessor->executeShippingTransaction($invoice);
|
|
$invoice['storages'] = $storages;
|
|
}
|
|
return $invoices;
|
|
}
|
|
}
|