'Created Deliver PackingList', 'message' => 'You have successfully created a new Deliver PackingList' ]; } /** @var CreatePackingListProcessor */ private $createPackingListProcessor; /** @var FetchesCompanyModule */ private $fetchesCompanyModule; /** @var GeneratesPackingListReferenceNumber */ private $generatesPackingListReferenceNumber; /** @var FetchesPackingList */ private $fetchesPackingList; /** * CreateDeliverPackingListLogic constructor. * @param CreatePackingListProcessor $createPackingListProcessor * @param FetchesCompanyModule $fetchesCompanyModule */ public function __construct(CreatePackingListProcessor $createPackingListProcessor, FetchesCompanyModule $fetchesCompanyModule, GeneratesPackingListReferenceNumber $generatesPackingListReferenceNumber, FetchesPackingList $fetchesPackingList) { $this->createPackingListProcessor = $createPackingListProcessor; $this->fetchesCompanyModule = $fetchesCompanyModule; $this->generatesPackingListReferenceNumber = $generatesPackingListReferenceNumber; $this->fetchesPackingList = $fetchesPackingList; } /** * @param Request $request * @return JsonResponse */ public function logic(Request $request): JsonResponse { $company_module = $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]); $packing_list_id = $request->input('packing_list_id'); $reference_number = $this->generatesPackingListReferenceNumber->execute(); $packingListObject = new PackingListObject( $reference_number, null, PackingListType::DELIVERY_PACKING_LIST, ApprovalStatus::PENDING_SUBMISSION ); $deliverPackingList = $this->createPackingListProcessor->execute($packingListObject, $company_module); foreach ($packing_list_id as $key => $row) { $this->fetchesPackingList->execute(['id' => $row]); } $deliverPackingList->packing_list_owner()->sync($packing_list_id); //no relationships required /* return fractal() ->item($deliverPackingList, new DeliverPackingListTransformer()) ->respond(200, [], JSON_PRETTY_PRINT);*/ return $this->resourceResponse(new DeliverPackingListResource($deliverPackingList)); } }