/**
  * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
  * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponse
  *
  * @return void
  */
 public function execute(QuoteTransfer $quoteTransfer, CheckoutResponseTransfer $checkoutResponse)
 {
     $resultCheck = new ZeroPaymentResultCheckTransfer();
     $resultCheck->setFkSalesOrder($checkoutResponse->getSaveOrder()->getIdSalesOrder());
     $resultCheckResponse = $this->getFacade()->checkPaymentResult($resultCheck);
     if ($resultCheckResponse->getIsSuccess() === false) {
         $checkoutResponse->addError($this->createCheckoutErrorTransfer($resultCheckResponse));
     }
 }
 /**
  * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponseTransfer
  *
  * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
  *
  * @return \Orm\Zed\Payolution\Persistence\SpyPaymentPayolutionTransactionStatusLog
  */
 protected function getTransactionStatusLog(CheckoutResponseTransfer $checkoutResponseTransfer)
 {
     $transactionStatusLogQuery = $this->getQueryContainer()->queryTransactionStatusLogBySalesOrderId($checkoutResponseTransfer->getSaveOrder()->getIdSalesOrder());
     $transactionStatusLogEntity = $transactionStatusLogQuery->findOne();
     if ($transactionStatusLogEntity === null) {
         throw new NotFoundHttpException('TransactionStatusLog entity could not be found');
     }
     return $transactionStatusLogEntity;
 }
 /**
  * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
  * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponse
  *
  * @return void
  */
 public function save(QuoteTransfer $quoteTransfer, CheckoutResponseTransfer $checkoutResponse)
 {
     $saveOrderTransfer = $checkoutResponse->getSaveOrder();
     foreach ($saveOrderTransfer->getOrderItems() as $itemTransfer) {
         foreach ($itemTransfer->getProductOptions() as $productOptionTransfer) {
             $salesOrderItemOptionEntity = $this->createSalesOrderItemOptionEntity();
             $salesOrderItemOptionEntity->fromArray($productOptionTransfer->toArray());
             $salesOrderItemOptionEntity->setFkSalesOrderItem($itemTransfer->getIdSalesOrderItem());
             $salesOrderItemOptionEntity->save();
             $productOptionTransfer->setIdSalesOrderItemOption($salesOrderItemOptionEntity->getIdSalesOrderItemOption());
         }
     }
 }
Ejemplo n.º 4
0
 /**
  * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponseTransfer
  * @param \Generated\Shared\Transfer\ExpenseTransfer $expenseTransfer
  * @param \Orm\Zed\Sales\Persistence\SpySalesExpense $salesOrderExpenseEntity
  *
  * @return void
  */
 protected function setCheckoutResponseExpenses(CheckoutResponseTransfer $checkoutResponseTransfer, ExpenseTransfer $expenseTransfer, SpySalesExpense $salesOrderExpenseEntity)
 {
     $orderExpense = clone $expenseTransfer;
     $orderExpense->setIdSalesExpense($salesOrderExpenseEntity->getIdSalesExpense());
     $checkoutResponseTransfer->getSaveOrder()->addOrderExpense($orderExpense);
 }
Ejemplo n.º 5
0
 /**
  * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponseTransfer
  *
  * @return void
  */
 protected function saveOrderExpenseDiscounts(CheckoutResponseTransfer $checkoutResponseTransfer)
 {
     $idSalesOrder = $checkoutResponseTransfer->getSaveOrder()->getIdSalesOrder();
     $orderExpenses = $checkoutResponseTransfer->getSaveOrder()->getOrderExpenses();
     foreach ($orderExpenses as $expenseTransfer) {
         foreach ($expenseTransfer->getCalculatedDiscounts() as $calculatedDiscountTransfer) {
             $salesDiscountEntity = $this->createSalesDiscountEntity($calculatedDiscountTransfer);
             $salesDiscountEntity->setFkSalesOrder($idSalesOrder);
             $salesDiscountEntity->setFkSalesExpense($expenseTransfer->getIdSalesExpense());
             $this->saveDiscount($salesDiscountEntity, $calculatedDiscountTransfer);
         }
     }
 }
Ejemplo n.º 6
0
 /**
  * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
  * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponseTransfer
  *
  * @return void
  */
 public function saveOrderPayment(QuoteTransfer $quoteTransfer, CheckoutResponseTransfer $checkoutResponseTransfer)
 {
     $paymentEntity = $this->savePaymentForOrder($quoteTransfer->getPayment()->getPayolution(), $checkoutResponseTransfer->getSaveOrder()->getIdSalesOrder());
     $this->savePaymentForOrderItems($checkoutResponseTransfer->getSaveOrder()->getOrderItems(), $paymentEntity->getIdPaymentPayolution());
 }
Ejemplo n.º 7
0
 /**
  * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponseTransfer
  *
  * @return \Generated\Shared\Transfer\QuoteTransfer
  */
 private function getQuoteTransfer(CheckoutResponseTransfer $checkoutResponseTransfer)
 {
     $orderEntity = $this->createOrderEntity();
     $paymentAddressTransfer = new AddressTransfer();
     $email = '*****@*****.**';
     $paymentAddressTransfer->setIso2Code('DE')->setEmail($email)->setFirstName('John')->setLastName('Doe')->setCellPhone('+40 175 0815')->setPhone('+30 0815')->setAddress1('Straße des 17. Juni')->setAddress2('135')->setZipCode('10623')->setSalutation(SpyPaymentPayolutionTableMap::COL_SALUTATION_MR)->setCity('Berlin');
     $payolutionPaymentTransfer = new PayolutionPaymentTransfer();
     $payolutionPaymentTransfer->setEmail($email)->setGender(SpyPaymentPayolutionTableMap::COL_GENDER_MALE)->setDateOfBirth('1970-01-02')->setClientIp('127.0.0.1')->setAccountBrand(PayolutionConstants::BRAND_INVOICE)->setLanguageIso2Code('DE')->setCurrencyIso3Code('EUR')->setAddress($paymentAddressTransfer);
     $quoteTransfer = new QuoteTransfer();
     $customerTransfer = new CustomerTransfer();
     $customerTransfer->setEmail($email);
     $customerTransfer->setIsGuest(true);
     $quoteTransfer->setCustomer($customerTransfer);
     $checkoutResponseTransfer->getSaveOrder()->setIdSalesOrder($orderEntity->getIdSalesOrder());
     $paymentTransfer = new PaymentTransfer();
     $paymentTransfer->setPayolution($payolutionPaymentTransfer);
     $quoteTransfer->setPayment($paymentTransfer);
     foreach ($orderEntity->getItems() as $orderItemEntity) {
         $itemTransfer = new ItemTransfer();
         $itemTransfer->setName($orderItemEntity->getName())->setQuantity($orderItemEntity->getQuantity())->setUnitGrossPrice($orderItemEntity->getGrossPrice())->setFkSalesOrder($orderItemEntity->getFkSalesOrder())->setIdSalesOrderItem($orderItemEntity->getIdSalesOrderItem());
         $checkoutResponseTransfer->getSaveOrder()->addOrderItem($itemTransfer);
     }
     return $quoteTransfer;
 }
Ejemplo n.º 8
0
 /**
  * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponseTransfer
  *
  * @return \Generated\Shared\Transfer\SaveOrderTransfer
  */
 protected function getSaveOrderTransfer(CheckoutResponseTransfer $checkoutResponseTransfer)
 {
     $saveOrderTransfer = $checkoutResponseTransfer->getSaveOrder();
     if ($saveOrderTransfer === null) {
         $saveOrderTransfer = $this->createSaveOrderTransfer();
     }
     return $saveOrderTransfer;
 }
Ejemplo n.º 9
0
 /**
  * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponseTransfer
  *
  * @return void
  */
 protected function triggerStateMachine(CheckoutResponseTransfer $checkoutResponseTransfer)
 {
     $salesOrderItemIds = [];
     foreach ($checkoutResponseTransfer->getSaveOrder()->getOrderItems() as $item) {
         $salesOrderItemIds[] = $item->getIdSalesOrderItem();
     }
     $this->omsFacade->triggerEventForNewOrderItems($salesOrderItemIds);
 }