Commit Graph

30 Commits

Author SHA1 Message Date
4157ab68f5
Миграция на php8.1
* enum-ы теперь enum-ы, а не говно -- теперь всё переведено на них, где это было возможно
* некоторые свойства классов объявлены в конструкторе
* некоторые классы перемещены в корневой неймспейс
* исправлен код-стайл, вычищен некоторый мусор, выправлены тесты... работы над этим продолжаются
2022-12-15 00:19:55 +08:00
71d1f2900c Большие доработки по фискилизации
- у `AtolClient` теперь возможно получить последний отправленный запрос `getLastRequest()`
- у `AtolClient::auth()` удалены аргументы за ненадобностью
- улучшен `Client::jsonSerialize()`
- исправлен `Receipt::jsonSerialize()`
- у `Receipt` и `Correction` появились методы фискализации, вкусный сахарок
- удалён енам `DocumentTypes` за ненадобностью
- исправлены тесты монитора и документов
- рабочий фискализатор с получением результатов и покрытием
2021-12-18 14:45:00 +08:00
294a3ef2f3 Допокрытие ArrayAccess-методов 2021-12-12 11:09:12 +08:00
6787ce3ad7 Класс документа коррекции Correction с покрытием и всякая мелочёвка
- финализация Receipt + Payment
- фиксы phpdoc
2021-12-11 15:53:57 +08:00
058ce5ed3d Доработки коллекций, чека и тестов
- `EntityCollection` сильно упрощён, добавлен выброс исключений при пустом содержимом
- `Receipt::setItems(), setPayments() и setVats()` получили одинаковые проверки входящих данных
- округление в `Vat::setSum()`
- доработаны тесты коллекций
2021-12-09 20:14:35 +08:00
16d1146826 Четвёртая итерация Receipt
- 100% покрытие
- элвисы в разных сеттерах
2021-12-08 19:04:14 +08:00
fdc64954f9 Третья итерация Receipt
- просчёт ставок секи в `setVats()`
- просчёт суммы чека в `setItems()`
- геттеры `getItems()` и `getVats()` возвращают пустую коллекцию, если в чеке они отсутствуют
- фикс `vats => supplier_info` в `jsonSerialize()`
- тесты поставщика, ставок, расчёта ставок и суммы чека
2021-12-08 16:01:25 +08:00
b39e76f312 Вторая итерация Receipt
- фикс nullable-свойств и геттеров
- проверка на пустоту в `setPayments()`, `setItems()` и `setVats()`
- часть тестов с покрытием (конструктор, агент, исключения при пустых коллекциях)
2021-12-07 20:09:12 +08:00
a34a6927d1 Небольшой рефакторинг по тестам
- `BasicTestCase::assertAtolable() => assertIsAtolable()`
- генерация тестовых объектов `Vat`, `Payment` и `Item` вынесены в `BasicTestCase`
2021-12-07 20:04:03 +08:00
359264db64 Новая сущность AdditionalUserProps с покрытием для будущей поддержки в документе 2021-12-06 19:32:50 +08:00
557c76fefa Доработка коллекций и не только
- коллекция `Items` с покрытием
- вынос коллекций из `AtolOnline\Entities` в `AtolOnline\Collections`
- фикс ] в `AtolException`
- финализирован `CorrectionInfo`
- фиксы по тестам коллекций
- прочие мелочи по phpdoc
2021-12-06 16:14:19 +08:00
bf09641c8b Класс коллекции оплат Payments 2021-12-06 14:17:05 +08:00
6b5a025051 Класс коллекции ставок НДС Vats 2021-12-06 14:16:50 +08:00
b451c7dc68 Мелочи по phpdoc 2021-12-06 14:13:48 +08:00
7d0c526663 Готов класс оплаты Payment для будущей поддержки оплат в документе 2021-12-03 23:53:42 +08:00
65ec639014 Округление цены и количества в сетьерах Item до 2 и 3 зн после запятой соответственно
Также переименованы исключения о слишком высоких цене и сумме предмета расчёта, чтобы избежать конфликтов с другими
2021-12-03 23:52:41 +08:00
d533164d1b Поддержка correction_info 2021-12-03 20:09:14 +08:00
05fd25e810 Фикс AgentInfoTest 2021-12-03 19:06:15 +08:00
2a66889e46 Поддержка nomenclature_code у предмета расчёта + мелкофиксы
- теперь `getSum()` проверяет по `Constraints::MAX_COUNT_ITEM_SUM` вместо `MAX_COUNT_ITEM_PRICE` (как и должен был изначально)
- подправил `TooLongException`
- всякие phpdoc-и
2021-12-03 11:52:40 +08:00
11646113b6 Доработки Item
- поддержка `excise`, покрыта тестами
- фикс `setVat()`
- улучшен `jsonSerialize()`
2021-12-02 01:09:25 +08:00
5ccb0e9db4 Кучад доработок, главным образом вокруг Item
- `Item` почти готов и весь покрыт тестами. Пока остались нереализованными `nomenclature_code` и `excise`
- `Client::setPhone()` теперь выбрасывает InvalidPhoneException
- доработка и создание новых исключений (не буду все перечислять, смотри диффы)
- мелочи по phpdoc и всяким текстовкам
2021-12-01 20:11:08 +08:00
a7205ff754 Переработан Vat, покрыт тестами 2021-11-28 00:58:05 +08:00
e0d792d3a4 Реализован и покрыт тестами AgentInfo (переименован из Agent) 2021-11-27 17:59:50 +08:00
16c8d8a676 Реализован и покрыт тестами MoneyTransferOperator 2021-11-26 09:16:46 +08:00
8b79b2be51 Мелкофиксы
- `Ffd105Tags::CLIENT_CONTACTS` => `CLIENT_PHONE_EMAIL`
+ мелочи по `Client`, `ClientTest` и `PayingAgentTest`
2021-11-24 18:55:53 +08:00
95dbc3a5b7 Класс Supplier обзавёлся name + inn и допокрыт тестами 2021-11-24 18:54:48 +08:00
790831e933 MoneyTransferOperator => ReceivePaymentsOperator 2021-11-24 18:45:01 +08:00
3b75c8b983 Класс Supplier, покрытый тестами
Это было слишком легко :(
2021-11-24 17:57:24 +08:00
c5b57ec26d Класс MoneyTransferOperator, покрытый тестами
Также мелкофиксы по phpdoc `PayingAgent` и его тестам
2021-11-24 17:54:04 +08:00
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