ShippingAddressTrait::updateShippingAddress()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 9
dl 0
loc 13
c 0
b 0
f 0
rs 9.9666
cc 2
nc 2
nop 0
1
<?php
2
3
namespace Xsolve\SalesforceClient\Model;
4
5
use JMS\Serializer\Annotation as JMS;
6
use Xsolve\SalesforceClient\Model\ValueObject\Address;
7
8
trait ShippingAddressTrait
9
{
10
    /**
11
     * @var string|null
12
     * @JMS\Type("string")
13
     * @JMS\Groups({"update", "create"})
14
     */
15
    protected $shippingStreet;
16
17
    /**
18
     * @var string|null
19
     * @JMS\Type("string")
20
     * @JMS\Groups({"update", "create"})
21
     */
22
    protected $shippingCity;
23
24
    /**
25
     * @var string|null
26
     * @JMS\Type("string")
27
     * @JMS\Groups({"update", "create"})
28
     */
29
    protected $shippingState;
30
31
    /**
32
     * @var string|null
33
     * @JMS\Type("string")
34
     * @JMS\Groups({"update", "create"})
35
     */
36
    protected $shippingPostalCode;
37
38
    /**
39
     * @var string|null
40
     * @JMS\Type("string")
41
     * @JMS\Groups({"update", "create"})
42
     */
43
    protected $shippingCountry;
44
45
    /**
46
     * @var float|null
47
     * @JMS\Type("float")
48
     * @JMS\Groups({"update", "create"})
49
     */
50
    protected $shippingLatitude;
51
52
    /**
53
     * @var float|null
54
     * @JMS\Type("float")
55
     * @JMS\Groups({"update", "create"})
56
     */
57
    protected $shippingLongitude;
58
59
    /**
60
     * @var Address|null
61
     * @JMS\Type("Xsolve\SalesforceClient\Model\ValueObject\Address")
62
     */
63
    protected $shippingAddress;
64
65
    /**
66
     * @return Address|null
67
     */
68
    public function getShippingAddress()
69
    {
70
        return $this->shippingAddress;
71
    }
72
73
    public function setShippingAddress(Address $shippingAddress): self
74
    {
75
        $this->shippingAddress = $shippingAddress;
76
77
        return $this;
78
    }
79
80
    /**
81
     * Because ShippingAddress is not writable.
82
     *
83
     * @JMS\PreSerialize
84
     */
85
    public function updateShippingAddress()
86
    {
87
        if (!$this->shippingAddress instanceof Address) {
88
            return;
89
        }
90
91
        $this->shippingCity = $this->shippingAddress->getCity();
92
        $this->shippingCountry = $this->shippingAddress->getCountry();
93
        $this->shippingLatitude = $this->shippingAddress->getLatitude();
94
        $this->shippingLongitude = $this->shippingAddress->getLongitude();
95
        $this->shippingPostalCode = $this->shippingAddress->getPostalCode();
96
        $this->shippingState = $this->shippingAddress->getState();
97
        $this->shippingStreet = $this->shippingAddress->getStreet();
98
    }
99
}
100