forum.bitel.ru http://forum.bitel.ru/ |
|
[РЕШЕНО]Закрытый период http://forum.bitel.ru/viewtopic.php?f=22&t=7419 |
Страница 1 из 1 |
Автор: | zavndw [ 13 ноя 2012, 05:31 ] |
Заголовок сообщения: | [РЕШЕНО]Закрытый период |
Хочу сделать "Перемещение в группу через 3 месяца если не было движения денег в наработке" и сразу на первом пункте вики застрял что значит закрытый период? (простым языком) что бы не получилось так что договора будут перемещаться и закрываться |
Автор: | skyb [ 13 ноя 2012, 05:37 ] |
Заголовок сообщения: | Re: Закрытый период |
а в какой статье? просто у меня там есть скриптик который переводил в группу, ну и ещё закрывал договор |
Автор: | zavndw [ 13 ноя 2012, 05:51 ] |
Заголовок сообщения: | Re: Закрытый период |
http://wiki.bgbilling.ru/index.php/%D0% ... 0%BA%D0%B5 |
Автор: | skyb [ 13 ноя 2012, 06:52 ] |
Заголовок сообщения: | Re: Закрытый период |
о, точно мой ))) выставляет вторую дату действия договора, закрывая его, если это необходимо то его немного поправить нада, если нет, просто закоментить сторочку где скулем это выполняется |
Автор: | zavndw [ 13 ноя 2012, 06:54 ] |
Заголовок сообщения: | Re: Закрытый период |
Код: sqlDate = calendar.clone(); вот эту?мне надо его адаптировать под простой перенос в другую группу и мес снизить до 2х три много:) нашел Код: (mounth > 3 ) и сразу вопрос куда этот скрипт ложить? |
Автор: | skyb [ 13 ноя 2012, 08:26 ] |
Заголовок сообщения: | Re: Закрытый период |
Код: import java.math.BigDecimal; import java.sql.*; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.*; import bitel.billing.server.tariff.*; import bitel.billing.common.TimeUtils; import bitel.billing.server.util.*; import ru.bitel.bgbilling.server.util.DefaultServerSetup; import ru.bitel.bgbilling.server.util.ServerUtils; import bitel.billing.common.KernelConst; import bitel.billing.server.contract.bean.*; public void main( setup, con, conSlave ) { Calendar calendar = new GregorianCalendar(); nowDate = calendar.clone();//клонируем дату для дальнейшей работы nowDate.get(Calendar.DATE); sqlDate = calendar.clone(); Date dateSql = TimeUtils.convertCalendarToSqlDate(sqlDate); Date dateNow = TimeUtils.convertCalendarToDate(nowDate);//переводим дату в тип Date с типа Calendar String query = "select id from contract where gr&(1<<19)=0"; PreparedStatement contractPs = con.prepareStatement( query ); ResultSet contractRs = contractPs.executeQuery(); int cid; int i = 0; while ( contractRs.next() ) { cid = contractRs.getInt( 1 ); contract = new ContractManager(con); BalanceUtils balance = new BalanceUtils(con); Contract ct = contract.getContractByID(cid); Date contract_balance = balance.getLastBalanceMonth(ct); if( contract_balance == null) { contract_balance = new Date(); } int mounth = TimeUtils.monthsDelta(contract_balance,dateNow); if (mounth > 2 ) { print ("Контракт с сидом " + cid); String update_query = "update contract set gr=0 where id = "+ cid; PreparedStatement ps = con.prepareStatement( update_query ); ps.executeUpdate() ; //String close_query = "update contract set date2 = '" + dateSql + "' where id = "+ cid; //PreparedStatement rs = con.prepareStatement( close_query ); //rs.executeUpdate() ; cpu = new ContractParamUtils( con ); cpu.setGroup( cid, 19 ); i++; } } print("кол-во " +i ); contractRs.close(); contractPs.close(); } глобальные скрипты |
Автор: | zavndw [ 13 ноя 2012, 08:32 ] |
Заголовок сообщения: | Re: Закрытый период |
номер группы тут cpu.setGroup( cid, 19 ); и тут String query = "select id from contract where gr&(1<<19)=0"; |
Автор: | Phricker [ 13 ноя 2012, 09:44 ] |
Заголовок сообщения: | Re: Закрытый период |
Не верьте скубу. Дебильный скрипт не закрывающий сущности договора :-! У него есть более новый но он им не делится ![]() |
Автор: | zavndw [ 13 ноя 2012, 10:35 ] |
Заголовок сообщения: | Re: Закрытый период |
WARNINGS: Перемещение в группу через 3 месяца: using deprecated method [public bitel.billing.server.contract.bean.Contract bitel.billing.server.contract.bean.ContractManager.getContractByID(int)] вот че пишет |
Автор: | Phricker [ 13 ноя 2012, 11:21 ] |
Заголовок сообщения: | Re: Закрытый период |
http://bit.ly/TFORQg |
Автор: | Phricker [ 13 ноя 2012, 11:23 ] |
Заголовок сообщения: | Re: Закрытый период |
google.ru выдает первую же ссылку на исправление ошибки. google.com - третью помоему |
Автор: | skyb [ 13 ноя 2012, 14:58 ] |
Заголовок сообщения: | Re: Закрытый период |
zavndw у вас 5.1 или 5.2 |
Автор: | zavndw [ 14 ноя 2012, 03:31 ] |
Заголовок сообщения: | Re: Закрытый период |
вер. 5.1 сборка 815 |
Автор: | zavndw [ 15 ноя 2012, 08:57 ] |
Заголовок сообщения: | Re: Закрытый период |
Поправил на вики код для 5,1 |
Автор: | skyb [ 15 ноя 2012, 10:40 ] |
Заголовок сообщения: | Re: [РЕШЕНО]Закрытый период |
Код: package ru.skyb.scripts.global; import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.common.sql.ConnectionSet; import java.sql.*; import java.util.*; import java.util.Date; import bitel.billing.common.TimeUtils; import bitel.billing.server.contract.bean.*; public class archive extends GlobalScriptBase { @Override public void execute(Setup setup1, ConnectionSet connectionSet2) throws Exception { Connection con = connectionSet2.getConnection(); Calendar calendar = Calendar.getInstance(); GregorianCalendar nowDate = (GregorianCalendar) calendar.clone();// клонируем // дату // для // дальнейшей // работы nowDate.get(Calendar.DATE); GregorianCalendar sqlDate = (GregorianCalendar) calendar.clone(); Date dateSql = TimeUtils.convertCalendarToSqlDate(sqlDate); Date dateNow = TimeUtils.convertCalendarToDate(nowDate);// переводим // дату в тип // Date с типа // Calendar String query = "select id from contract where gr&(1<<3)>0"; PreparedStatement contractPs = con.prepareStatement(query); ResultSet contractRs = contractPs.executeQuery(); int cid; int i = 0; while (contractRs.next()) { cid = contractRs.getInt(1); ContractManager contract = new ContractManager(con); Contract ct = contract.getContractById(cid); /* * getLastBalanceMonth public * java.util.Date getLastBalanceMonth(Contract contract) возращает * самый старший месяц, за который есть данные по Балансу */ BalanceUtils balance = new BalanceUtils(con); Date contract_balance = (Date) balance.getLastBalanceMonth(ct); if (contract_balance == null) { continue; } // ==========================close==============================// int mounth = TimeUtils.monthsDelta(contract_balance, dateNow); if (mounth > 6) { print("Контракт с сидом " + cid); /* * String update_query = "update contract set gr=0 where id = "+ * cid; PreparedStatement ps = con.prepareStatement( * update_query ); ps.executeUpdate() ; String close_query = * "update contract set date2 = '" + dateSql + "' where id = "+ * cid; PreparedStatement rs = con.prepareStatement( close_query * ); rs.executeUpdate() ; */ contract.closeContract(cid); ContractParameterManager cpu = new ContractParameterManager(con); cpu.setGroup(cid, 19); cpu.unsetGroup(cid, 3); cpu.unsetGroup(cid, 0); i++; } } print("кол-во " + i); } } это правильное выставление закрытого периода, в вики исправил |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |