forum.bitel.ru http://forum.bitel.ru/ |
|
При переоформлении email-ы переносятся без учёта дат (CRM) http://forum.bitel.ru/viewtopic.php?f=11&t=11011 |
Страница 1 из 1 |
Автор: | Cromeshnic [ 21 окт 2015, 12:15 ] |
Заголовок сообщения: | При переоформлении email-ы переносятся без учёта дат |
v 5.2 Насколько я помню, изначально модуль не пооддерживал date1, date2 для почтовых ящиков на договорах. Потом они появились, но при переоформлении до сих пор происходит перенос ящиков целиком. Кусок кода из bitel.billing.server.email.Module.moduleAction(...) : Код: else if ((event instanceof ContractWrapEvent)) { ContractWrapEvent cwEvent = (ContractWrapEvent)event; if (!cwEvent.isCheck()) { Connection con = ctx.getConnection(); AccountManager manager = new AccountManager(con, mid); for (Account account : manager.getContractAccountList(cwEvent.getContractId())) { account.setContractId(cwEvent.getToContractId()); manager.updateAccount(account); } } } Можете пофиксить? |
Автор: | Ildar [ 27 окт 2015, 23:02 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат |
Вам кажется, что не надо переносить, если account более не действует? |
Автор: | Cromeshnic [ 30 окт 2015, 15:55 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
Ну да, в том числе. Но у меня вылезло в обратной ситуации - переоформляем будущим числом, и email утекает без дат на новый договор, а на текущем пропадает. |
Автор: | Ildar [ 09 ноя 2015, 14:35 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
5.2 выложен. Прошу обновиться и протестировать. |
Автор: | Selena [ 16 дек 2015, 10:01 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
А можно добавить возможность ручного переноса email с договора на договор с определенной даты? Сейчас можно только как и прежде перенести весь email целиком без учета дат, либо закрывать руками датой на старом договоре и открывать на новом, что очень неудобно. |
Автор: | Cromeshnic [ 21 дек 2015, 08:10 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
Плюсую |
Автор: | Ildar [ 15 фев 2016, 11:41 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
В следующей версии будет. |
Автор: | Arkanar [ 25 май 2016, 12:05 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
Версия 5.2 Сломалась почта при переоформление договора, починили тем что вручную обновили таблицу email_attribute. Покопался в документации и коде в итоге, что нашел. Есть две таблицы в которых хранятся email-атрибуты: email_account_{mid} - e-mail aккаунты пользователей, email_attribute_{mid} - дополнительные ldap атрибуты. При переоформление договора выполняется следующий код Код: bitel.billing.server.email.Module.moduleAction(...)... else if(event instanceof ContractWrapEvent) { ContractWrapEvent cwEvent2 = (ContractWrapEvent)event; if(!cwEvent2.isCheck()) { manager1 = new AccountManager(ctx.getConnection(), mid); am1 = manager1.getContractAccountList(cwEvent2.getContractId(), cwEvent2.getDateOpen()).iterator(); while(true) { do { if(!am1.hasNext()) { return; } account1 = (Account)am1.next(); accountTransfer1 = new Account(); accountTransfer1.setContractId(cwEvent2.getToContractId()); accountTransfer1.setAccount(account1.getAccount()); accountTransfer1.setDomainId(account1.getDomainId()); accountTransfer1.setQuota(account1.getQuota()); accountTransfer1.setStatus(account1.getStatus()); accountTransfer1.setComment(account1.getComment()); accountTransfer1.setPassword(account1.getPassword()); accountTransfer1.setDate1(cwEvent2.getDateOpen()); accountTransfer1.setDate2(account1.getDate2()); accountTransfer1.setNeedOpenAndNeedClose(new Date()); manager1.updateAccount(accountTransfer1); } while(account1.getDate2() != null && !TimeUtils.dateBefore(cwEvent2.getDateClose(), account1.getDate2())); this.closeAccount(account1, cwEvent2.getDateClose(), manager1); } } } Создается новый аккаунт, через аккаунт менеджер, в который заносятся параметры аккаунта email_account, но email_attribute игнорируются. Залез в AccountManager при updateAccount обновляется только email_account. При удаление, кстати, остаются висеть email_attribute. Вот такой вот баг |
Автор: | Ildar [ 25 май 2016, 13:19 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
Спасибо, были добавлены атрибуты и пересылки. Обновление для 5.2 выкладывается, скоро будет доступно. |
Автор: | Arkanar [ 25 май 2016, 14:06 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
Быстро, спасибо.) |
Автор: | Cromeshnic [ 14 окт 2016, 09:48 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
Наконец обновились, проверил - работает наполовину: атрибуты переносятся, а пересылки - нет. Вернее, пересылки дублируются на старом договоре. Посмотрел по коду - проблема в логике updateForwardList: Код: List forwardList = forwardManager.getForwardList(account.getId()); if (!forwardList.isEmpty()) { forwardManager.updateForwardList(accountTransfer.getId(), forwardList); } Код: public void updateForwardList(int accountID, List<Forward> forwardList) { try { String query = "DELETE FROM email_forward_" + this.mid + " WHERE aid=?"; PreparedStatement ps = this.con.prepareStatement(query); ps.setInt(1, accountID); ps.executeUpdate(); ps.close(); query = "INSERT INTO email_forward_" + this.mid + " ( aid, email ) VALUES (?, ?)"; ps = this.con.prepareStatement(query); for (Forward forward : forwardList) { ps.setInt(1, forward.getAccountId()); ps.setString(2, forward.getEmail()); ps.executeUpdate(); } ps.close(); } catch (Exception ex) { ex.printStackTrace(); } } Тут ещё нужно аккуратно фиксить, чтобы после фикса он не удалял форварды на старом договоре, т.к. при переоформлении будущим числом форварды не будут работать до наступления даты переоформления. |
Автор: | Cromeshnic [ 01 дек 2016, 12:45 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
up? |
Автор: | Ildar [ 01 дек 2016, 14:48 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
Поправил. Перенос пересылок теперь идентичен атрибутам. Накатил до 5.2. Выложить обновление на 5.2 ? |
Автор: | Cromeshnic [ 01 дек 2016, 18:40 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
да, спасибо |
Автор: | Ildar [ 02 дек 2016, 10:27 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
Ок, выложил. |
Автор: | Cromeshnic [ 20 янв 2017, 07:42 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
Обновился, потестировал - всё красиво, атрибуты и пересылки переносятся на новый и остаются на старом. Спасибо. |
Автор: | Selena [ 12 ноя 2018, 16:00 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
Selena писал(а): А можно добавить возможность ручного переноса email с договора на договор с определенной даты? Сейчас можно только как и прежде перенести весь email целиком без учета дат, либо закрывать руками датой на старом договоре и открывать на новом, что очень неудобно. Привет всем ) а про это так и забыли, да? тогда был 5-й биллинг, сейчас 7-й %) Обещали в следующей версии ) |
Автор: | Cromeshnic [ 28 ноя 2018, 14:18 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
7.0 нет такого. В 7.1 мб? В коммитах не вижу такого: https://bgbilling.ru/v7.1/download/email/fixed email: вер. 7.0.185 / 14.03.2018 16:03:39 |
Автор: | Ildar [ 28 ноя 2018, 14:39 ] |
Заголовок сообщения: | Re: При переоформлении email-ы переносятся без учёта дат (CR |
Да, это в 7.1. В коммитах и не должно быть, тогда и 7.1 еще не было. Оно должно было быть тут - https://bgbilling.ru/v7.1/download/kernel/changes.txt , но я видать забыл его туда добавить. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |