Anthony Axenov
6787ce3ad7
Класс документа коррекции `Correction` с покрытием и всякая мелочёвка
...
- финализация Receipt + Payment
- фиксы phpdoc
2021-12-11 15:53:57 +08:00
Anthony Axenov
058ce5ed3d
Доработки коллекций, чека и тестов
...
- `EntityCollection` сильно упрощён, добавлен выброс исключений при пустом содержимом
- `Receipt::setItems(), setPayments() и setVats()` получили одинаковые проверки входящих данных
- округление в `Vat::setSum()`
- доработаны тесты коллекций
2021-12-09 20:14:35 +08:00
Anthony Axenov
16d1146826
Четвёртая итерация `Receipt`
...
- 100% покрытие
- элвисы в разных сеттерах
2021-12-08 19:04:14 +08:00
Anthony Axenov
fdc64954f9
Третья итерация `Receipt`
...
- просчёт ставок секи в `setVats()`
- просчёт суммы чека в `setItems()`
- геттеры `getItems()` и `getVats()` возвращают пустую коллекцию, если в чеке они отсутствуют
- фикс `vats => supplier_info` в `jsonSerialize()`
- тесты поставщика, ставок, расчёта ставок и суммы чека
2021-12-08 16:01:25 +08:00
Anthony Axenov
793549aaac
`Entity` теперь имплементирует `Arrayable` и `ArrayAccess` для совместимости с иммутабельными методами коллекций
2021-12-08 15:56:07 +08:00
Anthony Axenov
b57acf8b05
`EntityCollection` помечен для переделки
2021-12-08 15:50:06 +08:00
Anthony Axenov
b39e76f312
Вторая итерация `Receipt`
...
- фикс nullable-свойств и геттеров
- проверка на пустоту в `setPayments()`, `setItems()` и `setVats()`
- часть тестов с покрытием (конструктор, агент, исключения при пустых коллекциях)
2021-12-07 20:09:12 +08:00
Anthony Axenov
a34a6927d1
Небольшой рефакторинг по тестам
...
- `BasicTestCase::assertAtolable() => assertIsAtolable()`
- генерация тестовых объектов `Vat`, `Payment` и `Item` вынесены в `BasicTestCase`
2021-12-07 20:04:03 +08:00
Anthony Axenov
1f3d5d2f3d
Первая итерация `Receipt`
2021-12-06 20:07:17 +08:00
Anthony Axenov
359264db64
Новая сущность `AdditionalUserProps` с покрытием для будущей поддержки в документе
2021-12-06 19:32:50 +08:00
Anthony Axenov
557c76fefa
Доработка коллекций и не только
...
- коллекция `Items` с покрытием
- вынос коллекций из `AtolOnline\Entities` в `AtolOnline\Collections`
- фикс ] в `AtolException`
- финализирован `CorrectionInfo`
- фиксы по тестам коллекций
- прочие мелочи по phpdoc
2021-12-06 16:14:19 +08:00
Anthony Axenov
bf09641c8b
Класс коллекции оплат `Payments`
2021-12-06 14:17:05 +08:00
Anthony Axenov
6b5a025051
Класс коллекции ставок НДС `Vats`
2021-12-06 14:16:50 +08:00
Anthony Axenov
3d3eba5b4e
Базовый класс коллекции объектов `EntityCollection`
2021-12-06 14:16:34 +08:00
Anthony Axenov
a5c88cd7d3
Функции проверки наследования классов вернул из `Helpers` в `BasicTestCase` и отрефакторил
...
- `isSameClass()`
- `checkImplementsInterfaces()`
- `checkUsesTraits()` + переписана под наследование
2021-12-06 14:15:47 +08:00
Anthony Axenov
b451c7dc68
Мелочи по phpdoc
2021-12-06 14:13:48 +08:00
Anthony Axenov
7d0c526663
Готов класс оплаты `Payment` для будущей поддержки оплат в документе
2021-12-03 23:53:42 +08:00
Anthony Axenov
65ec639014
Округление цены и количества в сетьерах `Item` до 2 и 3 зн после запятой соответственно
...
Также переименованы исключения о слишком высоких цене и сумме предмета расчёта, чтобы избежать конфликтов с другими
2021-12-03 23:52:41 +08:00
Anthony Axenov
d533164d1b
Поддержка `correction_info`
2021-12-03 20:09:14 +08:00
Anthony Axenov
3e03fdca61
Финализация всех `Entities`
2021-12-03 18:24:21 +08:00
Anthony Axenov
c077f98cf9
`Item` - пересчёт НДС при изменении цены, количества и акциза
2021-12-03 18:24:00 +08:00
Anthony Axenov
2260233e3f
Общие сеттеры-геттеры сущностей вынесены в трейты `HasEmail`, `HasInn`, `HasPhones`
...
Кодстайл и микрорефакторинг сущностей
2021-12-03 18:23:00 +08:00
Anthony Axenov
c30c7d069f
Непереработанные классы переименованы для наглядности
2021-12-03 18:16:28 +08:00
Anthony Axenov
2a66889e46
Поддержка `nomenclature_code` у предмета расчёта + мелкофиксы
...
- теперь `getSum()` проверяет по `Constraints::MAX_COUNT_ITEM_SUM` вместо `MAX_COUNT_ITEM_PRICE` (как и должен был изначально)
- подправил `TooLongException`
- всякие phpdoc-и
2021-12-03 11:52:40 +08:00
Anthony Axenov
cb24bb1fb0
Доработки енамов и тегов ФФД
2021-12-02 01:10:16 +08:00
Anthony Axenov
11646113b6
Доработки `Item`
...
- поддержка `excise`, покрыта тестами
- фикс `setVat()`
- улучшен `jsonSerialize()`
2021-12-02 01:09:25 +08:00
Anthony Axenov
5ccb0e9db4
Кучад доработок, главным образом вокруг `Item`
...
- `Item` почти готов и весь покрыт тестами. Пока остались нереализованными `nomenclature_code` и `excise`
- `Client::setPhone()` теперь выбрасывает InvalidPhoneException
- доработка и создание новых исключений (не буду все перечислять, смотри диффы)
- мелочи по phpdoc и всяким текстовкам
2021-12-01 20:11:08 +08:00
Anthony Axenov
a7205ff754
Переработан `Vat`, покрыт тестами
2021-11-28 00:58:05 +08:00
Anthony Axenov
e0ff5a261a
Новые теги в `Ffd105Tags` + мелочи
2021-11-28 00:57:19 +08:00
Anthony Axenov
2ebb172f2e
Мелочи по конвертации денег
2021-11-28 00:55:34 +08:00
Anthony Axenov
e2141551d5
`Enum` стал абстрактным внутри `Enums`, наследникам созданы `getFfdTags()`
2021-11-28 00:55:28 +08:00
Anthony Axenov
c9670a1321
Удалены бесполезные `ItemArray`, `VatArray` и `PaymentArray`, будут заменены коллекциями
2021-11-28 00:49:53 +08:00
Anthony Axenov
9d2617858d
`AgentInfo`: перенос валидации типа агента из конструктора в сеттер
2021-11-28 00:44:43 +08:00
Anthony Axenov
e0d792d3a4
Реализован и покрыт тестами `AgentInfo` (переименован из `Agent`)
2021-11-27 17:59:50 +08:00
Anthony Axenov
16c8d8a676
Реализован и покрыт тестами `MoneyTransferOperator`
2021-11-26 09:16:46 +08:00
Anthony Axenov
8b79b2be51
Мелкофиксы
...
- `Ffd105Tags::CLIENT_CONTACTS` => `CLIENT_PHONE_EMAIL`
+ мелочи по `Client`, `ClientTest` и `PayingAgentTest`
2021-11-24 18:55:53 +08:00
Anthony Axenov
95dbc3a5b7
Класс `Supplier` обзавёлся `name` + `inn` и допокрыт тестами
2021-11-24 18:54:48 +08:00
Anthony Axenov
790831e933
`MoneyTransferOperator` => `ReceivePaymentsOperator`
2021-11-24 18:45:01 +08:00
Anthony Axenov
3b75c8b983
Класс `Supplier`, покрытый тестами
...
Это было слишком легко :(
2021-11-24 17:57:24 +08:00
Anthony Axenov
c5b57ec26d
Класс `MoneyTransferOperator`, покрытый тестами
...
Также мелкофиксы по phpdoc `PayingAgent` и его тестам
2021-11-24 17:54:04 +08:00
Anthony Axenov
42d194116f
Туча доработок
...
- класс `PayingAgent`, покрытый тестами
- новые константы для тегов ФФД 1.05 `Ffd105Tags`
- `Entity::jsonSerialize()` object -> array (again)
- `TooManyException::$max` int -> float
- тесты по psr-4, потому что почему бы и нет
- некоторые провайдеры вынесены в `BasicTestCase`
- улучшен тест покупателя
2021-11-24 01:30:54 +08:00
Anthony Axenov
b5a01debd2
Новый енам AgentTypes
2021-11-22 14:53:10 +08:00
Anthony Axenov
9d3344a0df
Мелкофиксы в конструкторе KktMonitor
2021-11-22 14:52:27 +08:00
Anthony Axenov
00b2643f42
Новые функции в Helpers для проверки классов
2021-11-22 14:52:05 +08:00
Anthony Axenov
3bf8667437
Рефакторинг исключений, новые константы ограничений
...
Описывать все слишком долго, TLDR:
- упрощены корневые AtolException, {BasicTooLongException => TooLongException}, {BasicTooManyException => TooManyException}
- InvalidSnoException заменён на InvalidEnumValueException
- добавлены новые константы, общий порядок изменён в соответствии с порядком упоминания в документации, ссылки на которую тоже добавлены с указанием страниц
Помимо этого, в enum-ах теперь должен быть предусмотрен метод getFfdTags()
2021-11-22 14:51:10 +08:00
Anthony Axenov
e1303f4fdb
Правки по документации
...
- в мониторинг добавлено о приведении к строке
- актуализированы Client и Company
- мелочи в соотв. классах
2021-11-21 19:06:55 +08:00
Anthony Axenov
d281071970
Удалён метод `AtolOnline\Entities\Kkt::getNetworkError()` за ненадобностью
2021-11-21 18:57:20 +08:00
Anthony Axenov
6d0cac2cbc
Первая итерация рефаторинга фискализатора
2021-11-21 00:19:35 +08:00
Anthony Axenov
e89369348a
Метод KktMonitor::auth() перенесён в AtolClient для совместимости в фискализатором
2021-11-21 00:15:59 +08:00
Anthony Axenov
b35b9bfa87
Удалена поддержка base_name в документе коррекции ( #5 )
2021-11-20 23:46:39 +08:00