Смена статуса (BGB7.0) (11195)

Script: ru.bgcrm.dyn.ufanet.wizard.fl.maintenance.listener.contract.StatusChangeListener

Описание

1. Термины и сокращения

  • "Услуга" - сущность субдоговор;

  • "Акция" - навешенная тарифная опция на субдоговоре (в биллинге);

  • "Единый бланк" - вариант согласования с абонентом, где используется бланк с чернильной подписью;

  • "ЭДО" - вариант согласования с абонентом, где используется электронная форма бланка, можно использовать для подключения услуги;

  • "Оферта" - вариант согласования с абонентом, где используется подтверждение через присланный 4-значный СМС-код;

2. Назначение

  • для приостановки/расторжения/возобновления услуг у физ.лиц.

3. Тип(ы) процесса(ов)

Процесс #11195 можно создать на: - контрагенте; - 7rb договоре;

4. Используемые классы

StatusChangeListener - скрипт процесса #11195 Смена статуса (BGB7.0);

ServiceStatusChangeListener - скрипт процесса #11190 Смена статуса услуги ФЛ служебный;

5. Используемые зависимости

  • StatusChangeProcess - интерфейс интерактора для #11195;

  • ServiceStatusChangeProcess - интерфейс интерактора для #11190;

6. Логика методов (в общих чертах)

StatusChangeListener.java (11195 Смена)

  • deleteEarlierCreatedLinkedServiceProcesses - слушает смену статуса на "Открыт (10)" - удаляет привязанные связ.процессы;

  • createLinkedProcessByStatusChanged - слушает смену статуса на "Принят (9)" - создаёт #11190 единственно прикреплённым субдоговором;

  • createSuspensionRSOProcessIfNeed - слушает смену статуса на "Подтверждено (55)" и если в мастере был заполнен (4257) Действие с услугой как ПРИОСТАНОВЛЕНИЕ/РАСТОРЖЕНИЕ - создаёт связ.процесс #11192 РСО (ФЛ);

  • setRsoFLAcceptStatus - слушает смену статуса на "Данные приняты (463)" и в созданном ранее #11192 РСО (ФЛ) меняет статусы, чтоб РСО(ФЛ) выполнила свою логику (создание служебного РСО, при необходимости создание таски или перевод в статус "Не удержан");

  • setSMSParam - смотрит, как в мастере заполнили параметр (3514) Способ отправки и принимает решение: отправить пуш или смс;

  • createSEContractRepairAndServiceProcess - смотрит (4273) Необходим ли выезд СИ? ДА - создаём #10650 !Ремонт-обслуживание(Единый для СИ);

ServiceStatusChangeListener.java (11190 Смена служебный)

  • loadOptionsFromRB - слушает смену параметра (4257) Действие с услугой - и делает запрос в 7rb-биллинг, чтоб получить акции, которые висят на услуге;

  • calculateAndSetEndDate - слушает (3538) Количество дней приостановления и считает, проставляет дату в (2327) Дата окончания;

  • contractStatusChange - слушает смену статуса на Закрыт(8) и меняет статус услуги - делая запрос contractStatusDAO.updateStatus в 7rb-биллинг;

  • buildContractPeriod - метод, который считает учётный период для услуги, чтоб его прописать при смене статуса услуги в биллинге;

  • getEndServiceDate - - метод, который высчитывает конечную дату по количеству дней из параметра (3538);