forum.bitel.ru http://forum.bitel.ru/ |
|
Статус договора (CRM) http://forum.bitel.ru/viewtopic.php?f=22&t=10500 |
Страница 1 из 1 |
Автор: | Dima_M [ 08 май 2015, 14:30 ] |
Заголовок сообщения: | Статус договора |
Можно ли настроить так, чтоб после достижения даты закрытия договора его статус менялся на Закрыт? |
Автор: | stark [ 08 май 2015, 14:37 ] |
Заголовок сообщения: | Re: Статус договора |
Можно глобальным скриптом вызываемым из планировщика сделать.. Специальной задачи вроде нет. Хотя теоретически мы можем опционально обучить этому задачу установки статусов. |
Автор: | Dima_M [ 08 май 2015, 14:42 ] |
Заголовок сообщения: | Re: Статус договора |
Подскажите как проще мне это сделать? Или, как мне кажется, такая логика бы была правильна по умолчанию для всех. И задача установки статусов, как я понимаю, специально для таких вещей. |
Автор: | stark [ 08 май 2015, 15:25 ] |
Заголовок сообщения: | Re: Статус договора |
Dima_M писал(а): Подскажите как проще мне это сделать? Или, как мне кажется, такая логика бы была правильна по умолчанию для всех. И задача установки статусов, как я понимаю, специально для таких вещей. ну сейчас она для другого. Если добавили смену статуса в будущем, то в день наступления этого дня реально переключает текущий статус на договоре, и как следствие этого модули отрабатывают свою логику с учетом нового статуса. Без этой задачи установка статуса в будущем работать не будет.. Тут вопрос не простой. Изначально у нас не было статуса вообще и была только дата закрытия. Потом появился статус и сейчас он напрямую не связан с датой закрытия. |
Автор: | Dima_M [ 08 май 2015, 15:36 ] |
Заголовок сообщения: | Re: Статус договора |
Но ведь логично то что я предлагаю сделать? |
Автор: | stark [ 08 май 2015, 16:58 ] |
Заголовок сообщения: | Re: Статус договора |
Dima_M писал(а): Но ведь логично то что я предлагаю сделать? Вопрос логичности - это обсуждаемо. не факт что всем это надо ..Можно опцию добавить выключенную по умолчанию, чтобы только вы ее себе включили, а остальных логика не поменялась . |
Автор: | Dima_M [ 08 май 2015, 17:01 ] |
Заголовок сообщения: | Re: Статус договора |
Сделайте, пожалуйста. |
Автор: | stark [ 08 май 2015, 17:04 ] |
Заголовок сообщения: | Re: Статус договора |
Добавил в TODO |
Автор: | skn [ 08 май 2015, 18:42 ] |
Заголовок сообщения: | Re: Статус договора (CRM) |
в данный момент нет события, "наступила дата закрытия договора..." и кто и как его генерировать должен не понятно... |
Автор: | dimOn [ 08 май 2015, 19:22 ] |
Заголовок сообщения: | Re: Статус договора (CRM) |
зачем выдумывать какие-то костыли, если самый подходящий механизм для этого - дин код по шедулеру. скрипт будет размером в 10 строк. |
Автор: | Amir [ 09 май 2015, 19:14 ] |
Заголовок сообщения: | Re: Статус договора (CRM) |
Ну или сразу как задачу планировщика ядра добавить. |
Автор: | Dima_M [ 11 май 2015, 18:54 ] |
Заголовок сообщения: | Re: Статус договора (CRM) |
Вы сделаете, или нужно самому скрипт изобретать? |
Автор: | skyb [ 13 май 2015, 19:54 ] |
Заголовок сообщения: | Re: Статус договора (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.server.util.MailMsg; import ru.bitel.bgbilling.common.BGException; import bitel.billing.server.contract.bean.*; import bitel.billing.common.TimeUtils; public class Dissolved extends GlobalScriptBase { public String subject = "Уведомления "; public String message = "какой то текст"; private MailMsg msg; @Override public void execute( Setup setup1, ConnectionSet connectionSet2 ) throws Exception { msg = new MailMsg( setup1 ); this.msg = msg; StringBuilder mesg = new StringBuilder(); Connection con = connectionSet2.getConnection(); ContractParameterManager cpm = new ContractParameterManager( con ); Calendar nowDate = Calendar.getInstance(); ContractStatusManager csm = new ContractStatusManager(con); ContractStatus ncs = new ContractStatus(); GregorianCalendar tomorrow = (GregorianCalendar) nowDate.clone();//клонируем дату для дальнейшей работы tomorrow.add( Calendar.DAY_OF_MONTH, +1 );//прибавляем к сегодня, ещё 1 день String query = " select id, title, date2, fc from contract where date2 is not null and gr&(1<<6)>0" ; PreparedStatement contractPs = con.prepareStatement( query ); ResultSet contractRs = contractPs.executeQuery(); int i = 0; while ( contractRs.next() ) { int cid = contractRs.getInt( 1 ); String title = contractRs.getString( 2 ); Date date2 = contractRs.getDate( 3 ); int fc = contractRs.getInt( 4 ); Calendar closeDay = TimeUtils.convertDateToCalendar( date2 ); int compare = TimeUtils.compare(nowDate, closeDay , Calendar.DAY_OF_MONTH); //Если дата закрытия равна сегодня, то делаем if ( compare == 0 ) { //Убираем группу у физиков и ставим свою группу для расторгнутых if (fc == 0) { cpm.setGroup( cid, 5 ); cpm.unsetGroup( cid, 3 ); cpm.unsetGroup( cid, 6 ); SendMessages(message, msg); //print("id физиков " + cid); print ("Договор физик " + title + " Дата закрытия " + date2); } //Убираем группу у юриков и ставим свою группу для расторгнутых if (fc == 1) { cpm.setGroup( cid, 2 ); cpm.unsetGroup( cid, 0 ); cpm.unsetGroup( cid, 6 ); SendMessages(message, msg); //print("id юриков " + cid); print ("Договор юрик " + title + " Дата закрытия " + date2); } ncs.setContractId(cid); ncs.setDateFrom(TimeUtils.convertCalendarToDate(tomorrow)); ncs.setStatus(3); csm.changeStatus(ncs, 0, true); //print("id для сравнения правильности выполнения кода " + cid + " сегодня " + compare); i++; } public void SendMessages (String message, MailMsg msg) throws BGException { String objects = "admin@admin.ru"; msg.sendMessage(objects, subject, message); } } что то криво написано, писалось давно но работает =) |
Автор: | Dima_M [ 14 май 2015, 13:26 ] |
Заголовок сообщения: | Re: Статус договора (CRM) |
Спасибо! Попробую и отпишу о результате. Данный функционал нужен не только мне, как выяснилось ![]() |
Автор: | skyb [ 14 май 2015, 14:25 ] |
Заголовок сообщения: | Re: Статус договора (CRM) |
да много кому нужен на самом деле, но дело в том что у всех закрытие договоров по разному происходит, это один способ закрытия, а у меня их чета окло 3-4 (со сторонних систем, при смене статуса, чет ещё кажись) |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |