Example #1
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;
 }
 /**
  * @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;
 }
 /**
  * @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;
 }
 /**
  * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
  *
  * @return int[]
  */
 protected function getSaleOrderItemIds(OrderTransfer $orderTransfer)
 {
     $saleOrderItemIds = [];
     foreach ($orderTransfer->getItems() as $itemTransfer) {
         $saleOrderItemIds[] = $itemTransfer->getIdSalesOrderItem();
     }
     return $saleOrderItemIds;
 }