реализованы возвраты, новый интерфейс для дин.кода

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

реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 20 июн 2017, 18:27

Для версий 5.2+ актуально на данный момент:
Возвраты работают через дин.код с новым интерфейсом CheckMaker. Старый интерфейс CheckBuilder тоже пока поддерживается, но возвраты работать не будут с ним.
События аналогично - поддерживаются пока, но без возвратов.

Обновиться.
Заменить:

$this->bbcode_second_pass_code('', 'import ru.bitel.bgbilling.plugins.cashcheck.server.CheckBuilder;

public class BlaBlaCheck
implements CheckBuilder')

на

$this->bbcode_second_pass_code('', 'import ru.bitel.bgbilling.plugins.cashcheck.server.CheckMaker;

public class BlaBlaCheck
extends CheckMaker')

Обратите внимание, что интерфейс заменён на абстрактный класс.
Добавить в этот дин.код метод(ы):

$this->bbcode_second_pass_code('', ' @Override
public void addPaymentRefund( Payment payment, Check check, Printer printer )
throws BGException
{
// этот обязательно добавить, например так:
check.addPayment( payment.getSumma(), payment.getContractTitle(), 0 );
}

@Override
public void endCreateRefund( int cid, Check check, Printer printer )
throws BGException
{
// этот не обязательно добавлять
}')

Внутри одного из этих методов подразумевается использовать те же самые методы типа:

$this->bbcode_second_pass_code('', 'check.setTax(1);
check.setPaymentType(1);
check.setCustomerEmail("test@test");
check.setOnlyElCheck(true);')

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

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 20 июн 2017, 18:30

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

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение borin » 23 июн 2017, 16:01

Добрый день!
Огромная благодарность за добавление данного функционала.

Возникли вопросы:
1) Мапинг типов расхода на ККТ
Приход делается так:
$this->bbcode_second_pass_code('', '# маппинг типов платежей на регистраторы
# pt.<id типа платежа>.fr=<список регистраторов, на которых разрешена печать платежа>
pt.3.fr=1
pt.4.fr=1
')
Как замапить расходы на ККТ?
client.gui.cashcheck.user.bov01.checkbox.mode=on Устанавливаем печатать чек безусловно, причем данная настройка влияет как на платеж так и на расход. Не все ведь расходы надо печатать.
2) Я так понимаю должны добавить типы расходов: Возврат по кассе и Возврат терминал
Теперь у нас есть два метода addPayment и addPaymentRefund, я так понимаю первый обрабатывает приход второй возврат.
В метод addPaymentRefund, передается объект Payment payment
payment.getPaymentTypeId() - будет возвращать тип расхода?
3) По поводу отправки чека на еmail, смотрю появились методы:
$this->bbcode_second_pass_code('', 'check.setCustomerEmail("test@test");
check.setOnlyElCheck(true);')
Но ведь не всегда нужно отправлять чек на email, это по желанию абонента. Получается при добавления платежа, должен быть чек-бокс указывающий на это. А в дин коде мы уже должны обработать отправку электронной версии чека вместо печати.
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Аватара пользователя
borin
 
Сообщения: 319
Зарегистрирован: 12 июл 2010, 21:22

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 23 июн 2017, 16:29

мапинга нет, планировалось как более упрощённая схема, чем печать чеков, т.к. эта функция скорее исключение, чем правило (например, "очереди" соответственно тоже нет)
это реально нужно, да?

$this->bbcode_second_pass_quote('', 'c')lient.gui.cashcheck.user.bov01.checkbox.mode=on Устанавливаем печатать чек безусловно, причем данная настройка влияет как на платеж так и на расход. Не все ведь расходы надо печатать.

это да, тут косяк, про эту галку помнилось, но для скорости пока оставили. надо убрать или сделать настройку для расходов отдельно? хотя там реально on никогда не нужно вроде как. ваши предложения?

$this->bbcode_second_pass_quote('', '2')) Я так понимаю должны добавить типы расходов: Возврат по кассе и Возврат терминал
Теперь у нас есть два метода addPayment и addPaymentRefund, я так понимаю первый обрабатывает приход второй возврат.
В метод addPaymentRefund, передается объект Payment payment
payment.getPaymentTypeId() - будет возвращать тип расхода?
Да, всё так, в оба метода приходит Payment , но в рефунде там данные из расхода. В явадоке по клаассу прописано это.
Он просто исторически остался так называться,не хотелось пока делать полный клон объекта с теми же полями и другим названием. Наверное, его как-то переименовать надо в идеаде. Или отнаследовать просто с переименованием пары методов.

$this->bbcode_second_pass_quote('', '')о ведь не всегда нужно отправлять чек на email, это по желанию абонента. Получается при добавления платежа, должен быть чек-бокс указывающий на это. А в дин коде мы уже должны обработать отправку электронной версии чека вместо печати.
(Для электронных написано, что всегда.)
Да, сейчас нет пока такого в GUI, надо по идее добавить в приход куда-то рядом со вводом суммы от клиента итд. И тогда уже передавать это в скрипт, где вы что-то сможете сделать с ним, например сделать setCustomerEmail. Вероятно, вы не совсем поняли назначение setOnlyElCheck и понятия "электронный чек". Если вы печатаете чек по галочке при добавлении прихода - вам не надо указывать setOnlyElCheck, это указание не печатать чек на бумаге! Или так можно в магазине например? Типа не печатать на бумаге, а чтобы только ушло на мыло чек и всё? Подразумевалось что это для платежей через всякие платёжные системы будет использоваться.
setCustomerEmail будет использоваться в любом случае же, это просто добавление одного атрибута, чтобы ККМ отправил его в ОФД, а ОФД отправил на мыло чек. Возможно в дополнение к бумажному.
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51
Вернуться к началу

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 23 июн 2017, 16:43

явадоки нет пока там, вот полный интерфейс CheckMaker:
$this->bbcode_second_pass_code('', 'package ru.bitel.bgbilling.plugins.cashcheck.server;

import java.sql.Connection;
import java.util.Set;

import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.plugins.cashcheck.common.Payment;
import ru.bitel.bgbilling.plugins.cashcheck.common.Printer;
import ru.bitel.bgbilling.plugins.cashcheck.server.bean.Check;
import ru.bitel.bgbilling.server.util.Setup;

/**
* Интерфейс (на самом деле абстрактный класс) для динамического кода - формирование чека, чека возврата.
* @author dimon
*/
public abstract class CheckMaker
{
/**
* Инициализация.
* Перегружать не обязательно.
* @param setup сетап серверный.
* @param con коннекшен.
* @param conSlave слейв-коннекшен.
* @throws BGException бросается при ошибке.
*/
public void init( Setup setup, Connection con, Connection conSlave )
throws BGException
{
// в принципе необязательно
}

/**
* Добавление позиции в чек. Для формирования вида каждой позиции в чеке -
* добавление каментов может каких итд итп.
* Перегружать обязательно.
* @param payment объект паймент (расширеный, используемый в плагине CashCheck).
* @param check чек, который надо сформировать в этом методе.
* @param printer текущий принтер, на который собираемся печатать.
* @throws BGException бросается при ошибке.
*/
public abstract void addPayment( Payment payment, Check check, Printer printer )
throws BGException;

/**
* Завершение формирование чека, подвал чека. Для формирования вида подвала
* чека - можно там что-то написать или просто или в зависимости от условий
* из чека.
* Перегружать не обязательно.
*
* @param cids
* один или несколько контрактИд. Несколько разных может быть,
* если договоры платежей в одном чеке зависимые друг от друга.
* @param check
* чек, который надо сформировать в этом методе.
* @param printer
* текущий принтер, на который собираемся печатать.
* @throws BGException
* бросается при ошибке.
*/
public void endCreate( Set<Integer> cids, Check check, Printer printer )
throws BGException
{
// в принципе необязательно
}

/**
* Добавление позиции в чек возврата платежа.
* В отличие от платёжного чека обычно нельзя печатать строки итд, потому должно быть
* там просто один addPayment внутри и установка доп.атрибутов (налоги, адрес покупателя итд).
* Перегружать обязательно.
* @param payment объект паймент (расширеный, используемый в плагине CashCheck, но там на самом деле все ид и типы для РАСХОДА из биллинга).
* @param check чек, который надо сформировать в этом методе.
* @param printer текущий принтер, на который собираемся печатать.
* @throws BGException бросается при ошибке.
*/
public abstract void addPaymentRefund( Payment payment, Check check, Printer printer )
throws BGException;

/**
* Завершение формирование чека возврата, подвал чека возврата.
* Возможно, для каких-то целей.
* Перегружать не обязательно.
*
* @param cid
* один контрактИд. Несколько разных в отличие от чека платежного быть не может.
* @param check
* чек, который надо сформировать в этом методе.
* @param printer
* текущий принтер, на который собираемся печатать.
* @throws BGException
* бросается при ошибке.
*/
public void endCreateRefund( int cid, Check check, Printer printer )
throws BGException
{
// в принципе необязательно
}
}')
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение borin » 23 июн 2017, 17:20

$this->bbcode_second_pass_quote('dimOn', '')апинга нет, планировалось как более упрощённая схема, чем печать чеков, т.к. эта функция скорее исключение, чем правило (например, "очереди" соответственно тоже нет) это реально нужно, да?

У нас всего один ККТ, и чек ВОЗВРАТ ПРИХОДА он будет печатать на принтер на котором печатается чек ПРИХОД, то можно оставлять как есть
$this->bbcode_second_pass_quote('dimOn', '')итата:
client.gui.cashcheck.user.bov01.checkbox.mode=on Устанавливаем печатать чек безусловно, причем данная настройка влияет как на платеж так и на расход. Не все ведь расходы надо печатать.

это да, тут косяк, про эту галку помнилось, но для скорости пока оставили. надо убрать или сделать настройку для расходов отдельно? хотя там реально on никогда не нужно вроде как. ваши предложения?

Тут получается, всегда будет вызываться addPaymentRefund, а следовательно если будет выбран тип расхода, который не нужно печатать на ККТ (обработка в дин.коде), то на ККТ ни чего отправлено не будет. А значит тоже можно оставить как есть.
$this->bbcode_second_pass_quote('dimOn', '')а, всё так, в оба метода приходит Payment , но в рефунде там данные из расхода. В явадоке по клаассу прописано это.
Он просто исторически остался так называться,не хотелось пока делать полный клон объекта с теми же полями и другим названием. Наверное, его как-то переименовать надо в идеаде. Или отнаследовать просто с переименованием пары методов.

Ну это можно просто задокументировать, чтобы у других не было вопросов.
$this->bbcode_second_pass_quote('dimOn', '(')Для электронных написано, что всегда.)
Да, сейчас нет пока такого в GUI, надо по идее добавить в приход куда-то рядом со вводом суммы от клиента итд. И тогда уже передавать это в скрипт, где вы что-то сможете сделать с ним, например сделать setCustomerEmail. Вероятно, вы не совсем поняли назначение setOnlyElCheck и понятия "электронный чек". Если вы печатаете чек по галочке при добавлении прихода - вам не надо указывать setOnlyElCheck, это указание не печатать чек на бумаге! Или так можно в магазине например? Типа не печатать на бумаге, а чтобы только ушло на мыло чек и всё? Подразумевалось что это для платежей через всякие платёжные системы будет использоваться.
setCustomerEmail будет использоваться в любом случае же, это просто добавление одного атрибута, чтобы ККМ отправил его в ОФД, а ОФД отправил на мыло чек. Возможно в дополнение к бумажному.

Вот, что мне по этому поводу ответила бухгалтер.
$this->bbcode_second_pass_quote('', '')асчеты с покупателями
При расчетах с каждым покупателем кассир-операционист обязан:
– определить итоговую сумму покупки по показаниям индикатора кассовой машины и назвать ее покупателю;
– получить деньги, четко назвать их сумму и положить эти деньги отдельно на виду у покупателя;
– провести операцию через онлайн-ККТ на полученную сумму;
– назвать сумму причитающейся сдачи и выдать ее покупателю вместе с чеком или бланком строгой отчетности.

Чек или бланк строгой отчетности выдайте:

на бумажном носителе. То есть документ распечатайте на ККТ;
и (или) в электронной форме. Документ на ККТ не печатайте, а перешлите его на абонентский номер или адрес электронной почты покупателя. Это возможно, если покупатель предоставил такую информацию до момента расчета.
Если покупатель до расчета не сообщил, что ему нужен электронный чек, вы не обязаны его оформлять.
Это следует из статьи 1.2, пункта 2 статьи 5 Закона от 22 мая 2003 г. № 54-ФЗ, пункта 4.1 Типовых правил, утвержденных письмом Минфина России от 30 августа 1993 г. № 104, пункта 5 протокола Минфина России от 24 ноября 2016 № 10.
Т.е получается печать электронного чека и|или. В принципе, если в карточке договора указан email для чеков, то можно дублировать его туда. А сейчас динкод это позволяет )
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Аватара пользователя
borin
 
Сообщения: 319
Зарегистрирован: 12 июл 2010, 21:22
Вернуться к началу

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 23 июн 2017, 17:32

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

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


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

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение borin » 23 июн 2017, 18:00

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

Да все верно, проверили, управление чекбоксом для расхода надо управлять отдельно от прихода. Тут попробовали сделать расход, вылезло окно сумма от клиента, нажали ок и ККТ выдал "Чек анулирован". Если нажать отмена, то расход заносится, а на ККТ ни чего не передается. Но лучше сделать раздельное управление чекбоксом для прихода и расхода.
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Аватара пользователя
borin
 
Сообщения: 319
Зарегистрирован: 12 июл 2010, 21:22
Вернуться к началу

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение borin » 23 июн 2017, 18:08

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

А тут все просто connection у нас есть, id договора мы знаем, а уж вытащить нужный параметр это несколько строк, все необходимые классы есть. Каждый реализует как ему удобно.
$this->bbcode_second_pass_code('', 'ContractParameterManager cmp = new ContractParameterManager(connection);
cmp.getEmailParam(cid, pid);')
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Аватара пользователя
borin
 
Сообщения: 319
Зарегистрирован: 12 июл 2010, 21:22
Вернуться к началу

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 23 июн 2017, 18:16

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

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение borin » 23 июн 2017, 18:25

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

$this->bbcode_second_pass_quote('', '')о есть документ распечатайте на ККТ; и (или) в электронной форме. Документ на ККТ не печатайте, а перешлите его на абонентский номер или адрес электронной почты покупателя. Это возможно, если покупатель предоставил такую информацию до момента расчета.
Если покупатель до расчета не сообщил, что ему нужен электронный чек, вы не обязаны его оформлять.

Все удобно, приходит абонент, сообщает, что хочет получать электронные чеки, оператор вносит это в карточку абонента, профит. Email вбивается один раз, ИМХО очень удобно.
И еще в приложении от ФНС "Проверка чеков", есть визитная карточка, оператор сканером, сканирует штрихкод, тем самым заносит его в договор.
А вот, если абонент захочет получить чек на сотовый, честно не знаю как это выглядит, но в законе указано, что такое он может попросить.
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Аватара пользователя
borin
 
Сообщения: 319
Зарегистрирован: 12 июл 2010, 21:22
Вернуться к началу

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 23 июн 2017, 18:57

сотовый - без проблем, вместо мыла туда же вбивается номер и всё, оно уходит в ОФД там оно шлёт СМС, так уже юзают люди
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение borin » 26 июн 2017, 18:41

Проверил отправка на email и телефон работает, параметры берутся из договора. Спасибо!
Остался только вопрос с добавлением расхода, "Печать чека возврата" не всегда нужна, но зависит от опции "Печать чека"

PS. Вдруг кому нужен готовый класс CheckMaker, могу поделиться.
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Аватара пользователя
borin
 
Сообщения: 319
Зарегистрирован: 12 июл 2010, 21:22

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 27 июн 2017, 18:37

$this->bbcode_second_pass_code('', 'client.gui.cashcheck.user.dimon.checkbox.refund.mode=defaultoff
client.gui.cashcheck.default.checkbox.refund.mode=defaultoff')
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение borin » 27 июн 2017, 18:47

Спасибо! Завтра протестируем )
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Аватара пользователя
borin
 
Сообщения: 319
Зарегистрирован: 12 июл 2010, 21:22

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение borin » 30 июн 2017, 11:09

Спасибо, все работает.
Единственно чего не хватает, это снятие отчетов с гашением, без гашения, по секциям от имени администратора. А то кассир не может снимать отчеты из интерфейса BGBilling, приходится пользоваться тест драйвером.
$this->bbcode_second_pass_code('', 'client.gui.cashcheck.admin.password=30')
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Аватара пользователя
borin
 
Сообщения: 319
Зарегистрирован: 12 июл 2010, 21:22

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 30 июн 2017, 13:04

Хм, а почему не перелогиниться в интерфейсе BGBilling просто с паролем админским (30) в конце дня и не снять эти отчёты? Как это на всех кассах обычно и делается, собственно. В тестдрайвере вы также 30 ведь и вводите?
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение borin » 30 июн 2017, 16:00

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

- Лишний раз перелогиниваться, во первых лишние действия, а во вторых увеличивает шанс на ошибку, оператор может забыть потом заново зайти под собой
- При подключении к ККТ, ККТ делает отрезку чека порядка 5мм, и этот кусочек остается в самом ККТ, как мусор
- В течении дня, оператор так же делает отчеты без гашения для сверки
- Тест-драйвера запоминает пароль администратора.
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Аватара пользователя
borin
 
Сообщения: 319
Зарегистрирован: 12 июл 2010, 21:22
Вернуться к началу

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 30 июн 2017, 16:38

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

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение borin » 30 июн 2017, 17:02

$this->bbcode_second_pass_quote('dimOn', '')сё равно не уверен что это хорошая идея , как-то это кривовато выглядит

ИМХО, если ККТ выполняет определенные команды только из под администратора, из под КАССИРА выходит ошибка, то почему бы не выполнять , данные операции изначально с повышением привилегий. И ведь это опционально, если кому то не нужно, можно не указывать пароль администратора в конфигурации, и операция будет выполнена с правами текущего пользователя.
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Аватара пользователя
borin
 
Сообщения: 319
Зарегистрирован: 12 июл 2010, 21:22
Вернуться к началу

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 30 июн 2017, 17:06

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

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 30 июн 2017, 17:08

$this->bbcode_second_pass_quote('', '')МХО, если ККТ выполняет определенные команды только из под администратора, из под КАССИРА выходит ошибка, то почему бы не выполнять , данные операции изначально с повышением привилегий.
ну как бы о том и речь, что эти команды неспроста от имени отдельных юзеров выполняются, ну и это не ошибка, получается, а просто сообщение об этом факте.
в принципе можно наверно настройку сделать.
но вообще в кассе для каждого юзера можно вроде как права настроить же как-то через родную утилиту. и в атоле и в штрихе, только не помню что именно там настраивается.
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51
Вернуться к началу

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение borin » 30 июн 2017, 17:20

2017-06-30 at 16-18-48.png

Нет, в настройках указываются два пароля, один кассира, второй администратора, если операция требует повышения прав, то используется пароль администратора.
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Аватара пользователя
borin
 
Сообщения: 319
Зарегистрирован: 12 июл 2010, 21:22

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 30 июн 2017, 17:52

не, я имею в виду, что для каждого пароля/кассира настраивается что он может сделать, как его зовут итд.

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

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение borin » 30 июн 2017, 18:18

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

В тест драйвере настраивается лишь как зовут кассира и его пароль.
Вопрос лишь в том, чтобы лишь 3 отчета снимались с привилегиями администратора. Не надо лезть в драйвер.
В классе cashcheck.jar!\ru\bitel\bgbilling\plugins\cashcheck\server\CashcheckServiceImpl.class
В методах: divReport(), XReport(), ZReport(), добавить:
$this->bbcode_second_pass_code('', 'String defaultPassword = this.getSetup().get("client.gui.cashcheck.default.password");
String adminpass = (defaultPassword == null) ? PrinterManager.getCurrentRegistratorPassword() : defaultPassword;')
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.874 / 05.02.2018 12:48:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151
Сервер: вер. 6.2.1203 / 05.02.2018 12:50:34
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Аватара пользователя
borin
 
Сообщения: 319
Зарегистрирован: 12 июл 2010, 21:22
Вернуться к началу

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 01 июл 2017, 02:13

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

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 03 июл 2017, 15:23

Пара скриптов как попытка обработки онлайн-платежей на своей стороне и на своём ККМ:

http://wiki.bitel.ru/index.php/%D0%9F%D ... 0%B5%D0%B9
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 11 июл 2017, 13:34

Для 5.1 тоже сделано, через события, дин.кода там нет.
В событии AddPaymentCheckEvent добавлен метод isRefund() - если это не платёж, а возврат, его надо проверять и формировать чек как раньше либо новый чек возврата (ну там один addPayment видимо надо сделать)
Очереди нету, понятное дело. Ну и привязки в конфиге нету (как и в новых версиях).
В EndCreateCheckEvent не стали ничего добавлять, он не будет вызываться, там нечего делать, все параметры в AddPaymentCheckEvent делайте, он всё равно ровно 1 раз вызывается для возвратов всегда.
dimOn
 
Сообщения: 5918
Зарегистрирован: 30 май 2008, 15:51

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение Cromeshnic » 24 июл 2017, 08:00

Хм, а может лучше сделать возвраты не через расходы, а через платежи других типов? Ну или опционально хотя бы.
Так было бы удобнее в отчётах выборки делать: в данном случае платежи и возвараты в одной "корзинке" должны лежать в отчётности.
Сейчас делаем веб-сервис для сверки платежей с 1С: раньше просто выбирал платежи, а сейчас придётся костылить "...а также возьми некоторые расходы".
Аватара пользователя
Cromeshnic
Клиент
 
Сообщения: 3061
Зарегистрирован: 20 апр 2009, 12:03
Откуда: Иркутск

Re: реализованы возвраты, новый интерфейс для дин.кода

Сообщение dimOn » 24 июл 2017, 12:41

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

След.

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

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

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

cron