Штрих ONLINE

Печать кассовых и бумажных чеков по занесению платежа в биллинг.

Re: Штрих ONLINE

Сообщение dimOn » 18 мар 2019, 12:35

именно для мыла есть отдельный метод специально обученный:

ru.bitel.bgbilling.plugins.cashcheck.server.CashCheckUtils

/**
* Возвращает значение email по cid и pid
* Поддерживает и mail-параметр (если несколько мыл, то вернётся первое) и текстовый параметр.
*/
public static String getEmailParam(Connection con, int cid, int pid)
throws BGException
{
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: Штрих ONLINE

Сообщение dimOn » 18 мар 2019, 12:35

учтите что endCreate не вызывается для auto- и delay- платежей
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: Штрих ONLINE

Сообщение chedmi » 18 мар 2019, 16:57

$this->bbcode_second_pass_quote('dimOn', '')чтите что endCreate не вызывается для auto- и delay- платежей


Получилось вытащить email вот так:
String mail = "" + contractService.contractParameterGet(cid, 33);
Работает в endCreate()
Куда его нужно вставить для автоплатежей ? В addPaymentAuto() ?
chedmi
 
Сообщения: 188
Зарегистрирован: 11 мар 2015, 11:06

Re: Штрих ONLINE

Сообщение chedmi » 18 мар 2019, 16:57

$this->bbcode_second_pass_quote('Phricker', '[')code]ServerContext serverContext = ServerContext.get();
ContractService contractService = serverContext.getService(ContractService.class, 0);
contractService.contractParameterGet(contractId, paramId);[/code]
Либо через тот же ContractParameterManager как в методе addPayment


Спасибо. Это помогло. Только еще пара импортов понадобилась :)
chedmi
 
Сообщения: 188
Зарегистрирован: 11 мар 2015, 11:06

Re: Штрих ONLINE

Сообщение chedmi » 18 мар 2019, 17:09

$this->bbcode_second_pass_quote('dimOn', '')менно для мыла есть отдельный метод специально обученный:

ru.bitel.bgbilling.plugins.cashcheck.server.CashCheckUtils

/**
* Возвращает значение email по cid и pid
* Поддерживает и mail-параметр (если несколько мыл, то вернётся первое) и текстовый параметр.
*/
public static String getEmailParam(Connection con, int cid, int pid)
throws BGException
{


Ваш специальный метод как я понял делает тоже самое ?
Если параметр пустой он возвратит пустую строку ?
check.setCustomerEmail(mail) если mail пустой валит связь с кассой наглухо.
Нужна проверка перед вызовом...
В чем его профит ? И откуда брать con внутри endCreate() ?
chedmi
 
Сообщения: 188
Зарегистрирован: 11 мар 2015, 11:06
Вернуться к началу

Re: Штрих ONLINE

Сообщение dimOn » 18 мар 2019, 18:02

если пустой то возвратит null
его профит описан в явадоке метода: он работает для параметров разных типов и обрабатывает случай когда в mail-параметре несколько е-мейлов, что вернёт в этом случае contractParameterGet я не помню , скорее всего ничего хорошего для отправки в сервер печати.

не знаю что значит валит связь наглухо, наверное ошибка какая-то происходит
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: Штрих ONLINE

Сообщение dimOn » 18 мар 2019, 18:04

да, для автоплатежей вызывается только addPaymentAuto, всё нужно делать там, т.к. разбивать на два метода бессмысленно - в одном чеке не может быть нескольких платежей биллинга для автоплатежей, потому в отличие от addPayment метод addPaymentAuto не может вызваться многократно для одного чека.

> И откуда брать con внутри endCreate() ?

сохранить предварительно в ините , в точности как и в addPayment
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: Штрих ONLINE

Сообщение Phricker » 18 мар 2019, 18:04

$this->bbcode_second_pass_code('', 'check.setCustomerEmail(Utils.maskNull(mail))')
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn
Аватара пользователя
Phricker
Клиент
 
Сообщения: 5775
Зарегистрирован: 29 мар 2010, 23:11

Re: Штрих ONLINE

Сообщение dimOn » 18 мар 2019, 20:08

тока вот пустое оно не заполнит)

check.setCustomerEmail(mail != null ? mail : DEFAULT_EMAIL)
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: Штрих ONLINE

Сообщение chedmi » 19 мар 2019, 10:52

$this->bbcode_second_pass_quote('dimOn', '')сли пустой то возвратит null
его профит описан в явадоке метода: он работает для параметров разных типов и обрабатывает случай когда в mail-параметре несколько е-мейлов, что вернёт в этом случае contractParameterGet я не помню , скорее всего ничего хорошего для отправки в сервер печати.

не знаю что значит валит связь наглухо, наверное ошибка какая-то происходит


все верно, ошибка режима работы ФД или что-то в этом роде, дословно не записал...
chedmi
 
Сообщения: 188
Зарегистрирован: 11 мар 2015, 11:06
Вернуться к началу

Re: Штрих ONLINE

Сообщение dimOn » 19 мар 2019, 10:59

ну в смысле ККТ просто ругается и не печатает конкретный чек однократно. должно быть так. если от этого всё ломается - это косяк какой-то и такого быть не должно, надо логи разбирать
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: Штрих ONLINE

Сообщение chedmi » 19 мар 2019, 11:16

$this->bbcode_second_pass_quote('dimOn', '')у в смысле ККТ просто ругается и не печатает конкретный чек однократно. должно быть так. если от этого всё ломается - это косяк какой-то и такого быть не должно, надо логи разбирать


ККТ к счастью не ломается, с ней после этого можно дальше работать из 1С например, ломается кэшчексервер,
до перезапуска он не видит кассу.
если бы знал что это будет интересно, то сохранил бы логи, если опять вывалится (надеюсь что никогда :) ) - отпишусь
chedmi
 
Сообщения: 188
Зарегистрирован: 11 мар 2015, 11:06
Вернуться к началу

Re: Штрих ONLINE

Сообщение chedmi » 19 мар 2019, 11:20

$this->bbcode_second_pass_quote('dimOn', '')ока вот пустое оно не заполнит)

check.setCustomerEmail(mail != null ? mail : DEFAULT_EMAIL)


сделал немного по другому - если mail значение не удовлетворяет условию, то check.setCustomerEmail просто не вызывается.
contractParameterGet может возвратить и "" (длина 0) и null (длина 4), но это совсем не проблема.
несколько адресов тоже не проблема.
сейчас работает нормально, будем наблюдать что будет дальше.
chedmi
 
Сообщения: 188
Зарегистрирован: 11 мар 2015, 11:06
Вернуться к началу

Re: Штрих ONLINE

Сообщение dimOn » 19 мар 2019, 11:48

если у вас задан электронный чек (без печати на бумагу как вариант) и не задано setCustomerEmail - будет ошибка. но тут речь про атол только
несколько адресов тоже не сработают совершенно точно на ККТ, не очень понятно как так не проблема, вам в любом случае надо руками разбирать тогда этот вариант

> до перезапуска он не видит кассу

это очень странная ошибка должна быть, было бы неплохо логи посмотреть.
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: Штрих ONLINE

Сообщение marimo » 19 мар 2019, 12:08

"если у вас задан электронный чек (без печати на бумагу как вариант) и не задано setCustomerEmail - будет ошибка. но тут речь про атол только"

а подскажите модели Атол, у которых имеется возможность отключения вывода чека на бумагу (отправлять только электронный чек)?
marimo
 
Сообщения: 1
Зарегистрирован: 18 мар 2019, 16:58

Re: Штрих ONLINE

Сообщение chedmi » 19 мар 2019, 16:40

$this->bbcode_second_pass_quote('dimOn', '
')несколько адресов тоже не сработают совершенно точно на ККТ, не очень понятно как так не проблема, вам в любом случае надо руками разбирать тогда этот вариант

это очень странная ошибка должна быть, было бы неплохо логи посмотреть.


я и разбираю их руками а не проблема потому что разбирать не сложно)
если опять ошибка вывалится - обязательно скину вам лог...
chedmi
 
Сообщения: 188
Зарегистрирован: 11 мар 2015, 11:06
Вернуться к началу

Пред.

Вернуться в Плагин CashCheck

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron