Правки по документации
Актуализирована часть про `Vat`, пересобрал README, мелочи
This commit is contained in:
106
docs/vats.md
106
docs/vats.md
@@ -9,113 +9,47 @@
|
||||
Объект ставки НДС инициализируется следующим образом:
|
||||
|
||||
```php
|
||||
$vat = new AtolOnline\Entities\Vat();
|
||||
```
|
||||
use AtolOnline\Entities\Vat;
|
||||
use AtolOnline\Enums\VatTypes;
|
||||
|
||||
У объекта ставки должны быть указаны все следующие атрибуты:
|
||||
* тип ставки (теги ФФД: 1199 для предмета расчёта; 1105, 1104, 1103, 1102, 1107, 1106 для чека) - все типы перечислены в классе `AtolOnline\Constants\VatTypes` (по умолчанию `NONE`)
|
||||
* размер налога (теги ФФД: 1200 для предмета расчёта; 1105, 1104, 1103, 1102, 1107, 1106 для чека)
|
||||
|
||||
> Все эти атрибуты являются **обязательными**.
|
||||
|
||||
Установить тип ставки НДС можно следующими способами:
|
||||
|
||||
```php
|
||||
// 1 способ - через конструктор
|
||||
$vat = new AtolOnline\Entities\Vat(
|
||||
AtolOnline\Constants\VatTypes::VAT20 // тип ставки
|
||||
$vat = new Vat(
|
||||
VatTypes::VAT10, // тип ставки
|
||||
123.45 // сумма в рублях, от которой считать ставку
|
||||
);
|
||||
|
||||
// 2 способ - через сеттер
|
||||
$vat = (new AtolOnline\Entities\Vat())
|
||||
->setType(AtolOnline\Constants\VatTypes::VAT20); // тип ставки
|
||||
```
|
||||
|
||||
Размер налога высчитывается автоматически из общей суммы.
|
||||
Сумму, от которой нужно расчитать размер налога, можно передать следующими способами:
|
||||
Для типа и суммы имеются отдельные сеттеры:
|
||||
|
||||
```php
|
||||
// 1 способ - через конструктор
|
||||
$vat = new AtolOnline\Entities\Vat(
|
||||
AtolOnline\Constants\VatTypes::VAT10, // тип ставки
|
||||
1234.56 // общая сумма в рублях
|
||||
);
|
||||
|
||||
// 2 способ - через сеттер
|
||||
$vat = (new AtolOnline\Entities\Vat())
|
||||
->setType(AtolOnline\Constants\VatTypes::VAT10) // тип ставки
|
||||
->setSum(150); // общая сумма в рублях
|
||||
$vat->setType(VatTypes::VAT20)
|
||||
->setSum(100.15); // 123.45 заменится на 100.15
|
||||
```
|
||||
|
||||
Сумму можно установить и до установки типа ставки.
|
||||
Объект её запомнит и пересчитает итоговый размер налога при смене типа ставки:
|
||||
Общую сумму, из которой расчитывается размер налога, можно увеличить, используя метод `addSum()`. Указанная в рублях
|
||||
сумма увеличится на указанные рубли. Для уменьшения суммы следует передать отрицательное число.
|
||||
|
||||
```php
|
||||
$vat = (new AtolOnline\Entities\Vat())
|
||||
->setSum(150) // общая сумма в рублях
|
||||
->setType(AtolOnline\Constants\VatTypes::VAT10); // тип ставки
|
||||
$vat->addSum(40) // 100.15 + 40 = 140.15р
|
||||
->addSum(-15); // 140.15 - 15 = 125.15р
|
||||
```
|
||||
|
||||
Получить установленную расчётную сумму в рублях можно через геттер `getSum()`:
|
||||
Получить установленную сумму можно через геттер `getSum()`:
|
||||
|
||||
```php
|
||||
var_dump($vat->getSum());
|
||||
// double(150)
|
||||
$vat->getSum(); // 125.15р
|
||||
```
|
||||
|
||||
Получить расчитанный размер налога в рублях можно через геттер `getFinalSum()`:
|
||||
Размер налога по ставке высчитывается из этой общей суммы. Не смотря на то, что геттер и сеттер работают с рублями, **
|
||||
расчёты производятся в копейках**. Сделать это можно через `getCalculated()`:
|
||||
|
||||
```php
|
||||
var_dump($vat->getFinalSum());
|
||||
// double(15): для примера выше это 10% от 150р = 15р
|
||||
$vat->getCalculated();
|
||||
// для примера выше это 20% от 125.15р = 25.03р
|
||||
```
|
||||
|
||||
Общую сумму, из которой расчитывается размер налога, можно увеличить, используя метод `addSum()`.
|
||||
Указанная в рублях сумма увеличится и итоговый размер налога пересчитается.
|
||||
Для уменьшения суммы следует передать отрицательное число.
|
||||
|
||||
Разберём комплексный пример изменения типа ставки и расчётной суммы:
|
||||
|
||||
```php
|
||||
use AtolOnline\{Entities\Vat, Constants\VatTypes};
|
||||
|
||||
$vat = new Vat(VatTypes::VAT20, 120);
|
||||
echo "НДС20 от 120р: ";
|
||||
var_dump($vat->getFinalSum());
|
||||
|
||||
echo "НДС10 от 120р: ";
|
||||
$vat->setType(VatTypes::VAT10);
|
||||
var_dump($vat->getFinalSum());
|
||||
|
||||
$vat->addSum(40);
|
||||
echo "НДС10 от {$vat->getSum()}р: ";
|
||||
var_dump($vat->getFinalSum());
|
||||
|
||||
$vat->setType(VatTypes::VAT20)->addSum(-20);
|
||||
echo "НДС20 от {$vat->getSum()}р: ";
|
||||
var_dump($vat->getFinalSum());
|
||||
|
||||
$vat->setType(VatTypes::VAT120);
|
||||
echo "НДС20/120 от {$vat->getSum()}р: ";
|
||||
var_dump($vat->getFinalSum());
|
||||
```
|
||||
|
||||
Результат будет следующим:
|
||||
|
||||
```
|
||||
НДС20 от 120р:
|
||||
double(24)
|
||||
НДС10 от 120р:
|
||||
double(12)
|
||||
НДС10 от 160р:
|
||||
double(16)
|
||||
НДС20 от 140р:
|
||||
double(28)
|
||||
НДС20/120 от 140р:
|
||||
double(23.33)
|
||||
```
|
||||
|
||||
Объект класса приводится к JSON-строке автоматически или принудительным приведением к `string`:
|
||||
Объект класса приводится к JSON-строке автоматически или принудительно:
|
||||
|
||||
```php
|
||||
echo $vat;
|
||||
@@ -191,4 +125,4 @@ $json_array = $vat_array->jsonSerialize();
|
||||
|
||||
---
|
||||
|
||||
[Вернуться к содержанию](readme.md)
|
||||
[Вернуться к содержанию](readme.md)
|
||||
|
||||
Reference in New Issue
Block a user