Ejemplo n.º 1
0
 /**
  * @param \Orm\Zed\Refund\Persistence\PavRefund $refundEntity
  *
  * @return \Generated\Shared\Transfer\RefundTransfer
  */
 protected function convertToTransfer(PavRefund $refundEntity)
 {
     $refundTransfer = new RefundTransfer();
     $refundTransfer->fromArray($refundEntity->toArray(), true);
     foreach ($refundEntity->getRefundItems() as $refundItem) {
         $refundItemTransfer = new RefundItemTransfer();
         $refundItemTransfer->fromArray($refundItem->toArray(), true);
         $refundTransfer->addItem($refundItemTransfer);
     }
     return $refundTransfer;
 }
 /**
  * @param \Generated\Shared\Transfer\ItemTransfer $orderItem
  *
  * @return \Generated\Shared\Transfer\RefundItemTransfer
  */
 protected function createRefundItem(ItemTransfer $orderItem)
 {
     $refundItem = new RefundItemTransfer();
     $refundItem->setFkSalesOrderItem($orderItem->getIdSalesOrderItem());
     $refundItem->setQuantity($orderItem->getQuantity());
     $refundItem->setGrossPrice($orderItem->getUnitGrossPrice());
     $refundItem->setDiscountAmount($orderItem->getSumTotalDiscountAmount());
     $refundItem->setName($orderItem->getName());
     $refundItem->setGroupKey($orderItem->getGroupKey());
     $refundItem->setTaxRate($orderItem->getTaxRate());
     $refundItem->setTaxAmount($orderItem->getSumTaxAmount());
     return $refundItem;
 }
Ejemplo n.º 3
0
 /**
  * @param \Generated\Shared\Transfer\GroupedRefundItemTransfer $groupedRefundItem
  * @param \Generated\Shared\Transfer\RefundItemTransfer $refundItem
  *
  * @return \Generated\Shared\Transfer\GroupedRefundItemTransfer
  */
 protected function aggregateItem(GroupedRefundItemTransfer $groupedRefundItem, RefundItemTransfer $refundItem)
 {
     $groupTaxAmount = $groupedRefundItem->getTaxAmount() + $refundItem->getTaxAmount();
     $groupTotalGrossPrice = $groupedRefundItem->getTotalGrossPrice() + $refundItem->getTotalGrossPrice();
     $groupTotalGrossPriceWithDiscount = $groupedRefundItem->getTotalGrossPriceWithDiscount() + $refundItem->getTotalGrossPriceWithDiscount();
     $groupQuantity = $groupedRefundItem->getQuantity() + 1;
     $groupDiscountAmount = $groupedRefundItem->getDiscountAmount() + $refundItem->getDiscountAmount();
     $groupedRefundItem->setTotalGrossPriceWithDiscount($groupTotalGrossPriceWithDiscount);
     $groupedRefundItem->setTotalGrossPrice($groupTotalGrossPrice);
     $groupedRefundItem->setQuantity($groupQuantity);
     $groupedRefundItem->setTaxAmount($groupTaxAmount);
     $groupedRefundItem->setDiscountAmount($groupDiscountAmount);
     return $groupedRefundItem;
 }
Ejemplo n.º 4
0
 /**
  * @param \Generated\Shared\Transfer\RefundItemTransfer $itemTransfer
  *
  * @return void
  */
 public function aggregate(RefundItemTransfer $itemTransfer)
 {
     if (!$itemTransfer->getTaxRate()) {
         return;
     }
     $this->taxBridge->resetAccruedTaxCalculatorRoundingErrorDelta();
     $itemTransfer->requireGrossPrice()->requireTotalGrossPrice();
     $taxAmount = $this->taxBridge->getTaxAmountFromGrossPrice($itemTransfer->getTotalGrossPrice(), $itemTransfer->getTaxRate());
     $itemTransfer->setTaxAmount($taxAmount);
     $taxAmountWithDiscount = $this->taxBridge->getTaxAmountFromGrossPrice($itemTransfer->getTotalGrossPriceWithDiscount(), $itemTransfer->getTaxRate());
     $itemTransfer->setTaxAmountWithDiscount($taxAmountWithDiscount);
 }
Ejemplo n.º 5
0
 /**
  * @param \Generated\Shared\Transfer\RefundItemTransfer $itemTransfer
  *
  * @return void
  */
 public function aggregate(RefundItemTransfer $itemTransfer)
 {
     $itemTransfer->requireQuantity()->requireGrossPrice();
     $itemTransfer->setTotalGrossPrice($itemTransfer->getGrossPrice() * $itemTransfer->getQuantity());
 }
Ejemplo n.º 6
0
 /**
  * @param \Generated\Shared\Transfer\RefundItemTransfer $itemTransfer
  *
  * @return void
  */
 public function aggregate(RefundItemTransfer $itemTransfer)
 {
     $totalGrossPriceWithDiscount = $itemTransfer->getTotalGrossPrice() - $itemTransfer->getDiscountAmount();
     $itemTransfer->setTotalGrossPriceWithDiscount($totalGrossPriceWithDiscount);
 }
Ejemplo n.º 7
0
 /**
  * @param \Generated\Shared\Transfer\RefundItemTransfer $refundItem
  *
  * @throws \Pav\Zed\Refund\Business\Exception\RefundItemNotFoundException
  * @return \Generated\Shared\Transfer\RefundItemTransfer
  */
 protected function updateRefundItem(RefundItemTransfer $refundItem)
 {
     $idRefundItem = $refundItem->getIdRefundItem();
     $refundItemEntity = $this->queryContainer->queryRefundItemById($idRefundItem)->findOne();
     if ($refundItemEntity === null) {
         throw new RefundItemNotFoundException(sprintf('Refund item %s not found', $idRefundItem));
     }
     $refundItemEntity->fromArray($refundItem->toArray());
     $refundItemEntity->save();
     return $refundItem;
 }