:: Visual Foxpro, Foxpro for DOS
Re: Новая касса АТОЛ -30Ф
Tokarev

Сообщений: 207
Откуда: Заречный
Дата регистрации: 05.05.2005
А можно рабочий пример пробития чека с методами
BeginItem();EndItem();
А то мне тоже необходимо
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Василий

Сообщений: 682
Откуда: Москва
Дата регистрации: 19.10.2000
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
// // // ---------- Чек прихода с отправкой электронного чека покупателю ---------- //
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
driver.NewDocument();
// Mode - Режим:
// 0 - Выбора
// 1 - Регистрации
// 2 - Отчётов без гашения
// 3 - Отчётов с гашением
driver.Mode = 1;
driver.SetMode();
// Записать должность и ФИО кассира
driver.AttrNumber = 1021;
driver.AttrValue = "Старший кассир Иванов И.И.";
driver.WriteAttribute();
// Записать ИНН кассира
driver.AttrNumber = 1203;
driver.AttrValue = "526317984689";
driver.WriteAttribute();
// CheckType - Тип чека:
// 1 - Приход
// 2 - Возврат прихода
// 4 - Расход
// 5 - Возврат расхода
// 7 - Коррекция прихода
// 9 - Коррекция расхода
driver.CheckType = 1;
// CheckMode - Режим формирования чека:
// 0 - только в электронном виде без печати на чековой ленте
// 1 - печатать на чековой ленте
driver.CheckMode = 1;
driver.OpenCheck();
// Применяемая система налогооблажения в чеке:
// ОСН - 1
// УСН доход - 2
// УСН доход-расход - 4
// ЕНВД - 8
// ЕСН - 16
// ПСН - 32
driver.AttrNumber = 1055;
driver.AttrValue = 1;
driver.WriteAttribute();
// Запись контакта покупателя для отправки электронного чека
driver.AttrNumber = 1008;
driver.AttrValue = "+79091235566";
driver.WriteAttribute();
// Регистрация товара или услуги
driver.BeginItem();
driver.Name = "Детсткое питание Тёма";
driver.Price = 47.70;
driver.Quantity = 6;
// Если значение |Summ - Price * Quantity| > 0.01 , то ККТ посчитает, что была скидка и будет при необходимости преобразовывать позицию, разделяя её на 2
driver.Summ = 286.20;
// Признак предмета расчёта. Свойство ItemType может принимать значения:
// 1 - товар, за исключением подакцизного товара
// 2 - подакцизный товар
// 3 - работа
// 4 - услуга
// 5 - приём ставок при деятельность по организации и проведению азартных игр
// 6 - выплата выигрышей в азартных играх
// 7 - реализация лотерейных билетов или ставок при деятельность по организации и проведению лотерей
// 8 - выплата выигрышей в лотереях
// 9 - прав на использование результатов интеллектуальной деятельности или средств индивидуализации
// 10 - аванс, задаток, предоплата, кредит, взносе в счет оплаты, пени, штраф, вознаграждение, бонус и иной аналогичный предмет расчета
// 11 - предмет расчета, состоящий из предметов, каждому из которых может быть присвоено значение от 0 до 10 (набор)
// 12 - предмет расчета, не относящийся к предметам расчета, которым может быть присвоено значение от 0 до 11
driver.ItemType = 1;
// Признак способа расчёта. Свойство PaymentMode может принимать значения:
// 1 - Полная предварительная оплата до момента передачи предмета расчета
// 2 - Частичная предварительная оплата до момента передачи предмета расчета
// 3 - Аванс
// 4 - Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчета
// 5 - Частичная оплата предмета расчета в момент его передачи с последующей оплатой в кредит
// 6 - Передача предмета расчета без его оплаты в момент его передачи с последующей оплатой в кредит
// 7 - Оплата предмета расчета после его передачи с оплатой в кредит (оплата кредита)
driver.PaymentMode = 1;
driver.Department = 0;
// TaxTypeNumber - Номер налога:
// 0 - Налог из секции
// 1 - НДС 0%
// 2 - НДС 10%
// 3 - НДС 18%
// 4 - без НДС
// 5 - НДС 10/110
// 6 - НДС 18/118
driver.TaxTypeNumber = 2;
// Способ исчисления суммы налога. Доступные значения TaxMode:
// 0 - налог расчитывается от суммы позиции
// 1 - налог расчитывается от цены позиции
driver.TaxMode = 1;
// Сумма налога TaxSumm. Если передаётся 0, то ККТ считает самостоятельно по TaxTypeNumber и TaxMode. В противном случае в ОФД отправляется переданная сумма, но при значении настройки Т2Р1П114 бит 1 = 1 ККТ бедет осуществлять контроль переданных данных, при чём контроль в будущем нельзя будет отключить (Русинова).
driver.TaxSumm = Math.round(47.70 * 10 / 110 * 100) / 100;
// Скидка больше не изменяет сумму позиции, теперь она просто добавляет информационную печать. Необходимо рассчитывать в кассовом ПО цену со скидкой, а информацию по начисленным скидкам печатать нефискальной печатью и не передавать скидку в ККМ, поэтому код для начисления скидки закомментирован
// driver.DiscountValue = 10;
// // DiscountType - Тип скидки:
// // 0 - суммовая
// // 1 - процентная
// driver.DiscountType = 0;
driver.EndItem();
driver.Caption = "В том числе скидка: 5.30";
driver.PrintString();
driver.Caption = "Цена без скидки: 53.00";
driver.PrintString();
driver.BeginItem();
driver.Name = "Коньяк Победа 0,5";
driver.Price = 813.50;
driver.Quantity = 1;
// Если значение |Summ - Price * Quantity| > 0.01 , то ККТ посчитает, что была скидка и будет при необходимости преобразовывать позицию, разделяя её на 2
driver.Summ = 813.50;
// Признак предмета расчёта. Свойство ItemType может принимать значения:
// 1 - товар, за исключением подакцизного товара
// 2 - подакцизный товар
// 3 - работа
// 4 - услуга
// 5 - приём ставок при деятельность по организации и проведению азартных игр
// 6 - выплата выигрышей в азартных играх
// 7 - реализация лотерейных билетов или ставок при деятельность по организации и проведению лотерей
// 8 - выплата выигрышей в лотереях
// 9 - прав на использование результатов интеллектуальной деятельности или средств индивидуализации
// 10 - аванс, задаток, предоплата, кредит, взносе в счет оплаты, пени, штраф, вознаграждение, бонус и иной аналогичный предмет расчета
// 11 - предмет расчета, состоящий из предметов, каждому из которых может быть присвоено значение от 0 до 10 (набор)
// 12 - предмет расчета, не относящийся к предметам расчета, которым может быть присвоено значение от 0 до 11
driver.ItemType = 2;
// Признак способа расчёта. Свойство PaymentMode может принимать значения:
// 1 - Полная предварительная оплата до момента передачи предмета расчета
// 2 - Частичная предварительная оплата до момента передачи предмета расчета
// 3 - Аванс
// 4 - Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчета
// 5 - Частичная оплата предмета расчета в момент его передачи с последующей оплатой в кредит
// 6 - Передача предмета расчета без его оплаты в момент его передачи с последующей оплатой в кредит
// 7 - Оплата предмета расчета после его передачи с оплатой в кредит (оплата кредита)
driver.PaymentMode = 1;
driver.Department = 0;
// TaxTypeNumber - Номер налога:
// 0 - Налог из секции
// 1 - НДС 0%
// 2 - НДС 10%
// 3 - НДС 18%
// 4 - без НДС
// 5 - НДС 10/110
// 6 - НДС 18/118
driver.TaxTypeNumber = 3;
// Способ исчисления суммы налога. Доступные значения TaxMode:
// 0 - налог расчитывается от суммы позиции
// 1 - налог расчитывается от цены позиции
driver.TaxMode = 1;
// Сумма налога TaxSumm. Если передаётся 0, то ККТ считает самостоятельно по TaxTypeNumber и TaxMode. В противном случае в ОФД отправляется переданная сумма, но при значении настройки Т2Р1П114 бит 1 = 1 ККТ бедет осуществлять контроль переданных данных, при чём контроль в будущем нельзя будет отключить (Русинова).
driver.TaxSumm = Math.round(813.50 * 18 / 118 * 100) / 100;
// Скидка больше не изменяет сумму позиции, теперь она просто добавляет информационную печать. Необходимо рассчитывать в кассовом ПО цену со скидкой, а информацию по начисленным скидкам печатать нефискальной печатью и не передавать скидку в ККМ, поэтому код для начисления скидки закомментирован
// driver.DiscountValue = 10;
// // DiscountType - Тип скидки:
// // 0 - суммовая
// // 1 - процентная
// driver.DiscountType = 0;
driver.EndItem();
// Отброс копеек (округление чека без распределения по позициям). Скидка на чек доступна только для его округления до рубля. Таким образом недоступны: надбавки, назначение "на позицию", процентные значения. SummCharge(), PercentsCharge(), PercentsDiscount () и ResetChargeDiscount () более недоступны
// Destination - Назначение скидки:
// 0 - на чек
// 1 - на позицию (недоступно)
driver.Destination = 0;
driver.Summ = 0.70;
driver.SummDiscount();
// Нефискальная печать с информацией по скидкам чека
driver.Caption = "--Скидки по чеку--";
driver.PrintString();
driver.Caption = "Сумма чека без скидок 1131.50";
driver.PrintString();
driver.Caption = "Скидки по карте: 31.80";
driver.PrintString();
driver.Caption = "Округление: 0.70";
driver.PrintString();
// TypeClose - Тип оплаты:
// 0 - Наличными
// 1 - Электронными средствами платежа
driver.TypeClose = 0;
driver.Summ = 1500.00;
driver.Payment();
driver.CloseCheck();
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Кто нибудь устанавливал 9й драйвер?
И еще, перепрошили на 1.05 шрифт самого чека стал очень мелким. И никаким способом, увеличить не удается(


------------------
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Василий

Сообщений: 682
Откуда: Москва
Дата регистрации: 19.10.2000
Аспид
Кто нибудь устанавливал 9й драйвер?
Я бы рекомендовал сразу 10, в режиме Web-сервера.
По словам сотрудников Атол развивать они будут именно десятую версию драйвера.

Аспид
И еще, перепрошили на 1.05 шрифт самого чека стал очень мелким
У нас изменений не заметил.
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Василий
У нас изменений не заметил.
Может кто прошивал, что накосячили(
Сейчас не до них, позже звякну.
Главное отчеты печатаются нормально, а тело чека, что формирую, малюсенькое стало.
И их настройки, как не меняю шрифты - все одно и то же.
Василий
Я бы рекомендовал сразу 10, в режиме Web-сервера.
А может с 8.14 проживем? (вопрос как долго)


------------------
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Василий

Сообщений: 682
Откуда: Москва
Дата регистрации: 19.10.2000
Аспид
А может с 8.14 проживем? (вопрос как долго)
Минимум до конца года.
Проверьте все ли хорошо со ставками НДС, после перепрошивки. У них была карусель индексами ставок.
С версии 8.16.1 вроде устаканилось



Исправлено 1 раз(а). Последнее : Василий, 19.06.18 15:50
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Василий
Проверьте все ли хорошо со ставками НДС, после перепрошивки.
У нас всегда 1 НДС.
Попробовал сейчас, пишет
Сумма НДС 18/118 4140.00

Сумма верная, остальные слова, не знаю, надо у бухов спросить, что раньше было, вряд ли кто помнит)))

Про 10й почитал на форуме Атола.
Как то грустно... и рановато, показалось.
Но перспективы рисуют радужные.
Вообще отвечающий там... он волонтер что ли? Бесплатно работает.


------------------
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Действительно, беда с НДС. Должно стоять 18%, а стоит 18/118
Василий
С версии 8.16.1 вроде устаканилось
Не могу такой найти(
последний что нашел 8.16.03
Где взять нужный?
зы. Дошло. Буду пробовать.

НДС заработало. Восприняло настройку. Теперь пишет 18%
Шрифты, по прежнему неуправляемы(
Но вроде как всем по барабану (вчера в 5ке получил, таким же мелким)
Пожалуй и забью, до настойчивых просьб.


------------------




Исправлено 2 раз(а). Последнее : Аспид, 21.06.18 09:14
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
JekaIvanov

Сообщений: 21
Дата регистрации: 12.12.2011
Я для драйвера Атол 10-ой версии разработал DLL-обертку, которая, по сути,транслирует команды из Фокса в драйвер Атола и обратно, попутно преобразуя символы из одной кодировки в другую. Если кому-то интересно, могу выложить.
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Василий

Сообщений: 682
Откуда: Москва
Дата регистрации: 19.10.2000
Интересно.
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
JekaIvanov

Сообщений: 21
Дата регистрации: 12.12.2011
Скачать можно здесь:
yadi.sk

В архиве:
AtolFox.dll - собственно обертка, разработана на MS Visual C++ 2015, необходимые файлы от Microsoft есть в архиве
FPTR10.dll - библиотека взаимодействия с драйвером от АТОЛа
atolfoxx.h - объявление констант, аналогичное АТОЛ
тестовый проект на Фоксе, который открывает смену, печатает чек на приход, чеки на внесение и изъятие средств, Х- и Z-отчеты.

все процедуры я назвал по аналогии с примерами из описания драйвера. несколько процедур - fptrXReport, fptrZReport, fptrGetErrorDescription, fptrCashierRegistration, fptrPrintString реализуют всю логику внутри. В остальном - работа аналогична представленной в описании от Атол (с++)

Не делал сервисный функционал (программирование ККМ). Не реализованы функции работы с массивами - libfptr_set_param_bytearray и libfptr_get_param_bytearray
Идеи и предложения принимаются.



Исправлено 1 раз(а). Последнее : JekaIvanov, 27.06.18 10:19
Ratings: 0 negative/4 positive
Re: Новая касса АТОЛ -30Ф
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Интересно. Плюсанул
Но вот какой вопрос, совершенно без подкавырки.
Поскольку 10 не ставил.
В чем смысл этой прослойки между драйвером и ПО?

JekaIvanov
попутно преобразуя символы из одной кодировки в другую.
Может в этом? Там что то с кодировкой не то?


------------------
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Василий

Сообщений: 682
Откуда: Москва
Дата регистрации: 19.10.2000
Лично мне 10-ка понравилась тем что у нее появился WEb сервер и обмен можно организовать jSonaми.

Разработка JekaIvanov, на текущий момент, интересна из спортивного интереса.
Но не исключено что и ее буду использовать.
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
JekaIvanov

Сообщений: 21
Дата регистрации: 12.12.2011
Аспид
Интересно. Плюсанул
Но вот какой вопрос, совершенно без подкавырки.
Поскольку 10 не ставил.
В чем смысл этой прослойки между драйвером и ПО?

JekaIvanov
попутно преобразуя символы из одной кодировки в другую.
Может в этом? Там что то с кодировкой не то?

во-первых, АТОЛ уже не обещают поддержку 9 версий драйверов буквально со следующего года
во-вторых, я не смог разобраться с их web-сервером (буквально завтра надо уже сдавать проект, а в понедельник я получил аппарат для тестов)
в-третьих, dll Атола 10-ой версии работает с юникод символами. И я не смог добиться, чтобы фокс корректно переводил в юникод русские буквы, а переведенные фоксом латинские команды как-то странно отрабатывал их драйвер выдавая в логи "необработанные исключения", а меня осыпая ошибками.
в-четвертых, я не понял, как они работают с указателем на свою структуру и как это потом передать из фокса:

где-то так:
libfptr_handle fptr;
libfptr_create(&fptr);

а где-то так:
libfptr_print_text(fptr);

Глубоко разбираться было некогда
поэтому я и принял для себя решение сделать "обертку", которая все взаимодействие возьмет на себя, а мне оставит только командную часть.
Надо сказать, что это получилось достаточно быстро.
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
JekaIvanov

Сообщений: 21
Дата регистрации: 12.12.2011
Плюс попутно заворачиваю Атоловские структуры, вида
libfptr_set_param_str(fptr, LIBFPTR_PARAM_COMMODITY_NAME, L"Товар");
libfptr_set_param_double(fptr, LIBFPTR_PARAM_PRICE, 100);
libfptr_set_param_double(fptr, LIBFPTR_PARAM_QUANTITY, 5.15);
libfptr_set_param_int(fptr, LIBFPTR_PARAM_TAX_TYPE, LIBFPTR_TAX_VAT0);
libfptr_registration(fptr);
в простые функции
int fptrRegistrationX(char* name, double price, double quantity, double cost, int taxtype, int department, int ppr, int psr)



Исправлено 1 раз(а). Последнее : JekaIvanov, 27.06.18 12:59
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
JekaIvanov Все ясно.
И еще раз спасибо.
Судя по описанным сложностям, теперь у нас есть 2 пути из фокса, Прямо с их веб-сервером. И ваша длл.


------------------
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Victoriacom

Сообщений: 111
Дата регистрации: 08.12.2010
По поводу мелкого шрифта.
Только при использовании теста драйвера 9.8!
Изменить номер шаблона с 2 на 1.



Исправлено 1 раз(а). Последнее : Victoriacom, 19.09.18 17:47
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 23 (Гостей: 23)

© 2000-2024 Fox Club 
Яндекс.Метрика