Перейти к основному содержанию
`Ctrl`+`K`

# Создание заявок на поступление книг

Создает документы заявок на поступление и их позиции для библиотечного модуля.

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

Внимание

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

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

    var idvDepOwner = Bs_DepOwnerApi.findByMnemoCode("0000");
    var idvPerson1 = Bs_PersonApi.findByMnemoCode("0200");
    var idvPerson2 = Bs_PersonApi.findByMnemoCode("0201");
    sql(`
    	select regexp_replace(ssystemname, 'lbr', '') as "sNum"
    	from btk_module bm
    	where ssystemname like 'lbr__'
     `).foreach(function(r){
    	var list = [["1", [["1", "978-5-04-121401-2"]]]];
    	var apiDoc = Btk_ClassApi.getApiBySimpleClassName("Lbr" + r.sNum + "_InOrder");
    	var apiDet = Btk_ClassApi.getApiBySimpleClassName("Lbr" + r.sNum + "_InOrderDet");
    	var apiBook = Btk_ClassApi.getApiBySimpleClassName("Lbr" + r.sNum + "_Book");
    	for (t : list){
    		var svCode = t.0;
    		var idv = apiDoc.findByMnemoCode(svCode);
    		if(idv == null){
    			var rop = apiDoc.insert();
    			apiDoc.setsNumDoc(rop, svCode);
    			apiDoc.setsNumDocBMs_dz(rop, 1B);
    			apiDoc.setidLibrarian(rop, idvPerson1);
    			apiDoc.setidPerson(rop, idvPerson2);
    			apiDoc.setidDepOwner(rop, idvDepOwner);
    			for (det : t.1) {
    				var sDetCode = det.0;
    				if(sDetCode != null){
    					var ropDet = apiDet.insertByParent(rop);
    					apiDet.setsNumber(ropDet, sDetCode);
    					apiDet.setsNumberBMs_dz(ropDet, 1B);
    					var idvBook = apiBook.findByMnemoCode(det.1);
    					if(idvBook != null){
    						apiDet.setidBook(ropDet, idvBook);
    					}

    				}
    			}

    		}
    	}
    	commit();
    }) ;