Closed ErmacTheSoul closed 9 months ago
Вопрос от разработчика АСУ:
"Поле добавить не проблема, а где брать значение для нового поля (QR код чека продажи)? И какого размера может быть это значение?"
можно поставить вопрос в первую очередь? нам нужно еще создать задание на доработку АСУ
Добавил методы для чтения и установки полей: https://github.com/VitalyKravtsov2016/WebPrinter/releases/tag/15
можете расписать по каждому методу используемые поля и возможные значения? спасибо
Достаточно посмотреть описание документов. Позиция чека: DIO_SET_RECITEM_JSON_FIELD = 106; - установка поля позиции чека Допустимые значения: name, barcode, amount, unit_name, units, price, product_price, vat, vat_percent, discount, discount_percent, other, labels, class_code, package_code, owner_type,
И так далее.
как правильно передавать поля? (106, owner_type, '1')? не получается
[30.01.2024 12:01:29.970 ] [00012004] [DEBUG] ToleFiscalPrinter.DirectIO(106, 0, '1') [30.01.2024 12:01:29.971 ] [00012004] [DEBUG] ToleFiscalPrinter.DirectIO(106, 0, '1')=0
[30.01.2024 12:03:52.258 ] [00012004] [DEBUG] ToleFiscalPrinter.DirectIO(106, 1, 'owner_type') [30.01.2024 12:03:52.261 ] [00012004] [DEBUG] ToleFiscalPrinter.DirectIO(106, 1, 'owner_type')=0
Нужно передавать: Название поля;Значение поля Например: DirectIO(106, 0, 'owner_type;1')
получилось, спасибо!
по получению QR, не понятно как действовать. можно так же пошагово разобрать?
qr_url приходит в ответе от сервера, после успешного формирования транзакции продажи. как и в какой момент приложение его может перехватить? Т.е. как вижу приложение формирует чек, заканчивая его командой printrectotal и endfiscalreciept. дальше приложение ждет ответа от драйвера и вроде бы никаких команд не отправляет.
в какой момент и какую команду приложение должно отправить что бы получить qr_url? DIO_GET_RESPONSE_JSON_FIELD = 104? DirectIO(104, 0, 'Data.qr_url')? DirectIO(104, 0, 'qr_url')?
После успешного вызова endFiscalReceipt нужно вызвать: DirectIO(102, 0, 'Data.qr_url') или DirectIO(104, 0, 'Data.qr_url') DIO_GET_RECEIPT_RESPONSE_FIELD = 102; - запрос поля ответа последнего чека DIO_GET_RESPONSE_JSON_FIELD = 104; - запрос поля последнего ответа сервера
пробуем делать возврат, по логу якобы QR-код передаётся, но потом все равно ошибка, посмотрите пожалуйста:
[31.01.2024 18:29:26.646 ] [00007924] [DEBUG] ToleFiscalPrinter.DirectIO(105, 0, 'qr_url;https://ofd.soliq.uz/check?t=UZ170703100597&r=6392&c=20240131172901&s=303136350985') [31.01.2024 18:29:26.646 ] [00007924] [DEBUG] ToleFiscalPrinter.DirectIO(105, 0, 'qr_url;https://ofd.soliq.uz/check?t=UZ170703100597&r=6392&c=20240131172901&s=303136350985')=0 [31.01.2024 18:29:26.662 ] [00007924] [DEBUG] ToleFiscalPrinter.PrintRecMessage('Транз. продажи: 74 (1150,00 тг)') [31.01.2024 18:29:26.662 ] [00007924] [DEBUG] ToleFiscalPrinter.PrintRecMessage('Транз. продажи: 74 (1150,00 тг)')=0 [31.01.2024 18:29:26.678 ] [00007924] [DEBUG] ToleFiscalPrinter.EndFiscalReceipt(False) [31.01.2024 18:29:26.678 ] [00007924] [DEBUG] POST: http://fbox.ngrok.io/order/refuse/ [31.01.2024 18:29:26.678 ] [00007924] [DEBUG] => {"qr_code":"","number":1,"receipt_type":"order","products":[{"name":"10ГР. SWEET BOX МАРМЕЛАД С ИГРУШКОЙ В КО","barcode":"","amount":1000,"units":1,"price":115000,"product_price":115000,"vat":12321,"vat_percent":12,"discount":0,"discount_percent":0,"other":0,"labels":[],"class_code":"02007002003000000","package_code":0,"owner_type":0,"comission_info":{"inn":"","pinfl":""}}],"time":"2024-01-31 17:29:31","cashier":"ts","received_cash":115000,"change":0,"received_card":0,"open_cashbox":false,"send_email":false} [31.01.2024 18:29:27.990 ] [00007924] [DEBUG] <= { "data": null, "error": { "code": 65277, "message": "no refund info passed", "data": "no refund info passed" }, "is_success": false } [31.01.2024 18:29:27.990 ] [00007924] [ERROR] OPOS_E_EXTENDED, 65277, "no refund info passed" [31.01.2024 18:29:27.990 ] [00007924] [DEBUG] ToleFiscalPrinter.EndFiscalReceipt(False)=114
Поправил драйвер: https://github.com/VitalyKravtsov2016/WebPrinter/releases/tag/18 Сейчас приложение вызывает: DirectIO(105, 0, 'qr_url;https://ofd.soliq.uz/check?t=UZ170703100597&r=6392&c=20240131172901&s=303136350985') Поле чека имеет название 'qr_code'. Нужно вызывать: DirectIO(105, 0, 'qr_code;https://ofd.soliq.uz/check?t=UZ170703100597&r=6392&c=20240131172901&s=303136350985')
поле пустое
SHTRIH-M-OPOS-1_2024.01.31.log
[31.01.2024 19:47:48.295 ] [00007000] [DEBUG] ToleFiscalPrinter.DirectIO(105, 0, 'qr_code;https://ofd.soliq.uz/check?t=UZ170703100597&r=6395&c=20240131184736&s=020033556544') [31.01.2024 19:47:48.311 ] [00007000] [DEBUG] ToleFiscalPrinter.DirectIO(105, 0, 'qr_code;https://ofd.soliq.uz/check?t=UZ170703100597&r=6395&c=20240131184736&s=020033556544')=0 [31.01.2024 19:47:48.311 ] [00007000] [DEBUG] ToleFiscalPrinter.PrintRecMessage('Транз. продажи: 77 (1150,00 тг)') [31.01.2024 19:47:48.311 ] [00007000] [DEBUG] ToleFiscalPrinter.PrintRecMessage('Транз. продажи: 77 (1150,00 тг)')=0 [31.01.2024 19:47:48.326 ] [00007000] [DEBUG] ToleFiscalPrinter.EndFiscalReceipt(False) [31.01.2024 19:47:48.326 ] [00007000] [DEBUG] POST: http://fbox.ngrok.io/order/refuse/ [31.01.2024 19:47:48.326 ] [00007000] [DEBUG] => {"qr_code":"","number":1,"receipt_type":"order","products":[{"name":"10ГР. SWEET BOX МАРМЕЛАД С ИГРУШКОЙ В КО","barcode":"","amount":1000,"units":1,"price":115000,"product_price":115000,"vat":12321,"vat_percent":12,"discount":0,"discount_percent":0,"other":0,"labels":[],"class_code":"02007002003000000","package_code":0,"owner_type":0,"comission_info":{"inn":"","pinfl":""}}],"time":"2024-01-31 18:47:53","cashier":"ts","received_cash":115000,"change":0,"received_card":0,"open_cashbox":false,"send_email":false} [31.01.2024 19:47:49.373 ] [00007000] [DEBUG] <= { "data": null, "error": { "code": 65277, "message": "no refund info passed", "data": "no refund info passed" }, "is_success": false }
проблема не в АСУ?
возврат прошел, вопрос по штрихкоду, он не заполнился. и в receipt_type должно order указыватьсчя? "barcode":""
SHTRIH-M-OPOS-1_2024.02.01.log
[01.02.2024 00:41:29.815 ] [00001828] [DEBUG] POST: http://fbox.ngrok.io/order/refuse/ [01.02.2024 00:41:29.815 ] [00001828] [DEBUG] => {"qr_code":"https:\/\/ofd.soliq.uz\/check?t=UZ170703100597&r=6400&c=20240131234118&s=432227303062","number":1,"receipt_type":"order","products":[{"name":"10ГР. SWEET BOX МАРМЕЛАД С ИГРУШКОЙ В КО","barcode":"","amount":1000,"units":1,"price":115000,"product_price":115000,"vat":12321,"vat_percent":12,"discount":0,"discount_percent":0,"other":0,"labels":[],"class_code":"02007002003000000","package_code":0,"owner_type":0,"comission_info":{"inn":"","pinfl":""}}],"time":"2024-01-31 23:41:34","cashier":"ts","received_cash":115000,"change":0,"received_card":0,"open_cashbox":false,"send_email":false} [01.02.2024 00:41:33.361 ] [00001828] [DEBUG] <= { "data": { "terminal_id": "UZ170703100597", "receipt_count": 6401, "date_time": "20240131234134", "fiscal_sign": "908199495303", "applet_version": "0300", "qr_url": "https://ofd.soliq.uz/check?t=UZ170703100597&r=6401&c=20240131234134&s=908199495303", "cash_box_number": "1" }, "error": null, "is_success": true }
[24.01.2024 15:49:54.526 ] [00004776] [DEBUG] POST: http://fbox.ngrok.io/order/create/ [24.01.2024 15:49:54.526 ] [00004776] [DEBUG] => {"qr_code":"","number":1,"receipt_type":"order","products":[{"name":"10ГР. SWEET BOX МАРМЕЛАД С ИГРУШКОЙ В КО","barcode":"6942971507123","amount":1000,"units":1,"price":115000,"product_price":115000,"vat":0,"vat_percent":0,"discount":0,"discount_percent":0,"other":0,"labels":[],"class_code":"02007002003000000","package_code":0,"owner_type":0,"comission_info":{"inn":"","pinfl":""}}],"time":"2024-01-24 14:49:53","cashier":"ts","received_cash":115000,"change":0,"received_card":0,"open_cashbox":false,"send_email":false} [24.01.2024 15:49:58.057 ] [00004776] [DEBUG] <= { "data": { "terminal_id": "UZ170703100597", "receipt_count": 6319, "date_time": "20240124144953", "fiscal_sign": "561134697093", "applet_version": "0300", "qr_url": "https://ofd.soliq.uz/check?t=UZ170703100597&r=6319&c=20240124144953&s=561134697093", "cash_box_number": null }, "error": null, "is_success": true } [24.01.2024 15:49:58.057 ] [00004776] [DEBUG] ToleFiscalPrinter.EndFiscalReceipt(False)=0
при продаже есть поле qr_url, передаёт ли OPOS это поле на кассу? для дальнейшего сохранения в БД