Code Duplication    Length = 56-56 lines in 2 locations

src/Entity/Discount.php 1 location

@@ 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
    }

src/Entity/FreightCharges.php 1 location

@@ 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
    }