Автоматическое связывание атрибутов модуля Bill с параметрами договора при создании нового договора

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «== '''Динамичекий код скрипта, подписывающегося на глобальное событие "Договор создан".''' == …»)
(/* Скрипт выполняет связывание атрибутов модуля Bill с параметрами договора. Связываение производится независимо от того, есть ли модуль Bi)
Строка 2: Строка 2:
-
== Скрипт выполняет связывание атрибутов модуля Bill с параметрами договора. Связываение производится независимо от того, есть ли модуль Bill на договоре или нет. Если модуль абоненту добавится когда-либо, то связка атрибутов будет подключена автоматически. ==
+
<p>Скрипт выполняет связывание атрибутов модуля Bill с параметрами договора. Связываение производится независимо от того, есть ли модуль Bill на договоре или нет. Если модуль абоненту добавится когда-либо, то связка атрибутов будет подключена автоматически.</p>
 +
 
 +
<source lang="java">
 +
/**
 +
* Скрипт для автоматического связывания атрибутов модуля
 +
* Bill (реквизитов) с параметрами договора при событии "Договор создан".
 +
*
 +
* @author Oleg Altynnikov (Murano)
 +
* @link https://www.hitbit.ru
 +
*
 +
* @version 1.0.2
 +
*
 +
*/
 +
 
 +
package ru.linkray.bill;
 +
 
 +
import java.sql.Connection;
 +
import java.sql.PreparedStatement;
 +
import java.text.SimpleDateFormat;
 +
import java.util.Date;
 +
import java.util.HashMap;
 +
import java.util.Map;
 +
import java.util.Iterator;
 +
import java.util.Set;
 +
import org.apache.log4j.Logger;
 +
 
 +
import ru.bitel.bgbilling.kernel.event.Event;
 +
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
 +
import bitel.billing.server.contract.bean.ContractManager;
 +
import bitel.billing.server.contract.bean.Contract;
 +
import ru.bitel.bgbilling.server.util.Setup;
 +
import ru.bitel.common.sql.ConnectionSet;
 +
 
 +
public class AttrParamsLinker
 +
extends EventScriptBase
 +
{
 +
// Set bill module ID
 +
private final static String MID = "4";
 +
 
 +
@Override
 +
public void onEvent(Event event, Setup setup, ConnectionSet set)
 +
throws Exception {
 +
 +
Map<String, String> attrMap = new HashMap();
 +
 +
// Массив параметров, связывающих атрибуты модуля Bill
 +
// с параметрами договора. Указывается слева название атрибута
 +
// модуля, права макрос с ID параметра.
 +
attrMap.put("inn", "$macroContractParamPref:21"); // ИНН
 +
attrMap.put("kpp", "$macroContractParamPref:22"); // КПП
 +
attrMap.put("ogrn", "$macroContractParamPref:23"); // ОГРН
 +
attrMap.put("bank", "$macroContractParamPref:25"); // Название банка
 +
attrMap.put("bik", "$macroContractParamPref:24"); // БИК
 +
attrMap.put("account", "$macroContractParamPref:27"); // Р/сч.
 +
attrMap.put("corr_account", "$macroContractParamPref:26"); // К/сч.
 +
attrMap.put("org_name", "$macroContractParamPref:7"); // Наименование организации
 +
 +
Connection conn = set.getConnection();
 +
int cid = event.getContractId();
 +
ContractManager cm = new ContractManager(conn);
 +
Contract contract = cm.getContractById(cid);
 +
Date dateFrom = contract.getDateFrom();
 +
SimpleDateFormat simpleDateFrom = new SimpleDateFormat("yyyy-MM-dd");
 +
String stringDateFrom= simpleDateFrom.format(dateFrom);
 +
 +
Set<Map.Entry<String, String>> entrySet = attrMap.entrySet();
 +
Iterator<Map.Entry<String, String>> itr = entrySet.iterator();
 +
 
 +
while (itr.hasNext()) {
 +
Map.Entry<String, String> entry = itr.next();
 +
String key = entry.getKey();
 +
String value = entry.getValue();
 +
String query = "INSERT INTO bill_attribute_" + MID + " (id, cid, name, value, start, end) VALUES ('', " + cid + ", '" + key + "', '" +  value + "', '" + stringDateFrom + "', null);";
 +
PreparedStatement ps = conn.prepareStatement(query);
 +
ps.execute();
 +
ps.close();
 +
}
 +
}
 +
 
 +
}
 +
</source>

Версия 10:57, 5 сентября 2019

Динамичекий код скрипта, подписывающегося на глобальное событие "Договор создан".

Скрипт выполняет связывание атрибутов модуля Bill с параметрами договора. Связываение производится независимо от того, есть ли модуль Bill на договоре или нет. Если модуль абоненту добавится когда-либо, то связка атрибутов будет подключена автоматически.

/**
* Скрипт для автоматического связывания атрибутов модуля
* Bill (реквизитов) с параметрами договора при событии "Договор создан".
*
* @author Oleg Altynnikov (Murano)
* @link https://www.hitbit.ru
*
* @version 1.0.2
* 
*/
 
package ru.linkray.bill;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
import java.util.Set;
import org.apache.log4j.Logger;
 
import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import bitel.billing.server.contract.bean.ContractManager;
import bitel.billing.server.contract.bean.Contract;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
 
public class AttrParamsLinker
	extends EventScriptBase
{
	// Set bill module ID
	private final static String MID = "4";
 
	@Override
	public void onEvent(Event event, Setup setup, ConnectionSet set)
		throws Exception {
 
		Map<String, String> attrMap = new HashMap();
 
		// Массив параметров, связывающих атрибуты модуля Bill
		// с параметрами договора. Указывается слева название атрибута
		// модуля, права макрос с ID параметра.
		attrMap.put("inn", "$macroContractParamPref:21");	// ИНН
		attrMap.put("kpp", "$macroContractParamPref:22");	// КПП
		attrMap.put("ogrn", "$macroContractParamPref:23");	// ОГРН
		attrMap.put("bank", "$macroContractParamPref:25");	// Название банка
		attrMap.put("bik", "$macroContractParamPref:24");	// БИК
		attrMap.put("account", "$macroContractParamPref:27");	// Р/сч.
		attrMap.put("corr_account", "$macroContractParamPref:26");	// К/сч.
		attrMap.put("org_name", "$macroContractParamPref:7"); // Наименование организации
 
		Connection conn = set.getConnection();
		int cid = event.getContractId();
		ContractManager cm = new ContractManager(conn);
		Contract contract = cm.getContractById(cid);
		Date dateFrom = contract.getDateFrom();
		SimpleDateFormat simpleDateFrom = new SimpleDateFormat("yyyy-MM-dd");
		String stringDateFrom= simpleDateFrom.format(dateFrom);
 
		Set<Map.Entry<String, String>> entrySet = attrMap.entrySet();
		Iterator<Map.Entry<String, String>> itr = entrySet.iterator();
 
		while (itr.hasNext()) {
			Map.Entry<String, String> entry = itr.next();
			String key = entry.getKey();
			String value = entry.getValue();
			String query = "INSERT INTO bill_attribute_" + MID + " (id, cid, name, value, start, end) VALUES ('', " + cid + ", '" + key + "', '" +  value + "', '" + stringDateFrom + "', null);";
			PreparedStatement ps = conn.prepareStatement(query);
			ps.execute();
			ps.close();
		}
	}
 
}
Личные инструменты