BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
 Заголовок сообщения: Создание счетов из BGBS!!
СообщениеДобавлено: 14 янв 2011, 18:36 
Не в сети

Зарегистрирован: 15 июл 2009, 15:22
Сообщения: 30
Карма: 0
День добрый!
Подскажите пожалуйста, каким образом вастаить счет из скрипта... Я только начал разбираться с ними, поэто вопрос. Вот скрипт на скорую руку, но он не работает... тыкните меня где что не так:

Код:
import java.sql.*;
import java.util.*;
import java.math.*;

import bitel.billing.server.contract.bean.*;
import bitel.billing.server.bill.bean.*;
import bitel.billing.server.util.*;


BigDecimal quan = new BigDecimal( 1 );
Calendar time = event.getGenerateTime();
Calendar DateNow = Calendar.getInstance();

bill_doc = new Bill();
   bill_doc.setCid(223);
   bill_doc.setContractTitle("Test!!!");
   bill_doc.setCreateDate(DateNow.getTime());
   bill_doc.setMm(0);
   bill_doc.setTypeId(1);
   bill_doc.setNumber(1);
   bill_doc.setNumberInMonth(1);
   bill_doc.setNumberInYear(1);
   bill_doc.setTypeTitle("Еуыт!!!");
   bill_doc.setUid(1);
   bill_doc.setYy(2011);
   bill_doc.setAccountId(1);
   position_value_list = new java.util.ArrayList();

 
   
      position = new Position();
      position.setId(11);
      position.setName("jkhdkjsdhfksdhf");
      position.setSumm("100");
      position.setTitle("ekrl;ewkr;lkwer");
 
      position_value = new PositionValue();
      position_value.setCid(11);
      position_value.setName("we;wekr;lkwer");
      position_value.setPosition(position);
      position_value.setPositionId(1);
      position_value.setSumma(quan);
 
      position_value_list.add(position_value);

bill_manager = new BillManager(setup,con,6,setup.getSetup().getModuleSetup(6));
bill_manager.addBillDoc(1,bill_doc,position_value_list,Collections.emptyList());


скрипт повесил на приход платежа... Вот что пишет в дебаге:
Код:
01-14/18:27:38  INFO [http-8080-5] script - Process event cid:233; event:Event bitel.billing.server.script.bean.event.PaymentEvent cid: 233; module: 0; type: 1; userId: 1
01-14/18:27:38  INFO [http-8080-5] script - Process event cid:233; event:Event bitel.billing.server.script.bean.event.PaymentEvent cid: 233; module: 0; type: 1; userId: 1
01-14/18:27:38  INFO [pool-1-thread-28] ScriptInstance - Eval script Function [id:9; title:Выставление счета по приходу платежа]
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream - java.lang.NullPointerException
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at ru.bitel.bgbilling.modules.bill.server.bean.NumerationPoolManager.formatNumber(NumerationPoolManager.java:175)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bitel.billing.server.bill.bean.BillManager.addBillDoc(BillManager.java:598)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at java.lang.reflect.Method.invoke(Unknown Source)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bsh.Reflect.invokeMethod(Reflect.java:137)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bsh.Reflect.invokeObjectMethod(Reflect.java:83)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bsh.Name.invokeMethod(Name.java:858)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bsh.Interpreter.eval(Interpreter.java:653)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:352)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:70)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bitel.billing.server.script.bean.ScriptMachine.runScriptImpl(ScriptMachine.java:220)
01-14/18:27:38  INFO [http-8080-5] script - Process time => 92
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.access$0(ScriptMachine.java:1)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:361)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:1)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at java.util.concurrent.FutureTask.run(Unknown Source)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
01-14/18:27:38 ERROR [pool-1-thread-28] LoggingPrintStream -    at java.lang.Thread.run(Unknown Source)



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

Буду признателен за помощь!!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 14 янв 2011, 21: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
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 14 янв 2011, 22:45 
Не в сети

Зарегистрирован: 15 июл 2009, 15:22
Сообщения: 30
Карма: 0
Буду очень благодарен! Ксати сервер 5.1 Linux


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 15 янв 2011, 11:29 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
http://wiki.bgbilling.ru/index.php/%D0% ... 0%B8%D0%B9
http://wiki.bgbilling.ru/index.php/%D0% ... D0%B5_Bill
http://wiki.bgbilling.ru/index.php/%D0% ... 0%BE%D0%B2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 15 янв 2011, 14:47 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Код:
import bitel.billing.server.util.*;
import ru.bitel.bgbilling.server.util.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import java.math.BigDecimal;
import bitel.billing.server.bill.bean.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.common.*;
import java.io.StringWriter;
//import bitel.billing.server.bill.bean.BillManager;
import bitel.billing.server.bill.bean.InvoiceManager;


public void main( setup, con, conSlave )
{
   int mid = 8; //mid модуля Бухгалтерии
   int accountId =1; // id счета банка

   Calendar month = new GregorianCalendar();
   //корректировка времени
   month.add( Calendar.HOUR, -2 );

   int mm = month.get(Calendar.MONTH);
   int yy = month.get(Calendar.YEAR);
   month.set(Calendar.DAY_OF_MONTH,1);

   BalanceUtils bu = new BalanceUtils( conSlave );   
   ModuleSetup moduleSetup = setup.getModuleSetup( mid );
   TemplateBillManager man = new TemplateBillManager( moduleSetup, conSlave, mid, true );
   List templateBillList = man.getTemplatePayBillList( moduleSetup, yy, mm, null, null, null, null );
   print("doc for create = "+templateBillList.size());
   //делаем
   DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
   DocumentBuilder docBuilder = dFactory.newDocumentBuilder();
   Document doc = docBuilder.newDocument();
   Element bills = doc.createElement("bills");
   doc.appendChild(bills);
   for( TemplateBill templateBill : templateBillList )
   {
      Element row = createElement( bills,"bill" );
      BigDecimal subBillSumm = BigDecimal.ZERO;
      row.setAttribute( "rest", Utils.formatBigDecimalSumm( bu.getBalance( month.getTime(), templateBill.getContractId() ) ) );
      row.setAttribute( "account_id",String.valueOf(accountId ));
      BigDecimal billSumm = fillBillData( row, templateBill );
      if( templateBill.getSubBillList() != null )
      {
         for( TemplateBill templateSubBill : templateBill.getSubBillList() )
         {
            Element subBill = createElement( row, "sub_bill" );
            subBillSumm = subBillSumm.add( fillBillData( subBill, templateSubBill ) );
         }
      }
      row.setAttribute( "sub_bill_summ", Utils.formatBigDecimalSumm( subBillSumm ) );
      row.setAttribute( "summ", Utils.formatBigDecimalSumm( billSumm.add( subBillSumm ) ) );
   }
//посомтрим что получилось
   ByteArrayOutputStream sos = new ByteArrayOutputStream();
   CommonUtils.serializeXML(doc , 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 );
   InvoiceManager pbm = new InvoiceManager( setup, con, mid, moduleSetup );
   pbm.addBillDocs( -1, is, yy, mm, month );


}
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 = value.getSumma();

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

Position pos = value.getPosition();
posEl.setAttribute( "insum", Utils.booleanToStringInt( pos.isInSum() ) );
posEl.setAttribute( "awlz", Utils.booleanToStringInt( pos.isAddWhenLessZero() ) );

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;
}


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 15 янв 2011, 15:56 
Не в сети

Зарегистрирован: 15 июл 2009, 15:22
Сообщения: 30
Карма: 0
Спасибо, попробую и отпишусь что получилось


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 17 янв 2011, 17:13 
Не в сети

Зарегистрирован: 15 июл 2009, 15:22
Сообщения: 30
Карма: 0
Продолжаем разговор!!! Пример приведенный выше не походит, т.к. создается счет-фактура....
Так что пока разбираюсь с выставлением счета из скрипта... так сказать пробую...но ничего не выходит!
Вот скрипт:
Код:
import java.sql.*;
import java.util.*;
import java.math.*;

import bitel.billing.server.contract.bean.*;
import bitel.billing.server.bill.bean.*;
import bitel.billing.server.util.*;


Calendar time = event.getGenerateTime();
Calendar DateNow = Calendar.getInstance();
cid = event.getContractId();
print("cid:"+cid);



BillManager bill_manager = new BillManager(setup,con,6,setup.getSetup().getModuleSetup(6));



Bill bill_doc = new Bill();
bill_doc.setCid(cid);

bill_doc.setCreateDate(DateNow.getTime());
print (DateNow.getTime());
bill_doc.setMm(1);
bill_doc.setSumm(new BigDecimal(100));
bill_doc.setTypeId(4);
bill_doc.setTypeTitle("test");

bill_doc.setYy(2011);


bill_doc.setAccountId(1);
bill_doc.setNpid(1);

Position position = new Position();
position.setId(11);
position.setName("Test!");
position.setQuantity("1");
position.setSumm("100");
position.setTitle("Test!");
position.setUnit("руб.");

PositionValue position_value = new PositionValue();
position_value.setCid(cid);
position_value.setName("Test!");
position_value.setPosition(position);
position_value.setPositionId(1);
position_value.setQuantity(new BigDecimal(1));
position_value.setSumma(new BigDecimal(100));
position_value.setUnit("шт.");

ArrayList position_value_list = new java.util.ArrayList();
position_value_list.add(position_value);
ArrayList bill_doc_list = new java.util.ArrayList();
bill_doc_list.add(bill_doc);


bill_manager.addBillDoc(1,bill_doc,position_value_list,bill_doc_list);
//bill_manager.addBillDoc(1,bill_doc,position_value_list,Collections.emptyList());
print ("end");



Ошибок при выполнении нет, но и счет не создается! В чем загвоздка??
Прошу Помощи!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 17 янв 2011, 17:54 
Не в сети
Клиент
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 18 янв 2011, 12:25 
Не в сети

Зарегистрирован: 15 июл 2009, 15:22
Сообщения: 30
Карма: 0
Итак, при ковырянии моего скрипта я продвинулся ровно на чуть чуть, а именно:
Счет всетаки создался, но при задании параметра position_value.setSumma(new BigDecimal(0)).
Если поставить какое нибудь число, ну например position_value.setSumma(new BigDecimal(100)), то появляется вот такая ощибка:
Код:
1-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream - java.lang.NullPointerException
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bitel.billing.server.bill.bean.PositionValue.toElement(PositionValue.java:153)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bitel.billing.server.bill.bean.AbstractManager.addBillDocData(AbstractManager.java:935)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bitel.billing.server.bill.bean.BillManager.serializeBillToXML(BillManager.java:697)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bitel.billing.server.bill.bean.BillManager.addBillDoc(BillManager.java:622)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at sun.reflect.GeneratedMethodAccessor300.invoke(Unknown Source)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at java.lang.reflect.Method.invoke(Unknown Source)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bsh.Reflect.invokeMethod(Reflect.java:137)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bsh.Reflect.invokeObjectMethod(Reflect.java:83)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bsh.Name.invokeMethod(Name.java:858)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bsh.Interpreter.eval(Interpreter.java:653)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:352)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:70)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bitel.billing.server.script.bean.ScriptMachine.runScriptImpl(ScriptMachine.java:190)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.access$0(ScriptMachine.java:1)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:361)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:1)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at java.util.concurrent.FutureTask.run(Unknown Source)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
01-18/12:14:51 ERROR [pool-2-thread-84] LoggingPrintStream -    at java.lang.Thread.run(Unknown Source)




Вот так! Есть идеи?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 18 янв 2011, 12:35 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Код:
import bitel.billing.server.util.*;
import ru.bitel.bgbilling.server.util.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import java.math.BigDecimal;
import bitel.billing.server.bill.bean.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.common.*;
import java.io.StringWriter;
import bitel.billing.server.bill.bean.BillManager;


public void main( setup, con, conSlave )
{
int mid = 65; //mid модуля Бухгалтерии
int accountId =1; // id счета банка

Calendar month = new GregorianCalendar();
int mm = month.get(Calendar.MONTH);
int yy = month.get(Calendar.YEAR);
month.set(Calendar.DAY_OF_MONTH,1);

BalanceUtils bu = new BalanceUtils( conSlave );   
ModuleSetup moduleSetup = setup.getModuleSetup( mid );
TemplateBillManager man = new TemplateBillManager( moduleSetup, conSlave, mid, false );
List templateBillList = man.getTemplatePayBillList( moduleSetup, yy, mm, null, null, null, null );
print("doc for create = "+templateBillList.size());
//делаем
DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element bills = doc.createElement("bills");
doc.appendChild(bills);
for( TemplateBill templateBill : templateBillList )
{

Element row = createElement( bills,"bill" );
BigDecimal subBillSumm = BigDecimal.ZERO;
row.setAttribute( "rest", Utils.formatBigDecimalSumm( bu.getBalance( month.getTime(), templateBill.getContractId() ) ) );
row.setAttribute( "account_id",String.valueOf(accountId ));
BigDecimal billSumm = fillBillData( row, templateBill );
if( templateBill.getSubBillList() != null )
{
for( TemplateBill templateSubBill : templateBill.getSubBillList() )
{
Element subBill = createElement( row, "sub_bill" );
subBillSumm = subBillSumm.add( fillBillData( subBill, templateSubBill ) );
}
}
row.setAttribute( "sub_bill_summ", Utils.formatBigDecimalSumm( subBillSumm ) );
row.setAttribute( "summ", Utils.formatBigDecimalSumm( billSumm.add( subBillSumm ) ) );
}
//посомтрим что получилось
ByteArrayOutputStream sos = new ByteArrayOutputStream();
CommonUtils.serializeXML(doc , sos, "windows-1251");
String xml = sos.toString();
//print(xml);
InputStream is = new ByteArrayInputStream( xml.getBytes( "cp1251" ) );
BillManager pbm = new BillManager( setup, con, mid, moduleSetup );
pbm.addBillDocs( -1, is, yy, mm, new Date() );


}
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 = value.getSumma();

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

Position pos = value.getPosition();
posEl.setAttribute( "insum", Utils.booleanToStringInt( pos.isInSum() ) );
posEl.setAttribute( "awlz", Utils.booleanToStringInt( pos.isAddWhenLessZero() ) );

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;
}

счета
Код:
BillManager pbm = new BillManager( setup, con, mid, moduleSetup );

счетфактуры
Код:
InvoiceManager pbm = new InvoiceManager( setup, con, mid, moduleSetup );

и все ;)
нада на вики запостить будет :)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 18 янв 2011, 15:05 
Не в сети

Зарегистрирован: 15 июл 2009, 15:22
Сообщения: 30
Карма: 0
И всетаки возвращаясь к моему скрипту... почему на создается документ со значением суммы больше нуля?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 18 янв 2011, 15:21 
Не в сети
Клиент
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 18 янв 2011, 15:23 
Не в сети

Зарегистрирован: 15 июл 2009, 15:22
Сообщения: 30
Карма: 0
да конечно настроил....
bill.pos.100.title=Test
bill.pos.100.name=Test
bill.pos.100.quantity=1


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 18 янв 2011, 15:39 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Код:
bill.pos.<код позиции>.summ=<вычисляемая сумма позиции>

м?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 18 янв 2011, 23:35 
Не в сети

Зарегистрирован: 15 июл 2009, 15:22
Сообщения: 30
Карма: 0
ну конечно-же, и это тоже....
bill.pos.100.summ=CONST(10) (это например написано, менял на все что можно было поменять...эффекта ноль)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 19 янв 2011, 05:51 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
тут 2 момента.
1- как пошел я
я просто настроил чтоб в ЛК была возможность выставления счетов и теперь каждый юрик сам себе ставит счета и тд
2- самому настроить (написать скрипт) чтоб для каждого юрика выставлялась определенная сумма в зависимости от наработки в следующем месяце. У меня не получилось, верней я не особо стал заморачиваться. Сделать можно и наработки есть, но пусть в лк себе сами на нужную сумму ставят :-D

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание счетов из BGBS!!
СообщениеДобавлено: 19 янв 2011, 06:07 
Не в сети
Клиент
Аватара пользователя

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

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


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

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


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

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


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

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