DELIMITER $$

/* ************************************************************************************************************************************************************************
	BI
************************************************************************************************************************************************************************ */	
DROP TRIGGER IF EXISTS `ht_dekl_vat27_bi`$$
CREATE DEFINER=`root`@`localhost` TRIGGER `ht_dekl_vat27_bi` BEFORE INSERT ON `ht_dekl_vat27` 
FOR EACH ROW 
A: BEGIN

	IF _TriggerDisabled() THEN LEAVE A; END IF;
	
	IF IFNULL(NEW.e_Doc_Def_ID, '') = '' THEN
			SELECT 
				ed.owner_doc_Id -- ed.ID 
				INTO
				@NEW.e_Doc_Def_ID
			FROM `e_doc_def` ed
			WHERE -- RodzajDekl = 1 dekl. miesieczna,  = 2 dekl. kwartalna. (okreslane na podst klucza)
				IF(NEW.RodzajDekl = 1, TRIM(LEFT(ed.doc_Id, 7)) = 'VAT-27', TRIM(LEFT(ed.doc_Id, 7)) = 'VAT27K') AND ed.doc_owner = 'VAT' 
				AND (100*NEW.Rok + NEW.miesiac) BETWEEN 
				 ( 100*YEAR(ed.DateFrom) + IF(NEW.RodzajDekl = 1, MONTH(ed.DateFrom), QUARTER(ed.DateFrom) ) )  -- od ...
				  AND 
				 ( 100*YEAR(ed.DateTo) + IF(NEW.RodzajDekl = 1, MONTH(ed.DateTo), QUARTER(ed.DateTo) ) ) -- ... do
				ORDER BY ed.DateFrom DESC 
				LIMIT 1
			;	
			SET NEW.e_Doc_Def_ID = @NEW.e_Doc_Def_ID;
	END IF;
	
END;
$$

/* ************************************************************************************************************************************************************************
	AI
************************************************************************************************************************************************************************ */	
DROP TRIGGER IF EXISTS `ht_dekl_vat27_ai`$$
CREATE DEFINER=`root`@`localhost` TRIGGER `ht_dekl_vat27_ai` AFTER INSERT ON `ht_dekl_vat27` 
FOR EACH ROW 
A: BEGIN
	IF _TriggerDisabled() THEN LEAVE A; END IF;
	

		IF IFNULL(NEW.GUID, '') != '' THEN

			INSERT IGNORE INTO `e_doc_ng`
				(e_Doc_Def_ID, Src_GUID, Src_TableName, Src_No, Src_OsobaGUID, Src_Date, Descr)
				VALUES
				(NEW.e_Doc_Def_ID, NEW.GUID, 'ht_dekl_vat27', CONCAT('Rok: ', NEW.Rok), '', NOW(), 'VAT-27') 
			;	
		END IF;
			
END;
$$

/* ************************************************************************************************************************************************************************
	AD
************************************************************************************************************************************************************************ */	
DROP TRIGGER IF EXISTS `ht_dekl_vat27_ad`$$
CREATE DEFINER = `root`@`localhost` TRIGGER `ht_dekl_vat27_ad` AFTER DELETE ON `ht_dekl_vat27` 
FOR EACH ROW 
A: BEGIN
	IF _TriggerDisabled() THEN LEAVE A; END IF;

--	USUN
	DELETE FROM `e_doc_ng`
	WHERE	
		Src_GUID = OLD.GUID
		AND
		Src_TableName = 'ht_dekl_vat27'
	;
	
	DELETE FROM `ht_dekl_vat27_poz`
	WHERE	
		deklGUID = OLD.GUID		
	;
	
END;
$$


/* ************************************************************************************************************************************************************************
	BI
************************************************************************************************************************************************************************ */	
DROP TRIGGER IF EXISTS `ht_dekl_vat7_bi`$$
CREATE DEFINER=`root`@`localhost` TRIGGER `ht_dekl_vat7_bi` BEFORE INSERT ON `ht_dekl_vat7` FOR EACH ROW 
A: BEGIN

	IF _TriggerDisabled() THEN LEAVE A; END IF;
	
	IF IFNULL(NEW.e_Doc_Def_ID, '') = '' THEN
			SELECT 
				ed.owner_doc_Id -- ed.ID 
				INTO
				@NEW.e_Doc_Def_ID
			FROM `e_doc_def` ed
			WHERE -- RodzajDekl = 1 dekl. miesieczna,  = 2 dekl. kwartalna. (okreslane na podst klucza)
				IF(NEW.RodzajDekl = 1, TRIM(LEFT(ed.doc_Id, 6)) = 'VAT-7', TRIM(LEFT(ed.doc_Id, 6)) = 'VAT-7K') AND ed.doc_owner = 'VAT' 
				AND (100*NEW.Rok + NEW.miesiac) BETWEEN 
				 ( 100*YEAR(ed.DateFrom) + IF(NEW.RodzajDekl = 1, MONTH(ed.DateFrom), QUARTER(ed.DateFrom) ) )  -- od ...
				  AND 
				 ( 100*YEAR(ed.DateTo) + IF(NEW.RodzajDekl = 1, MONTH(ed.DateTo), QUARTER(ed.DateTo) ) ) -- ... do
				ORDER BY ed.DateFrom DESC 
				LIMIT 1
			;	
			SET NEW.e_Doc_Def_ID = @NEW.e_Doc_Def_ID;
	END IF;
	
END;
$$

/* ************************************************************************************************************************************************************************
	AI
************************************************************************************************************************************************************************ */	
DROP TRIGGER IF EXISTS `ht_dekl_vat7_ai`$$
CREATE DEFINER=`root`@`localhost` TRIGGER `ht_dekl_vat7_ai` AFTER INSERT ON `ht_dekl_vat7` FOR EACH ROW 
A: BEGIN
	IF _TriggerDisabled() THEN LEAVE A; END IF;
	/*
	IF IFNULL(@session.trigger.ht_dekl_vat7, FALSE) THEN 
		LEAVE A; 
	END IF;
	SET @session.trigger.ht_dekl_vat7 = TRUE;
	*/

		IF IFNULL(NEW.GUID, '') != '' THEN

			INSERT IGNORE INTO `e_doc_ng`
				(e_Doc_Def_ID, Src_GUID, Src_TableName, Src_No, Src_OsobaGUID, Src_Date, Descr)
				VALUES
			--	(IF(NEW.RodzajDekl = 1, 'ePUAP.VAT-7(15).1-1E', 'ePUAP.VAT-7K(9).1-0E'), NEW.GUID, 'ht_dekl_vat7', CONCAT('Rok: ', NEW.Rok, ', m-c/kw.: ', NEW.Miesiac), '', NOW(), IF(NEW.RodzajDekl = 1, 'VAT-7(15)', 'VAT-7K(9)') )
				(NEW.e_Doc_Def_ID, NEW.GUID, 'ht_dekl_vat7', CONCAT('Rok: ', NEW.Rok, ', m-c/kw.: ', NEW.Miesiac), '', NOW(), IF(NEW.RodzajDekl = 1, 'VAT-7', 'VAT-7K') ) 
			;	
		END IF;
	
	
	/*
	SET @session.trigger.ht_dekl_vat7 = FALSE;
	*/
END;
$$

/* ************************************************************************************************************************************************************************
	BU
************************************************************************************************************************************************************************ */	
DROP TRIGGER IF EXISTS `ht_dekl_vat7_bu`$$
CREATE DEFINER=`root`@`localhost` TRIGGER `ht_dekl_vat7_bu` BEFORE UPDATE ON `ht_dekl_vat7` FOR EACH ROW 
A: BEGIN
	IF _TriggerDisabled() THEN LEAVE A; END IF;
	/*
	IF IFNULL(@session.trigger.ht_dekl_vat7, FALSE) THEN 
		LEAVE A; 
	END IF;
	SET @session.trigger.ht_dekl_vat7 = TRUE;
	*/
	
	/*
	SET @session.trigger.ht_dekl_vat7 = FALSE;
	*/
END;
$$

/* ************************************************************************************************************************************************************************
	AU
************************************************************************************************************************************************************************ */	
DROP TRIGGER IF EXISTS `ht_dekl_vat7_au`$$
CREATE DEFINER=`root`@`localhost` TRIGGER `ht_dekl_vat7_au` AFTER UPDATE ON `ht_dekl_vat7` FOR EACH ROW 
A: BEGIN
	IF _TriggerDisabled() THEN LEAVE A; END IF;
	/*
	IF IFNULL(@session.trigger.ht_dekl_vat7, FALSE) THEN 
		LEAVE A; 
	END IF;
	SET @session.trigger.ht_dekl_vat7 = TRUE;
	*/
	

	
	/*
	SET @session.trigger.ht_dekl_vat7 = FALSE;
	*/
END;
$$

/* ************************************************************************************************************************************************************************
	BD
************************************************************************************************************************************************************************ */	


/* ************************************************************************************************************************************************************************
	AD
************************************************************************************************************************************************************************ */	
DROP TRIGGER IF EXISTS `ht_dekl_vat7_ad`$$
CREATE DEFINER = `root`@`localhost` TRIGGER `ht_dekl_vat7_ad` AFTER DELETE ON `ht_dekl_vat7` FOR EACH ROW 
A: BEGIN
	IF _TriggerDisabled() THEN LEAVE A; END IF;

--	USUN
	DELETE FROM `e_doc_ng`
	WHERE	
		Src_GUID = OLD.GUID
		AND
		Src_TableName = 'ht_dekl_vat7'
	;
	
END;
$$


/* ************************************************************************************************************************************************************************
	Narzędzia 
************************************************************************************************************************************************************************ */	


DELIMITER ;


/*
====================================================================================================================================================================================
	NOTATNIK
====================================================================================================================================================================================


*/

