forum.bitel.ru http://forum.bitel.ru/ |
|
Создание счета не предоплату (за будущий месяц) http://forum.bitel.ru/viewtopic.php?f=14&t=6788 |
Страница 1 из 1 |
Автор: | Феанор [ 16 май 2012, 07:25 ] |
Заголовок сообщения: | Создание счета не предоплату (за будущий месяц) |
Собственно, subj. Не получается. Хочу выставить счет за июнь (в шаблоне номенклатура в счете с учетом месяцев - типа, за услуги связи за май, июнь и т.д.) С прошедшими и текущим месяцами все ок. Понадобилось выставить счета за будущие месяца (чтобы заранее оплатили клиенты) - а не получается =( Ни через стандартного клиента (не генерируется счет), ни через скрипты. |
Автор: | skyb [ 16 май 2012, 07:31 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
а что происходит? почему не генирится то? у меня работает, с админки |
Автор: | Феанор [ 16 май 2012, 07:49 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
А ничего не происходит, через админку - при нажатии на кнопку сгенерировать (когда выбран июнь) - ничего. Через скрипт - выставляем 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="<>" 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 |
Автор: | focus [ 18 май 2012, 14:10 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
На Код: Клиент: вер. 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 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
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 Разработчики, ау?:) |
Автор: | stark [ 25 май 2012, 17:35 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
что-то я не понял..У нас же вроде нельзя выставить счет на предоплату , счета можно только по факту выставлять. |
Автор: | Феанор [ 28 май 2012, 12:16 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
stark писал(а): что-то я не понял..У нас же вроде нельзя выставить счет на предоплату , счета можно только по факту выставлять. а как тогда на 5.2 так получается у людей?:) Я допустим через скрипт хочу создать счет - позиции задаю и сумму задаю им, а он все равно не создается =) |
Автор: | stark [ 28 май 2012, 20:06 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
Феанор писал(а): stark писал(а): что-то я не понял..У нас же вроде нельзя выставить счет на предоплату , счета можно только по факту выставлять. а как тогда на 5.2 так получается у людей?:) Не знаю ![]() Феанор писал(а): Я допустим через скрипт хочу создать счет - позиции задаю и сумму задаю им, а он все равно не создается =) Вы используете TemplateBillManager ? |
Автор: | Феанор [ 29 май 2012, 09:08 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
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; } |
Автор: | stark [ 30 май 2012, 19:09 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
Феанор писал(а): Код: List<TemplateBill> templateBillList = man.getTemplatePayBillList( moduleSetup, yy, mm, null, cid, null, null ); Там вначале этого метода стоит проверка : Код: if (!BillUtil.isPast( yy, mm )) { return result; } Поэтому ничего не работает. |
Автор: | Феанор [ 31 май 2012, 15:47 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
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 (игнорировать будущие числа)); |
Автор: | stark [ 05 июн 2012, 13:26 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
Феанор писал(а): а может параметр в конструктор, может быть, добавить, чтобы он игноировал это?:) и обратную совместимость обеспечим и возможность будущим числом через скрипты создавать дадим TemplateBillManager man = new TemplateBillManager( moduleSetup, con, mid, false,false (игнорировать будущие числа)); Добавил . В следующем обновлении будет. |
Автор: | Феанор [ 22 июн 2012, 16:40 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
stark писал(а): Феанор писал(а): а может параметр в конструктор, может быть, добавить, чтобы он игноировал это?:) и обратную совместимость обеспечим и возможность будущим числом через скрипты создавать дадим TemplateBillManager man = new TemplateBillManager( moduleSetup, con, mid, false,false (игнорировать будущие числа)); Добавил . В следующем обновлении будет. это в тех которые уже были должно быть? Обновлять только модуль bill? Потому что я скачал свежую версию модуля билл и все равно не получается. |
Автор: | stark [ 22 июн 2012, 16:56 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
bill. А там в addBillDocs такая же проверка стоит |
Автор: | Феанор [ 25 июн 2012, 13:24 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
stark писал(а): bill. А там в addBillDocs такая же проверка стоит ждать следующего обновления?:) |
Автор: | stark [ 25 июн 2012, 16:13 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
ждите |
Автор: | Феанор [ 19 июл 2012, 07:58 ] |
Заголовок сообщения: | Re: Создание счета не предоплату (за будущий месяц) |
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); } поделитесь рабочим примером? |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |