Giter Site home page Giter Site logo

checkbox-in-ua-php-sdk's People

Contributors

danilyer228 avatar ezoterik avatar igorbunov avatar makarovigor avatar otis22 avatar vldmr-k avatar weirdan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

checkbox-in-ua-php-sdk's Issues

Не правильно повертає тип помилки для  "Касир вже працює з даною касою"

Не правильно повертає тип помилки для  "Касир вже працює з даною касою" повертає NoActiveShift, а мало б повернути
AlreadyOpenedShift.
Рішення:

файл: CheckboxJsonApi.php

private function validateResponseStatus($json, int $statusCode): void
    {
        switch ($statusCode) {
            case 400:
                if (!empty($json['message']) and $json['message'] == 'Касир вже працює з даною касою') {
                    throw new AlreadyOpenedShift($json['message']);
                }

                if (!empty($json['message']) and $json['message'] == 'Зміну не відкрито') {
                    throw new NoActiveShift($json['message']);
                }

При формуванні чеку ціна за товар не коректна

version 1.2.10 php: 7.3 x64
Помічено тільки з ціною коли копійки = 20. Наприклад 2230.20 або 45.20 або 1980.20 і так далі.
Суть в тому що значення чомусь змінюється з 4520 на 4519
і при розрахунку карткою видає помилку: Для розрахунку карткою використання решти 0.01 не можливе.
Наприклад конкрений випадок:
echo $FinalPrice = $product['final_price']; // 2230.20
echo $FinalPrice = floatval($product['final_price']); // 2230.2
echo $FinalPrice = $FinalPrice * 100; //223020

після формування чеку результат:

["goods"]=>
object(igorbunov\Checkbox\Models\Receipts\Goods\Goods)#38 (1) {
["results"]=>
array(1) {
[0]=>
object(igorbunov\Checkbox\Models\Receipts\Goods\GoodItemModel)#47 (7) {
["good"]=>
object(igorbunov\Checkbox\Models\Receipts\Goods\GoodModel)#36 (8) {
["code"]=>
string(5) "12998"
["barcode"]=>
string(0) ""
["name"]=>
string(39) "PETLAS IMPERIUM PT515 91V 195/65R15"
["header"]=>
string(0) ""
["footer"]=>
string(0) ""
["uktzed"]=>
string(0) ""
["price"]=>
int(223019)

["taxes"]=>
object(igorbunov\Checkbox\Models\Receipts\Taxes\GoodTaxes)#44 (1) {
["results"]=>
array(1) {
[0]=>
object(igorbunov\Checkbox\Models\Receipts\Taxes\GoodTax)#42 (11) {
["id"]=>
string(36) "358d5577-0b7f-4501-b3f4-ccbe9380c33d"
["code"]=>
string(1) "1"
["label"]=>
string(13) "Без ПДВ"
["symbol"]=>
string(2) "Е"
["rate"]=>
string(1) "0"
["extra_rate"]=>
NULL
["included"]=>
string(1) "1"
["created_at"]=>
string(25) "2022-02-01T00:53:18+00:00"
["updated_at"]=>
string(25) "2022-02-01T00:54:06+00:00"
["value"]=>
int(0)
["extra_value"]=>
string(0) ""
}
}
}
}
["good_id"]=>
string(0) ""
["sum"]=>
int(0)
["quantity"]=>
int(1000)
["is_return"]=>
bool(false)
["taxes"]=>
object(igorbunov\Checkbox\Models\Receipts\Taxes\GoodTaxes)#44 (1) {
["results"]=>
array(1) {
[0]=>
object(igorbunov\Checkbox\Models\Receipts\Taxes\GoodTax)#42 (11) {
["id"]=>
string(36) "358d5577-0b7f-4501-b3f4-ccbe9380c33d"
["code"]=>
string(1) "1"
["label"]=>
string(13) "Без ПДВ"
["symbol"]=>
string(2) "Е"
["rate"]=>
string(1) "0"
["extra_rate"]=>
NULL
["included"]=>
string(1) "1"
["created_at"]=>
string(25) "2022-02-01T00:53:18+00:00"
["updated_at"]=>
string(25) "2022-02-01T00:54:06+00:00"
["value"]=>
int(0)
["extra_value"]=>
string(0) ""
}
}
}
["discounts"]=>
NULL
}
}
}

Как возвращать чеки

Как возвращать чеки суть в том что нету поля в которе вписать id чека к которому нужно вернуть все товары.
Вот таких параметров нет
"related_receipt_id": - даний параметр як опція для зв'язку між чеком продажу і повернення. При поверненні можна передати ід чеку продажу.
"previous_receipt_id": - id попереднього чеку, якщо його передати, то виконується перевірка чи є вказаний чек попереднім
"technical_return": - флаг про технічне повернення чеку.

Иногда после успешной отправки чека в ответ приходит null вместо объекта Reciept

Был как минимум один случай, что после отправки SellReceipt в ответ вместо Receipt прилетает null.
Этот случай залогирован и, так уж случилось, момент отправки того чека есть на видео. Смогу предоставить в личной переписке, если надо.

косяк в логіці validateResponseStatus

зараз сервер на тех обслуговуванні і сервер віддає відповідь з кодом 503. на скільки я зрозумів, це досить часта річ по ночам. можливо ще є якісь 500-ки. точно не знаю бо тільки почав з чекбоксом розбиратись. якщо ти встигнеш залогінитись і хочеш закрити зміну, то можуть виникнути помилки. особисто я спочатку перевіряю чи відкрита зміна. якщо немає відкритої зміни, то мені має прийти нулл. але якщо помилка 503, то після обробки validateResponseStatus у мене throw не спрацьовує. воно просто пропускає і йде далі. скоріше за все, if (!empty($json['message'])) видає фолс. тому або переробити другу половину validateResponseStatus, або додати трохи 500-ок у свіч. хоча б, 503, який мені виліз прямо сьогодні. скріни не кидаю, бо в цьому ніякого сенсу. я все описав словами.

Нові параметри

/api/v1/cashier/me
{
certificate_end - дата завершення дії ключа,
blocked,
organization:
{
subscription_exp - дата закінчення оплати or null
}
}
Додайте при можливості.....

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.