Код:
import bitel.billing.server.script.bean.event.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.util.*;
import java.sql.*;
import java.util.*;
includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/main" );
public void onEvent( event, setup, con, conSlave )
{
/*
* Если договор был создан или переоформелн, необходимо инициализировать нек. параметры согласно шаблону.
*
* TODO:
*
* 1. К сожалению, при переоформлении этот скрипт почему-то не срабатывает - разобраться
* 2. Нехватает переинициализации групп при переоформлении - они копируются, а не задаются шаблоном
*/
// Узнать ID договора
cid = event.getContractId();
// Узнать ID пользователя системы (менеджера)
userId = event.getUserId();
// Подготовка для операций над свойствами контракта
cm = new ContractManager(con);
c = cm.getContractByID(cid);
// Подготовка для операций над параметрами контракта
cpm = new ContractParameterManager(con);
// Вычислим номер лицевого счета
if (cid+PACCOUNT_BASE <= PACCOUNT_MAX)
paccount = cid+PACCOUNT_BASE;
else
paccount = "-- Не присвоен! Обратитесь в отдел автоматизации --";
// Установим оператора связи и скопируем № договора в параметры, если мы создали операторский договор с его актуальным номером. Так же, для договоров переуступки и операторских договоров на Арома и ТРК, установим № лицевого счета, т.к. по этим договорам мы ожидаем оплату в наш биллинг
// Действуем в соответствии со сгенерированным из шаблона № договора.
title = c.getTitle();
// ООО "Арома Лэск"
if (title.matches("[ВИТК]А[ЮФ]-.*")) {
cpm.setListParam(cid, 40, 9, userId); // Оператор связи
cpm.setStringParam(cid, 42, title, userId); // № Договора
cpm.setStringParam(cid, 35, paccount.toString(), userId); // № Лицевого счета
}
// МУП ТРК
if (title.matches("[ВИТК]Т[ЮФ]-.*")) {
cpm.setListParam(cid, 40, 10, userId); // Оператор связи
cpm.setStringParam(cid, 42, title, userId); // № Договора
cpm.setStringParam(cid, 35, paccount.toString(), userId); // № Лицевого счета
}
// ОАО "Центральный Телеграф", это договор переуступки - номер в параметрах относится к операторскому договору, в шапке к нашему договору
if (title.matches("ТП[ЮФ]-.*")) {
cpm.setListParam(cid, 40, 6, userId); // Оператор связи
cpm.setStringParam(cid, 42, "", userId); // № Договора
cpm.setStringParam(cid, 35, paccount.toString(), userId); // № Лицевого счета
}
// ЗАО "Фирма ТЕЛ", у этого договора в шапке не настоящий номер, а признак для автовыбора оператора
if (title.matches("ТЕЛ"))
cpm.setListParam(cid, 40, 7, userId); // Оператор связи
cpm.setStringParam(cid, 42, "", userId); // № Договора
cpm.setStringParam(cid, 35, "", userId); // № Лицевого счета
// Установим услугу связи
if (title.matches("В[ТА][ЮФ]-.*"))
cpm.setListParam(cid, 43, 14, userId); // Виртуальная частная сеть
if (title.matches("К[ТА][ЮФ]-.*"))
cpm.setListParam(cid, 43, 13, userId); // Кабельное телевидение
if (title.matches("И[ТА][ЮФ]-.*"))
cpm.setListParam(cid, 43, 12, userId); // Интернет
if (title.matches("ТП[ЮФ]-.*") || title.matches("ТЕЛ"))
cpm.setListParam(cid, 43, 11, userId); // Телефония
// Сохраняем изменение в контракте
// cm.updateContract(c);
}