DROP PROCEDURE IF EXISTS sp_f035umoload;
DROP FUNCTION IF EXISTS sp_f035umoload;

CREATE PROCEDURE public.sp_f035umoload("Xml" bytea, "FileName" character varying)
LANGUAGE 'plpgsql'
AS $BODY$
	
declare T xml;
declare tempStrXml text;
BEGIN
	
	return;
	
	--  Такая же проблема как в F031
	--	Текущая версия процедуры создает дубли записей
	--	В справочнике сейчас подаются только актуальные записи, при изменении записи меняется дата начала действия, 
	--  из за этого стыковка записей по DATEBEG перестает нормально работать; UPDATE, INSERT неправильно работают,
	-- 	процедура видит что с такими DATEBEG записи нет и добавляет запись как новую.
	--  Процедуру переписал на Postgre, но пока закоментил
	
	-- select convert_from("Xml", 'WIN1251') into tempStrXml;
	
	-- select replace(tempStrXml, 'encoding="windows-1251"','')::xml into T; 
	
	-- DROP TABLE IF EXISTS temp_f035;

	-- CREATE TEMP TABLE temp_f035 as
	-- SELECT 
	-- 	IDMO,
	-- 	MCOD,
	-- 	OID_MO,
	-- 	NAM_UMOP,
	-- 	NAM_UMOK,
	-- 	INN_U,
	-- 	KPP_U,
	-- 	NAM_PPO_U,
	-- 	OKTMO_U,
	-- 	CASE WHEN  DATEBEG  = '' THEN NULL ELSE DATEBEG::TIMESTAMP END , 
	-- 	CASE WHEN  DATEEND  = '' THEN NULL ELSE DATEEND::TIMESTAMP END 
	
	-- FROM
		
	-- XMLTABLE 
	-- 	(
	-- 		'/packet/zap' PASSING T 
	-- 		COLUMNS 
	-- 		IDMO text path './IDMO' null, 
	-- 		MCOD text path './MCOD' null, 
	-- 		OID_MO text path './OID_MO' null, 
	-- 		NAM_UMOP text path './NAM_UMOP' null, 
	-- 		NAM_UMOK text path './NAM_UMOK' null, 
	-- 		INN_U text path './INN_U' null, 
	-- 		KPP_U text path './KPP_U' null, 
	-- 		NAM_PPO_U text path './NAM_PPO_U' null, 
	-- 		OKTMO_U text path './OKTMO_U' null, 
	-- 		DATEBEG text path './DATEBEG' null, 
	-- 		DATEEND text path './DATEEND' null 
	-- 	);

	-- UPDATE ies.t_f035_umo t1
	-- SET 
	--     nam_umop = t2.nam_umop,
	--     nam_umok = t2.nam_umok,
	--     inn_u = t2.inn_u,
	--     kpp_u = t2.kpp_u,
	--     nam_pro_u = t2.nam_ppo_u,
	--     oktmo_u = t2.oktmo_u,
	--     dateend = t2.dateend
	-- FROM (
	--     SELECT f031.f031ermoid, f031.idmo
	--     FROM ies.t_f031_ermo f031
	--     WHERE t1.idmo = f031.f031ermoid
	--     ORDER BY idmo
	--     LIMIT 1
	-- ) AS f031
	-- JOIN temp_f035 t2 ON t2.idmo = f031.idmo AND t2.datebeg = t1.datebeg
	-- WHERE t1.idmo = f031.f031ermoid;


	-- INSERT INTO ies.t_f035_umo 
	--     (f035umoid, idmo, mcod, oid_mo, nam_umop, nam_umok, 
	-- 	inn_u, kpp_u, nam_pro_u, oktmo_u, datebeg, dateend)
	-- SELECT
	--     gen_random_uuid(), f031.f031ermoid, t1.mcod, t1.oid_mo, t1.nam_umop, t1.nam_umok, 
	-- 	t1.inn_u, t1.kpp_u, t1.nam_ppo_u, t1.oktmo_u, t1.datebeg, t1.dateend
	-- FROM temp_f035 t1
	-- JOIN LATERAL (
	--     SELECT * 
	--     FROM ies.t_f031_ermo f031 
	--     WHERE t1.idmo = f031.idmo 
	--     AND t1.datebeg >= f031.datebeg 
	--     AND (f031.dateend IS NULL OR t1.datebeg <= f031.dateend) 
	--     ORDER BY f031.datebeg DESC 
	--     LIMIT 1
	-- ) f031 ON true
	-- JOIN LATERAL (
	--     SELECT * 
	--     FROM ies.t_f003_mo f003 
	--     WHERE t1.mcod = f003.mcod 
	--     ORDER BY f003.mcod DESC 
	--     LIMIT 1
	-- ) f003 ON true
	-- LEFT JOIN ies.t_f035_umo t2 
	--     ON t2.idmo = f031.f031ermoid AND t2.datebeg = t1.datebeg
	-- WHERE t2.f035umoid IS NULL;

	
	-- DROP TABLE IF EXISTS temp_f035;
	
	-- return;
END
$BODY$;