Миграция Pos Type Gds Match Type

Миграция Pos Type Gds Match Type#

Локальный скрипт модуля MCT. Используется для служебной настройки, миграции, очистки или восстановления данных, связанных с объектами модуля.

Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт

Внимание

Скрипт привязан к объектам конкретного модуля и требует проверки на целевой базе. Перед запуском проверьте идентификаторы, SQL-запросы, API-классы и условия обработки.

Тип: JEXL-скрипт

var listNone = pgArrayToNLongList(null);
var ropListAll =  sql(`
	select id 
	from mct_docposset ds 
	where ds.bCanSetGoods = 1 
	and ds.bCanSetUnitProduct = 1 
	`).batchObjLoad(Mct_DocPosSetApi, "id");
for (rop : ropListAll){
	Mct_DocPosSetApi.setGdsMatchTypes(rop, true, listNone);
}
var arrGds = sql(`select array_agg(gg.id) as ida from gds_goodsandservicetype gg
	where smnemocode != 'MSCH'`).asSingle().ida;
var listGds = pgArrayToNLongList(arrGds);
var ropListGds =  sql(`
	select id 
	from mct_docposset ds 
	where ds.bCanSetGoods = 1 
	and coalesce(ds.bCanSetUnitProduct, 0) = 0
	`).batchObjLoad(Mct_DocPosSetApi, "id");
for (rop : ropListGds){
	Mct_DocPosSetApi.setGdsMatchTypes(rop, false, listGds);
}
var arrUP = sql(`select array_agg(gg.id) as ida from gds_goodsandservicetype gg
	where smnemocode = 'MSCH'`).asSingle().ida;
var listUP = pgArrayToNLongList(arrUP);
var ropListUP =  sql(`
	select id 
	from mct_docposset ds 
	where coalesce(ds.bCanSetGoods, 0) = 0
	and ds.bCanSetUnitProduct = 1 
	`).batchObjLoad(Mct_DocPosSetApi, "id");
for (rop : ropListUP){
	Mct_DocPosSetApi.setGdsMatchTypes(rop, false, listUP);
}
var ropListNone =  sql(`
	select id 
	from mct_docposset ds 
	where coalesce(ds.bCanSetGoods, 0) = 0
	and coalesce(ds.bCanSetUnitProduct, 0) = 0
	`).batchObjLoad(Mct_DocPosSetApi, "id");
for (rop : ropListNone){
	Mct_DocPosSetApi.setGdsMatchTypes(rop, false, listNone);
}
commit();