BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 26 окт 2021, 17:53

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 20 июн 2017, 18:27 
Не в сети
Аватара пользователя

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

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

Код:
import ru.bitel.bgbilling.plugins.cashcheck.server.CheckBuilder;

public class BlaBlaCheck
   implements CheckBuilder


на

Код:
import ru.bitel.bgbilling.plugins.cashcheck.server.CheckMaker;

public class BlaBlaCheck
   extends CheckMaker


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

Код:
   @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
   {
      // этот не обязательно добавлять
   }


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

Код:
check.setTax(1);
check.setPaymentType(1);
check.setCustomerEmail("test@test");
check.setOnlyElCheck(true);


Обновить сервер печати.
Конфиг плагина менять не обязательно, если класс не меняете, название параметра checkbuilder=... осталось старым.
Попробовать сделать возврат через добавление нового расхода.
Есть лог как платежей так и возвратов в админке биллинга.
Также есть возврат из списка чеков напечатанных там же - он запускает дин код как будто бы для печати чека, но потом делает возврат с теми же параметрами. Наверное им лучше не пользоваться, нужно подумать над этим.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 июн 2017, 18:30 
Не в сети
Аватара пользователя

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

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2017, 16:01 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
Добрый день!
Огромная благодарность за добавление данного функционала.

Возникли вопросы:
1) Мапинг типов расхода на ККТ
Приход делается так:
Код:
# маппинг типов платежей на регистраторы
# 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, смотрю появились методы:
Код:
check.setCustomerEmail("test@test");
check.setOnlyElCheck(true);

Но ведь не всегда нужно отправлять чек на email, это по желанию абонента. Получается при добавления платежа, должен быть чек-бокс указывающий на это. А в дин коде мы уже должны обработать отправку электронной версии чека вместо печати.

_________________
Код:
    Клиент: вер. 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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2017, 16:29 
Не в сети
Аватара пользователя

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

Цитата:
client.gui.cashcheck.user.bov01.checkbox.mode=on Устанавливаем печатать чек безусловно, причем данная настройка влияет как на платеж так и на расход. Не все ведь расходы надо печатать.

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

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

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

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2017, 16:43 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6051
Карма: 244
явадоки нет пока там, вот полный интерфейс CheckMaker:
Код:
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
   {
      // в принципе необязательно
   }
}

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2017, 17:20 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
dimOn писал(а):
мапинга нет, планировалось как более упрощённая схема, чем печать чеков, т.к. эта функция скорее исключение, чем правило (например, "очереди" соответственно тоже нет) это реально нужно, да?

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

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

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

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

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

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

на бумажном носителе. То есть документ распечатайте на ККТ;
и (или) в электронной форме. Документ на ККТ не печатайте, а перешлите его на абонентский номер или адрес электронной почты покупателя. Это возможно, если покупатель предоставил такую информацию до момента расчета.
Если покупатель до расчета не сообщил, что ему нужен электронный чек, вы не обязаны его оформлять.
Это следует из статьи 1.2, пункта 2 статьи 5 Закона от 22 мая 2003 г. № 54-ФЗ, пункта 4.1 Типовых правил, утвержденных письмом Минфина России от 30 августа 1993 г. № 104, пункта 5 протокола Минфина России от 24 ноября 2016 № 10.

Т.е получается печать электронного чека и|или. В принципе, если в карточке договора указан email для чеков, то можно дублировать его туда. А сейчас динкод это позволяет )

_________________
Код:
    Клиент: вер. 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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2017, 17:32 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6051
Карма: 244
Цитата:
Тут получается, всегда будет вызываться addPaymentRefund, а следовательно если будет выбран тип расхода, который не нужно печатать на ККТ (обработка в дин.коде), то на ККТ ни чего отправлено не будет. А значит тоже можно оставить как есть.
ну вообще-то нет, если вы ставите галку - то получается вы дальше не сможете управлять печатать или не печатать чек. как вы в дин.коде это будете обрабатывать, поясните? И выбирать какой нужно печатать а какой нет.

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


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

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2017, 18:00 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
dimOn писал(а):
Цитата:
Тут получается, всегда будет вызываться addPaymentRefund, а следовательно если будет выбран тип расхода, который не нужно печатать на ККТ (обработка в дин.коде), то на ККТ ни чего отправлено не будет. А значит тоже можно оставить как есть.
ну вообще-то нет, если вы ставите галку - то получается вы дальше не сможете управлять печатать или не печатать чек. как вы в дин.коде это будете обрабатывать, поясните? И выбирать какой нужно печатать а какой нет.

Да все верно, проверили, управление чекбоксом для расхода надо управлять отдельно от прихода. Тут попробовали сделать расход, вылезло окно сумма от клиента, нажали ок и ККТ выдал "Чек анулирован". Если нажать отмена, то расход заносится, а на ККТ ни чего не передается. Но лучше сделать раздельное управление чекбоксом для прихода и расхода.

_________________
Код:
    Клиент: вер. 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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2017, 18:08 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
dimOn писал(а):
про электронный чек понятно. т.е. если ввели мыло - можно ставить только электронный и всё. но это всё в скрипте каждый сам может сделать как раз. главное чтобы мыло передавалось из gui в скрипт каким-то образом, работы сейчас ведутся.

А тут все просто connection у нас есть, id договора мы знаем, а уж вытащить нужный параметр это несколько строк, все необходимые классы есть. Каждый реализует как ему удобно.
Код:
ContractParameterManager cmp = new ContractParameterManager(connection);
cmp.getEmailParam(cid, pid);

_________________
Код:
    Клиент: вер. 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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2017, 18:16 
Не в сети
Аватара пользователя

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

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2017, 18:25 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
dimOn писал(а):
ну это не очень удобно - забивать мыло в параметры в прямом эфире. лучше, наверное, чтобы можно было при печати чека его ввести, нет? а дальше уже в скрипте делаете что хотите.

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

Все удобно, приходит абонент, сообщает, что хочет получать электронные чеки, оператор вносит это в карточку абонента, профит. Email вбивается один раз, ИМХО очень удобно.
И еще в приложении от ФНС "Проверка чеков", есть визитная карточка, оператор сканером, сканирует штрихкод, тем самым заносит его в договор.
А вот, если абонент захочет получить чек на сотовый, честно не знаю как это выглядит, но в законе указано, что такое он может попросить.

_________________
Код:
    Клиент: вер. 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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июн 2017, 18:57 
Не в сети
Аватара пользователя

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

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 июн 2017, 18:41 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
Проверил отправка на email и телефон работает, параметры берутся из договора. Спасибо!
Остался только вопрос с добавлением расхода, "Печать чека возврата" не всегда нужна, но зависит от опции "Печать чека"

PS. Вдруг кому нужен готовый класс CheckMaker, могу поделиться.

_________________
Код:
    Клиент: вер. 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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 июн 2017, 18:37 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6051
Карма: 244
Код:
client.gui.cashcheck.user.dimon.checkbox.refund.mode=defaultoff
client.gui.cashcheck.default.checkbox.refund.mode=defaultoff

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 июн 2017, 18:47 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
Спасибо! Завтра протестируем )

_________________
Код:
    Клиент: вер. 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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2017, 11:09 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
Спасибо, все работает.
Единственно чего не хватает, это снятие отчетов с гашением, без гашения, по секциям от имени администратора. А то кассир не может снимать отчеты из интерфейса BGBilling, приходится пользоваться тест драйвером.
Код:
client.gui.cashcheck.admin.password=30

_________________
Код:
    Клиент: вер. 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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2017, 13:04 
Не в сети
Аватара пользователя

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

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2017, 16:00 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
dimOn писал(а):
Хм, а почему не перелогиниться в интерфейсе BGBilling просто с паролем админским (30) в конце дня и не снять эти отчёты? Как это на всех кассах обычно и делается, собственно. В тестдрайвере вы также 30 ведь и вводите?

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

_________________
Код:
    Клиент: вер. 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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2017, 16:38 
Не в сети
Аватара пользователя

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

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2017, 17:02 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
dimOn писал(а):
всё равно не уверен что это хорошая идея , как-то это кривовато выглядит

ИМХО, если ККТ выполняет определенные команды только из под администратора, из под КАССИРА выходит ошибка, то почему бы не выполнять , данные операции изначально с повышением привилегий. И ведь это опционально, если кому то не нужно, можно не указывать пароль администратора в конфигурации, и операция будет выполнена с правами текущего пользователя.

_________________
Код:
    Клиент: вер. 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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2017, 17:06 
Не в сети
Аватара пользователя

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

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2017, 17:08 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6051
Карма: 244
Цитата:
ИМХО, если ККТ выполняет определенные команды только из под администратора, из под КАССИРА выходит ошибка, то почему бы не выполнять , данные операции изначально с повышением привилегий.
ну как бы о том и речь, что эти команды неспроста от имени отдельных юзеров выполняются, ну и это не ошибка, получается, а просто сообщение об этом факте.
в принципе можно наверно настройку сделать.
но вообще в кассе для каждого юзера можно вроде как права настроить же как-то через родную утилиту. и в атоле и в штрихе, только не помню что именно там настраивается.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2017, 17:20 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
Вложение:
2017-06-30 at 16-18-48.png
2017-06-30 at 16-18-48.png [ 22.32 КБ | Просмотров: 11758 ]

Нет, в настройках указываются два пароля, один кассира, второй администратора, если операция требует повышения прав, то используется пароль администратора.

_________________
Код:
    Клиент: вер. 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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2017, 17:52 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6051
Карма: 244
не, я имею в виду, что для каждого пароля/кассира настраивается что он может сделать, как его зовут итд.

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

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июн 2017, 18:18 
Не в сети
Аватара пользователя

Зарегистрирован: 12 июл 2010, 21:22
Сообщения: 319
Карма: 11
dimOn писал(а):
не, я имею в виду, что для каждого пароля/кассира настраивается что он может сделать, как его зовут итд.
а про настройку в сервере печати всё же что скажете? как раз только сам драйвер сервера печати знает какая операция требует админского пароля. но это как-то отдельной доработкой выглядит с этим всем не связанной, пишите в HD пожалуй

В тест драйвере настраивается лишь как зовут кассира и его пароль.
Вопрос лишь в том, чтобы лишь 3 отчета снимались с привилегиями администратора. Не надо лезть в драйвер.
В классе cashcheck.jar!\ru\bitel\bgbilling\plugins\cashcheck\server\CashcheckServiceImpl.class
В методах: divReport(), XReport(), ZReport(), добавить:
Код:
String defaultPassword = this.getSetup().get("client.gui.cashcheck.default.password");
String adminpass = (defaultPassword == null) ? PrinterManager.getCurrentRegistratorPassword() : defaultPassword;

_________________
Код:
    Клиент: вер. 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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июл 2017, 02:13 
Не в сети
Аватара пользователя

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

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 июл 2017, 15:23 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6051
Карма: 244
Пара скриптов как попытка обработки онлайн-платежей на своей стороне и на своём ККМ:

http://wiki.bitel.ru/index.php/%D0%9F%D ... 0%B5%D0%B9

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 июл 2017, 13:34 
Не в сети
Аватара пользователя

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

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июл 2017, 08:00 
Не в сети
Клиент
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июл 2017, 12:41 
Не в сети
Аватара пользователя

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

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.081s | 82 Queries | GZIP : On ]