BillingAddressTrait::updateBillingAddress()   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 BillingAddressTrait
9
{
10
    /**
11
     * @var string|null
12
     * @JMS\Type("string")
13
     * @JMS\Groups({"update", "create"})
14
     */
15
    protected $billingStreet;
16
17
    /**
18
     * @var string|null
19
     * @JMS\Type("string")
20
     * @JMS\Groups({"update", "create"})
21
     */
22
    protected $billingCity;
23
24
    /**
25
     * @var string|null
26
     * @JMS\Type("string")
27
     * @JMS\Groups({"update", "create"})
28
     */
29
    protected $billingState;
30
31
    /**
32
     * @var string|null
33
     * @JMS\Type("string")
34
     * @JMS\Groups({"update", "create"})
35
     */
36
    protected $billingPostalCode;
37
38
    /**
39
     * @var string|null
40
     * @JMS\Type("string")
41
     * @JMS\Groups({"update", "create"})
42
     */
43
    protected $billingCountry;
44
45
    /**
46
     * @var float|null
47
     * @JMS\Type("float")
48
     * @JMS\Groups({"update", "create"})
49
     */
50
    protected $billingLatitude;
51
52
    /**
53
     * @var float|null
54
     * @JMS\Type("float")
55
     * @JMS\Groups({"update", "create"})
56
     */
57
    protected $billingLongitude;
58
59
    /**
60
     * @var Address|null
61
     * @JMS\Type("Xsolve\SalesforceClient\Model\ValueObject\Address")
62
     */
63
    protected $billingAddress;
64
65
    /**
66
     * @return Address|null
67
     */
68
    public function getBillingAddress()
69
    {
70
        return $this->billingAddress;
71
    }
72
73
    public function setBillingAddress(Address $billingAddress): self
74
    {
75
        $this->billingAddress = $billingAddress;
76
77
        return $this;
78
    }
79
80
    /**
81
     * Because BillingAddress is not writtable.
82
     *
83
     * @JMS\PreSerialize
84
     */
85
    public function updateBillingAddress()
86
    {
87
        if (!$this->billingAddress instanceof Address) {
88
            return;
89
        }
90
91
        $this->billingCity = $this->billingAddress->getCity();
92
        $this->billingCountry = $this->billingAddress->getCountry();
93
        $this->billingLatitude = $this->billingAddress->getLatitude();
94
        $this->billingLongitude = $this->billingAddress->getLongitude();
95
        $this->billingPostalCode = $this->billingAddress->getPostalCode();
96
        $this->billingState = $this->billingAddress->getState();
97
        $this->billingStreet = $this->billingAddress->getStreet();
98
    }
99
}
100