anthony
7d0c526663
Готов класс оплаты Payment для будущей поддержки оплат в документе
2021-12-03 23:53:42 +08:00
anthony
65ec639014
Округление цены и количества в сетьерах Item до 2 и 3 зн после запятой соответственно
...
Также переименованы исключения о слишком высоких цене и сумме предмета расчёта, чтобы избежать конфликтов с другими
2021-12-03 23:52:41 +08:00
anthony
d533164d1b
Поддержка correction_info
2021-12-03 20:09:14 +08:00
anthony
05fd25e810
Фикс AgentInfoTest
2021-12-03 19:06:15 +08:00
anthony
3e03fdca61
Финализация всех Entities
2021-12-03 18:24:21 +08:00
anthony
c077f98cf9
Item - пересчёт НДС при изменении цены, количества и акциза
2021-12-03 18:24:00 +08:00
anthony
2260233e3f
Общие сеттеры-геттеры сущностей вынесены в трейты HasEmail, HasInn, HasPhones
...
Кодстайл и микрорефакторинг сущностей
2021-12-03 18:23:00 +08:00
anthony
c30c7d069f
Непереработанные классы переименованы для наглядности
2021-12-03 18:16:28 +08:00
anthony
8f235d4730
Удалён ROADMAP, поправлен README
2021-12-03 18:15:16 +08:00
anthony
85750cd211
Обновление зависимостей
...
Также подключен jetbrains/phpstorm-attributes, чтобы всё по красоте
2021-12-03 18:10:06 +08:00
anthony
2a66889e46
Поддержка nomenclature_code у предмета расчёта + мелкофиксы
...
- теперь `getSum()` проверяет по `Constraints::MAX_COUNT_ITEM_SUM` вместо `MAX_COUNT_ITEM_PRICE` (как и должен был изначально)
- подправил `TooLongException`
- всякие phpdoc-и
2021-12-03 11:52:40 +08:00
anthony
1c0d8ba64d
Корректировка readme
2021-12-02 16:14:01 +08:00
anthony and GitHub
fc37580078
Merge pull request #10 from anthonyaxenov/gha
...
Настройка gh-actions для работы с codecov.io
2021-12-02 15:57:20 +08:00
anthony
96137d20b2
Настройка gh-actions для работы с codecov.io
2021-12-02 15:56:32 +08:00
anthony
267431ec28
Мелочи в readme и phpunit.xml (удалены дефолтные параметры)
2021-12-02 01:10:54 +08:00
anthony
cb24bb1fb0
Доработки енамов и тегов ФФД
2021-12-02 01:10:16 +08:00
anthony
11646113b6
Доработки Item
...
- поддержка `excise`, покрыта тестами
- фикс `setVat()`
- улучшен `jsonSerialize()`
2021-12-02 01:09:25 +08:00
anthony
650b46923e
Бейджики в readme
2021-12-01 20:12:11 +08:00
anthony
3f3eb68ea2
Корректировки в composer.json
2021-12-01 20:11:57 +08:00
anthony
5ccb0e9db4
Кучад доработок, главным образом вокруг Item
...
- `Item` почти готов и весь покрыт тестами. Пока остались нереализованными `nomenclature_code` и `excise`
- `Client::setPhone()` теперь выбрасывает InvalidPhoneException
- доработка и создание новых исключений (не буду все перечислять, смотри диффы)
- мелочи по phpdoc и всяким текстовкам
2021-12-01 20:11:08 +08:00
anthony
bce21f9658
Правки по документации
...
Актуализирована часть про `Vat`, пересобрал README, мелочи
2021-11-28 12:01:28 +08:00
anthony
a7205ff754
Переработан Vat, покрыт тестами
2021-11-28 00:58:05 +08:00
anthony
e0ff5a261a
Новые теги в Ffd105Tags + мелочи
2021-11-28 00:57:19 +08:00
anthony
2ebb172f2e
Мелочи по конвертации денег
2021-11-28 00:55:34 +08:00
anthony
e2141551d5
Enum стал абстрактным внутри Enums, наследникам созданы getFfdTags()
2021-11-28 00:55:28 +08:00
anthony
c9670a1321
Удалены бесполезные ItemArray, VatArray и PaymentArray, будут заменены коллекциями
2021-11-28 00:49:53 +08:00
anthony
9d2617858d
AgentInfo: перенос валидации типа агента из конструктора в сеттер
2021-11-28 00:44:43 +08:00
anthony
f548032843
Ссылки на телеграм и патреон
2021-11-27 18:53:23 +08:00
anthony
e0d792d3a4
Реализован и покрыт тестами AgentInfo (переименован из Agent)
2021-11-27 17:59:50 +08:00
anthony
16c8d8a676
Реализован и покрыт тестами MoneyTransferOperator
2021-11-26 09:16:46 +08:00
anthony
8b79b2be51
Мелкофиксы
...
- `Ffd105Tags::CLIENT_CONTACTS` => `CLIENT_PHONE_EMAIL`
+ мелочи по `Client`, `ClientTest` и `PayingAgentTest`
2021-11-24 18:55:53 +08:00
anthony
95dbc3a5b7
Класс Supplier обзавёлся name + inn и допокрыт тестами
2021-11-24 18:54:48 +08:00
anthony
790831e933
MoneyTransferOperator => ReceivePaymentsOperator
2021-11-24 18:45:01 +08:00
anthony
3b75c8b983
Класс Supplier, покрытый тестами
...
Это было слишком легко :(
2021-11-24 17:57:24 +08:00
anthony
c5b57ec26d
Класс MoneyTransferOperator, покрытый тестами
...
Также мелкофиксы по phpdoc `PayingAgent` и его тестам
2021-11-24 17:54:04 +08:00
anthony
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
b5a01debd2
Новый енам AgentTypes
2021-11-22 14:53:10 +08:00
anthony
9d3344a0df
Мелкофиксы в конструкторе KktMonitor
2021-11-22 14:52:27 +08:00
anthony
00b2643f42
Новые функции в Helpers для проверки классов
2021-11-22 14:52:05 +08:00
anthony
3bf8667437
Рефакторинг исключений, новые константы ограничений
...
Описывать все слишком долго, TLDR:
- упрощены корневые AtolException, {BasicTooLongException => TooLongException}, {BasicTooManyException => TooManyException}
- InvalidSnoException заменён на InvalidEnumValueException
- добавлены новые константы, общий порядок изменён в соответствии с порядком упоминания в документации, ссылки на которую тоже добавлены с указанием страниц
Помимо этого, в enum-ах теперь должен быть предусмотрен метод getFfdTags()
2021-11-22 14:51:10 +08:00
anthony
e1303f4fdb
Правки по документации
...
- в мониторинг добавлено о приведении к строке
- актуализированы Client и Company
- мелочи в соотв. классах
2021-11-21 19:06:55 +08:00
anthony
920c08c610
Правки по документации
...
- добавлено про мониторинг
- убрано про `base_name` из коррекции
2021-11-21 18:58:03 +08:00
anthony
d281071970
Удалён метод AtolOnline\Entities\Kkt::getNetworkError() за ненадобностью
2021-11-21 18:57:20 +08:00
anthony
95499174b0
Warning in readme
2021-11-21 00:33:43 +08:00
anthony
6d0cac2cbc
Первая итерация рефаторинга фискализатора
2021-11-21 00:19:35 +08:00
anthony
6620acf1bf
Мелкофикс теста KktMonitor::GetOne()
2021-11-21 00:17:40 +08:00
anthony
e89369348a
Метод KktMonitor::auth() перенесён в AtolClient для совместимости в фискализатором
2021-11-21 00:15:59 +08:00
anthony
b35b9bfa87
Удалена поддержка base_name в документе коррекции ( #5 )
2021-11-20 23:46:39 +08:00
anthony
e1120051c1
Новая сущность Kkt для ответов мониторинга ( #8 ) + мелкий рефакторинг
...
- enum-константы перенесены в своё пространство Enums
- новые исключения EmptyMonitorDataException + NotEnoughMonitorDataException
- KktMonitor::getAll() теперь возвращает коллекцию объектов Kkt
- KktMonitor::getOne() теперь возвращает объект Kkt
- местами актуализированы return types + phpdoc
Покрытие тестами:
- 61% исключений
- 98% AtolClient (пока хз как покрыть 208-ую строку)
- 100% KktMonitor
- 100% Kkt
- 100% Client
- 100% Company
- 100% Entity
2021-11-20 23:39:08 +08:00
anthony
6551366d84
Полное покрытие тестами классов AtolClient + KktMonitor + половины исключений
...
Часть тестов завязаны на тестовый API мониторинга Атола. Иногда он закашливается и не отвечает, возможно, там рейтлимит. Да и пофиг, моки -- злейшее зло, и мне лень их писать.
2021-11-19 18:42:14 +08:00
anthony
2c5144caac
KktMonitor::getAll() теперь возвращает коллекцию объектов ККТ
...
При этом остаётся возможность получить полный ответ через KktMonitor::getResponse()
2021-11-19 18:29:09 +08:00
anthony
92a2c6cc48
Переработаны существующие и дописаны новые тест AtolClient
...
Используется тестовый API АТОЛ Онлайн. 94% покрытие AtolClient, но ещё не закончено
2021-11-19 13:42:51 +08:00
anthony
949b31a85a
[WIP] Начало работы над тестом KktMonitorTest
2021-11-18 19:07:32 +08:00
anthony
03591600dd
Поддержка мониторинга ( #8 ) и рефакторинг
...
- абстрактный класс AtolClient:
- больше не наследуется от клиента guzzle, но содержит его объект
- из Kkt вынесены методы, отвечающие за формирование запроса, отправку и получение ответа, в т.ч. авторизацию
- переименованы исключения TooLongKktLoginException, TooLongKktPasswordException, EmptyKktLoginException и EmptyKktPasswordException
- мелочи по AuthFailedException
- заготовки тестов AtolClient и KktMonitor
2021-11-18 12:24:44 +08:00
anthony
77481884ad
Начало работы по #5 и #6
...
- строгая типизация
- переработан класс `TestEnvParams`:
- вынесен на уровень выше из под `AtolOnline\Constants`
- вместо констант - две функции для получения актуальных параметров подключения по ФФД1.05 и ФФД1.2
- актуализированы `PaymentObjects` согласно #5
- исходники вынесены не уровень выше в `src`
- константы теперь enum через `myclabs/php-enum`
- новые константы `DocumentTypes`
- классы констант финализированы
- все исключения переименованы, а многие так или иначе отрефакторены (не полностью)
- новые исключения `InvalidSnoException`, `InvalidPaymentAddressException`
- `helpers.php` стал полноценным классом `Helpers`
- удалены трейты `HasEmail`, `HasInn`, `RublesKopeksConverter` (конвертация перенесена в `Helpers`)
- удалён хелпер `valid_strlen()`, вместо него теперь везде `mb_strlen()`
- сущности `Client` и `Company` получили свои имплементации для `email` и `inn`
- доработки в `BasicTestCase`
- полное покрытие тестами: `Client`, `Company`, `Helpers`
- поправлен `phpunit.xml`
- везде обновлены копирайты
- актуализированы и исправлены phpdoc, return types
- начато введение `strict_types=1`
- минимальный php теперь 8.0
- обновлены все зависимости
- подключен пакет коллекций laravel для будущего использования
- теперь можно `composer test` и `composer test-cov`
2021-11-18 12:24:30 +08:00
anthony
cc944a1dbb
Бейджи в README
2021-05-25 11:48:37 +08:00
anthony
bb05f0c752
Merge branch 'master' into dev
2021-05-25 00:58:53 +08:00
anthony
1c76608468
Github Actions разграничены для веток master и dev
2021-05-24 23:40:46 +08:00
anthony
bd6e208216
Обновление composer.json и первичных текстовок
2021-05-24 23:00:34 +08:00
anthony
7b4411ec01
Обновление зависимостей
2021-05-24 22:45:03 +08:00
anthony and GitHub
23fa1f7eb9
Update FUNDING.yml
2021-05-24 12:38:39 +08:00
anthony and GitHub
929bf84c97
Merge pull request #3 from komantnick/develop
...
Исправление багов при отправке сырого JSON для чека коррекции с исправлениями
2021-05-24 10:55:09 +08:00
anthony
d321205ac9
Фикс выброса AtolAuthFailedException
2020-10-13 02:06:13 +08:00
anthony
387e6e445f
Удалён сервер discord и его упоминание в README
2020-06-14 13:52:07 +08:00
anthony
3bd043bde7
Kkt::setCallbackUrl() - Фикс проверки callback_url по регулярке
2020-06-14 13:44:35 +08:00
anthony
7c8ee85b89
Фикс регулярки callback_url
2020-06-14 13:44:04 +08:00
anthony
aab68646e6
Фикс сообщений в исключениях
2020-06-14 13:43:32 +08:00
anthony
e1fb74ac01
Доудалено упоминание о Schemas
2020-06-07 20:28:14 +08:00
anthony
8d9f218280
Мелкофиксы по документации и roadmap
2020-06-07 20:12:50 +08:00
anthony
9ed999f9fc
Улучшен класс Kkt
...
+ setCallbackUrl(): валидация
* setLogin() и setPassword() более не зависят от тестового режима
* setPassword(): выброс AtolKktPasswordTooLongException
* auth(): выброс AtolAuthFailedException
* valid_strlen()
* Constraints::MAX_LENGTH_LOGIN
* Constraints::MAX_LENGTH_PASSWORD
* Constraints::PATTERN_CALLBACK_URL
* phpdoc
* исправление опечаток при выбросе некоторых исключений
2020-06-07 20:12:50 +08:00
anthony
989c06a383
Улучшен класс Item
...
* valid_strlen()
* Constraints::MAX_LENGTH_ITEM_NAME
* Constraints::MAX_LENGTH_MEASUREMENT_UNIT
* Constraints::MAX_LENGTH_USER_DATA
2020-06-07 20:12:23 +08:00
anthony
9bd99c81a9
Улучшен класс Document
...
* валидация в setCashier() только если передан не-null
* valid_strlen()
* Constraints::MAX_LENGTH_CASHIER_NAME
* phpdoc
2020-06-07 20:12:23 +08:00
anthony
2943d93962
Улучшен класс Company
...
* valid_strlen()
* Constraints::MAX_LENGTH_PAYMENT_ADDRESS
* phpdoc
2020-06-07 20:12:23 +08:00
anthony
8eb309bc58
Улучшен класс Сlient
...
* valid_strlen()
* Constraints::MAX_LENGTH_CLIENT_NAME
* Constraints::MAX_LENGTH_CLIENT_PHONE
* phpdoc
2020-06-07 20:12:23 +08:00
anthony
b74f652127
Улучшен trait HasInn
...
* Constraints::PATTERN_INN
* phpdoc
2020-06-07 20:12:23 +08:00
anthony
1061914a5f
Улучшен trait HasEmail
...
* valid_strlen()
* Constraints::MAX_LENGTH_EMAIL
* phpdoc
2020-06-07 20:12:23 +08:00
anthony
5424726a97
Мелкофиксы в исключениях
...
* использование valid_strlen() в AtolInnWrongLengthException и AtolTooLongException
* фикс опечатки в AtolEmailTooLongException
2020-06-07 20:12:23 +08:00
anthony
2b3713db69
Новые исключения
...
+ AtolAuthFailedException
+ AtolCallbackUrlTooLongException
+ AtolInvalidCallbackUrlException
+ AtolKktPasswordTooLongException
2020-06-07 20:12:23 +08:00
anthony
a6b57115b6
Новый класс Constraints
2020-06-07 20:12:23 +08:00
anthony
12e0e49c9b
Удалёно всё, что связано со схемами
2020-06-07 20:12:22 +08:00
anthony
3ffab562f8
Новый файл helpers
2020-06-07 20:12:22 +08:00
anthony
c05e013a5a
Освежил документацию в части работы с объектом Kkt
2020-06-04 22:29:36 +08:00
anthony
e282de7e08
Вернул назад переопределение параметров компании при тестовом режиме: ИНН, адрес места расчётов
...
Также появился новый класс с константами тестовых параметров
2020-06-04 22:12:34 +08:00
anthony
c14b680be4
Проброс external_id на регистрацию документа
2020-06-01 04:12:23 +08:00
anthony
7558cb6638
Убрал схему Атола валидации количества НДС, оплат и предметов
2020-06-01 03:58:31 +08:00
anthony
d3fe2cba9a
Удалена перезапись компании в тестовом режиме. Новый метод Kkt::setAuthToken()
2020-06-01 03:26:25 +08:00
anthony
e70a65fa44
Улучшен метод Kkt::registerDocument
...
+ теперь принимает любой собственного external_id, если пусто - сгенерирует uuid
* исправлен недостаток полей компании в тестовом режиме
* уточнения phpdoc
2020-05-30 04:29:44 +08:00
anthony
ba5166f2cf
Метод Kkt::getAuthToken() теперь открыт
2020-05-30 03:45:06 +08:00
anthony
93f5186b15
Перезапись компании в документе при тестовом режиме
2020-05-30 01:59:24 +08:00
anthony
f2b4952aa5
Установка адреса callback для тестового режима
2020-05-30 01:59:24 +08:00
anthony
7899daf421
Снова фикс ошибок при приведении документа к json-строке
2020-05-30 01:59:23 +08:00
anthony
4cf6e81d5f
Исправлены тесты компании и клиента
2020-05-29 22:24:15 +08:00
anthony
9d7dd75cd9
Испарвлен тест на длину имени предмета расчёта
2020-05-29 22:15:47 +08:00
anthony
4d7e5dd76e
Фикс возвращаемого значения KktResponse::getContent()
2020-05-29 22:06:04 +08:00
anthony
0f658d38a9
Фикс ошибок при приведении докумнета к json-строке
2020-05-29 22:05:35 +08:00
anthony
ca32fe5923
Повсюду улучшена проверка длин строк
2020-05-28 22:56:26 +08:00
anthony
9ea1c81666
Скорректирован Document::jsonSerialize() - не выдаёт пустого кассира
2020-05-28 22:55:53 +08:00
anthony
12b98dcdac
Document::fromRaw() теперь парсит входящий json как массив, а не объект
2020-05-28 22:55:27 +08:00
anthony
1fec446ce0
Фикс тестов НДС
2020-05-28 01:31:37 +08:00
anthony
6256c14522
Обновления в composer.lock
2020-05-28 01:25:27 +08:00