/**
  * @param CreateOrderFromCartCommand $command
  * @throws EntityValidatorException
  */
 public function handle(CreateOrderFromCartCommand $command)
 {
     $cart = $this->cartService->findOneById($command->getCartId());
     $user = $this->userService->findOneById($command->getUserId());
     $order = $this->orderService->createOrderFromCart($command->getOrderId(), $user, $cart, $this->cartCalculator, $command->getIp4(), OrderAddressDTOBuilder::createFromDTO($command->getShippingAddressDTO()), OrderAddressDTOBuilder::createFromDTO($command->getBillingAddressDTO()), CreditCardDTOBuilder::createFromDTO($command->getCreditCardDTO()));
     $this->cartService->delete($cart);
 }
 public function handle(GetOrdersByUserQuery $query)
 {
     $orders = $this->orderService->getOrdersByUserId($query->getRequest()->getUserId());
     foreach ($orders as $order) {
         $query->getResponse()->addOrderDTOBuilder($this->dtoBuilderFactory->getOrderDTOBuilder($order));
     }
 }
Esempio n. 3
0
 public function handle(GetOrderQuery $query)
 {
     $request = $query->getRequest();
     $response = $query->getResponse();
     $order = $this->orderService->findOneById($request->getOrderId());
     $response->setOrderDTOBuilder($this->dtoBuilderFactory->getOrderDTOBuilder($order));
 }
 /**
  * @param UploadFileDTO $uploadFileDTO
  * @param UuidInterface $orderItemId
  * @return void
  */
 public function createAttachmentForOrderItem(UploadFileDTO $uploadFileDTO, UuidInterface $orderItemId)
 {
     $orderItem = $this->orderService->getOrderItemById($orderItemId);
     $order = $orderItem->getOrder();
     $attachment = $this->createAttachment($uploadFileDTO);
     $orderItem->addAttachment($attachment);
     $this->orderService->update($order);
 }
 public function handle(ListOrdersQuery $query)
 {
     $paginationDTO = $query->getRequest()->getPaginationDTO();
     $pagination = new Pagination($paginationDTO->maxResults, $paginationDTO->page);
     // TODO: Add query search
     $queryString = $query->getRequest()->getQueryString();
     $orders = $this->orderService->getLatestOrders($pagination);
     $query->getResponse()->setPaginationDTOBuilder($this->dtoBuilderFactory->getPaginationDTOBuilder($pagination));
     foreach ($orders as $order) {
         $query->getResponse()->addOrderDTOBuilder($this->dtoBuilderFactory->getOrderDTOBuilder($order));
     }
 }
 public function testCreateAttachmentForOrderItem()
 {
     $order = $this->dummyData->getOrder();
     $product = $this->dummyData->getProduct();
     $product->enableAttachments();
     $orderItem = $this->dummyData->getOrderItem($order, $product);
     $uploadFileDTO = $this->dummyData->getUploadFileDTO();
     $this->orderService->shouldReceive('getOrderItemById')->with($orderItem->getId())->andReturn($orderItem)->once();
     $this->fileManager->shouldReceive('saveFile')->with($uploadFileDTO->getFilePath())->andReturn($this->dummyData->getRemoteManagedFile())->once();
     $this->attachmentRepository->shouldReceive('create')->once();
     $this->orderService->shouldReceive('update')->with($order)->once();
     $this->attachmentService->createAttachmentForOrderItem($uploadFileDTO, $orderItem->getId());
 }
Esempio n. 7
0
 public function testCreateOrderFromCart()
 {
     $cart = $this->getPersistedCart();
     $orderId = Uuid::uuid4();
     $order = $this->orderService->createOrderFromCart($orderId, $cart->getUser(), $cart, $this->getCartCalculator(), '10.0.0.1', $this->dummyData->getOrderAddress(), $this->dummyData->getOrderAddress(), $this->dummyData->getCreditCard());
     $this->assertTrue($order instanceof Order);
     $this->assertTrue($order->getPayments()[0] instanceof CreditPayment);
     // TODO: Test reserveProductsFromInventory
     /** @var OrderCreatedFromCartEvent $event */
     $event = $this->fakeEventDispatcher->getDispatchedEvents(OrderCreatedFromCartEvent::class)[0];
     $this->assertTrue($event instanceof OrderCreatedFromCartEvent);
     $this->assertSame($order->getId(), $event->getOrderId());
 }
 public function handle(GetOrderItemQuery $query)
 {
     $orderItem = $this->orderService->getOrderItemById($query->getRequest()->getOrderItemId());
     $query->getResponse()->setOrderItemDTOBuilder($this->dtoBuilderFactory->getOrderItemDTOBuilder($orderItem));
 }
 public function handle(BuyShipmentLabelCommand $command)
 {
     $this->orderService->buyShipmentLabel($command->getOrderId(), $command->getOrderItemQtyDTO(), $command->getComment(), $command->getRateExternalId(), $command->getShipmentExternalId());
 }
 public function handle(AddShipmentTrackingCodeCommand $command)
 {
     $this->orderService->addShipmentTrackingCode($command->getOrderId(), $command->getOrderItemQtyDTO(), $command->getComment(), $command->getCarrier(), $command->getTrackingCode());
 }
 public function handle(SetOrderStatusCommand $command)
 {
     $this->orderService->setOrderStatus($command->getOrderId(), OrderStatusType::createById($command->getOrderStatusTypeId()));
 }