BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 27 апр 2024, 16:10

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: 6.2 PaymentService и модуль mps
СообщениеДобавлено: 01 мар 2017, 18:26 
Не в сети

Зарегистрирован: 20 окт 2016, 00:34
Сообщения: 82
Карма: 0
Здравствуйте.
Подскажите, пожалуйста, по такому вопросу - в 6.2 пытался сделать обработку по приходу платежа,
реализовал через dynservice, расширив PaymentService - результат, при занесении платежа через интерфейс клиента
всё отрабатывает, при занесение платежа через платёжную систему (osmp) - тишина.
Собственно, в 6.0 пытался делать через dynaction - результат идентичный. Думал в 6.2 через PaymentService заработает.
При этом скрипт на договоре по приходу платежа отрабатывает и при занесении платежа из клиента, и по приходу через mps.
Собственно вопрос - это так и должно быть?
Просто скрипт на договоре не всегда удобно.

_________________
Клиент: вер. 7.1.206 / 15.08.2019 22:37:24
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181
Сервер: вер. 7.1.1144 / 15.08.2019 22:39:22
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 6.2 PaymentService и модуль mps
СообщениеДобавлено: 01 мар 2017, 18:44 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Там же вроде есть стандартное событие "Приход платежа".
И оно отрабатывает на все виды приходов.
Его не хватает?

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 6.2 PaymentService и модуль mps
СообщениеДобавлено: 01 мар 2017, 20:30 
Не в сети

Зарегистрирован: 20 окт 2016, 00:34
Сообщения: 82
Карма: 0
Да, есть, и по нему, как я и написал работает.
Но скрипт на договоре не всегда хорошо.
Его могут удалить, закрыть, создать договор не из шаблона. Волшебные ручки могут много чего сделать.
Можно писать обработчики событий при изменении/удалении скриптов на договоре контролировать это и запрещать/разрешать действия
(при том, что тому же абонентскому отделу разрешены в правах манипуляции со скриптами на договорах и это нормально),
но такое решение, на мой взгляд, не очень хорошее и только усложняет поддержку.
Обработчик же как dynaction/dynservice позволяет в некоторых случаях (когда действие применяется для всех договоров, либо условия фильтрации просты)
закрыть такую проблему.
Как-то так. Потому и возник вопрос - обработчики написать возможность есть, а работают они не всегда.

_________________
Клиент: вер. 7.1.206 / 15.08.2019 22:37:24
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181
Сервер: вер. 7.1.1144 / 15.08.2019 22:39:22
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 6.2 PaymentService и модуль mps
СообщениеДобавлено: 01 мар 2017, 20:37 
Не в сети

Зарегистрирован: 20 окт 2016, 00:34
Сообщения: 82
Карма: 0
Добавлю, если ни чего не путаю, скрипт по событию "Приход платежа" отрабатывает после события, есть
конечно before и after, но если мне не изменяет склероз они давно не рекомендованы к использованию и их
как раз предлагают заменить решением через dynaction/dynservice, где можно воткнуть обработку как до стандартного
действия, так и после.

_________________
Клиент: вер. 7.1.206 / 15.08.2019 22:37:24
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181
Сервер: вер. 7.1.1144 / 15.08.2019 22:39:22
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 6.2 PaymentService и модуль mps
СообщениеДобавлено: 01 мар 2017, 20:59 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
fmaks писал(а):
Его могут удалить, закрыть, создать договор не из шаблона.

Решаете административные проблемы техническим способом © Кто-то из разрабов.


fmaks писал(а):
обработчики написать возможность есть, а работают они не всегда.

Судя по MPSTransactionManager там вызывается PaymentDao.update(payment)
А в PaymentDao
Код:
 protected void updateImpl(Payment payment)
    throws BGException, SQLException
  {
    if (payment != null)
    {
      String query = null;
      PreparedStatement ps = null;
      if (payment.getId() < 1)
      {
        query = "INSERT INTO " + this.tableName + " SET dt=?, cid=?, pt=?, uid=?, summa=?, comment=?";
        ps = this.con.prepareStatement(query, 1);
      }
      else
      {
        query = "UPDATE " + this.tableName + " SET dt=?, cid=?, pt=?, uid=?, summa=?, comment=? WHERE id=?";
        ps = this.con.prepareStatement(query);
        ps.setInt(7, payment.getId());
      }
      ps.setDate(1, TimeUtils.convertDateToSqlDate(payment.getDate()));
      ps.setInt(2, payment.getContractId());
      ps.setInt(3, payment.getTypeId());
      ps.setInt(4, payment.getUserId());
      ps.setBigDecimal(5, payment.getSum());
      ps.setString(6, payment.getComment());
      ps.executeUpdate();
      if (payment.getId() < 0) {
        payment.setId(ServerUtils.lastInsertId(ps));
      }
      ps.close();
    }
  }

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 6.2 PaymentService и модуль mps
СообщениеДобавлено: 01 мар 2017, 21:50 
Не в сети

Зарегистрирован: 20 окт 2016, 00:34
Сообщения: 82
Карма: 0
Phricker писал(а):
fmaks писал(а):
Его могут удалить, закрыть, создать договор не из шаблона.

Решаете административные проблемы техническим способом © Кто-то из разрабов.


Согласен. Но - да, местами так и есть, тем более если техническое решение позволяет без особых сложностей закрыть проблему в принципе.

Phricker писал(а):
fmaks писал(а):
обработчики написать возможность есть, а работают они не всегда.

Судя по MPSTransactionManager там вызывается PaymentDao.update(payment)
А в PaymentDao
Код:
 protected void updateImpl(Payment payment)
    throws BGException, SQLException
  {
...
    }
  }


Ясно. Т.о. в mps разработчики напрямую используют PaymentDao, в результате навесить свою обработку ни через ActionUpdateContractPayment,
ни через PaymentService не получается.
Честно, не очень это удобно для заточки функционала под себя - здесь это работает, а здесь нет.
И как быть тогда с предобработкой, забыв про before и after.
Может разработчики что ответят, планируется ли это приводить к единому виду, чтобы dynservice для платежей можно было использовать?

_________________
Клиент: вер. 7.1.206 / 15.08.2019 22:37:24
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181
Сервер: вер. 7.1.1144 / 15.08.2019 22:39:22
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 6.2 PaymentService и модуль mps
СообщениеДобавлено: 02 мар 2017, 22:30 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Динсервисы перегружаются только для вызова через экзекутеры, конечно.
Так работать не будет как вы хотите, нельзя перегрузить дин.кодом любой код в биллинге. Так и должно быть, да.
Не говоря уж о том, что сервисы не используются в обработке платежей в этом месте. И даже если бы использовались они - оно бы так не сработало, т.к. см. сначала сообщения.

Событие не кидается после прихода платежа, что-то я не понял?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 6.2 PaymentService и модуль mps
СообщениеДобавлено: 03 мар 2017, 14:08 
Не в сети

Зарегистрирован: 20 окт 2016, 00:34
Сообщения: 82
Карма: 0
Да я и не предполагал, что можно перегрузить любой код в биллинге :D
Просто предположил, что коль есть PaymentService, то он будет работать для любого прихода платежа.
Когда выяснили, что mps не использует PaymentService, то стало ясно что работать и не будет, а своим
первым предложением про экзекутеры вы вбили последний гвоздь.
С этим теперь всё ясно - работать не будет, переделываться не будет.

Хорошо, неудобно, но ладно.

Событие после прихода платежа кидается и скрипт висящий на договоре срабатывает по событию "Приход платежа".
Я объяснял почему скрипт на договоре - это не всегда удобно.
Если мне нужна предобработка, before и after - будут поддерживаться?
Вот это будет работать и в следующих версиях:
Код:
  action.event_contract_UpdateContractPayment=before

?

Просто в инструкции начиная с версии 5.2 этого нет и если мне не изменяет склероз,
то где-то писалось - что before и аfter - не рекомендованны к применению.

_________________
Клиент: вер. 7.1.206 / 15.08.2019 22:37:24
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181
Сервер: вер. 7.1.1144 / 15.08.2019 22:39:22
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 6.2 PaymentService и модуль mps
СообщениеДобавлено: 14 мар 2017, 19:11 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
эта настройка before и after будет работать опять же для вызова вашего экшена UpdateContractPayment только, из клиента или веба.
это можно полностью заменить с помощью dynaction, только более просто и гибко, именно поэтому они устаревшие.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 6.2 PaymentService и модуль mps
СообщениеДобавлено: 21 мар 2017, 20:32 
Не в сети

Зарегистрирован: 20 окт 2016, 00:34
Сообщения: 82
Карма: 0
Да, теперь я понял. Спасибо за ответ.
Получается что единую предобрабоку/обработку
для события прихода платежа включая и модуль mps сделать ни как не получится.
Жаль.

P.S. Да я только "за" dynaction-ы :D жаль только всё ими сделать не получается.

_________________
Клиент: вер. 7.1.206 / 15.08.2019 22:37:24
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181
Сервер: вер. 7.1.1144 / 15.08.2019 22:39:22
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.179s | 38 Queries | GZIP : On ]