forum.bitel.ru http://forum.bitel.ru/ |
|
как узнать установлена ли абонплата? http://forum.bitel.ru/viewtopic.php?f=19&t=4513 |
Страница 1 из 1 |
Автор: | skyb [ 03 сен 2010, 11:08 ] |
Заголовок сообщения: | как узнать установлена ли абонплата? |
как можно узнать установлена ли абонплата на договоре? не модуль а услуга. Есть задумка сделать скидку при выставлении определенных слов в текстовом параметре договора. То что в вики неподойдет немного. |
Автор: | snark [ 03 сен 2010, 15:44 ] |
Заголовок сообщения: | Re: как узнать установлена ли абонплата? |
через API ? SQL ? |
Автор: | skyb [ 03 сен 2010, 15:50 ] |
Заголовок сообщения: | Re: как узнать установлена ли абонплата? |
да я уже почти скрипт закончил ![]() |
Автор: | skyb [ 13 сен 2010, 06:13 ] |
Заголовок сообщения: | Re: как узнать установлена ли абонплата? |
Код: import bitel.billing.server.util.*; import java.math.BigDecimal; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.List; import bitel.billing.server.contract.bean.*; import bitel.billing.server.contract.bean.BalanceUtils; import bitel.billing.server.contract.bean.ContractParameterManager; import bitel.billing.server.contract.bean.ContractService; import bitel.billing.server.contract.bean.ContractServiceManager; import bitel.billing.server.npay.bean.ServiceObject; import bitel.billing.server.npay.bean.ServiceObjectManager; import bitel.billing.server.npay.bean.*; import bitel.billing.server.script.bean.event.*; int DISCOUNT_ID = 50; int STUDENTS_ID = 27; int VIP_ID = 28; int MODULE_NPAY = 4; int FIZ_ID = 4; int pid = 52; date = new GregorianCalendar(); yesterday = date.clone(); yesterday.add(Calendar.DAY_OF_YEAR, -1); int id = event.getContractId ( ); // id договора cpu = new ContractParamUtils( con );//для групп cpm = new ContractParameterManager( con ); // дата закрытия dateClosed = cpm.getDateParam( id , pid); // дата закрытия //print(dateClosed.getTime()); serviceObjectManager = new ServiceObjectManager(con, MODULE_NPAY); customServiceList = serviceObjectManager.getServiceObjectList(id, -1, 0, 0); for (service : customServiceList) { sid = service.getServiceId(); StartDate = service.getDate1(); StopDate = service.getDate2(); paramId = event.getParamId(); value = event.getValue(); if (value != null && value.matches("VIP") && paramId == DISCOUNT_ID) { if (sid == null) { return; } if (sid == FIZ_ID && StopDate == null) { service.setDate2 ( yesterday.getTime() ); serviceObjectManager.updateServiceObject( service ); if (dateClosed != null) { service.setId( -1 ); service.setContractId( id ); service.setServiceId ( VIP_ID ); service.setObjectId( 0 ); service.setDate1( date.getTime() ); service.setDate2( dateClosed.getTime() ); service.setComment( "Подключение услуги VIP клиентам скриптом" ); serviceObjectManager.updateServiceObject( service ); } if ( dateClosed == null ) { service.setId( -1 ); service.setContractId( id ); service.setServiceId ( VIP_ID ); service.setObjectId( 0 ); service.setDate1( date.getTime() ); service.setDate2( null ); service.setComment( "Подключение услуги VIP клиентам скриптом" ); serviceObjectManager.updateServiceObject( service ); } } } } не могу победить чтоб 1-открывалась предыдущая абонплата(та которая была до той который выставлена была скриптом) 2-чтоб дата закрытия услуги выставлалась по выставлению параметра договора дата. Тоесть сейчас так и есть, но на момент выставления уже должна быть дата |
Автор: | skyb [ 20 сен 2010, 10:09 ] |
Заголовок сообщения: | Re: как узнать установлена ли абонплата? |
Написал скрипт, если нужно могу выложить ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |