Completed
Push — master ( 589fec...539028 )
by Milan
07:58
created

Foreign::setRemittanceInfo2()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php declare(strict_types=1);
2
3
namespace h4kuna\Fio\Request\Pay\Payment;
4
5
use h4kuna\Fio\Account;
6
use h4kuna\Fio\Exceptions\InvalidArgument;
7
8
abstract class Foreign extends Property
9
{
10
11
	public const PAYMENT_STANDARD = 431008;
12
	public const PAYMENT_PRIORITY = 431009;
13
14
	private const TYPES_PAYMENT = [self::PAYMENT_STANDARD, self::PAYMENT_PRIORITY];
15
16
	protected $bic = '';
17
18
	protected $benefName = '';
19
20
	protected $benefStreet = '';
21
22
	protected $benefCity = '';
23
24
	protected $benefCountry = '';
25
26
	protected $remittanceInfo1 = '';
27
28
	protected $remittanceInfo2 = '';
29
30
	protected $remittanceInfo3 = '';
31
32
	protected $paymentType = 0;
33
34
35
	public function __construct(Account\FioAccount $account)
36
	{
37
		parent::__construct($account);
38
		$this->setCurrency('EUR');
39
	}
40
41
42
	/**
43
	 * @param string $accountTo ISO 13616
44
	 */
45
	public function setAccountTo(string $accountTo)
46
	{
47
		$this->accountTo = InvalidArgument::check($accountTo, 34);
48
		return $this;
49
	}
50
51
52
	/**
53
	 * @param string $bic ISO 9362
54
	 */
55
	public function setBic(string $bic)
56
	{
57
		$this->bic = InvalidArgument::checkLength($bic, 11);
58
		return $this;
59
	}
60
61
62
	public function setStreet(string $street)
63
	{
64
		$this->benefStreet = InvalidArgument::check($street, 35);
65
		return $this;
66
	}
67
68
69
	public function setCity(string $city)
70
	{
71
		$this->benefCity = InvalidArgument::check($city, 35);
72
		return $this;
73
	}
74
75
76
	public function setCountry(string $benefCountry)
77
	{
78
		$country = strtoupper($benefCountry);
79
		if (strlen($country) !== 2 && $country !== 'TCH') {
80
			throw new InvalidArgument('Look at to manual for country code section 6.3.3.');
81
		}
82
		$this->benefCountry = $country;
83
		return $this;
84
	}
85
86
87
	public function setName(string $name)
88
	{
89
		$this->benefName = InvalidArgument::check($name, 35);
90
		return $this;
91
	}
92
93
94
	public function setRemittanceInfo1(string $info)
95
	{
96
		$this->remittanceInfo1 = InvalidArgument::check($info, 35);
97
		return $this;
98
	}
99
100
101
	public function setRemittanceInfo2(string $info)
102
	{
103
		$this->remittanceInfo2 = InvalidArgument::check($info, 35);
104
		return $this;
105
	}
106
107
108
	public function setRemittanceInfo3(string $str)
109
	{
110
		$this->remittanceInfo3 = InvalidArgument::check($str, 35);
111
		return $this;
112
	}
113
114
115
	public function setPaymentType(int $type)
116
	{
117
		$this->paymentType = InvalidArgument::checkIsInList($type, self::TYPES_PAYMENT);
118
		return $this;
119
	}
120
121
}
122