Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bb05f0c752 | |||
| 1c76608468 | |||
| bd6e208216 | |||
| 7b4411ec01 | |||
| 23fa1f7eb9 | |||
| 929bf84c97 | |||
|
|
5c1c4dba12 | ||
|
|
4c40bebe14 |
2
.github/FUNDING.yml
vendored
2
.github/FUNDING.yml
vendored
@@ -1,3 +1,3 @@
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single Patreon username
|
||||
custom: ['https://money.yandex.ru/to/41001685237530']
|
||||
custom: ['https://yoomoney.ru/to/41001685237530']
|
||||
|
||||
25
.github/workflows/dev.yml
vendored
Normal file
25
.github/workflows/dev.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
name: Dev build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ dev ]
|
||||
pull_request:
|
||||
branches: [ dev ]
|
||||
|
||||
jobs:
|
||||
Tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Validate composer.json and composer.lock
|
||||
uses: php-actions/composer@40-env
|
||||
with:
|
||||
version: 2
|
||||
php_version: 7.4
|
||||
only_args: --prefer-dist --no-progress
|
||||
|
||||
- name: Run phpunit tests
|
||||
uses: php-actions/phpunit@v8
|
||||
with:
|
||||
configuration: ./phpunit.xml
|
||||
25
.github/workflows/master.yml
vendored
Normal file
25
.github/workflows/master.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
name: Master build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
Tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Validate composer.json and composer.lock
|
||||
uses: php-actions/composer@40-env
|
||||
with:
|
||||
version: 2
|
||||
php_version: 7.4
|
||||
only_args: --prefer-dist --no-progress
|
||||
|
||||
- name: Run phpunit tests
|
||||
uses: php-actions/phpunit@v8
|
||||
with:
|
||||
configuration: ./phpunit.xml
|
||||
26
.github/workflows/tests.yml
vendored
26
.github/workflows/tests.yml
vendored
@@ -1,26 +0,0 @@
|
||||
name: Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
- name: Validate composer.json and composer.lock
|
||||
run: composer validate
|
||||
|
||||
- name: Install composer dependencies
|
||||
run: composer install --prefer-dist --no-progress --no-suggest
|
||||
|
||||
- name: Run phpunit tests
|
||||
uses: php-actions/phpunit@v1.0.0
|
||||
with:
|
||||
# Configuration file location
|
||||
config: ./phpunit.xml
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
## Системные требования
|
||||
|
||||
* PHP 7.2+
|
||||
* PHP 7.4+
|
||||
* composer
|
||||
* php-json
|
||||
|
||||
|
||||
18
ROADMAP.md
18
ROADMAP.md
@@ -25,7 +25,8 @@
|
||||
- [ ] Тесты для регистрации документа расхода
|
||||
- [ ] Тесты для регистрации документа возврата расхода
|
||||
- [ ] Тесты для регистрации документа коррекции расхода
|
||||
- [ ] Вообще все расчёты вообще везде должны быть строго в копейках. Рубли (дроби) должны быть только в JSON-представлениях
|
||||
- [ ] Вообще все расчёты вообще везде должны быть строго в копейках.
|
||||
Рубли (дроби) должны быть только в JSON-представлениях
|
||||
|
||||
## Поддержка методов API (регистрация документов)
|
||||
|
||||
@@ -63,18 +64,3 @@
|
||||
- [x] Пoддержка `correction.vats` (обязательный)
|
||||
- [x] Пoддержка `correction.correction_info` (обязательный)
|
||||
- [x] Пoддержка `correction.cashier`
|
||||
|
||||
## Не будут реализовываться
|
||||
|
||||
### Валидация генерируемых документов согласно актуальной схемы API
|
||||
|
||||
- Валидатор схемы для документов прихода, возврата прихода, расхода, возврата расхода
|
||||
- Валидатор схемы для документов коррекции прихода, коррекции расхода
|
||||
|
||||
1. Отказ обусловлен скоростью выполнения.
|
||||
Базовая реализация, которая была начата, подразумевала синглтон, который кешировал однажды полученную схему.
|
||||
Практика показала, что этот единичный запрос может существенно тормозить работу сервера и в течение долгого времени
|
||||
не отдавать ответ клиенту.
|
||||
|
||||
2. Такая валидация подходит в том случае, если бы при разработке использовалась концепция IoC.
|
||||
До версии пакета 2.0.0 таких серьёзных имзенений не планируется.
|
||||
|
||||
@@ -5,16 +5,21 @@
|
||||
"type": "library",
|
||||
"keywords": [
|
||||
"54-fz",
|
||||
"54-фз",
|
||||
"kkt",
|
||||
"ккт",
|
||||
"e-commerce",
|
||||
"cash",
|
||||
"cash register",
|
||||
"payment",
|
||||
"payment system",
|
||||
"atol",
|
||||
"atol-online"
|
||||
"атол",
|
||||
"atol-online",
|
||||
"атол онлайн"
|
||||
],
|
||||
"homepage": "https://github.com/anthonyaxenov/atol-online",
|
||||
"readme": "https://github.com/anthonyaxenov/atol-online/blob/master/README.md",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Anthony Axenov",
|
||||
@@ -25,10 +30,16 @@
|
||||
"support": {
|
||||
"source": "https://github.com/anthonyaxenov/atol-online",
|
||||
"issues": "https://github.com/anthonyaxenov/atol-online/issues",
|
||||
"chat": "https://discord.gg/mFYTQmp"
|
||||
"docs": "https://github.com/anthonyaxenov/atol-online/blob/master/docs/readme.md"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"type": "Yoomoney",
|
||||
"url": "https://yoomoney.ru/to/41001685237530"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.2",
|
||||
"php": ">=7.4",
|
||||
"ext-json": "*",
|
||||
"guzzlehttp/guzzle": "^6.5",
|
||||
"psr/log": "^1.1",
|
||||
|
||||
927
composer.lock
generated
927
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -68,7 +68,7 @@ class CorrectionInfo extends Entity
|
||||
*/
|
||||
public function getNumber(): ?string
|
||||
{
|
||||
return $this->base_name;
|
||||
return $this->base_number;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -165,7 +165,7 @@ class CorrectionInfo extends Entity
|
||||
'type' => $this->getType() ?? '', // обязателен
|
||||
'base_date' => $this->getDate() ?? '', // обязателен
|
||||
'base_number' => $this->getNumber() ?? '', // обязателен
|
||||
'base_name' => $this->getName() ?? '' // обязателен
|
||||
'base_name' => $this->getName() ?? '' // не обязателен
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -362,6 +362,14 @@ class Document extends Entity
|
||||
$array['client']['inn'] ?? null
|
||||
));
|
||||
}
|
||||
if (isset($array['correction_info'])) {
|
||||
$doc->setCorrectionInfo(new CorrectionInfo(
|
||||
$array['correction_info']['type'] ?? null,
|
||||
$array['correction_info']['base_date'] ?? null,
|
||||
$array['correction_info']['base_number'] ?? null,
|
||||
$array['correction_info']['base_name'] ?? null,
|
||||
));
|
||||
}
|
||||
if (isset($array['items'])) {
|
||||
foreach ($array['items'] as $ar_item) {
|
||||
$item = new Item(
|
||||
@@ -391,6 +399,18 @@ class Document extends Entity
|
||||
$doc->payments->add($payment);
|
||||
}
|
||||
}
|
||||
if (isset($array['vats'])) {
|
||||
foreach ($array['vats'] as $vat_payment) {
|
||||
$vat = new Vat();
|
||||
if (isset($vat_payment['type'])) {
|
||||
$vat->setType($vat_payment['type']);
|
||||
}
|
||||
if (isset($vat_payment['sum'])) {
|
||||
$vat->setSum($vat_payment['sum']);
|
||||
}
|
||||
$doc->vats->add($vat);
|
||||
}
|
||||
}
|
||||
if (isset($array['total']) && $array['total'] != $doc->calcTotal()) {
|
||||
throw new AtolException('Real total sum not equals to provided in JSON one');
|
||||
}
|
||||
|
||||
@@ -50,7 +50,8 @@ class Vat extends Entity
|
||||
}
|
||||
|
||||
/**
|
||||
* Устанавливает размер НДС от суммы в копейках
|
||||
* Устанавливает:
|
||||
* размер НДС от суммы в копейках
|
||||
*
|
||||
* @param string $type Тип ставки НДС
|
||||
* @param int $kopeks Копейки
|
||||
|
||||
Reference in New Issue
Block a user