1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Del\Expenses\Value; |
4
|
|
|
|
5
|
|
|
use Del\Common\Value\ValueInterface; |
6
|
|
|
use Del\Expenses\Entity\Income; |
7
|
|
|
use InvalidArgumentException; |
8
|
|
|
|
9
|
|
|
class Category implements ValueInterface |
10
|
|
|
{ |
11
|
|
|
const CATEGORY_UNDEFINED = 'undefined'; |
12
|
|
|
|
13
|
|
|
const INCOME_CASH_JOB ='cash'; |
14
|
|
|
const INCOME_INVOICE = 'invoice'; |
15
|
|
|
const INCOME_LOAN_REPAYMENT = 'loanpayback'; |
16
|
|
|
const INCOME_REBATE = 'rebate'; |
17
|
|
|
|
18
|
|
|
const EXPENSE_ACCOMMODATION = 'accommodation'; |
19
|
|
|
const EXPENSE_ACCOUNTANCY = 'accountancy'; |
20
|
|
|
const EXPENSE_BILL = 'bill'; |
21
|
|
|
const EXPENSE_EQUIPMENT = 'equipment'; |
22
|
|
|
const EXPENSE_EQUPIMENT_HIRE = 'hire'; |
23
|
|
|
const EXPENSE_FOOD = 'food'; |
24
|
|
|
const EXPENSE_FUEL = 'fuel'; |
25
|
|
|
const EXPENSE_GENERAL = 'general'; |
26
|
|
|
const EXPENSE_INSURANCE = 'insurance'; |
27
|
|
|
const EXPENSE_IT = 'it'; |
28
|
|
|
const EXPENSE_LOAN = 'loan'; |
29
|
|
|
const EXPENSE_MISC = 'misc'; |
30
|
|
|
const EXPENSE_PERSONAL = 'personal'; |
31
|
|
|
const EXPENSE_RENT = 'rent'; |
32
|
|
|
const EXPENSE_REPAIRS = 'repairs'; |
33
|
|
|
const EXPENSE_SERVICES = 'services'; |
34
|
|
|
const EXPENSE_SUPPLIES = 'supplies'; |
35
|
|
|
const EXPENSE_TAX = 'tax'; |
36
|
|
|
const EXPENSE_TRAINING = 'training'; |
37
|
|
|
const EXPENSE_TRANSPORT = 'transport'; |
38
|
|
|
const EXPENSE_WAGES = 'wages'; |
39
|
|
|
|
40
|
|
|
private $acceptableValues = [ |
41
|
|
|
self::INCOME_CASH_JOB, self::INCOME_INVOICE, self::INCOME_LOAN_REPAYMENT, self::INCOME_REBATE, |
42
|
|
|
self::EXPENSE_ACCOMMODATION, self::EXPENSE_ACCOUNTANCY, self::EXPENSE_BILL, self::EXPENSE_EQUIPMENT, |
43
|
|
|
self::EXPENSE_EQUPIMENT_HIRE, self::EXPENSE_FOOD, self::EXPENSE_FUEL, self::EXPENSE_GENERAL, self::EXPENSE_IT, |
44
|
|
|
self::EXPENSE_INSURANCE, self::EXPENSE_LOAN, self::EXPENSE_MISC, self::EXPENSE_PERSONAL, self::EXPENSE_RENT, |
45
|
|
|
self::EXPENSE_REPAIRS, self::EXPENSE_SERVICES, self::EXPENSE_SUPPLIES, self::EXPENSE_TAX, |
46
|
|
|
self::EXPENSE_TRANSPORT, self::EXPENSE_TRAINING, self::EXPENSE_WAGES, self::CATEGORY_UNDEFINED |
47
|
|
|
]; |
48
|
|
|
|
49
|
|
|
/** @var string $value */ |
50
|
|
|
private $value; |
51
|
|
|
|
52
|
|
|
/** |
53
|
|
|
* ValueInterface constructor. |
54
|
|
|
* @param string $value |
55
|
|
|
*/ |
56
|
7 |
|
public function __construct($value) |
57
|
|
|
{ |
58
|
7 |
|
if (!in_array($value, $this->acceptableValues)) { |
59
|
|
|
throw new InvalidArgumentException('Not an acceptable value.'); |
60
|
|
|
} |
61
|
7 |
|
$this->value = $value; |
62
|
7 |
|
} |
63
|
|
|
|
64
|
|
|
/** |
65
|
|
|
* @return string |
66
|
|
|
*/ |
67
|
7 |
|
public function getValue() |
68
|
|
|
{ |
69
|
7 |
|
return $this->value; |
70
|
|
|
} |
71
|
|
|
|
72
|
|
|
|
73
|
|
|
} |