forum.bitel.ru http://forum.bitel.ru/ |
|
6.0 перемещение в группу (РЕШЕНО) http://forum.bitel.ru/viewtopic.php?f=19&t=8457 |
Страница 1 из 1 |
Автор: | zavndw [ 16 сен 2013, 10:13 ] |
Заголовок сообщения: | 6.0 перемещение в группу (РЕШЕНО) |
Помогите изменить скрипт Скуб делал "Перемещение в группу через 3 месяца если не было движения денег в наработке" Я хочу его отредактировать под 6.0 есть что то поменялось и изменить моменты: 1) сделать что бы в место наработки проверял баланс и если равен или меньше например 1000 что бы перемещал в группу. 2) Убрать установку закрытого периода 3) Сделать заявку на отключение |
Автор: | skyb [ 16 сен 2013, 11:34 ] |
Заголовок сообщения: | Re: 6.0 перемещение в группу |
1) Код: BalanceUtils bu = new BalanceUtils(con); BigDecimal summa5 = bu.getBalance(nowDate.getTime(), cid); 2) Не понял, чего? 3)CRM я ж подсказывал вроде как Код: RegisterTaskManager rtm = new RegisterTaskManager( con ) ;
RegisterTask rt = new RegisterTask(); rt.setContractId(cid); rt.setAddressParamId( 1 ); rt.setOpenUserId( 0 ); rt.setTypeId( 41 ); rt.setStatus( 0 ); rt.setComment( "Создана автоматически скриптом" ) ; rt.setGroupId(4); rtm.updateTask(rt, 0 ); |
Автор: | zavndw [ 16 сен 2013, 11:47 ] |
Заголовок сообщения: | Re: 6.0 перемещение в группу |
в описании "устанавливает закрытый период" как я понял надо убрать этот кусок Код: int mounth = TimeUtils.monthsDelta(contract_balance,dateNow);
if (mounth > 3 ) { 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(); } |
Автор: | skyb [ 16 сен 2013, 12:12 ] |
Заголовок сообщения: | Re: 6.0 перемещение в группу |
вопрос о закрытии договора? это ненада? |
Автор: | skyb [ 16 сен 2013, 12:15 ] |
Заголовок сообщения: | Re: 6.0 перемещение в группу |
вообще так Код: int mounth = TimeUtils.monthsDelta(contract_balance,dateNow);
if (mounth > 3 ) { print ("Контракт с сидом " + cid); cpu = new ContractParamUtils( con ); cpu.setGroup( cid, 19 ); i++; //это добавит группу } } print("кол-во " +i ); contractRs.close(); contractPs.close(); } |
Автор: | zavndw [ 16 сен 2013, 12:55 ] |
Заголовок сообщения: | Re: 6.0 перемещение в группу |
Да не нужно закрытие. С группой должников работает отдел обзвона) |
Автор: | zavndw [ 16 сен 2013, 12:57 ] |
Заголовок сообщения: | Re: 6.0 перемещение в группу |
вот что получается без crm: Код: 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 bu = new BalanceUtils(con); BigDecimal summa5 = bu.getBalance(nowDate.getTime(), cid); if (contract_balance == null) { continue; } // ==========================close==============================// int mounth = TimeUtils.monthsDelta(contract_balance,dateNow); if (mounth > 3 ) { print ("Контракт с сидом " + cid); cpu = new ContractParamUtils( con ); cpu.setGroup( cid, 19 ); i++; //это добавит группу } } print("кол-во " +i ); contractRs.close(); contractPs.close(); } как ее грамотно прикрутить=) |
Автор: | skyb [ 16 сен 2013, 13:07 ] |
Заголовок сообщения: | Re: 6.0 перемещение в группу |
у меня другой немного смысл заложен. у меня сравнивается месяц который был последний по наработке, и текущий, если больше 3, то делаем чего нада. а как быть с исходящим остатком? 3 месяца от куда брать то? |
Автор: | zavndw [ 16 сен 2013, 15:39 ] |
Заголовок сообщения: | Re: 6.0 перемещение в группу |
вот бы суммировать если исходящий остаток за 3 мес равен или меньше чем -1080 |
Автор: | snark [ 26 сен 2013, 13:39 ] |
Заголовок сообщения: | Re: 6.0 перемещение в группу |
skyb писал(а): у меня сравнивается месяц который был последний по наработке, и текущий У меня так же. IMHO это самый простой и удобный метод, т.к. все данные можно сразу, без доп. вычислений, увидеть в клиенте просто открыв договор - это помогает операторам понять почему с клиентом произошло перемещение/закрытие. |
Автор: | zavndw [ 14 авг 2014, 08:07 ] | ||
Заголовок сообщения: | Re: 6.0 перемещение в группу | ||
skyb Скопировал скрипт с вики на дин коде и ругается, что может быть не так?
|
Автор: | skyb [ 14 авг 2014, 09:24 ] |
Заголовок сообщения: | Re: 6.0 перемещение в группу |
класс называется archive а не GlobalScriptBase , и да, желательно с большой буквы называть его и в коде поменять public class archive extends GlobalScriptBase { вот тут название |
Автор: | zavndw [ 14 авг 2014, 10:23 ] |
Заголовок сообщения: | Re: 6.0 перемещение в группу |
skyb писал(а): класс называется archive а не GlobalScriptBase , и да, желательно с большой буквы называть его и в коде поменять public class archive extends GlobalScriptBase { вот тут название спасибо! заработало |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |