Passed
Pull Request — master (#23)
by
unknown
09:00 queued 04:40
created

mapQuoteTransferToAfterPayCallTransfer()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 6
rs 10
c 1
b 0
f 0
1
<?php
2
3
/**
4
 * MIT License
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
namespace SprykerEco\Zed\AfterPay\Business\Mapper;
9
10
use Generated\Shared\Transfer\AfterPayCallTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfer\AfterPayCallTransfer 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 Generated\Shared\Transfer\QuoteTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfer\QuoteTransfer 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...
12
13
class AfterPayMapper implements AfterPayMapperInterface
14
{
15
    /**
16
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
17
     *
18
     * @return \Generated\Shared\Transfer\AfterPayCallTransfer
19
     */
20
    public function mapQuoteTransferToAfterPayCallTransfer(QuoteTransfer $quoteTransfer): AfterPayCallTransfer
21
    {
22
        $afterPayCallTransfer = $this->buildAfterPayCallTransfer($quoteTransfer);
23
        $this->addItemsTotalTaxToAfterPayCallTransfer($afterPayCallTransfer, $quoteTransfer);
24
25
        return $afterPayCallTransfer;
26
    }
27
28
    /**
29
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
30
     *
31
     * @return \Generated\Shared\Transfer\AfterPayCallTransfer
32
     */
33
    protected function buildAfterPayCallTransfer(QuoteTransfer $quoteTransfer): AfterPayCallTransfer
34
    {
35
        return (new AfterPayCallTransfer())
36
            ->setOrderReference($quoteTransfer->getOrderReference())
37
            ->setIdSalesOrder($quoteTransfer->getPayment()->getIdSalesOrder())
38
            ->setEmail($quoteTransfer->getCustomer()->getEmail())
39
            ->setItems($quoteTransfer->getItems())
40
            ->setBillingAddress($quoteTransfer->getBillingAddress())
41
            ->setShippingAddress($quoteTransfer->getShippingAddress())
42
            ->setTotals($quoteTransfer->getTotals())
43
            ->setCurrency($quoteTransfer->getCurrency()->getCode())
44
            ->setPayments($quoteTransfer->getPayments())
45
            ->setPaymentMethod($quoteTransfer->getPayment()->getPaymentSelection());
46
    }
47
48
    /**
49
     * @param \Generated\Shared\Transfer\AfterPayCallTransfer $afterPayCallTransfer
50
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
51
     *
52
     * @return \Generated\Shared\Transfer\AfterPayCallTransfer
53
     */
54
    protected function addItemsTotalTaxToAfterPayCallTransfer(
55
        AfterPayCallTransfer $afterPayCallTransfer,
56
        QuoteTransfer $quoteTransfer
57
    ): AfterPayCallTransfer {
58
        $itemsTotalTaxAmount = 0;
59
        foreach ($quoteTransfer->getItems() as $item) {
60
            $itemsTotalTaxAmount += $item->getUnitTaxAmountFullAggregation();
61
        }
62
        $afterPayCallTransfer->getTotals()->getTaxTotal()->setItemsTotalTax($itemsTotalTaxAmount);
63
64
        return $afterPayCallTransfer;
65
    }
66
}
67