@@ 9-64 (lines=56) @@ | ||
6 | use DOMElement; |
|
7 | use Ups\NodeInterface; |
|
8 | ||
9 | class Discount implements NodeInterface |
|
10 | { |
|
11 | private $monetaryValue; |
|
12 | ||
13 | public function __construct($response = null) |
|
14 | { |
|
15 | if (null != $response) { |
|
16 | if (isset($response->MonetaryValue)) { |
|
17 | $this->setMonetaryValue($response->MonetaryValue); |
|
18 | } |
|
19 | } |
|
20 | } |
|
21 | ||
22 | /** |
|
23 | * @param null|DOMDocument $document |
|
24 | * |
|
25 | * @return DOMElement |
|
26 | */ |
|
27 | public function toNode(DOMDocument $document = null) |
|
28 | { |
|
29 | if (null === $document) { |
|
30 | $document = new DOMDocument(); |
|
31 | } |
|
32 | ||
33 | $node = $document->createElement('Discount'); |
|
34 | $node->appendChild($document->createElement('MonetaryValue', $this->getMonetaryValue())); |
|
35 | ||
36 | return $node; |
|
37 | } |
|
38 | ||
39 | /** |
|
40 | * @return mixed |
|
41 | */ |
|
42 | public function getMonetaryValue() |
|
43 | { |
|
44 | return $this->monetaryValue; |
|
45 | } |
|
46 | ||
47 | /** |
|
48 | * @param $var |
|
49 | * |
|
50 | * @throws \Exception |
|
51 | * |
|
52 | * @return $this |
|
53 | */ |
|
54 | public function setMonetaryValue($var) |
|
55 | { |
|
56 | $this->monetaryValue = round($var, 2); // Max 2 decimals places |
|
57 | ||
58 | if ($this->monetaryValue < 0) { |
|
59 | throw new \Exception('Discount cannot be negative'); |
|
60 | } |
|
61 | ||
62 | if (strlen((string)$this->monetaryValue) > 15) { |
|
63 | throw new \Exception('Value too long'); |
|
64 | } |
|
65 | ||
66 | return $this; |
|
67 | } |
@@ 9-64 (lines=56) @@ | ||
6 | use DOMElement; |
|
7 | use Ups\NodeInterface; |
|
8 | ||
9 | class FreightCharges implements NodeInterface |
|
10 | { |
|
11 | protected $monetaryValue; |
|
12 | ||
13 | public function __construct($response = null) |
|
14 | { |
|
15 | if (null != $response) { |
|
16 | if (isset($response->MonetaryValue)) { |
|
17 | $this->setMonetaryValue($response->MonetaryValue); |
|
18 | } |
|
19 | } |
|
20 | } |
|
21 | ||
22 | /** |
|
23 | * @param null|DOMDocument $document |
|
24 | * |
|
25 | * @return DOMElement |
|
26 | */ |
|
27 | public function toNode(DOMDocument $document = null) |
|
28 | { |
|
29 | if (null === $document) { |
|
30 | $document = new DOMDocument(); |
|
31 | } |
|
32 | ||
33 | $node = $document->createElement('FreightCharges'); |
|
34 | $node->appendChild($document->createElement('MonetaryValue', $this->getMonetaryValue())); |
|
35 | ||
36 | return $node; |
|
37 | } |
|
38 | ||
39 | /** |
|
40 | * @return mixed |
|
41 | */ |
|
42 | public function getMonetaryValue() |
|
43 | { |
|
44 | return $this->monetaryValue; |
|
45 | } |
|
46 | ||
47 | /** |
|
48 | * @param $var |
|
49 | * |
|
50 | * @throws \Exception |
|
51 | * |
|
52 | * @return $this |
|
53 | */ |
|
54 | public function setMonetaryValue($var) |
|
55 | { |
|
56 | $this->monetaryValue = round($var, 2); // Max 2 decimals places |
|
57 | ||
58 | if ($this->monetaryValue < 0) { |
|
59 | throw new \Exception('Freight charges cannot be negative'); |
|
60 | } |
|
61 | ||
62 | if (strlen((string)$this->monetaryValue) > 15) { |
|
63 | throw new \Exception('Value too long'); |
|
64 | } |
|
65 | ||
66 | return $this; |
|
67 | } |