Требуется написать вебклиент на ардуино для работы с готовым сервером
- Войдите на сайт для отправки комментариев
Сб, 16/03/2019 - 13:39
Имеется ардуино нано + езернет шилд нано.
Есть сервер https://kkmserver.ru/ в частности ккмсервер.
Есть даже готовые примеры https://kkmserver.ru/KkmServer/SamplesAjax.html
Требуеться. Написать скетч для работы с сервером, конкретно для печати фискальных чеков, тоесть базовый пример запихнуть на ардуино.
Есть железо и базовые знания в ардуино, нет свободного времени . Возможна работа по удаленке или в режиме онлайн по тимвьеверу. Оплата сдельная по договору.
Визиот, а я чота плакаль
ну напишите конкретно, чего ржать то и плакать.
Не особо понятно - что ардуина должна делать: просто отдавать HTML или ещё мигать ламой?
ничего мигать на надо, надо чтобы она печатала чек, то что в HTML примере. Это грубо говоря и получала ответ и выводила его в серал, чтобы можно было проверить полученный ответ сервера. Грубо говоря ардуина получает переменную (сумму) ее надо отправить на фискальный регистратор. Это конечно в идеальном варианте. Можно рассмотреть и другие предложения. Основная задача печатать полученные данные ардуиной на фискальном регистраторе.
ничего мигать на надо, надо чтобы она печатала чек, то что в HTML примере. Это грубо говоря и получала ответ и выводила его в серал, чтобы можно было проверить полученный ответ сервера. Грубо говоря ардуина получает переменную (сумму) ее надо отправить на фискальный регистратор. Это конечно в идеальном варианте. Можно рассмотреть и другие предложения. Основная задача печатать полученные данные ардуиной на фискальном регистраторе.
Ещё меньше стало понятно. ККМ-сервер без ПК не работает. А если есть ПК, то зачем Ардуина? Схема взаимодействия, которую вы нарисовали себе в голове, не всем понятна, знаете ли.
Исполнитель - это не телепат, который проникает в мозг клиента, потом делает красиво и недорого.
Ещё меньше стало понятно. ККМ-сервер без ПК не работает. А если есть ПК, то зачем Ардуина? Схема взаимодействия, которую вы нарисовали себе в голове, не всем понятна, знаете ли.
Исполнитель - это не телепат, который проникает в мозг клиента, потом делает красиво и недорого.
Смотрите есть связка такая
Компьютер на нем фискальный регистратор и ккм сервер удаленно несколько адруин, которые получает данные (суммы оплат), ардуины по сети передают данные на сервер для печати фискальных чеков. Сосбтвенно для себя как простой вариан я решил применить ккмсервер, но есть проблема в отправки данных с аруины. Главная задача заставить печатать чеки по сети с ардуины.
Чуствую я, что без поллитры тут не разобраться.
Допустим, что абдурина может получить с некоего условного сервера JSON и, даже разобрать его, если памяти хватит. Что дальше - вывести на принтер, отослать в другое место, послать полученную цифирь в UART?
Чуствую я, что без поллитры тут не разобраться.
Допустим, что абдурина может получить с некоего условного сервера JSON и, даже разобрать его, если памяти хватит. Что дальше - вывести на принтер, отослать в другое место, послать полученную цифирь в UART?
Извиняюсь что запутал, Вы сразу глубоко мыслите, задача гараздо проще, ардуина с физического устройства, допустим монетоприемник получает данные (переменную суммы) эта часть скетча у нас есть, нам нужно отправить команду серверу для того чтобы последний напечатал чек с нашей суммой все. В нашем случае ардуина просто клиент, и все.
ниже пример команд которые может получать сервер для печати чека. Ну или пол литра с меня сразу и будем разбираться ).
// КОМАНДЫ ФИСКАЛЬНЫХ РЕГИСТРАТОРОВ ////////////////////////////////////////////////////////////////////////////////////////// // Печать чеков function RegisterCheck(NumDevice, TypeCheck, IsBarCode) { // Подготовка данных команды var Data = { // Команда серверу Command: "RegisterCheck", //*********************************************************************************************************** // ПОЛЯ ПОИСКА УСТРОЙСТВА //*********************************************************************************************************** // Номер устройства. Если 0 то первое не блокированное на сервере NumDevice: NumDevice, // ИНН ККМ для поиска. Если "" то ККМ ищется только по NumDevice, // Если NumDevice = 0 а InnKkm заполнено то ККМ ищется только по InnKkm InnKkm: "", //--------------------------------------------- // Заводской номер ККМ для поиска. Если "" то ККМ ищется только по NumDevice, KktNumber: "", // ********************************************************************************************************** // Время (сек) ожидания выполнения команды. //Если За это время команда не выполнилась в статусе вернется результат "NotRun" или "Run" //Проверить результат еще не выполненной команды можно командой "GetRezult" //Если не указано или 0 - то значение по умолчанию 60 сек. // Поле не обязательно. Это поле можно указывать во всех командах Timeout: 30, // Уникальный идентификатор команды. Любая строка из 40 символов - должна быть уникальна для каждой подаваемой команды // По этому идентификатору можно запросить результат выполнения команды // Поле не обязательно IdCommand: guid(), // Это фискальный или не фискальный чек IsFiscalCheck: true, // Тип чека; // 0 – продажа; 10 – покупка; // 1 – возврат продажи; 11 - возврат покупки; // 8 - продажа только по ЕГАИС (обычный чек ККМ не печатается) // 9 - возврат продажи только по ЕГАИС (обычный чек ККМ не печатается) TypeCheck: TypeCheck, // Не печатать чек на бумагу NotPrint: false, //true, // Количество копий документа NumberCopies: 0, // Продавец, тег ОФД 1021 CashierName: "Kазакова Н.А.", // ИНН продавца тег ОФД 1203 CashierVATIN: "430601071197", // Телефон или е-Майл покупателя, тег ОФД 1008 // Если чек не печатается (NotPrint = true) то указывать обязательно // Формат: Телефон +{Ц} Email {С}@{C} ClientAddress: "client@server.ru", // Aдрес электронной почты отправителя чека тег ОФД 1117 (если задан при регистрации можно не указывать) // Формат: Email {С}@{C} SenderEmail: "sochi@mama.com", // Система налогообложения (СНО) применяемая для чека // Если не указанно - система СНО настроенная в ККМ по умолчанию // 0: Общая ОСН // 1: Упрощенная УСН (Доход) // 2: Упрощенная УСН (Доход минус Расход) // 3: Единый налог на вмененный доход ЕНВД // 4: Единый сельскохозяйственный налог ЕСН // 5: Патентная система налогообложения // Комбинация разных СНО не возможна // Надо указывать если ККМ настроена на несколько систем СНО TaxVariant: "", // Дополнительные произвольные реквизиты (не обязательно) пока только 1 строка AdditionalProps: [ //{ Print: true, PrintInHeader: false, NameProp: "Номер транзакции", Prop: "234/154" }, { Print: true, PrintInHeader: false, NameProp: "Дата транзакции", Prop: "10.11.2016 10:30" }, ], //ClientId: "557582273e4edc1c6f315efe", // Это только для тестов: Получение ключа суб-лицензии : ВНИМАНИЕ: ключ суб-лицензии вы должны генерить у себя на сервере!!!! //KeySubLicensing: GetKeySubLicensing("client@server.ru", "12qw12"), // КПП организации, нужно только для ЕГАИС //KPP: "782543005", // Строки чека CheckStrings: [ // Строка с печатью картинки { PrintImage: { //Картинка в Base64. Картинка будет преобразована в 2-х цветное изображение- поэтому лучше посылать 2-х цветный bmp Image: "Qk3+EwAAAAAAAD4AAAAoAAAA5AAAAJ4AAAABAAEAAAAAAMATAACHHQAAhx0AAAAAAAAAAAAAAAAAAP///wD/////////////////////////////////////8AAAAP/////////////////////////////////////wAAAA//////////////////////////////////////AAAAD/////////////////////////////////////8AAAAP/////////////////////////////////////wAAAA//////////////////////////////////////AAAAD/////////////////////////////////////8AAAAP////+f//////////+P///////////////////wAAAA/////5///////////4////////////////////AAAAD/////n///////////H///////////////////8AAAAP////+f//////////8f///////////////////wAAAA/////5///////////x////////////////////AAAAD/////j//////////+P///////////////////8AAAAP////+PwAj///////w////////////////////wAAAA/////48PgP///////H////////////////////AAAAD/////zH/B///////4f///////////////////8AAAAP/////J/8H///////j////////////////////wAAAA/////+P/4///////8P////////////////////AAAAD///gAx//z///////h////////////////////8AAAAP//4fgP//P//////+P////////////////////wAAAA///H/z//8B//////x///////gP////////////AAAAD//5/8f//gD/////+P//////4AH///////////8AAAAP//P/3//8/B/////x///////AAMf///////+A/wAAAA//8/////H+H////+H//////4/+AH///////AB/AAAAD//n////5/w/8f//yP//////n/w4P//////4fP8AAAAP/+////+f+D/8AH/8f/////8/+f+P/////+H8/wAAAA//7////z//P//g//x//////3/3/+f/////j/5/AAAAD//P///+//8//////H/////8f///8////wB//n8AAAAP/8////z//j/////8/////wB////5//+AH//8PwAAAA//z///+v/+f/P///D////wAH////z/8A////0fAAAAD//P///7//w/+AA/4f///8Aef////n+A////+R8AAAAP/9//////4ID+Tv/7////A/5//8//vA/////znwAAAA//3/P////H4f7Of/v///4//n//n//Q/////8efAAAAD//f+P///x/B/Mc/+f///H//P/+f/+P/////Dz8AAAAP/9/8f//+P4P9x7/5///5//8//wA/z////4A/PwAAAA//3/Mf//z/+/nD3/n///P//z//GAAf////P/8PAAAAD/+f/A//+f/7+evP/f//8///H/8f/x////9//g8AAAAP/5//A//y//Pz6ef8///n//+f/x//P////3/+HwAAAA//n/+Q//7/8/Ps8/z//+///5//n/9///////yfAAAAD/+YABx////n4+z7/v//z///z/+P/n//////8Z8AAAAP/4B/gh///8/n5n3+//+f///P/8/+f/////8DvwAAAA/+D//xh///n+fnfP5//7///+f/z/5///9/+A+/AAAAD/h///jh//4/x+c+f3//P///4//n/n///v/z/z8AAAAP8P///Hg/+H/P578/f/AD///z//f+f//+//f/fwAAAA/D///+fAAB/8/nn58/wfD/wAH/8/9///n/9/7/AAAAD4f///5+AA//z/ffz7+P/n/4AP/5////8////P8AAAAPn////z5///+f9+/nnz//P/j8f/z////H///x/wAAAA8/////Pz///5/z5/uef/++Af4/vD///4///8f/AAAADn////8/P///n/P3/N7/B58//x/eD//8P//8D/8AAAAOf////D8f//+f8/v+QP553n//h88D/4D///B//wAAAAz////+P5///x/7+f8E/P3c///j54D/////h///AAAADf////8fj///P/v9/x35/dz///Dz4h////8P//8AAAAN/////5/P//8/+fj/PfL8Gf///BH57////H///wAAAA3/////z8f//z/58n5993wT////AH/v///4////AAAACf///z/Px///P/nmfn3nPMP////AP+f//+P///8AAAAN///gB+/n//8/+f8+f+e99/////8P5///z////wAAAA3//wAD7+P//3/9/w5/57z3/////4PH//8/////AAAADd/8H+Hv8///f/z/Hn/APAf/////8AP//n////8AAAAMv/D/z8/x//9//PxPf8/8T///////8//+/////wAAAA6/4//P3/n//3/8/+c/z/0f///////5//7/////AAAADj+P/8+f+P/+f/7/9z/P/D////////x//3////8AAAAPfx//zz/8//4//n/zn8/8P////////h//n////wAAAA9+X//Of/5//4f+f4Gf3/x/////////g//P////AAAADn6f/8z//n//4f5//cff/H/////////B/8////8AAAAOf5//yf//O//8fz/879+8A/////////D/5////wAAAA5/n//j//8H//8fP/5v3zw4////////+H/n////AAAADn+f/8H//4///8c//y/fPH8////////8f/f///8AAAAOf5//AH//H///4x//r988f4///h////5/9////wAAAA9/n/58P/8wH/+Hn//P37x/5//4B////n/n////AAAAD3+f//8/8AD//B+f/+/fvD/7//vj///+f+f///8AAAAPP5///AAA///x/4//79+8P+Af8/n///9/x////wAAAA+Pn/////////v/z//vz7weAAH7/P///z+P////AAAAD8AP////////+f/H/+/Pvfg/4Dn/P///Pw////8AAAAP+I/////////9/+f9788B4//+Df+A//+IH////wAAAA//z/////////z/5/zvz3OP///A/AQ//4D/////AAAAD//P/////////v/j/k/O/x////CA/x//h/////8AAAAP/8/////////+f/P/D85+P////g//n//f/////wAAAA//5/////////8/8f8Px3z/////wf/P////////AAAAD//n/////////5/5/4/gef///////8////////8AAAAP/+f/////////n/n/L+Az////////z////////wAAAA//9//////////P/P9v4Cf//h/////P////////AAAAD//z/////////+f8/v/gD//+7////5////////8AAAAP//P/////////4/58//Af//53////z////////wAAAA//+f/////////z/33/8D///zP////H////////AAAAD//5//////////n/Pf/wP///x////+P///////8AAAAP//j//////////P+Z/3B/////////8f///////wAAAA///P/////////+fpr/uP/////////4////////AAAAD//+f/////////48yP+I//////////x///////8AAAAP//8P//////A//xzp/8H//5///////j///////wAAAA///4AAAAAAAH//iPH/8P//N//////+P///////AAAAD////AAAAAf8P/gA4f////93//////8f//////8AAAAP////4AA///4PAADh/////7v//////4///////wAAAA///////////4AAAMH/////x///////z///////AAAAD///////////+AAAwP///f/////////H//////8AAAAP////////////wADA9//7/////////+f//////wAAAA/////////////gAABn//A/////////5///////AAAAD//////////8AHAAAAf/wf///x/////j//////8AAAAP//////////8AAAAAB/8P///+b/////P//////wAAAA///////////8AAAAAH/Bf/9/73////8///////AAAAD///////////8AAAAAAAE//z/3f////z//////8AAAAP///////////8AAAAAAAJ//n/h//v//P//////wAAAA//////////8AAAAAAD4Az//P///8D/8///////AAAAD//////////AAAAAAAPADAAAf///gD/z//////8AAAAP//////////AAAAAAA/gGAAAf//+AD/P//////wAAAA///////////gAAAAAB+AYDn8///wAH9///////AAAAD///////////gAAAAAH4BwHf4///AAPn//////8AAAAP///////////gAAAAAfgHAd/w//8AAc///////wAAAA////////////gAAAAA/AcBz/w//wAAn///////AAAAD////////////AAAAAD8h5Hv/w//AAA///////8AAAAP///////////+AAAAAPzHke//wf8AAD///////wAAAA///////////+AAAAAA7A+D7//4HwAAP///////AAAAD///////////AAAAAAD0H5/n//8AAAAf//////8AAAAP//////////4AAAAAAPb/n+f///AAAB///////wAAAA//////////+AAAAAAA9v+f5////4AAD///////AAAAD//////////wAAAAAAB2/5/3////wAAP//////8AAAAP////////////AAAAAHN/j/f//7/gDg///////wAAAA/////////////4AAAA+3+P5///P/AfH///////AAAAD/////////////wAAAD9v5fn//x/+A8f//////8AAAAP////////////+OAAAP+ft+//8H/8AB///////wAAAA/////////////54AAA/884j//A//8AP///////AAAAD/////////////nuAAD/AHwD/4H//4D///////8AAAAP////////////+8/AAH9P/4v8Af///////////wAAAA/////////////7n/gAP3P/GfAD////////////AAAAD/////////////Of/AAPPP55wAf///////////8AAAAP////////////+z/8wAGffvAAD/z//////////wAAAA/////////////7P/ngAAc+wAAf4f//////////AAAAD/////////////t/8fAAADwAAD8D//////////8AAAAP////////////+H/z+AAAAAAAeAf//////////wAAAA/////////////4f+f8AAAAAADAD///////////AAAAD/////////////z/x/4AAAAAAAAf//////////8AAAAP/////////////P/P/wAAAAAAAD/+/////////wAAAA/////////////8/5/+AAAAAAAA//H/////////AAAAD/////////////3/n/wgAAAAAAH/g/////////8AAAAP/////////////f8/8PAAAAAAB/gH/////////wAAAA/////////////9/3/h+AAAAAAfgB//////////AAAAD/////////////3+f8P+AAAAAAAAP/////////8AAAAP/////////////f7/j/8AAAAAAAD//////////wAAAA/////////////9/P8f/4AAAAAAA///////////AAAAD/////////////n9/j//4AAAAAAf//////////8AAAAP////////////+fn8f//4AAAAAP///////////wAAAA/////////////5+fj//vwAAAAH/4//////////AAAAD/////////////n78f//PwAAAB/AH/////////8AAAAP////////////+fPg///PwAAAAAB//////////wAAAA/////////////598A///HwAAAAAf//////////AAAAD/////////////3nzgf//H4AAAAP//////////8AAAAP/////////////eefgD/wAAAAAD///////////wAAAA/////////////97z+kAAfAcAAH////////////AAAAD/////////////3OP7f///////////////////8AAAAP/////////////Mx/s////////////////////wAAAA/////////////83P+Z////////////////////AAAAD/////////////zZ/4H///////////////////8AAAAP/////////////tH//////////////////////wAAAA/////////////+c///////////////////////AAAAD/////////////4n//////////////////////8AAAAP/////////////w///////////////////////wAAAA//////////////H///////////////////////AAAAD/////////////////////////////////////8AAAAP/////////////////////////////////////wAAAA", }, }, // Строка с печатью простого текста { PrintText: { //При вставке в текст символов ">#10#<" строка при печати выровнеется по центру, где 10 - это на сколько меньше станет строка ККТ Text: ">#2#<ООО \"Рога и копыта\"", Font: 1, }, }, // При вставке в текст в середину строки символов "<#10#>" Левая часть строки будет выравнена по левому краю, правая по правому, где 10 - это на сколько меньше станет строка ККТ // При вставке в текст в середину строки символов "<#10#>>" Левая часть строки будет выравнена по правому краю, правая по правому, где 10 - отступ от правого клая { PrintText: { Text: "<<->>" }, }, { PrintText: { Text: "Пример №1:<#10#>154,41" }, }, { PrintText: { Text: "2-рое поле:<#10#>4,00" }, }, { PrintText: { Text: "<<->>" }, }, { PrintText: { Text: "Пример №2:<#8#>>4,00" }, }, { PrintText: { Text: "2-рое поле:<#8#>>1544,00" }, }, // Строка с печатью текста определенным шрифтом { PrintText: { Text: "<<->>" }, }, { PrintText: { Text: "Шрифт № 1", Font: 1, // 1-4, 0 - по настройкам ККМ Intensity: 15, // 1-15, 0 - по настройкам ККМ }, }, { PrintText: { Text: "Шрифт № 2", Font: 2, // 1-4, 0 - по настройкам ККМ Intensity: 10, // 1-15, 0 - по настройкам ККМ }, }, { PrintText: { Text: "Шрифт № 3", //Text: "Это мега крутой товар. Продается во всех магазинах страны. Покупайте только у нас", Font: 3, // 1-4, 0 - по настройкам ККМ Intensity: 5, // 1-15, 0 - по настройкам ККМ }, }, { PrintText: { Text: "Шрифт № 4", Font: 4, // 1-4, 0 - по настройкам ККМ Intensity: 0, // 1-15, 0 - по настройкам ККМ }, }, { PrintText: { Text: "<<*>>" }, }, // Строка с печатью фискальной строки { Register: { // Наименование товара 64 символа Name: "Сапоги женские DF-3099-1", // Количество товара (3 знака после запятой) Quantity: 3, // Цена за шт. без скидки (2 знака после запятой) Price: 100, // Конечная сумма строки с учетом всех скидок/наценок; (2 знака после запятой) Amount: 0.01, // Отдел, по которому ведется продажа Department: 0, // НДС в процентах или ТЕГ НДС: 0 (НДС 0%), 10 (НДС 10%), 18 (НДС 18%), -1 (НДС не облагается), 118 (НДС 18/118), 110 (НДС 10/110) Tax: 18, //Штрих-код EAN13 для передачи в ОФД (не печатется) EAN13: "1254789547853", // Признак способа расчета. тег ОФД 1214. Для ФФД.1.05 и выше обязательное поле // 1: "ПРЕДОПЛАТА 100% (Полная предварительная оплата до момента передачи предмета расчета)" // 2: "ПРЕДОПЛАТА (Частичная предварительная оплата до момента передачи предмета расчета)" // 3: "АВАНС" // 4: "ПОЛНЫЙ РАСЧЕТ (Полная оплата, в том числе с учетом аванса в момент передачи предмета расчета)" // 5: "ЧАСТИЧНЫЙ РАСЧЕТ И КРЕДИТ (Частичная оплата предмета расчета в момент его передачи с последующей оплатой в кредит )" // 6: "ПЕРЕДАЧА В КРЕДИТ (Передача предмета расчета без его оплаты в момент его передачи с последующей оплатой в кредит)" // 7: "ОПЛАТА КРЕДИТА (Оплата предмета расчета после его передачи с оплатой в кредит )" SignMethodCalculation: 4, // Признак предмета расчета. тег ОФД 1212. Для ФФД.1.05 и выше обязательное поле // 1: "ТОВАР (наименование и иные сведения, описывающие товар)" // 2: "ПОДАКЦИЗНЫЙ ТОВАР (наименование и иные сведения, описывающие товар)" // 3: "РАБОТА (наименование и иные сведения, описывающие работу)" // 4: "УСЛУГА (наименование и иные сведения, описывающие услугу)" // 5: "СТАВКА АЗАРТНОЙ ИГРЫ (при осуществлении деятельности по проведению азартных игр)" // 6: "ВЫИГРЫШ АЗАРТНОЙ ИГРЫ (при осуществлении деятельности по проведению азартных игр)" // 7: "ЛОТЕРЕЙНЫЙ БИЛЕТ (при осуществлении деятельности по проведению лотерей)" // 8: "ВЫИГРЫШ ЛОТЕРЕИ (при осуществлении деятельности по проведению лотерей)" // 9: "ПРЕДОСТАВЛЕНИЕ РИД (предоставлении прав на использование результатов интеллектуальной деятельности или средств индивидуализации)" // 10: "ПЛАТЕЖ (аванс, задаток, предоплата, кредит, взнос в счет оплаты, пени, штраф, вознаграждение, бонус и иной аналогичный предмет расчета)" // 11: "АГЕНТСКОЕ ВОЗНАГРАЖДЕНИЕ (вознаграждение (банковского)платежного агента/субагента, комиссионера, поверенного или иным агентом)" // 12: "СОСТАВНОЙ ПРЕДМЕТ РАСЧЕТА (предмет расчета, состоящем из предметов, каждому из которых может быть присвоено вышестоящее значение" // 13: "ИНОЙ ПРЕДМЕТ РАСЧЕТА (предмет расчета, не относящемуся к предметам расчета, которым может быть присвоено вышестоящее значение" SignCalculationObject: 1, // Единица измерения предмета расчета. Можно не указывать MeasurementUnit: "пара", // Код товарной номенклатуры Тег ОФД 1162 (Новый классификатор товаров и услуг. Пока не утвержден налоговой. Пока не указывать) // 4 символа – код справочника; последующие 8 символовт – код группы товаров; последние 20 символов – код идентификации товара NomenclatureCode: "", // Признак агента. Тег ОФД 1057, 1222. Поле не обязательное. Можно вообще не указывать. // 0: "Банковский платежный агент:" Оказание услуг пользователем, являющимся банковским платежным агентом // 1: "Банковский платежный субагент:" Оказание услуг пользователем, являющимся банковским платежным субагентом // 2: "Платежный агент:" Оказание услуг пользователем, являющимся платежным агентом // 3: "Платежный субагент:" Оказание услуг пользователем, являющимся платежным субагентом // 4: "Поверенный:" Оказание услуг пользователем, являющимся поверенным // 5: "Комиссионер:" Оказание услуг пользователем, являющимся комиссионером // 6: "Агент:" Оказание услуг пользователем, являющимся агентом и не являющимся банковским платежным агентом (субагентом), платежным агентом (субагентом), поверенным, комиссионером AgentSign: 2, // Данные агента. тег ОД 1223. // Поле не обязательное. Обязательно если установлено поле "AgentSign" // Можно вообще не указывать. AgentData: { // Операция платежного агента тег ОФД 1044 PayingAgentOperation: "95315", // Телефон платежного агента тег ОФД 1073 PayingAgentPhone: "+79995554422", // Телефон оператора по приему платежей тег ОФД 1074 ReceivePaymentsOperatorPhone: "+72223334455", // Телефон оператора перевода тег ОФД 1075 MoneyTransferOperatorPhone: "+74447776655", // Наименование оператора перевода тег ОФД 1026 MoneyTransferOperatorName: "ООО Рога и копыта", // Адрес оператора перевода тег ОФД 1005 MoneyTransferOperatorAddress: "Москва, зубовский бульвар 44", // ИНН оператора перевода тег ОФД 1016 MoneyTransferOperatorVATIN: "430601071197" }, // Данные поставщика платежного агента. тег ОФД 1224 // Поле не обязательное. Обязательно если установлено поле "AgentSign" // Можно вообще не указывать. PurveyorData: { // Телефон поставщика тег ОД 1171 PurveyorPhone: "+76662229955", // Наименование поставщика тег ОФД 1225 PurveyorName: "ООО 'Гаражик в деревне'", // ИНН поставщика тег ОФД 1226 PurveyorVATIN: "430601071197" }, // Данные для ЕГАИС системы, можно не указывать EGAIS: { Barcode: "22N0000154NUCPRZ3R8381461004001003499NKAQ0ZBUVDNV62JQAR69PEV878RO93V", Ean: "3423290167937", Volume: 0.7500, }, }, BarCode: { // Тип штрих-кода: "EAN13", "CODE39", "CODE128", "QR", "PDF417". BarcodeType: "EAN13", // Значение штрих-кода Barcode: "1254789547853", }, }, { PrintText: { Text: "<<->>" }, }, // Полная строка: И текст и регистрация и бар-код { PrintText: { Text: "Это мега крутой товар. Продается во всех магазинах страны. Покупайте только у нас", Font: 4, // 1-4, 0 - по настройкам ККМ Intensity: 0, // 1-15, 0 - по настройкам ККМ }, Register: { // Наименование товара 64 символа Name: "Шаровары мужские красные: НИМБУС-2000", // Количество товара (3 знака после запятой) Quantity: 3, // Цена за шт. без скидки (2 знака после запятой) Price: 100, // Конечная сумма строки с учетом всех скидок/наценок; (2 знака после запятой) Amount: 0.00, // Отдел, по которому ведется продажа (2 знака после запятой) Department: 1, // НДС в процентах или ТЕГ НДС: 0 (НДС 0%), 10 (НДС 10%), 18 (НДС 18%), -1 (НДС не облагается), 118 (НДС 18/118), 110 (НДС 10/110) Tax: -1, //Штрих-код EAN13 для передачи в ОФД (не печатется) EAN13: "1254789547853", // Признак способа расчета. тег ОФД 1214. Для ФФД.1.05 и выше обязательное поле SignMethodCalculation: 1, // Признак предмета расчета. тег ОФД 1212. Для ФФД.1.05 и выше обязательное поле SignCalculationObject: 1, // Единица измерения предмета расчета. Можно не указывать MeasurementUnit: "шт", // Код товарной номенклатуры Тег ОФД 1162 (Новый классификатор товаров и услуг. Пока не утвержден налоговой. Пока не указывать) // 4 символа – код справочника; последующие 8 символов – код группы товаров; последние 20 символов – код идентификации товара NomenclatureCode: "", // Данные для ЕГАИС системы, можно не указывать }, BarCode: { // Тип штрих-кода: "EAN13", "CODE39", "CODE128", "QR", "PDF417". BarcodeType: "QR", // Значение штрих-кода Barcode: "12345DFG Proba pera, Print barcode 1234567890.", //Barcode: "12345DFG Proba pera, Print barcode 1234567890. 12345DFG Proba pera, Print barcode 1234567890, Print barcode 1, Print barcode 2, Print barcod"+ // "12345DFG Proba pera, Print barcode 1234567890.", }, }, { BarCode: { // Тип штрих-кода: "EAN13", "CODE39", "CODE128", "QR", "PDF417". BarcodeType: "PDF417", // Значение штрих-кода Barcode: "12345DFG Proba pera, Print barcode 1234567890.", }, }, ], // Наличная оплата (2 знака после запятой) Cash: 800, // Сумма электронной оплаты (2 знака после запятой) ElectronicPayment: 0.01, // Сумма из предоплаты (зачетом аванса) (2 знака после запятой) AdvancePayment: 0, // Сумма постоплатой(в кредит) (2 знака после запятой) Credit: 0, // Сумма оплаты встречным предоставлением (сертификаты, др. мат.ценности) (2 знака после запятой) CashProvision: 0, }; //Если чек без ШК то удаляем строку с ШК if (IsBarCode == false) { //Data.Cash = 100; for (var i = 0; i < Data.CheckStrings.length; i++) { if (Data.CheckStrings[i] != undefined && Data.CheckStrings[i].BarCode != undefined) { Data.CheckStrings[i].BarCode = null; }; if (Data.CheckStrings[i] != undefined && Data.CheckStrings[i].PrintImage != undefined) { Data.CheckStrings[i].PrintImage = null; }; }; }; //Скидываем данные об агенте - т.к.у Вас невярнека ККТ не зарегистрирована как Агент. for (var i = 0; i < Data.CheckStrings.length; i++) { if (Data.CheckStrings[i] != undefined && Data.CheckStrings[i].Register != undefined) { Data.CheckStrings[i].Register.AgentSign = null; Data.CheckStrings[i].Register.AgentData = null; Data.CheckStrings[i].Register.PurveyorData = null; }; }; // Вызов команды ExecuteCommand(Data); // Возвращается JSON: //{ // "CheckNumber": 1, // Номер документа // "SessionNumber": 23, // Номер смены // "URL": "https://ofd.ru/rec/7708806062/0000000006018032/9999078900002287/106/4160536402", // "QRCode": "t=20170904T140900&s=0.01&fn=9999078900002287&i=106&fp=4160536402&n=1", // "Command": "RegisterCheck", // "Error": "", // Текст ошибки если была - обязательно показать пользователю - по содержанию ошибки можно в 90% случаях понять как ее устранять // "Status": 0 // Ok = 0, Run(Запущено на выполнение) = 1, Error = 2, NotFound(устройство не найдено) = 3, NotRun = 4 //} }Ну, это попроще несколько (на первый взгляд). Конечно, содержимое всего перечня полей на простом МК не подготовишь. Можно попытаться забубенить. Пишите wrk.sadman@gmail.com
Ну, это попроще несколько (на первый взгляд). Конечно, содержимое всего перечня полей на простом МК не подготовишь. Можно попытаться забубенить. Пишите wrk.sadman@gmail.com
Хорошо, давайте в понедельник я Вам напишу, спсибо.
Р е а л и з у е м о - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно, гарантии
sadman41, учитывай, что там наверняка HTTPS.
Сделаю на ESP32 за 20000 (если предооставите описание данных) или за 25000 (без описания). Сразу скажу, что передача ОДНОГО чека будет длиться от 3.5 секунд.
brokly(at)mail.ru
Пока кто-то ражл, а кто-то плакал, грамотные люди выполнили проект. Да, может я не самый лучший заказчик, может я не четко дал ТЗ. Но человек взялся, разобрался и сделалал. Спасибо sadman41 за проделанную работу, в кратчайшие сроки. За желание разобраться в проблеме. С уверенностю могу рекомендовать sadman41 как человека, без какого либо кидалова, который четко объяснил за что берет свои деньги. Спасибо.
Если это мне, то я плакал только примерно 1 минуту сразу просле прочтения вашего ТЗ. Сейчас три проекта делаю, плакать и смеяться некогда и слава богу мои заказчики адекватные люди с нормальными ТЗ. А с садманом вам повезло, ведь не просто так у него ник такой веселый, карма наверное. Он был ваш единственный варик, ибо говоря иносказательно - не все в нашей клинигнговой компании готовы чистить сортиры.
Если это мне, то я плакал только примерно 1 минуту сразу просле прочтения вашего ТЗ. Сейчас три проекта делаю, плакать и смеяться некогда и слава богу мои заказчики адекватные люди с нормальными ТЗ. А с садманом вам повезло, ведь не просто так у него ник такой веселый, карма наверное. Он был ваш единственный варик, ибо говоря иносказательно - не все в нашей клинигнговой компании готовы чистить сортиры.
Мда уж, хорошее мнение у вас о коллегах по цеху. Не мое это дело, работайте дальше. И проще надо быть. Я не специалист в выставлении ТЗ, но у меня была проблема, и спасибо что есть люди которые могут помочь, и разобраться в проблеме. А не просто картинку кинуть и поржать, поплакать и что там еще любят делать ... Далее нет смысла вести диалог. Ибо не для срача данный форум.
Если это мне, то я плакал только примерно 1 минуту сразу просле прочтения вашего ТЗ. Сейчас три проекта делаю, плакать и смеяться некогда и слава богу мои заказчики адекватные люди с нормальными ТЗ. А с садманом вам повезло, ведь не просто так у него ник такой веселый, карма наверное. Он был ваш единственный варик, ибо говоря иносказательно - не все в нашей клинигнговой компании готовы чистить сортиры.
Мда уж, хорошее мнение у вас о коллегах по цеху. Не мое это дело, работайте дальше. И проще надо быть. Я не специалист в выставлении ТЗ, но у меня была проблема, и спасибо что есть люди которые могут помочь, и разобраться в проблеме. А не просто картинку кинуть и поржать, поплакать и что там еще любят делать ... Далее нет смысла вести диалог. Ибо не для срача данный форум.
Если вы не поняли, то это был комплимент садману. Респект и уважуха ему за его терпеливость, крепкие нервы, способность понимать безграмотные мутные ТЗ, доводить до конца проекты неадекватных заказчиков. Надеюсь вы не поскупились с оплатой его услуг.
[/quote]
Если вы не поняли, то это был комплимент садману. Респект и уважуха ему за его терпеливость, крепкие нервы, способность понимать безграмотные мутные ТЗ, доводить до конца проекты неадекватных заказчиков. Надеюсь вы не поскупились с оплатой его услуг.
[/quote]
Возможно не понял. Оплата дело тонкое. Мы договорились и он сделал, за что ему еще раз спасибо. я в свою очередь не кинул и все оплатил.