Issues (456)

Plugin/Oms/Command/BaseCommandPlugin.php (1 issue)

1
<?php
2
3
/**
4
 * MIT License
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Zed\Ratepay\Communication\Plugin\Oms\Command;
9
10
use Generated\Shared\Transfer\TotalsTransfer;
0 ignored issues
show
The type Generated\Shared\Transfer\TotalsTransfer was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
11
use Orm\Zed\Sales\Persistence\SpySalesOrder;
12
use Spryker\Zed\Kernel\Communication\AbstractPlugin;
13
use Spryker\Zed\Oms\Dependency\Plugin\Command\CommandByOrderInterface;
14
15
/**
16
 * @method \SprykerEco\Zed\Ratepay\Business\RatepayFacadeInterface getFacade()
17
 * @method \SprykerEco\Zed\Ratepay\Communication\RatepayCommunicationFactory getFactory()
18
 */
19
abstract class BaseCommandPlugin extends AbstractPlugin implements CommandByOrderInterface
20
{
21
    /**
22
     * @param \Orm\Zed\Sales\Persistence\SpySalesOrder $orderEntity
23
     *
24
     * @return \Generated\Shared\Transfer\OrderTransfer
25
     */
26
    protected function getOrderTransfer(SpySalesOrder $orderEntity)
27
    {
28
        return $this
29
            ->getFactory()
30
            ->getSalesFacade()
31
            ->getOrderTotalsByIdSalesOrder($orderEntity->getIdSalesOrder());
32
    }
33
34
    /**
35
     * @param int $idSalesOrderItem
36
     *
37
     * @return \Generated\Shared\Transfer\ItemTransfer
38
     */
39
    protected function getOrderItemTotalsByIdSalesOrderItem($idSalesOrderItem)
40
    {
41
        return $this
42
            ->getFactory()
43
            ->createPartialOrderCalculator()
44
            ->getOrderItemTotalsByIdSalesOrderItem($idSalesOrderItem);
45
    }
46
47
    /**
48
     * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem[] $orderItems
49
     * @param \Orm\Zed\Sales\Persistence\SpySalesOrder $orderEntity
50
     *
51
     * @return \Generated\Shared\Transfer\OrderTransfer
52
     */
53
    protected function getPartialOrderTransferByOrderItems($orderItems, SpySalesOrder $orderEntity)
54
    {
55
        $partialOrderTransfer = $this->getFactory()->createOrderTransfer();
56
        $items = $this->getFactory()->createOrderTransferItems($orderItems);
57
        $partialOrderTransfer->setItems($items);
58
        $partialOrderTransfer = $this->getFilledOrderTransfer($partialOrderTransfer, $orderEntity);
59
60
        return $this
61
            ->getFactory()
62
            ->getCalculationFacade()
63
            ->getOrderTotalByOrderTransfer($partialOrderTransfer);
64
    }
65
66
    /**
67
     * @param \Generated\Shared\Transfer\OrderTransfer $partialOrderTransfer
68
     * @param \Orm\Zed\Sales\Persistence\SpySalesOrder $orderEntity
69
     *
70
     * @return \Generated\Shared\Transfer\OrderTransfer
71
     */
72
    protected function getFilledOrderTransfer($partialOrderTransfer, $orderEntity)
73
    {
74
        $partialOrderTransfer->setPriceMode($orderEntity->getPriceMode());
75
        $partialOrderTransfer->setTotals($this->getTotalsTransfer($orderEntity));
76
77
        return $partialOrderTransfer;
78
    }
79
80
    /**
81
     * @param \Orm\Zed\Sales\Persistence\SpySalesOrder $orderEntity
82
     *
83
     * @return \Generated\Shared\Transfer\TotalsTransfer
84
     */
85
    protected function getTotalsTransfer($orderEntity)
86
    {
87
        $totalsTransfer = new TotalsTransfer();
88
        $lastTotals = $orderEntity->getLastOrderTotals();
89
        $totalsTransfer
90
            ->setGrandTotal($lastTotals->getGrandTotal())
91
            ->setSubtotal($lastTotals->getSubtotal())
92
            ->setDiscountTotal($lastTotals->getDiscountTotal())
93
            ->setExpenseTotal($lastTotals->getOrderExpenseTotal());
94
95
        return $totalsTransfer;
96
    }
97
98
    /**
99
     * @param \Orm\Zed\Sales\Persistence\SpySalesOrderItem[] $orderItems
100
     *
101
     * @return \Generated\Shared\Transfer\ItemTransfer[]
102
     */
103
    protected function getOrderItemsTransfer(array $orderItems)
104
    {
105
        $orderTransferItems = [];
106
        foreach ($orderItems as $orderItem) {
107
            $orderTransferItems[$orderItem->getIdSalesOrderItem()] = $this
108
                ->getOrderItemTotalsByIdSalesOrderItem($orderItem->getIdSalesOrderItem());
109
        }
110
111
        return $orderTransferItems;
112
    }
113
}
114