コード例 #1
0
 /**
  * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem $orderItem
  *
  * @return bool
  */
 public function check(SpySalesOrderItem $orderItem)
 {
     $orderEntity = $orderItem->getOrder();
     $orderTransfer = new OrderTransfer();
     $orderTransfer->fromArray($orderEntity->toArray(), true);
     $isSuccess = $this->callFacade($orderTransfer);
     return $isSuccess;
 }
コード例 #2
0
ファイル: Transaction.php プロジェクト: spryker/Payolution
 /**
  * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
  * @param int $idPayment
  *
  * @return \Generated\Shared\Transfer\PayolutionTransactionResponseTransfer
  */
 public function preAuthorizePayment(OrderTransfer $orderTransfer, $idPayment)
 {
     $paymentEntity = $this->getPaymentEntity($idPayment);
     $methodMapper = $this->getMethodMapper($paymentEntity->getAccountBrand());
     $this->checkMaxMinGrandTotal($orderTransfer->getTotals()->getGrandTotal(), $methodMapper->getMinGrandTotal(), $methodMapper->getMaxGrandTotal());
     $requestData = $methodMapper->buildPreAuthorizationRequest($orderTransfer, $paymentEntity);
     return $this->sendLoggedRequest($requestData, $paymentEntity);
 }
コード例 #3
0
 /**
  * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
  * @param string $paymentCode
  * @param string $expectedStatusReasonCode
  *
  * @return bool
  */
 private function hasTransactionLogStatus(OrderTransfer $orderTransfer, $paymentCode, $expectedStatusReasonCode)
 {
     $idSalesOrder = $orderTransfer->getIdSalesOrder();
     $logEntity = $this->queryContainer->queryTransactionStatusLogBySalesOrderIdAndPaymentCodeLatestFirst($idSalesOrder, $paymentCode)->findOne();
     if (!$logEntity) {
         return false;
     }
     $expectedProcessingCode = $paymentCode . '.' . $expectedStatusReasonCode;
     return $expectedProcessingCode === $logEntity->getProcessingCode();
 }
コード例 #4
0
 /**
  * @param \Generated\Shared\Transfer\RefundTransfer $refundTransfer
  * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
  * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem[] array $salesOrderItems
  *
  * @return \Generated\Shared\Transfer\RefundTransfer
  */
 public function calculateRefund(RefundTransfer $refundTransfer, OrderTransfer $orderTransfer, array $salesOrderItems)
 {
     foreach ($orderTransfer->getItems() as $itemTransfer) {
         if ($this->shouldItemRefunded($itemTransfer, $salesOrderItems)) {
             $refundTransfer->addItem($itemTransfer);
         }
     }
     $this->calculateRefundableItemAmount($refundTransfer);
     $this->setCanceledItemAmount($refundTransfer);
     return $refundTransfer;
 }
コード例 #5
0
 /**
  * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
  *
  * @return int
  */
 protected function getTotalProductOptionSumGrossPrice(OrderTransfer $orderTransfer)
 {
     $productOptionTotalGrossSumAmount = 0;
     foreach ($orderTransfer->getItems() as $itemTransfer) {
         foreach ($itemTransfer->getProductOptions() as $productOptionTransfer) {
             $productOptionTransfer->requireSumGrossPrice();
             $productOptionTotalGrossSumAmount += $productOptionTransfer->getSumGrossPrice();
         }
     }
     return $productOptionTotalGrossSumAmount;
 }
コード例 #6
0
ファイル: AbstractPlugin.php プロジェクト: spryker/Payone
 /**
  * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem $orderItem
  *
  * @return bool
  */
 public function check(SpySalesOrderItem $orderItem)
 {
     $order = $orderItem->getOrder();
     if (isset(self::$resultCache[$this->getName()][$order->getPrimaryKey()])) {
         return self::$resultCache[$this->getName()][$order->getPrimaryKey()];
     }
     $orderTransfer = new OrderTransfer();
     $orderTransfer->fromArray($order->toArray(), true);
     $isSuccess = $this->callFacade($orderTransfer);
     self::$resultCache[$order->getPrimaryKey()] = $isSuccess;
     return $isSuccess;
 }
コード例 #7
0
 /**
  * @return \Generated\Shared\Transfer\OrderTransfer
  */
 protected function getOrderTransferWithRefundedItem()
 {
     $orderTransfer = new OrderTransfer();
     $itemTransfer = new ItemTransfer();
     $itemTransfer->setRefundableAmount(0);
     $itemTransfer->setIdSalesOrderItem(1);
     $orderTransfer->addItem($itemTransfer);
     $itemTransfer = new ItemTransfer();
     $itemTransfer->setRefundableAmount(100);
     $itemTransfer->setIdSalesOrderItem(2);
     $orderTransfer->addItem($itemTransfer);
     $expenseTransfer = new ExpenseTransfer();
     $expenseTransfer->setRefundableAmount(10);
     $orderTransfer->addExpense($expenseTransfer);
     return $orderTransfer;
 }
コード例 #8
0
ファイル: RefundPlugin.php プロジェクト: spryker/Payone
 /**
  * @param array $orderItems
  * @param \Orm\Zed\Sales\Persistence\SpySalesOrder $orderEntity
  * @param \Spryker\Zed\Oms\Business\Util\ReadOnlyArrayObject $data
  *
  * @return array Array
  */
 public function run(array $orderItems, SpySalesOrder $orderEntity, ReadOnlyArrayObject $data)
 {
     $payoneRefundTransfer = new PayoneRefundTransfer();
     $orderTransfer = new OrderTransfer();
     $orderTransfer->fromArray($orderEntity->toArray(), true);
     $refundTransfer = $this->getFactory()->getRefundFacade()->calculateRefund($orderItems, $orderEntity);
     $payoneRefundTransfer->setAmount($refundTransfer->getAmount() * -1);
     $paymentPayoneEntity = $orderEntity->getSpyPaymentPayones()->getFirst();
     $payonePaymentTransfer = new PayonePaymentTransfer();
     $payonePaymentTransfer->fromArray($paymentPayoneEntity->toArray(), true);
     $payoneRefundTransfer->setPayment($payonePaymentTransfer);
     $payoneRefundTransfer->setUseCustomerdata(PayoneApiConstants::USE_CUSTOMER_DATA_YES);
     $narrativeText = $this->getFactory()->getConfig()->getNarrativeText($orderItems, $orderEntity, $data);
     $payoneRefundTransfer->setNarrativeText($narrativeText);
     $this->getFacade()->refundPayment($payoneRefundTransfer);
     return [];
 }
コード例 #9
0
 /**
  * @param \Generated\Shared\Transfer\RefundTransfer $refundTransfer
  * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
  * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem[] array $salesOrderItems
  *
  * @return \Generated\Shared\Transfer\RefundTransfer
  */
 public function calculateRefund(RefundTransfer $refundTransfer, OrderTransfer $orderTransfer, array $salesOrderItems)
 {
     $refundedItemAmount = 0;
     foreach ($orderTransfer->getItems() as $itemTransfer) {
         if ($this->shouldItemRefunded($itemTransfer, $salesOrderItems)) {
             $refundTransfer->addItem($itemTransfer);
         } else {
             $refundedItemAmount += (int) $itemTransfer->getRefundableAmount();
         }
     }
     if ($refundedItemAmount === 0) {
         $refundTransfer->setExpenses($orderTransfer->getExpenses());
     }
     $this->calculateRefundableExpenseAmount($refundTransfer);
     $this->setCanceledExpenseAmount($refundTransfer);
     return $refundTransfer;
 }
コード例 #10
0
 /**
  * @return \Generated\Shared\Transfer\OrderTransfer
  */
 protected function createOrderTransfer()
 {
     $orderTransfer = new OrderTransfer();
     $totalTransfer = new TotalsTransfer();
     $totalTransfer->setGrandTotal(1000);
     $orderTransfer->setTotals($totalTransfer);
     $orderTransfer->setIdSalesOrder($this->orderEntity->getIdSalesOrder());
     return $orderTransfer;
 }
コード例 #11
0
ファイル: OrderHydrator.php プロジェクト: spryker/Sales
 /**
  * @param \Orm\Zed\Sales\Persistence\SpySalesOrder $orderEntity
  * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
  *
  * @return void
  */
 protected function hydrateExpensesToOrderTransfer(SpySalesOrder $orderEntity, OrderTransfer $orderTransfer)
 {
     foreach ($orderEntity->getExpenses() as $expenseEntity) {
         $expenseTransfer = new ExpenseTransfer();
         $expenseTransfer->fromArray($expenseEntity->toArray(), true);
         $expenseTransfer->setUnitGrossPrice($expenseEntity->getGrossPrice());
         $orderTransfer->addExpense($expenseTransfer);
     }
 }
コード例 #12
0
ファイル: PaymentManager.php プロジェクト: spryker/Payone
 /**
  * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
  *
  * @return \Generated\Shared\Transfer\PayonePaymentTransfer
  */
 protected function getPayment(OrderTransfer $orderTransfer)
 {
     $payment = $this->queryContainer->getPaymentByOrderId($orderTransfer->getIdSalesOrder())->findOne();
     $paymentDetail = $payment->getSpyPaymentPayoneDetail();
     $paymentDetailTransfer = new PaymentDetailTransfer();
     $paymentDetailTransfer->fromArray($paymentDetail->toArray(), true);
     $paymentTransfer = new PayonePaymentTransfer();
     $paymentTransfer->fromArray($payment->toArray(), true);
     $paymentTransfer->setPaymentDetail($paymentDetailTransfer);
     return $paymentTransfer;
 }
コード例 #13
0
 /**
  * @param \Generated\Shared\Transfer\OrderTransfer $order
  * @param array $orderItems
  *
  * @return \Generated\Shared\Transfer\OrderTransfer
  */
 protected function getOrderWithTotals(OrderTransfer $order, array $orderItems)
 {
     $order->setItems(new \ArrayObject($orderItems));
     return $this->salesAggregatorBridge->getOrderTotalByOrderTransfer($order);
 }
コード例 #14
0
ファイル: InvoiceTest.php プロジェクト: spryker/Payolution
 /**
  * @return \Generated\Shared\Transfer\OrderTransfer
  */
 protected function createOrderTransfer()
 {
     $orderTransfer = new OrderTransfer();
     $totalTransfer = new TotalsTransfer();
     $totalTransfer->setGrandTotal(1000);
     $orderTransfer->setTotals($totalTransfer);
     return $orderTransfer;
 }
コード例 #15
0
ファイル: TestController.php プロジェクト: spryker/Payone
 /**
  * @return \Generated\Shared\Transfer\OrderTransfer
  */
 protected function getOrder()
 {
     $order = new OrderTransfer();
     $order->setFirstName('horst');
     $order->setLastName('wurst');
     $order->setEmail('*****@*****.**');
     $order->setIsTest(true);
     //        $order->setIncrementId('DY999991011');
     $order->setOrderReference(rand(0, 100000));
     $order->setIdSalesOrder(1);
     $order->setSalutation('Mr');
     $totals = new TotalsTransfer();
     $totals->setGrandTotal(10000);
     //$totals->setTax(300);
     $totals->setSubtotal(10000);
     $order->setTotals($totals);
     return $order;
 }
コード例 #16
0
 /**
  * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
  * @param \Orm\Zed\Payolution\Persistence\SpyPaymentPayolution $paymentEntity
  * @param string $paymentCode
  * @param string $uniqueId
  *
  * @return array
  */
 protected function getBaseTransactionRequestForPayment(OrderTransfer $orderTransfer, SpyPaymentPayolution $paymentEntity, $paymentCode, $uniqueId)
 {
     $requestData = $this->getBaseTransactionRequest($orderTransfer->getTotals()->getGrandTotal(), $paymentEntity->getCurrencyIso3Code(), $orderTransfer->getIdSalesOrder());
     $this->addRequestData($requestData, [ApiConstants::TRANSACTION_CHANNEL => $this->getTransactionChannel(), ApiConstants::PAYMENT_CODE => $paymentCode, ApiConstants::IDENTIFICATION_REFERENCEID => $uniqueId]);
     return $requestData;
 }
コード例 #17
0
 /**
  * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
  *
  * @return int[]
  */
 protected function getSaleOrderItemIds(OrderTransfer $orderTransfer)
 {
     $saleOrderItemIds = [];
     foreach ($orderTransfer->getItems() as $itemTransfer) {
         $saleOrderItemIds[] = $itemTransfer->getIdSalesOrderItem();
     }
     return $saleOrderItemIds;
 }
コード例 #18
0
 /**
  * @return \Generated\Shared\Transfer\OrderTransfer
  */
 protected function createOrderTransferMock()
 {
     $totalsTransfer = new TotalsTransfer();
     $totalsTransfer->setGrandTotal(10000);
     $orderTransfer = new OrderTransfer();
     $orderTransfer->fromArray($this->orderEntity->toArray(), true);
     $orderTransfer->setTotals($totalsTransfer);
     return $orderTransfer;
 }
コード例 #19
0
ファイル: OrderUpdater.php プロジェクト: spryker/Sales
 /**
  * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
  * @param \Orm\Zed\Sales\Persistence\SpySalesOrder $orderEntity
  *
  * @return void
  */
 protected function hydrateEntityFromOrderTransfer(OrderTransfer $orderTransfer, SpySalesOrder $orderEntity)
 {
     $orderEntity->fromArray($orderTransfer->modifiedToArray());
 }
コード例 #20
0
ファイル: ApiLogFinder.php プロジェクト: spryker/Payone
 /**
  * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
  *
  * @return \Orm\Zed\Payone\Persistence\SpyPaymentPayone
  */
 protected function findPaymentByOrder(OrderTransfer $orderTransfer)
 {
     return $this->queryContainer->getPaymentByOrderId($orderTransfer->getIdSalesOrder())->findOne();
 }
コード例 #21
0
 /**
  * @param \Orm\Zed\Sales\Persistence\SpySalesOrder $orderEntity
  *
  * @return \Generated\Shared\Transfer\OrderTransfer
  */
 protected function getOrderTransfer(SpySalesOrder $orderEntity)
 {
     $orderTransfer = new OrderTransfer();
     $orderTransfer->fromArray($orderEntity->toArray(), true);
     return $orderTransfer;
 }