BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
СообщениеДобавлено: 16 май 2012, 07:25 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
Собственно, subj. Не получается. Хочу выставить счет за июнь (в шаблоне номенклатура в счете с учетом месяцев - типа, за услуги связи за май, июнь и т.д.) С прошедшими и текущим месяцами все ок. Понадобилось выставить счета за будущие месяца (чтобы заранее оплатили клиенты) - а не получается =( Ни через стандартного клиента (не генерируется счет), ни через скрипты.


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

Зарегистрирован: 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
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 май 2012, 07:49 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
А ничего не происходит, через админку - при нажатии на кнопку сгенерировать (когда выбран июнь) - ничего. Через скрипт - выставляем mm=6 и опять ничего )

Цитата:
http://bgbill:8080/bgbilling/executer?mm=5&module=bill&month=01.06.2012&action=BillPositionList&mid=6&BGBillingSecret=OAJC5SHg8iewIK9sxIyri81O&

[ length = 403 ] xml = <?xml version="1.0" encoding="windows-1251"?>
<data secret="4A31E8BBF47222006A66A2B4A4FD7D0A" status="ok"><positions><positionsCB><item id="1" title="За услуги связи"/></positionsCB><pos extractor="" id="1" name="Услуги связи по договору за $month {$month,date,yyyy г.}" qtyNumsAfterComma="1" quantity="1" summ="FULL_ACCOUNT($month)" title="За услуги связи" unit="&lt;>" unitCode=""/></positions></data>

http://bgbilt.intertax.net:8080/bgbilli ... s=&y=2012&
http://bgbilt.intertax.net:8080/bgbilli ... n=Command&

[ length = 65 ] xml = <?xml version="1.0" encoding="windows-1251"?>
<data status="ok"/>

вот пример запроса

ps

Цитата:
Клиент: вер. 5.1 сборка 655 от 26.03.2012 14:46:07
os: Linux; java: OpenJDK 64-Bit Server VM, v.1.6.0_23
ВНИМАНИЕ: Виртуальная машина OpenJDK 64-Bit Server VM не рекомендуется
Сервер: вер. 5.1 сборка 779 от 26.03.2012 14:46:11
os: SunOS; java: Java HotSpot(TM) Server VM, v.1.6.0_24

bill вер. 5.1 сборка 252 от 26.03.2012 16:59:04


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 май 2012, 14:10 
Не в сети
Клиент

Зарегистрирован: 27 окт 2009, 16:17
Сообщения: 319
Откуда: Иркутск
Карма: 18
На
Код:
  Клиент: вер. 5.2 сборка 982 от 14.05.2012 14:49:42
    os: Windows XP; java: Java HotSpot(TM) Client VM, v.1.6.0_26
  Сервер: вер. 5.2 сборка 1186 от 14.05.2012 14:49:47
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_22
  bill вер. 5.2 сборка 256 от 14.05.2012 14:49:41

работает


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 май 2012, 07:58 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
focus писал(а):
На
Код:
  Клиент: вер. 5.2 сборка 982 от 14.05.2012 14:49:42
    os: Windows XP; java: Java HotSpot(TM) Client VM, v.1.6.0_26
  Сервер: вер. 5.2 сборка 1186 от 14.05.2012 14:49:47
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_22
  bill вер. 5.2 сборка 256 от 14.05.2012 14:49:41

работает

ну так это 5.2, а у меня 5.1
Разработчики, ау?:)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 май 2012, 17:35 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
что-то я не понял..У нас же вроде нельзя выставить счет на предоплату , счета можно только по факту выставлять.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 май 2012, 12:16 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
stark писал(а):
что-то я не понял..У нас же вроде нельзя выставить счет на предоплату , счета можно только по факту выставлять.

а как тогда на 5.2 так получается у людей?:) Я допустим через скрипт хочу создать счет - позиции задаю и сумму задаю им, а он все равно не создается =)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 май 2012, 20:06 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Феанор писал(а):
stark писал(а):
что-то я не понял..У нас же вроде нельзя выставить счет на предоплату , счета можно только по факту выставлять.

а как тогда на 5.2 так получается у людей?:)

Не знаю :)..Там в просто стоит проверка, если месяц будущий , то ничего не делать .

Феанор писал(а):
Я допустим через скрипт хочу создать счет - позиции задаю и сумму задаю им, а он все равно не создается =)

Вы используете TemplateBillManager ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 май 2012, 09:08 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
stark писал(а):
Вы используете TemplateBillManager ?

угу... по примеру из вики... xmlку видно что пустую генерирует
Код:
//для теста сумм=1000
public String summ="1000";
public void formBill( Connection con ,String cid,String mmS,String yyS)
   {
      try{
         int mid = 6; //mid модуля Бухгалтерии
         int accountId =1; // id счета банка
         int mmI=Integer.parseInt(mmS)-1;
         int yyI=Integer.parseInt(yyS);
         Calendar month = new GregorianCalendar();
         month.set(Calendar.DAY_OF_MONTH,1);
         month.set(Calendar.MONTH, mmI);
         month.set(Calendar.YEAR, yyI);
         int mm = month.get(Calendar.MONTH);
         int yy = month.get(Calendar.YEAR);

         BalanceUtils bu = new BalanceUtils( con );   
         ModuleSetup moduleSetup = setup.getModuleSetup( mid );
         TemplateBillManager man = new TemplateBillManager( moduleSetup, con, mid, false );
         List<TemplateBill> templateBillList = man.getTemplatePayBillList( moduleSetup, yy, mm, null, cid, null, null );

         //делаем
         DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
         DocumentBuilder docBuilder;
         Document doc;
         docBuilder = dFactory.newDocumentBuilder();
         doc = docBuilder.newDocument();


         Element bills = doc.createElement("bills");
         
         for( TemplateBill templateBill : templateBillList )
         {

            Element row = createElement( bills,"bill" );
            
            //row.setAttribute( "rest", Utils.formatBigDecimalSumm( bu.getBalance( month.getTime(), templateBill.getContractId() ) ) );
            row.setAttribute( "saldo", bu.getBalance( new Date(), Integer.parseInt(cid)).toString()  );
            row.setAttribute( "account_id",String.valueOf(accountId ));
            BigDecimal billSumm = fillBillData( row, templateBill );
            
            
            row.setAttribute( "summ", Utils.formatBigDecimalSumm( billSumm ) );
         }
         //посомтрим что получилось
         doc.appendChild(bills);
         ByteArrayOutputStream sos = new ByteArrayOutputStream();
         
         //CommonUtils.serializeXML(doc , sos, "UTF-8");
         Node n = doc.getFirstChild();

         XMLUtils.serialize(n, sos, "UTF-8");
         
         String xml = sos.toString();
         //проверим какая хмлка получилась
                        print(xml);
         InputStream is = new ByteArrayInputStream( xml.getBytes( "windows-1251" ) );
         BillManager pbm = new BillManager( setup, con, mid, moduleSetup );
         pbm.addBillDocs( -1, is, yy, mm, new Date() );
         
         
      }
      catch (Exception e) {}
   }
   
   
   private BigDecimal fillBillData( Element row, TemplateBill templateBill )
   {
      BigDecimal billSumm = BigDecimal.ZERO;

      row.setAttribute( "id", String.valueOf( templateBill.getContractDocTypeId() ) );
      row.setAttribute( "type", String.valueOf( templateBill.getDocTypeId() ) );
      row.setAttribute( "cid", String.valueOf( templateBill.getContractId() ) );

      row.setAttribute( "contract", templateBill.getContractTitle() );
      row.setAttribute( "contract_comment", templateBill.getContractComment() );

      for( PositionValue value : templateBill.getPositionList() )
      {
         BigDecimal summ = new BigDecimal (this.summ);

         Element posEl = createElement( row, "pos" );BillManager
         value.toElement( posEl );

         Position pos = value.getPosition();
         posEl.setAttribute( "insum", Utils.booleanToStringInt( pos.isInSum() ) );
         posEl.setAttribute( "awlz", Utils.booleanToStringInt( pos.isAddWhenLessZero() ) );
         posEl.setAttribute( "summ" , this.summ);
      
         if( pos.isInSum() )
         {
            billSumm = billSumm.add( summ );
         }
      }

      row.setAttribute( "summ", Utils.formatBigDecimalSumm( billSumm ) );

      return billSumm;
   }

   protected Element createElement( Element element, String name )
   {
      Element newElement = null;
      if( element == null )
      {
         newElement = null;
      }
      else
      {
         newElement = element.getOwnerDocument().createElement( name );
         element.appendChild( newElement );
      }
      return newElement;
   }


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 май 2012, 19:09 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Феанор писал(а):
Код:
         List<TemplateBill> templateBillList = man.getTemplatePayBillList( moduleSetup, yy, mm, null, cid, null, null );



Там вначале этого метода стоит проверка :
Код:
if (!BillUtil.isPast( yy, mm ))
      {
         return result;
      }


Поэтому ничего не работает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31 май 2012, 15:47 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
stark писал(а):
Феанор писал(а):
Код:
         List<TemplateBill> templateBillList = man.getTemplatePayBillList( moduleSetup, yy, mm, null, cid, null, null );



Там вначале этого метода стоит проверка :
Код:
if (!BillUtil.isPast( yy, mm ))
      {
         return result;
      }


Поэтому ничего не работает.

а может параметр в конструктор, может быть, добавить, чтобы он игноировал это?:) и обратную совместимость обеспечим и возможность будущим числом через скрипты создавать дадим
TemplateBillManager man = new TemplateBillManager( moduleSetup, con, mid, false,false (игнорировать будущие числа));


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 июн 2012, 13:26 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Феанор писал(а):
а может параметр в конструктор, может быть, добавить, чтобы он игноировал это?:) и обратную совместимость обеспечим и возможность будущим числом через скрипты создавать дадим
TemplateBillManager man = new TemplateBillManager( moduleSetup, con, mid, false,false (игнорировать будущие числа));


Добавил . В следующем обновлении будет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 июн 2012, 16:40 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
stark писал(а):
Феанор писал(а):
а может параметр в конструктор, может быть, добавить, чтобы он игноировал это?:) и обратную совместимость обеспечим и возможность будущим числом через скрипты создавать дадим
TemplateBillManager man = new TemplateBillManager( moduleSetup, con, mid, false,false (игнорировать будущие числа));


Добавил . В следующем обновлении будет.

это в тех которые уже были должно быть? Обновлять только модуль bill?
Потому что я скачал свежую версию модуля билл и все равно не получается.


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
bill.
А там в addBillDocs такая же проверка стоит


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

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
stark писал(а):
bill.
А там в addBillDocs такая же проверка стоит

ждать следующего обновления?:)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 июн 2012, 16:13 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
ждите


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 июл 2012, 07:58 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
stark писал(а):
ждите

Вы добавили проверку в:
Цитата:
pbm.addBillDoc(userId, doc, posList, subList, checkPast);

а у меня использовался пример из вики, где аддБилДок следующий:
Цитата:
pbm.addBillDocs(userID, billsXML, yy, mm, date);


у меня отсюда вопросы по doc, который BillDoc... у него есть метод setPositionList... смысл тогда в этом же методе отдельно передавать этот же самый List<Position>?

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

Код:
for( TemplateBill templateBill : templateBillList )
         {
            Element row = createElement( bills,"bill" );
            
            //row.setAttribute( "rest", Utils.formatBigDecimalSumm( bu.getBalance( month.getTime(), templateBill.getContractId() ) ) );
            row.setAttribute( "saldo", bu.getBalance( new Date(), Integer.parseInt(cid)).toString()  );
            row.setAttribute( "account_id",String.valueOf(accountId ));
            BigDecimal billSumm = fillBillData( row, templateBill );
            
            
            row.setAttribute( "summ", Utils.formatBigDecimalSumm( billSumm ) );
            doc.appendChild(bills);
            ByteArrayOutputStream sos = new ByteArrayOutputStream();
            
            //CommonUtils.serializeXML(doc , sos, "UTF-8");
            Node n = doc.getFirstChild();

            
            BillManager pbm = new BillManager( setup, con, mid, moduleSetup );
         
                              BillDoc billDoc=new BillDoc();
            billDoc.setCid(Integer.parseInt(cid));
            billDoc.setContractTitle(contract.getTitle());
            billDoc.setCreateDate(new Date());
            billDoc.setUid(-1);
            billDoc.setMm(mm-1);
            billDoc.setXml(doc);
            billDoc.setTypeId(1);
            billDoc.setSumm(billSumm);
            billDoc.setFormatNumber("sss-ss");
            billDoc.setNumber(21);
            billDoc.setNumberInMonth(1);
            billDoc.setNumberInYear(23);
            billDoc.setPositionList(templateBill.getPositionList());
            pbm.addBillDoc(-1, billDoc, templateBill.getPositionList(), null, false);
         }


поделитесь рабочим примером?


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

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


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

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


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

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