BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 21 июн 2025, 00:54

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




Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
 Заголовок сообщения: Обновился класс для печати чеков
СообщениеДобавлено: 24 окт 2012, 06:26 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Собственно вопрос, а почему старые не поддерживать бы? вот у нас один раз настроился чек и все, нам другого ненада.
плюс ненашел описания
Код:
@Override
   public void endCreate( Set<Integer> cids, Check check, Printer printer )
      throws BGException
   {
      GregorianCalendar nowDate = new GregorianCalendar();
      Date dateNow = TimeUtils.convertCalendarToDate(nowDate);
      //check.addString("Ваш текущий баланс: " + bu.getBalance(dateNow, cid));
   }

здесь
Код:
Set<Integer> cids
что значит?
мне необходимо получить,
Код:
check.addString("Ваш текущий баланс: " + bu.getBalance(dateNow, cid));
что подставлять вместо
Код:
cid

плюс нам не нужно
Код:
      //1. Сумма платежа: "120,00р." (делаем одну строку addPayment, чтобы в драйвере общая сумма посчиталась)
      check.addPayment( payment.getSumma(), String.valueOf(payment.getSumma()) + "р.", 0 );

как убрать? при коментировании ругаеццо, не на код, а при печати чека

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Ничего там не обновилось, метод просто добавился в 5.2. Как можно «поддержать» старый то?
Метод просто с cid тоже работает. Плюс в дистрибутиве идёт два примера скрипта. В явадоку добавил, будет скоро, там путь сменился видимо оно и выпало.

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


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Ну первый cid из сета cids можно получить, например, как-то так:

Код:
int cid = cids.toArray(new Integer[0])[0];


но если в чек напечатается несколько позиций (что было возможно с самого начала существования плагина), то, очевидно, получится не очень потому что баланс выведется только первого какого-то случайного договора.

потому и был изменён (пока добавлен к работающему предыдущему) метод, куда передаются набор всех cid , а не один. раньше было искусственное ограничение такое что в один чек нельзя печатать с разных договоров (так что cid был всегда один в любом случае), но потом было разрешено печатать с договоров зависимых как-либо друг от друга, так что cid может быть несколько разных.

Цитата:
плюс нам не нужно
Код:
//1. Сумма платежа: "120,00р." (делаем одну строку addPayment, чтобы в драйвере общая сумма посчиталась)
check.addPayment( payment.getSumma(), String.valueOf(payment.getSumma()) + "р.", 0 );

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

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


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
dimOn писал(а):
Ну первый cid из сета cids можно получить, например, как-то так:

Код:
int cid = cids.toArray(new Integer[0])[0];

но если в чек напечатается несколько позиций (что было возможно с самого начала существования плагина), то, очевидно, получится не очень потому что баланс выведется только первого какого-то случайного договора.

потому и был изменён (пока добавлен к работающему предыдущему) метод, куда передаются набор всех cid , а не один. раньше было искусственное ограничение такое что в один чек нельзя печатать с разных договоров (так что cid был всегда один в любом случае), но потом было разрешено печатать с договоров зависимых как-либо друг от друга, так что cid может быть несколько разных.

пасиба, работает мне и не нада много позиций, ну, покачто.
dimOn писал(а):
Цитата:
плюс нам не нужно
Код:
//1. Сумма платежа: "120,00р." (делаем одну строку addPayment, чтобы в драйвере общая сумма посчиталась)
check.addPayment( payment.getSumma(), String.valueOf(payment.getSumma()) + "р.", 0 );

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

Сейчас если не комментировать эту строчку то печатается каких то ноль рублей, чего не нужно, как сделать так чтобы не печаталось ничего, при комментировании ругается регистратор

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
skyb писал(а):
как сделать так чтобы не печаталось ничего

1) Ничего не печатать
2) ...
3) Profit!

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


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

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

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


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
а че делать то? как убрать эту строчку???

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

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

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


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
если я коменчу эту строчку, регистратор ругается...или мб совпало? завтра точно скажу

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

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

короч я запутался, весь код скрипта в студию!
не забывайте что завтра в Башкирии выходной, курбан-байрам и все дела, отдыхаем, режем баранов, пляшем в лисих шапках (холодно же), играем на курае

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


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
да вы задолбали отдыхать ))))) тоже так хочу

Код:
package ru.skyb.scripts.cashcheck;

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

import bitel.billing.common.SummaToString;
import bitel.billing.common.TimeUtils;

import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.kernel.module.common.bean.User;
import ru.bitel.bgbilling.kernel.module.server.bean.UserManager;
import ru.bitel.bgbilling.plugins.cashcheck.common.Payment;
import ru.bitel.bgbilling.plugins.cashcheck.common.Printer;
import ru.bitel.bgbilling.plugins.cashcheck.server.CheckBuilder;
import ru.bitel.bgbilling.plugins.cashcheck.server.bean.Check;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.bgbilling.plugins.cashcheck.server.bean.*;
import bitel.billing.server.contract.bean.*;
import java.util.*;
import java.util.Date;
import bitel.billing.common.TimeUtils;

/**
 * Формат чека для стандартного шаблона ПКО (драйвер fop, шаблон cashcheck_pko.xsl).
 * Скрипт не обрабатывает попытку печати нескольких платежей.
 * @author dimon
 */
public class SimpleCheck
   implements CheckBuilder
{
   private Connection con;
    private ContractParameterManager bgParamMan;
    private BalanceUtils bu;

   @Override
   public void init( Setup setup, Connection con, Connection conSlave )
      throws BGException
   {
      this.con = con;
        bgParamMan = new ContractParameterManager( con );
        bu = new BalanceUtils ( con );
   }

   @Override
   public void addPayment( Payment payment, Check check, Printer printer )
      throws BGException
   {
        int PARAM_ID = 3;       
        String paramVal = bgParamMan.getStringParam( payment.getContractId(), PARAM_ID );

      //1. Сумма платежа: "120,00р." (делаем одну строку addPayment, чтобы в драйвере общая сумма посчиталась)
      check.addPayment( payment.getSumma(), String.valueOf(payment.getSumma()) + "р.", 0 ); //<<<=== эту строчку нада закоментить, она не нужны
      //2. Номер договора
      check.addString( payment.getContractTitle() );
      //3. Фамилия клиента: "ИВАНОВ И.И."
      //check.addString( payment.getContractComment() );
      check.addString( paramVal );

      //4. Дата платежа: 20-04-2009
      //check.addString( TimeUtils.format( payment.getDate(), "dd-MM-yyyy" ) );
      //5. Организация: ООО "ПРОВАЙДЕР"
      check.addString( "Телематические услуги связи" );
      //6. ФИО кассира (пользователя биллинга)
      UserManager um = new UserManager( con );   
      User user = um.get( payment.getUserId() );
      //check.addString( user.getName() );
      //7. Тип платежа: "СПД  №"
      //check.addString( "СПД  №" );
      //8. Сумма прописью: "Сто двадцать рублей 00 коп"
      check.addString( SummaToString.summaToString( String.valueOf(payment.getSumma()), true ) );
   }

   public void endCreate( int cid, Check check, Printer printer )
      throws BGException
   {
      // ничего нету, устаревший метод
   }

   @Override
   public void endCreate( Set<Integer> cids, Check check, Printer printer )
      throws BGException
   {
      GregorianCalendar nowDate = new GregorianCalendar();
      Date dateNow = TimeUtils.convertCalendarToDate(nowDate);
      int cid = cids.toArray(new Integer[0])[0];
      check.addString("Ваш текущий баланс: " + bu.getBalance(dateNow, cid));
   }
}

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Да нельзя блин закаментить addPayment, оно нужно, потму что в этой строчке и есть смысл этого скрипта - сформировать позицию из ровно одной команды продажи + нескольких произвольных строк!

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


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
А, так речь про ПКО? :facepalm: Но тогда можно закаментить, потму что в xml вообще всё равно чего там. Причём тут тогда ККМ ругается? Для ККМ этот скрипт и не предусматривался никогда.

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


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
dimOn писал(а):
А, так речь про ПКО? :facepalm: Но тогда можно закаментить, потму что в xml вообще всё равно чего там. Причём тут тогда ККМ ругается? Для ККМ этот скрипт и не предусматривался никогда.

нене, про аддпаймент
Код:
 check.addPayment( payment.getSumma(), String.valueOf(payment.getSumma()) + "р.", 0 ); //<<<=== эту строчку нада закоментить, она не нужны

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
собственно ошибку пишет если я ее коменчу. чаво делать то?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Я реально не пойму что же тут может быть непонятного и что ещё можно мне со своей стороны дополнить. Я же всё выше написал неоднократно.
1. Нельзя закаментить addPayment, потому что будет ККМ ругаться. ККМ и ругается, (экстрасенс моде on) по видимому на то что не может закрыть чек. Разумеется, не может, потому что он не получил ни одной команды добавления позиции. Неужели непонятно почему нельзя чтобы не было addPayment и почему ругается? Я же написал несколько раз.
2. Этот скрипт никогда не задумывался для ККМ, а приведён в качестве примера скрипта для формирования xml для печати ПКО. Зачем его модифицировать под ККМ и пытаться при этом (!) убрать формирование платежа для ККМ ума не приложу. Не, ну использовать то можно и для ККМ, просто получится длиннющий и некрасивый чек, какая ему разница какие строки добавлять. Но addPayment убирать не нужно при этом.

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


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

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

вывод из предыдущего: не каментить :idea:
как оно и было раньше всегда, ничего тут не изменилось, никогда нельзя было без addPayment, потому что это логичное ограничение всех железок которые я встречал.

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ] 

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


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

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


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

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