'Purchase Order Uploaded', 'message' => 'You have successfully uploaded the Purchase order' ]; } /** @var FetchesBooking */ private $fetchesBooking; /** @var CreatesDocument */ private $createsDocument; /** @var CreatesFiles */ private $createsFile; /** @var CreatePurchaseOrderFor1688OrderProcessor */ private $createPurchaseOrderFor1688OrderProcessor; /** * UploadPurchaseOrderLogic constructor. * @param FetchesBooking $fetchesBooking * @param CreatesDocument $createsDocument * @param CreatesFiles $createsFile * @param CreatePurchaseOrderFor1688OrderProcessor $createPurchaseOrderFor1688OrderProcessor */ public function __construct(FetchesBooking $fetchesBooking, CreatesDocument $createsDocument, CreatesFiles $createsFile, CreatePurchaseOrderFor1688OrderProcessor $createPurchaseOrderFor1688OrderProcessor) { $this->fetchesBooking = $fetchesBooking; $this->createsDocument = $createsDocument; $this->createsFile = $createsFile; $this->createPurchaseOrderFor1688OrderProcessor = $createPurchaseOrderFor1688OrderProcessor; } /** * @param Request $request * @return JsonResponse * @throws \App\Classes\Exceptions\MalformedRequestException */ public function logic(Request $request) : JsonResponse { $booking = $this->fetchesBooking->execute(['id' => $request->route('id')]); $object = new DocumentObject(DocumentType::ECOMMERCE_PURCHASE_ORDER, $request->input('files'), '', ApprovalStatus::APPROVED, '1688_purchase_orders'); /** @var Document $document */ $document = $this->createsDocument->execute($booking, $object); $this->createsFile->execute($document, $object); if(in_array($booking->company->id, [199, 510])){ $this->createPurchaseOrderFor1688OrderProcessor->execute($booking); } return $this->response([]); } }