DELIMITER $$

DROP PROCEDURE IF EXISTS `e_dekl_vat_tools`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `e_dekl_vat_tools`(
	IN _MODE 	    VARCHAR(100), 
	IN _Year        VARCHAR(50),
	IN _Month       VARCHAR(50),	 -- dla VAT7K jest to nr kwartalu
	IN _RecGUID     VARCHAR(38),     -- GUID operacji    	 
	INOUT _RepContent LONGTEXT,
	IN _Param_A 	VARCHAR(250),	  -- w trybie "insert": cel złożenia (deklaracja / korekta deklaracji); w trybie "xml.create": IDN rekordu w e_doc_ng
	IN _Param_B 	VARCHAR(250)	 -- okresla, czy jest to VAT7 czy VAT7K  (ht_dekl_vat7.RodzajDekl)  (miesieczny czy kwartalny)
)
/*
procedura generująca dokumenty XML 
	CALL e_dekl_vat_tools('', 2013, 12, '', '');
		
	dla deklaracji VAT-7, VAT-K, VAT-UE : Podmiot1 = TPodmiotDowolnyBezAdresu2  rola = "Podatnik" 
	dla deklaracji CIT-8, CIT-ST        : Podmiot1 = TOsobaNiefizyczna  		rola = "Podatnik" 
	
	TPodmiotDowolnyBezAdresu2 =	OsobaNiefizyczna lub OsobaFizyczna	
	TOsobaNiefizyczna 		  = OsobaNiefizyczna  +  AdresSiedziby(TAdres)
	
*/

S_e_dekl_vat_tools: BEGIN

	DECLARE S TEXT;
	DECLARE _IDN, _WojewIdn, _PowiatIdn, _GminaIdn, _MiastoIdn, _PocztaIdn, _RodzPodat, _JestZD, _RodzajDekl INTEGER;
	DECLARE _Kraj  VARCHAR(20);
	DECLARE _REGON, _NIP, _P_NIP  VARCHAR(20);
	DECLARE _Platnik_nazwisko, _Platnik_imie,
			_Email, _PaymentTerm, _PaymentMean VARCHAR(200);	
	DECLARE _Ulica, _UlicaUTF, _Adres, _PelnaNazwa, _P_nazwa, _przyczyna_ORD_ZU  VARCHAR(200);
	DECLARE _SQLText TEXT;
	DECLARE _Miasto,  _Wojewodztwo, _Powiat, _Gmina, _Poczta  VARCHAR(50);  -- _BankAccountNumber,	
	DECLARE _CallMode VARCHAR(100);	
	
--	DECLARE _Kod_poczt, _Nr_domu, _Nr_lokalu, _CurrencyCoded, _RokKorektyStr VARCHAR(10);
	DECLARE _PurchaseOrderNumber, _HavingSQL, _OrderBySQL VARCHAR(500);
	
	DECLARE _Platnik_data_urodzenia, _data_wypelnienia, _ST_A_data_rozp DATE;
	
	DECLARE _PESEL  VARCHAR(11);
	
	DECLARE _PozGUID, _GUID, _OrgGUID, _US_GUID, _ST_A_gminaGUID VARCHAR(38);
	DECLARE cMies, cKwart, cVAT7, cVAT7K, cWDT, cWNT, cUSL_UE, cUSL_poza_UE, cSpOdwr, cZkOdwr  INTEGER;
	DECLARE  _CelZlozenia, _KwotaPoprz, _Rok, _Okres, _CIT_ST_A, _SposobSkladania, _D_liczba_zatr, _Grupa  INTEGER;	
	DECLARE  _KodUS VARCHAR(10);
	
	-- DECLARE  _Ulica VARCHAR(150);  
	DECLARE  _Kod_poczt, _Nr_domu, _Nr_lokalu VARCHAR(10);  
	
	-- CIT-ST
	DECLARE _A_wojew, _B_powiat, _C_gmina VARCHAR(36); 
	DECLARE _D_kod_gminy VARCHAR(7); 
	DECLARE _E_nazwa 	VARCHAR(240); 
	DECLARE _F1_REGON	VARCHAR(14);
	DECLARE _F2_NIP		VARCHAR(10); 
	DECLARE _taxID		VARCHAR(30); 
	
	DECLARE _ST_A_nazwa_krotka, _ST_A_kod_kraju	VARCHAR(70);

	-- uzywane w dekl. VAT_UE, VAT-27 : 
	DECLARE _kwota_transakcji DOUBLE;  
	DECLARE _id_VAT_kontrah VARCHAR(12);
	
	-- uzywane w dekl. CIT-D, VAT-27 : 
	DECLARE _C_kwota_ogolem, _D_kwota_ogolem DOUBLE;  
	
	DECLARE _e_Doc_Def_ID 				VARCHAR(200);
	DECLARE _e_doc_id, _e_doc_type, _kodPodatku      VARCHAR(50);
	DECLARE _form_ver, _doc_ver, _def_date_from, cPrefix, cPreS, cPreE VARCHAR(10);

	DECLARE _OkresOd, _OkresDo          DATE;	
	
	DECLARE cSL 	 INTEGER	DEFAULT 4;	-- SPACE(5*cSL)
	DECLARE cKorekta INTEGER	DEFAULT 2;
	
	DECLARE _kwartalnie BOOLEAN DEFAULT FALSE;
	
	DECLARE cDefTypySchema  	VARCHAR(200) DEFAULT 'xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2011/06/21/eD/DefinicjeTypy/">';
	
	DECLARE cStandAlone 	 INTEGER	DEFAULT 1;  -- 1 - w terminie wpłaty zaliczki na podatek  
	DECLARE cAsAttach		 INTEGER	DEFAULT 2;  -- 2 - razem z dekl. CIT-8
	
	DECLARE cSpKraj		INTEGER	DEFAULT 2021;
	
	SET cVAT7 = 1;
	SET	cVAT7K = 2;
	
	SET cMies = cVAT7;
	SET cKwart = cVAT7K;
	
	SET cSpKraj = 2021; SET cWDT = 2023; SET cWNT = 2024; -- rejestry uniwersalne dla wszystkich klientow
	
	
	-- dla Biura Swin.
	SET cUSL_UE = 2034;   -- <- dla Biura Swin.  (u innych klientów moze byc inaczej) -- bylo cUSL = 2025
	SET cUSL_poza_UE = 2035;   
	SET cSpOdwr  = 2050;  -- "sprzedaż odwrotne obciążenie -  ten rejestr wykazuje tylko wartość netto i suma zapisów powinna być w poz. 31 deklaracji VAT 7 i VAT 7 k "
	SET cZkOdwr =  2051;  -- "zakup odwrotne obciążenie - rejestr wykazuje wartość netto i vat ( działa tak samo jak rejestr importu usług ) i wartość powinna wejść do pozycji 31 ( netto ) 32 vat i analogicznie te same wartości do poz. 41 ( netto ) i 42 ( VAT ) "
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'vat27.rec.insert'
		utworzenie nowego rekordu VAT-27
		Parametry 
				
		IN _MODE 	    VARCHAR(100),    -- 'vat27.rec.insert'
		IN _Year        VARCHAR(50),     -- rok deklaracji
		IN _Month       VARCHAR(50),	 -- miesiac / kwartal
		IN _RecGUID     VARCHAR(38),     -- GUID tworzonego rekordu    	 
		INOUT _RepContent LONGTEXT,      -- tu: puste
		IN _Param_A 	VARCHAR(250),	 -- Cel zlozenia: 1 - zgloszenie, 2 - korekta;  
		IN _Param_B 	VARCHAR(250)	 -- miało być: przyczyna ORD_ZU (dla korekt), ale w tej deklaracji zalacznik ORD-ZU nie wystepuje
		
		CALL e_dekl_vat_tools('vat27.rec.insert', '2015', '6', @GUID, @tmp.rep, '1', '');
		CALL e_dekl_vat_tools('vat27.rec.insert', '2015', '2', @GUID, @tmp.rep, '2', '');
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/			
	IF _MODE = 'vat27.rec.insert' THEN

		CALL _IReg_Get('DaneFirmy', 'Urzad_skarbowy', '0', 'STRING', @US_GUID, '(brak danych)');
				
		-- RegistryInt.GetRegIntValueBoolean('DeklaracjeVAT_kwartalnie', False, '');		
		CALL _IReg_Get('', 'DeklaracjeVAT_kwartalnie', '0', 'BOOLEAN', _kwartalnie, 'FALSE');
	
		INSERT IGNORE INTO ht_dekl_vat27 (GUID, Rok, Miesiac, RodzajDekl, CelZlozenia, US_GUID, przyczyna_ORD_ZU, data_wypelnienia)  
		SELECT 		 						  -- cel zlozenia: 1 - zgloszenie, 2 - korekta;  
			_RecGUID  AS GUID, _varINT(_Year), _varINT(_Month), IF(_kwartalnie, cKwart, cMies), _varINT(_Param_A), @US_GUID,  IF(_varINT(_Month) = 2, _Param_B, ''), DATE(NOW()); 	
			
				
		-- pobranie z opng i wstawienie do ht_dekl_vat27_poz
		
		DROP TEMPORARY TABLE IF EXISTS  t_vat27;
		
		CREATE TEMPORARY TABLE t_vat27
		SELECT kontrGUID, kontrNIP, kontrnazwa, SUM(o.netto) AS kwota, rv_id 
		FROM opng o
		WHERE o.deleted = 0 AND o.rv_id IN (cSpOdwr)  -- sekcja C: cSpOdwr, sekcja D: ???
		AND (YEAR(o.data_vat) = _varINT(_Year))
		AND 
			  IF(_kwartalnie, (QUARTER(o.data_vat) = _varINT(_Month)), (MONTH(o.data_vat) = _varINT(_Month))  )
		
		GROUP BY kontrGUID, rv_id;  -- kontrNIP
		
		select count(*) from t_vat27
		into _JestZD;
		
		IF (_JestZD > 0) THEN 
		    -- wstawiamy rekord tylko wtedy, gdy sa rzeczywiste dane za wskazany miesiac
		/*	INSERT IGNORE INTO ht_dekl_vat_ue (GUID, rok, miesiac, data_wypelnienia, CelZlozenia, RodzajDekl)  
			SELECT 
				 _RecGUID  AS GUID, _Year, _Month, DATE(NOW()), _varINT(_Param_A) AS CelZlozenia, _varINT(_Param_B); 
				 -- cel zlozenia: 1 - zgloszenie, 2 - korekta;  RodzajDekl : 1 - miesięczna, 2 - kwartalna	*/
		
			-- wypelniamy sekcje C, D	 
			INSERT IGNORE INTO ht_dekl_vat27_poz (GUID, deklGUID, grupa, kontrGUID, kontrNIP, kontrNazwa, kwota, zmiana)  
			SELECT 	
				NEWGUID(), _RecGUID  AS deklGUID, (CASE rv_id WHEN cSpOdwr THEN 1 WHEN cSpOdwr THEN 1 END) AS grupa, 
				kontrGUID, kontrNIP, kontrnazwa,
				 -- RIGHT(kontrNIP, LENGTH(kontrNIP)-2) AS kontrNIP, 
				 kwota, 0	
			FROM 
				t_vat27
			ORDER BY kontrGUID, rv_id;
			
			CALL e_dekl_vat_tools('vat27.data.calc', _Year, _Month, _RecGUID, @tmp, '', '');
		END IF;		
		
						
	END IF;	-- IF _MODE = 'vat27.rec.insert' THEN
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'vat27.data.calc'
		Wyliczenie pól 
		Parametry
		_MODE			Tryb pracy
		IN _Year      VARCHAR(50),  nieuzywane
		IN _Month     VARCHAR(50),  nieuzywane
		IN _RecGUID     GUID  rekordu				 
		INOUT _RepContent     Wygenerowana zawartość pliku XML
		
		CALL e_dekl_vat_tools('vat27.data.calc', '', '', @recGUID, @tmp.rep);
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		

	IF _MODE = 'vat27.data.calc' THEN
					
		SELECT 
			IFNULL(SUM(IF(grupa = 1, IFNULL(kwota, 0), 0)), 0) AS sumaC,
			IFNULL(SUM(IF(grupa = 2, IFNULL(kwota, 0), 0)), 0) AS sumaD
		FROM	
			ht_dekl_vat27_poz
		WHERE deklGUID = _RecGUID
		INTO
		  @vat27.sumaC, @vat27.sumaD;		
					
		-- dzial C
		UPDATE 
			ht_dekl_vat27
		SET           
		  suma_C  = IFNULL(@vat27.sumaC, suma_C),
		  suma_D  = IFNULL(@vat27.sumaD, suma_D)
		WHERE 
			GUID = _RecGUID;	
		
																										
	END IF; 	-- _MODE = 'vat27.data.calc'	
	
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'vat27.poz.select'
		Pobranie danych do okna edycyjnego dekalaracji VAT UE   (mode nieuzywany)
		Parametry
		_MODE			Tryb pracy
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),		 
		INOUT _RecGUID     GUID tworzonego rekordu		- tylko ten parametr jest tu używany
		INOUT _RepContent     tutaj: nieużywane
		IN _Param_A 	VARCHAR(250),	  -- cel złożenia (deklaracja / korekta deklaracji) : dla VAT UE zawsze =1
    	IN _Param_B 	VARCHAR(250)	  -- okresla, czy jest to zeznanie miesieczne czy kwartalne, określane na podst. klucza IREG
		
		CALL e_dekl_vat_tools('vat27.poz.select', '2013', '6', 'VAT_UE_2013_6', @_eDeklContent, '1', '1');
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		

	IF _MODE = 'vat27.poz.select' THEN
						
		SELECT 
		-- 'C.Informacja o dostawach towarów'
		-- 'D.Informacja o swiadczonych usługach' 			
		 p.GUID, p.deklGUID, p.grupa, 				
		 p.kontrNazwa, p.kontrNIP, p.kwota, p.zmiana 
		FROM 
			ht_dekl_vat_ue_poz p
		WHERE deklGUID = _RecGUID
		ORDER BY grupa;
								
	END IF; 	-- _MODE = 'vat27.poz.select'	
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'vat27.xml.create'
		
		Parametry 
		_MODE		  Tryb pracy
		IN _GUID      GUID  rekordu	w ht_dekl_vat27
		IN _ParamA 	  IDN 	rekordu w e_doc_ng
				
		CALL e_dekl_vat_tools('vat27.xml.create', '', '',  @recGUID, @tmp.rep, '534', '');
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/			
IF _MODE = 'vat27.xml.create' THEN

	SET @eCIT.xml = '';
	SET @xml.IC = 1;
		
	SET @eCIT.xml = '<?xml version="1.0" encoding="UTF-8" ?>\n';
	SET @eCIT.prolog =	 @eCIT.xml;
	
	SELECT 
			CelZlozenia, RodzajDekl, rok, miesiac, US_GUID, d.doc_id, _varSTR(d.form_ver), 
			d.doc_type,	p.data_wypelnienia, 	-- przyczyna_ORD_ZU,			-- przyczyna korekty
			d.ID, d.doc_ver, d.doc_owner, 
			_varDOUBLE_NOTNULL(suma_C), _varDOUBLE_NOTNULL(suma_D)
	FROM 
		ht_dekl_vat27 p, e_doc_def d -- , osoby o
	WHERE 
		p.GUID = _RecGUID AND  p.e_Doc_Def_ID = d.owner_doc_Id -- _e_doc_id, _doc_ver, _form_ver, _e_doc_type, _e_Doc_Def_ID, _OkresOd, _OkresDo;
	INTO 
		  _CelZlozenia, _RodzajDekl, _Rok, _Okres, _US_GUID, _e_doc_id, _form_ver, 
		  _e_doc_type,  _data_wypelnienia,  -- @_przyczyna_ORD_ZU,
		  _e_Doc_Def_ID, _doc_ver, _kodPodatku,
		  _C_kwota_ogolem, _D_kwota_ogolem		   ;  
		  
		
	SET @eCIT.xml = CONCAT(@eCIT.xml, '<Deklaracja xmlns="', _e_Doc_Def_ID, '" ');
	
	SET @eCIT.xml = CONCAT(@eCIT.xml, cDefTypySchema, '\n');		
	SET @eCIT.xmlns = @eCIT.xml;
		
	-- <Naglowek> 
	SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Naglowek>\n');
				  			
			SET @xml.IC = @xml.IC + 1;	
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<KodFormularza kodPodatku="', _kodPodatku,'" kodSystemowy="', _e_doc_id, '" rodzajZobowiazania="Z" wersjaSchemy="', _doc_ver, '">', _e_doc_type, '</KodFormularza>\n');
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<WariantFormularza>', _form_ver, '</WariantFormularza>\n');  -- ew. e_doc_def.form_ver	   
			
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<CelZlozenia poz="P_8">');				
			SET @eCIT.xml = CONCAT(@eCIT.xml, _CelZlozenia);  --    <CelZlozenia poz="P_7">1</CelZlozenia>
			SET @eCIT.xml = CONCAT(@eCIT.xml, '</CelZlozenia>\n');
			
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Rok>');				
			SET @eCIT.xml = CONCAT(@eCIT.xml, _Rok);  
			SET @eCIT.xml = CONCAT(@eCIT.xml, '</Rok>\n');
			
			SET _P_nazwa = IF(_RodzajDekl = cMies, 'Miesiac', 'Kwartal');
									
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<', _P_nazwa, '>');				
			SET @eCIT.xml = CONCAT(@eCIT.xml, _Okres);  
			SET @eCIT.xml = CONCAT(@eCIT.xml, '</', _P_nazwa, '>\n');  
			
			SET _KodUS = '';		
			SELECT KOD_urzedu FROM `US`
			WHERE guid = _US_GUID
			into _KodUS;  
			
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<KodUrzedu>');				
			SET @eCIT.xml = CONCAT(@eCIT.xml, _KodUS);  
			SET @eCIT.xml = CONCAT(@eCIT.xml, '</KodUrzedu>\n');
		
			SET @xml.IC = @xml.IC - 1;		
	SET @eCIT.xml = CONCAT(@eCIT.xml,  SPACE(@xml.IC*cSL), '</Naglowek>\n');		
	SET @eCIT.header = @eCIT.xml;
	--  </Naglowek> koniec sekcji 
	
	-- Podmiot1  rola: Podatnik
	CALL e_dekl_vat_tools('xml.insert.podmiot1', '', '', '', @eDekl.P1, '', '');
	SET @eCIT.xml = CONCAT(@eCIT.xml, REPLACE(IFNULL(@eDekl.P1, 'pusty P1'), 'etd:', ''));   -- tu trzeba usunac etd:
	
	SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<PozycjeSzczegolowe>\n');
		SET @xml.IC = @xml.IC + 1;
		
		BEGIN
		    DECLARE _zmiana INTEGER;
			DECLARE _done BOOL DEFAULT FALSE;
			DECLARE _c_dane_sekcji CURSOR FOR			
			select  
				kontrNazwa, kontrNIP, kwota, zmiana
			from 
				ht_dekl_vat27_poz
			WHERE deklGUID = _RecGUID  and grupa = _Grupa	;
				
			DECLARE CONTINUE HANDLER FOR NOT FOUND SET _done = TRUE;		
		
			SET _done = FALSE;
		
			-- grupa 1	(sekcja C. "INFORMACJA O DOSTAWACH TOWARÓW...")		
			SET _Grupa = 1;  
			
			select 
				count(*) 
			from 
				ht_dekl_vat27_poz 
			where 
				grupa = _Grupa
			into _JestZD;
			
			IF _JestZD > 0 THEN
				SET @tmp.msg = 'VAT-27, sekcja C';
				OPEN _c_dane_sekcji;
				loop_C: LOOP 
					FETCH 
						_c_dane_sekcji 
					INTO 	
						_PelnaNazwa, _id_VAT_kontrah, _kwota_transakcji, _zmiana;
					IF _done THEN
							LEAVE loop_C;  
						ELSE
						  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Grupa_C typ="G">\n');	
							SET @xml.IC = @xml.IC + 1;
							
							IF (_CelZlozenia = cKorekta) AND (_zmiana = 1) THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_C1>');				
								SET @eCIT.xml = CONCAT(@eCIT.xml, _zmiana);   -- zmiana danych: 1 - tak
								SET @eCIT.xml = CONCAT(@eCIT.xml, '</P_C1>\n');
							END IF;
						  
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_C2>');				
							SET @eCIT.xml = CONCAT(@eCIT.xml, _PelnaNazwa);  
							SET @eCIT.xml = CONCAT(@eCIT.xml, '</P_C2>\n');
							
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_C3>');				
							SET @eCIT.xml = CONCAT(@eCIT.xml, _id_VAT_kontrah);  
							SET @eCIT.xml = CONCAT(@eCIT.xml, '</P_C3>\n');
							
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_C4>');				
							SET @eCIT.xml = CONCAT(@eCIT.xml, _kwota_transakcji);  
							SET @eCIT.xml = CONCAT(@eCIT.xml, '</P_C4>\n');
							
							SET @xml.IC = @xml.IC - 1;	
						  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</Grupa_C>\n');
					END IF;		
				END LOOP;
				CLOSE _c_dane_sekcji;
					-- <xsd:element name="P_11" type="etd:TKwota2">  Razem - suma kwot z kolumny d (P_C4)
				    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_11>');				
					SET @eCIT.xml = CONCAT(@eCIT.xml, _C_kwota_ogolem);  
					SET @eCIT.xml = CONCAT(@eCIT.xml, '</P_11>\n');
			END IF; -- IF _JestZD > 0 THEN
			
			-- grupa 2	(sekcja D. "INFORMACJA O ŚWIADCZONYCH USŁUGACH...")					
			SET _done = FALSE;
			SET _JestZD = 0;
			SET _Grupa = 2;
				
			select 
				count(*) 
			from 
				ht_dekl_vat27_poz 
			where 
				grupa = _Grupa
			into _JestZD;
			
			IF _JestZD > 0 THEN
				SET @tmp.msg = 'VAT-27, sekcja D';
				OPEN _c_dane_sekcji;
				loop_D: LOOP 
					FETCH 
						_c_dane_sekcji 
					INTO 	
						_PelnaNazwa, _id_VAT_kontrah, _kwota_transakcji, _zmiana;
					IF _done THEN
							LEAVE loop_D;  
					ELSE
						  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Grupa_D typ="G">\n');	
							SET @xml.IC = @xml.IC + 1;
							
							IF (_CelZlozenia = cKorekta) AND (_zmiana = 1) THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_D1>');				
								SET @eCIT.xml = CONCAT(@eCIT.xml, _zmiana);   -- zmiana danych: 1 - tak
								SET @eCIT.xml = CONCAT(@eCIT.xml, '</P_D1>\n');
							END IF;
						  
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_D2>');				
							SET @eCIT.xml = CONCAT(@eCIT.xml, _PelnaNazwa);  
							SET @eCIT.xml = CONCAT(@eCIT.xml, '</P_D2>\n');
							
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_D3>');				
							SET @eCIT.xml = CONCAT(@eCIT.xml, _id_VAT_kontrah);  
							SET @eCIT.xml = CONCAT(@eCIT.xml, '</P_D3>\n');
							
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_D4>');				
							SET @eCIT.xml = CONCAT(@eCIT.xml, _kwota_transakcji);  
							SET @eCIT.xml = CONCAT(@eCIT.xml, '</P_D4>\n');
													
							SET @xml.IC = @xml.IC - 1;									
						  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</Grupa_D>\n');
					END IF;		
				END LOOP;
				CLOSE _c_dane_sekcji;
				-- <xsd:element name="P_12" type="etd:TKwota2">  Razem - suma kwot z kolumny d (P_D4)
				    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_12>');				
					SET @eCIT.xml = CONCAT(@eCIT.xml, _D_kwota_ogolem);  
					SET @eCIT.xml = CONCAT(@eCIT.xml, '</P_12>\n');
			END IF;  -- IF _JestZD > 0 THEN
		END;
	
		SET @xml.IC = @xml.IC - 1;
	SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</PozycjeSzczegolowe>\n');	
	SET @eCIT.xml = CONCAT(@eCIT.xml, '<Pouczenie>Za podanie nieprawdy lub zatajenie prawdy grozi odpowiedzialność przewidziana w Kodeksie karnym skarbowym.</Pouczenie>\n');
	SET @eCIT.xml = CONCAT(@eCIT.xml, '</Deklaracja>');

	-- teraz kluczowa sprawa - wstawienie wygenerowanego XMLa do e_doc
	CALL e_doc_tools('e_doc_po.insert.or.edit', _Param_A, IFNULL(@eCIT.xml, 'XML NULL'), 'CREATE_XML', 'ORYG', '', '', '', '');
	

END IF;	-- IF _MODE = 'vat27.xml.create' 
	
	

/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'cit-D.rec.insert'
		utworzenie nowego rekordu (zalacznika) CIT-D
		Parametry 
				
		IN _MODE 	    VARCHAR(100),    -- 'cit8.rec.insert'
		IN _Year        VARCHAR(50),     -- rok obrach.
		IN _Month       VARCHAR(50),	 -- Cel zlozenia: 1 - zgloszenie, 2 - korekta;  
		IN _RecGUID     VARCHAR(38),     -- GUID tworzonego rekordu    	 
		INOUT _RepContent LONGTEXT,      -- tu: puste
		IN _Param_A 	VARCHAR(250),	 -- GUID deklaracji CIT-8
		IN _Param_B 	VARCHAR(250)	 -- tu: puste
		
		CALL pit_tools('cit8.rec.insert', @GUID, '2014', '1', '', '', '');
		CALL pit_tools('cit8.rec.insert', @GUID, '2014', '2', 'blednie wypelnione pole', '', '');
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/			
	IF _MODE = 'cit-D.rec.insert' THEN

	/*	CALL _IReg_Get('DaneFirmy', 'Urzad_skarbowy', '0', 'STRING', @US_GUID, '(brak danych)');		
		CALL _IReg_Get('FK', 'Data bilansu', '0', 'DATE', @FK.data_bilansu, '0000-00-00');  */
		
		INSERT IGNORE INTO ht_dekl_cit_d (GUID, deklGUID, OdDaty, DoDaty, rok)   -- KodFormularza,
		SELECT 		 						  
			_RecGUID, GUID, OdDaty, DoDaty,  rok -- , DATE(NOW())
		FROM ht_dekl_cit
		WHERE
			GUID = _Param_A; 	
		
		update ht_dekl_cit set C_CIT_D = 1 where guid = _Param_A;	
		
		-- CALL e_dekl_vat_tools('cit8.data.calc', _Year, _Month, _RecGUID, @tmp, '', '');
		
	END IF;	-- IF _MODE = 'cit-D.rec.insert' THEN
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'cit-D.data.calc'
		Wyliczenie pól 
		Parametry
		_MODE			Tryb pracy
		INOUT _RecGUID     GUID tworzonego rekordu
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),		 
		INOUT _RepContent     Wygenerowana zawartość pliku XML
		
		CALL e_dekl_vat_tools('cit8.data.insert', '{0A3F4841-12FB-422F-9509-547BBDE770C7}', @eVAT7.Content);
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		

	IF _MODE = 'cit-D.data.calc' THEN
					
		-- dzial C
		UPDATE 
			ht_dekl_cit_d
		SET           
		  C_kwota_ogolem  = IF( (IFNULL(C_kwota_1, 0) + IFNULL(C_kwota_2, 0) + IFNULL(C_kwota_3, 0) ) > 0, 
		    IFNULL(C_kwota_1, 0) + IFNULL(C_kwota_2, 0) + IFNULL(C_kwota_3, 0), C_kwota_ogolem)
		WHERE 
			GUID = _RecGUID;	
		
						
		/*
		UPDATE 
			ht_dekl_cit d, ht_dekl_cit_8o z
		SET
            d.E1_odliczenia = z.B3_odlicz_razem		
		WHERE d.GUID = z.deklGUID and d.GUID = _Param_A  and z.GUID = _RecGUID;
		*/
																				
	END IF; 	-- _MODE = 'cit-D.data.calc'	
	
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'citST.data.calc'
		Wyliczenie pól 
		Parametry
		_MODE			Tryb pracy
		INOUT _RecGUID     GUID tworzonego rekordu
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),		 
		INOUT _RepContent     Wygenerowana zawartość pliku XML
		
		CALL e_dekl_vat_tools('citST.data.calc', '{0A3F4841-12FB-422F-9509-547BBDE770C7}', @eVAT7.Content);
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		

	IF _MODE = 'citST.data.calc' THEN
		
		-- UPDATE 			ht_dekl_cit_st.D_liczba_zatr = SUM(poz.G_liczba_zatr)					
		SELECT 
			SUM(IFNULL(G_liczba_zatr, 0)) 
		FROM 
			ht_dekl_cit_st_poz
		WHERE 
			ngGUID = _RecGUID
		INTO @CIT_ST.LZ;

		IF 	@CIT_ST.LZ > 0 THEN			
			UPDATE 
				ht_dekl_cit_st
			SET 
			  D_liczba_zatr  = @CIT_ST.LZ
			WHERE 
				GUID = _RecGUID;  			
		END IF;	
					
	END IF;			-- IF _MODE = 'citST.data.calc' THEN
	
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'citST.rec.insert'
		utworzenie nowego rekordu CIT-ST
		Parametry 
				
		IN _MODE 	    VARCHAR(100),    -- 'cit8.rec.insert'
		IN _Year        VARCHAR(50),     -- rok obrach.
		IN _Month       VARCHAR(50),	 -- Cel zlozenia: 1 - zgloszenie, 2 - korekta;  
		IN _RecGUID     VARCHAR(38),     -- GUID tworzonego rekordu    	 
		INOUT _RepContent LONGTEXT,      -- tu: puste
		IN _Param_A 	VARCHAR(250),	 -- sposób składania: 1 - samodzielnie, 2 - razem z CIT-8
		IN _Param_B 	VARCHAR(250)	 -- przyczyna ORD_ZU (da korekt)
		
		CALL pit_tools('cit8.rec.insert', @GUID, '2014', '1', '', '', '');
		CALL pit_tools('cit8.rec.insert', @GUID, '2014', '2', 'blednie wypelnione pole', '', '');
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/			
	IF _MODE = 'citST.rec.insert' THEN

		CALL _IReg_Get('DaneFirmy', 'Urzad_skarbowy', '0', 'STRING', @US_GUID, '(brak danych)');
		
		CALL _IReg_Get('FK', 'Data bilansu', '0', 'DATE', @FK.data_bilansu, '0000-00-00');
	
		INSERT IGNORE INTO ht_dekl_cit_st (GUID, /*KodFormularza,*/ Rok, CelZlozenia, US_GUID, 
			-- OdDaty, DoDaty, 
			przyczyna_ORD_ZU, data_wypelnienia, SposobSkladania)  -- 1 - w terminie wpłaty zaliczki na podatek  2 - razem z dekl. CIT-8
		SELECT 		 						  -- cel zlozenia: 1 - zgloszenie, 2 - korekta;  
			_RecGUID  AS GUID, /*'CIT-8',*/ _varINT(_Year), _varINT(_Month) AS CelZlozenia, @US_GUID, 
			-- STR_TO_DATE(Concat(_Year,'-01-01'),'%Y-%m-%d'),  STR_TO_DATE(Concat(_Year,'-12-31'),'%Y-%m-%d'), 
			IF(_varINT(_Month) = 2, _Param_B, ''), DATE(NOW()), _varINT(_Param_A); 	
			
		-- naliczenie na podst. algorytmu w Z-06	
		/* Select DoDaty from ht_dekl_cit_st where GUID = _RecGUID INTO @DoDaty;  -- tu jest probl
		SET @DoDaty = IFNULL(@DoDaty, STR_TO_DATE(Concat(_Year,'-12-31'),'%Y-%m-%d')) ;  */
						
		DROP TEMPORARY TABLE IF EXISTS `t_CIT_E`;
		SET _SQLText =  '
			CREATE TEMPORARY TABLE `t_CIT_E` 
				select  
				    v.Woj_str AS wojew, v.Pow_Str AS powiat, v.nazwa AS gmina, 						
					LEFT(v.GUS_KodTeryt, 7) as kod_gminy, m.nazwa as nazwa_oddzialu, IFNULL(m.nazwa_skrocona, "") AS nazwa_skrocona,	
					m.data_rozp, m.gminaGUID,  c.NazwaMiasta, 					
					IFNULL(m.REGON, ""), IFNULL(m.NIP, ""), m.GUID AS mzGUID
					-- sum(1) as liczba_zatr
					FROM gus_miejsca_zatr m
					-- from prac_gus g 
					-- join osoby o on o.guid=g.guid_pracownika 
					-- join gus_miejsca_zatr m on m.idn = g.miejscezatrudnienia 
					-- join stat_prac_#Rok# s on s.guid_prac=g.guid_pracownika and s.data_pracy = #data_pracy#
					left join v_geo_int_adm_gmi v ON v.ID = m.gminaGUID
					left join Miasta c ON m.miejscowosc = c.idn
					-- where g.GlowneMP
					-- group by m.symbol 	
		';
		
		SET _SQLText = REPLACE(_SQLText, '#Rok#', _Year);	
		-- SET _SQLText = REPLACE(_SQLText, '#data_pracy#', @DoDaty);	
		SET @_SQLText = _SQLText;
				
		CALL _ExecuteCmd(_SQLText, @Error);
		
		BEGIN
		   /* DECLARE _A_wojew, _B_powiat, _C_gmina VARCHAR(36); 
			DECLARE _D_kod_gminy VARCHAR(7); 
			DECLARE _E_nazwa VARCHAR(240); 
			DECLARE _F1_REGON	VARCHAR(14);
			DECLARE _F2_NIP		VARCHAR(10); */
			-- DECLARE  _ogolem, _D_ogolem  INTEGER;
			 
				
			DECLARE _done BOOL DEFAULT FALSE;
			DECLARE _c_proc CURSOR FOR			
					select  
						g.*
					from t_CIT_E g 
					;
			DECLARE CONTINUE HANDLER FOR NOT FOUND SET _done = TRUE;	
			
			-- SET _D_ogolem = 0;
			OPEN _c_proc;	
				loop1: LOOP
					FETCH _c_proc INTO
							_A_wojew, _B_powiat, _C_gmina, _D_kod_gminy, _E_nazwa, 
							_ST_A_nazwa_krotka, _ST_A_data_rozp, _ST_A_gminaGUID, _Miasto,
							_F1_REGON, _F2_NIP, _GUID; -- , _ogolem;
					IF _done THEN
							LEAVE loop1;
					ELSE											
						
						INSERT INTO 
							ht_dekl_cit_st_poz 
						SET
							ngGUID = _RecGUID, GUID = UUID(),  mzGUID = _GUID,
							A_wojew = _A_wojew,	B_powiat = _B_powiat, C_gmina = _C_gmina, D_kod_gminy = _D_kod_gminy, E_nazwa = _E_nazwa,
							ST_A_nazwa_krotka = _ST_A_nazwa_krotka, ST_A_data_rozp = _ST_A_data_rozp, ST_A_gminaGUID = _ST_A_gminaGUID,
							ST_A_miejscowosc = _Miasto,
							F1_REGON = _F1_REGON, F2_NIP = _F2_NIP  -- , G_liczba_zatr = IFNULL(_ogolem, 0)						
						;	
						-- SET _D_ogolem = _D_ogolem + IFNULL(_ogolem, 0);
						
					END IF;		
				END LOOP;
			CLOSE _c_proc;
			
		  -- CLOSE _c_proc;		
		END;
		DROP TEMPORARY TABLE IF EXISTS `t_CIT_E`;	
			
		-- pobrac to co mozna z automatu (wyliczenie liczby zatrudnionych w poszczegolnych oddziałach)
		CALL e_dekl_vat_tools('citST.data.calc', _Year, _Month, _RecGUID, @tmp, '', '');
		
	END IF;	-- IF _MODE = 'citST.rec.insert' THEN
	
	
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'cit8.data.calc'
		Wyliczenie pól 
		Parametry
		_MODE			Tryb pracy
		INOUT _RecGUID     GUID tworzonego rekordu
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),		 
		INOUT _RepContent     Wygenerowana zawartość pliku XML
		
		CALL e_dekl_vat_tools('cit8.data.calc', '{0A3F4841-12FB-422F-9509-547BBDE770C7}', @eVAT7.Content);
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		

	IF _MODE = 'cit8.data.calc' THEN

		-- (dzial D1 i D2)
		UPDATE 
			ht_dekl_cit
		SET 
			D1_przychod_razem = IFNULL(D1_przychod_RP, 0) + IFNULL(D1_przychod_poza_RP, 0) + IFNULL(D1_przychod_inny_poza_RP, 0) + IFNULL(D1_przychod_wklad, 0),  -- D1_przychod_wklad od wer.22
			D2_koszty_razem = IFNULL(D2_koszty_RP, 0) + IFNULL(D2_koszty_poza_RP, 0) + IFNULL(D2_koszty_inny_poza_RP, 0) + IFNULL(D2_koszty_wklad, 0) + IFNULL(D2_odsetki_wylacz, 0)  -- D2_koszty_wklad, D2_odsetki_wylacz od wer.22
			-- D3_dochod_art7  = 			
		WHERE 
			GUID = _RecGUID;
			
		-- dzial D3	
		UPDATE 
			ht_dekl_cit
		SET 
		  D3_dochod_art7  = IF(D1_przychod_razem > D2_koszty_razem, D1_przychod_razem - D2_koszty_razem, 0),
		  D3_strata_art7  = IF(D2_koszty_razem > D1_przychod_razem, D2_koszty_razem - D1_przychod_razem, 0)		  		  
		WHERE 
			GUID = _RecGUID;
			
		UPDATE 
			ht_dekl_cit
		SET 
		  D3_dochod  = GREATEST(D3_dochod_art7 + IFNULL(D3_strata_art7_zagr, 0) - IF( IFNULL(D3_strata_art7_zagr, 0) > D3_strata_art7, D3_strata_art7 , 0) , 0),
		  D3_strata  = GREATEST(D3_strata_art7 - IFNULL(D3_strata_art7_zagr, 0), 0)		  		  
		WHERE 
			GUID = _RecGUID;	
		       
	
	    -- dzial E  (beda do uwzglednienia kwoty z CIT-8/0)
		UPDATE 
			ht_dekl_cit
		SET -- E.1
			E1_dochody_odlicz_razem = IFNULL(E1_dochody_wolne, 0) + IFNULL(E1_odliczenia, 0) + IFNULL(E1_odliczenia_inwest, 0)
		WHERE 
			GUID = _RecGUID;
		
		UPDATE 
			ht_dekl_cit
		SET 	-- E.2
			E2_podst_opodatk = IF(D3_dochod > 0 AND (D3_dochod > E1_dochody_odlicz_razem), D3_dochod - E1_dochody_odlicz_razem, 0), -- p44
			E2_strata =        GREATEST(D3_strata + E1_dochody_odlicz_razem  - D3_dochod, 0) 
		WHERE 
			GUID = _RecGUID;
			
		-- E.3 E3_odl_nowe_tech = poz. 53 z CIT-8/0)
		
		-- E.4.		
		UPDATE 
			ht_dekl_cit
		SET 	
		    E4_kwota_razem = IFNULL(E4_odl_inwest, 0) + IFNULL(E4_dochody_SSE, 0) + IFNULL(E4_wydatk_nowe_tech, 0)
			-- P_65 = P_60 - IFNULL(P_61, 0) 
		WHERE 
			GUID = _RecGUID; -- AND P_60 > 0;
			
		-- E.5 podstawa opodatkowania po uwzglednieniu korekt	
		UPDATE 
			ht_dekl_cit
		SET 	-- E.2
			E5_podst_opodatk = _Rnd( GREATEST( 
			CASE 
				WHEN E2_podst_opodatk > 0 THEN (E2_podst_opodatk + E4_kwota_razem - IFNULL(E3_odl_nowe_tech, 0))
				WHEN E2_podst_opodatk = 0 THEN GREATEST(E4_kwota_razem - E2_strata, 0)
				ELSE 0
			END, 			
			0), 0 ),
			E5_strata =        GREATEST( ( (IFNULL(E2_strata, 0) + IFNULL(E3_odl_nowe_tech, 0))  - (E2_podst_opodatk + E4_kwota_razem) ), 0) 
		WHERE 
			GUID = _RecGUID;
			
		-- dzial F.			
		UPDATE 
			ht_dekl_cit
		SET
            F_podatek_przed_odl = _Rnd2(E5_podst_opodatk * F_proc_podatk / 100)
		--	, F_odliczenia = LEAST(_Rnd2(E5_podst_opodatk * F_proc_podatk / 100), poz.64 z CIT-8/O)			
		WHERE 
			GUID = _RecGUID;
			
		UPDATE 
			ht_dekl_cit
		SET
            F_podatek_po_odl = _Rnd(F_podatek_przed_odl - IFNULL(F_odliczenia, 0), 0)		
		WHERE 
			GUID = _RecGUID;	
			
		-- dzial I.	/ H.	
		UPDATE 
			ht_dekl_cit
		SET
			G_zaliczka_razem = 
			  _varINT_NOTNULL(G_zaliczka1) + _varINT_NOTNULL(G_zaliczka2) + _varINT_NOTNULL(G_zaliczka3) + _varINT_NOTNULL(G_zaliczka4) + _varINT_NOTNULL(G_zaliczka5) + _varINT_NOTNULL(G_zaliczka6) + 
			  _varINT_NOTNULL(G_zaliczka7) + _varINT_NOTNULL(G_zaliczka8) + _varINT_NOTNULL(G_zaliczka9) + _varINT_NOTNULL(G_zaliczka10) + _varINT_NOTNULL(G_zaliczka11) + _varINT_NOTNULL(G_zaliczka12) +
			  _varINT_NOTNULL(G_zaliczka13) + _varINT_NOTNULL(G_zaliczka14) + _varINT_NOTNULL(G_zaliczka15) + _varINT_NOTNULL(G_zaliczka16) + _varINT_NOTNULL(G_zaliczka17) + _varINT_NOTNULL(G_zaliczka18) + 
			  _varINT_NOTNULL(G_zaliczka19) + _varINT_NOTNULL(G_zaliczka20) + _varINT_NOTNULL(G_zaliczka21) + _varINT_NOTNULL(G_zaliczka22) + _varINT_NOTNULL(G_zaliczka23) + _varINT_NOTNULL(G_zaliczka24) 
		WHERE 
			GUID = _RecGUID;	
			
		-- dzial I.	
		UPDATE 
			ht_dekl_cit
		SET
            H_rozn_podatek_suma = GREATEST( (F_podatek_po_odl + IFNULL(F_dwadziescia_proc, 0)) - IFNULL(G_zaliczka_razem, 0), 0),
			H_rozn_suma_podatek =  GREATEST( IFNULL(G_zaliczka_razem, 0) - (F_podatek_po_odl + IFNULL(F_dwadziescia_proc, 0)), 0)
		--	, F_odliczenia = LEAST(_Rnd2(E5_podst_opodatk * F_proc_podatk / 100), poz.64 z CIT-8/O)			
		WHERE 
			GUID = _RecGUID and B_zwolnienie <> 1;   
			
		-- dzial I.	
		UPDATE 
			ht_dekl_cit
		SET
            -- I_suma_zaliczek = ,
			I_do_zaplaty =  GREATEST(F_podatek_po_odl + IFNULL(F_dwadziescia_proc, 0) - IFNULL(I_suma_zaliczek, 0), 0),
			I_nadplata = GREATEST(IFNULL(I_suma_zaliczek, 0) - IFNULL(F_podatek_po_odl, 0) + IFNULL(F_dwadziescia_proc, 0), 0)					
		WHERE 
			GUID = _RecGUID and B_zwolnienie <> 1;   

		-- dzial K.
		UPDATE 
			ht_dekl_cit
		SET	
		  K_podatek_nalezny = _Rnd(K_dochod_uzyskany * F_proc_podatk / 100, 0)
		WHERE 
			GUID = _RecGUID and IFNULL(K_dochod_uzyskany, 0) > 0;   
			
	
	END IF; 	-- _MODE = 'cit8.data.calc'
		
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'cit-8O.rec.insert'
		utworzenie nowego rekordu CIT-8/O
		Parametry 
				
		IN _MODE 	    VARCHAR(100),    -- 'cit8.rec.insert'
		IN _Year        VARCHAR(50),     -- rok obrach.
		IN _Month       VARCHAR(50),	 -- Cel zlozenia: 1 - zgloszenie, 2 - korekta;  
		IN _RecGUID     VARCHAR(38),     -- GUID tworzonego rekordu    	 
		INOUT _RepContent LONGTEXT,      -- tu: puste
		IN _Param_A 	VARCHAR(250),	 -- GUID deklaracji CIT-8
		IN _Param_B 	VARCHAR(250)	 -- tu: puste
		
		CALL pit_tools('cit8.rec.insert', @GUID, '2014', '1', '', '', '');
		CALL pit_tools('cit8.rec.insert', @GUID, '2014', '2', 'blednie wypelnione pole', '', '');
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/			
	IF _MODE = 'cit-8O.rec.insert' THEN

	/*	CALL _IReg_Get('DaneFirmy', 'Urzad_skarbowy', '0', 'STRING', @US_GUID, '(brak danych)');		
		CALL _IReg_Get('FK', 'Data bilansu', '0', 'DATE', @FK.data_bilansu, '0000-00-00');  */
		
		INSERT IGNORE INTO ht_dekl_cit_8o (GUID, deklGUID, OdDaty, DoDaty, KodFormularza, rok)  
		SELECT 		 						  
			_RecGUID, GUID, OdDaty, DoDaty, 'CIT-8/O', rok -- , DATE(NOW())
		FROM ht_dekl_cit
		WHERE
			GUID = _Param_A; 	
		
		update ht_dekl_cit set C_CIT_8O = 1 where guid = _Param_A;	
		
		-- CALL e_dekl_vat_tools('cit8.data.calc', _Year, _Month, _RecGUID, @tmp, '', '');
		
	END IF;	-- IF _MODE = 'cit-8O.rec.insert' THEN
	
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'cit-8O.data.calc'
		Wyliczenie pól 
		Parametry
		_MODE			Tryb pracy
		INOUT _RecGUID     GUID tworzonego rekordu
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),		 
		INOUT _RepContent     Wygenerowana zawartość pliku XML
		
		CALL e_dekl_vat_tools('cit8.data.insert', '{0A3F4841-12FB-422F-9509-547BBDE770C7}', @eVAT7.Content);
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		

	IF _MODE = 'cit-8O.data.calc' THEN

		-- (dzial B.1)
		UPDATE 
			ht_dekl_cit_8o
		SET 
			B1_dochody_razem = IFNULL(B1_P_8, 0) + IFNULL(B1_P_9, 0) + IFNULL(B1_P_10, 0) + IFNULL(B1_P_10, 0) + IFNULL(B1_P_11, 0) + IFNULL(B1_P_12, 0) +
			_varDOUBLE_NOTNULL(B1_P_poza_RP) + _varDOUBLE_NOTNULL(B1_P_pozarolnicze) + _varDOUBLE_NOTNULL(B1_P_nieodpl_swiadcz) + 
			_varDOUBLE_NOTNULL(B1_P_mieszk) + _varDOUBLE_NOTNULL(B1_P_dotacje_budzet) + _varDOUBLE_NOTNULL(B1_P_kwoty_agencje) + _varDOUBLE_NOTNULL(B1_P_BGK) + _varDOUBLE_NOTNULL(B1_P_projekt) +
			  IFNULL(B1_P_13, 0) + IFNULL(B1_P_14, 0) + IFNULL(B1_P_15, 0) + IFNULL(B1_P_16, 0) + IFNULL(B1_P_17, 0) + IFNULL(B1_inne_kwota, 0)						
		WHERE 
			GUID = _RecGUID;			
		-- update set cit8.E1_dochody_wolne = 	ht_dekl_cit_8o.B1_dochody_razem  where cit8.GUID = _Param_A
		UPDATE 
			ht_dekl_cit d, ht_dekl_cit_8o z
		SET
            d.E1_dochody_wolne = z.B1_dochody_razem		
		WHERE d.GUID = z.deklGUID and d.GUID = _Param_A  and z.GUID = _RecGUID;
							
		-- dzial B.2	
		UPDATE 
			ht_dekl_cit_8o
		SET 
		  B2_straty_suma  = IFNULL(B2_P_24, 0) + IFNULL(B2_P_28, 0) + IFNULL(B2_P_32, 0) + IFNULL(B2_P_36, 0) + IFNULL(B2_P_40, 0)		  
		WHERE 
			GUID = _RecGUID;
			
		-- dzial B.3		
		UPDATE 
			ht_dekl_cit_8o
		SET           
		  B3_P_45  = IFNULL(B3_P_42, 0) + IFNULL(B3_P_43, 0) + IFNULL(B3_P_44, 0)  -- B3_P_42 + B3_P_43 musi być <= 10% * (cit8.38 - B1_dochody_razem)		  
		WHERE 
			GUID = _RecGUID;	
		
		-- musi być spelniona zaleznośc: B3_odlicz_razem <=(cit8.38 - (B1_dochody_razem  (P_20) + B2_straty_suma (P_41) )  )		  		
		UPDATE 
			ht_dekl_cit_8o
		SET           		  
		  B3_odlicz_razem  = IFNULL(B2_straty_suma, 0) + IFNULL(B3_P_45, 0) + IFNULL(B3_P_46, 0) + IFNULL(B3_inne_kwota, 0)  -- B3_odlicz_razem -> cit8.E1.41
		WHERE 
			GUID = _RecGUID;		
		
		-- update set cit8.E1_odliczenia = 	ht_dekl_cit_8o.B3_odlicz_razem	where cit8.GUID = _Param_A
		UPDATE 
			ht_dekl_cit d, ht_dekl_cit_8o z
		SET
            d.E1_odliczenia = z.B3_odlicz_razem		
		WHERE d.GUID = z.deklGUID and d.GUID = _Param_A  and z.GUID = _RecGUID;
		-- dotad zrobione			
							
		-- dzial C.
		-- musi być spelniona zaleznośc: C_odlicz_razem <=(cit8.38 - (B1_dochody_razem  (P_20) + B3_odlicz_razem (P_49) )  )		  		
		UPDATE 
			ht_dekl_cit_8o
		SET           		  
		    C_odlicz_razem = IFNULL(C_wydatki_inwest, 0) + IFNULL(C_dodatk_obniz, 0)
		WHERE 
			GUID = _RecGUID;					   
		-- update set cit8.E1_odliczenia_inwest = 	ht_dekl_cit_8o.C_odlicz_razem	
		UPDATE 
			ht_dekl_cit d, ht_dekl_cit_8o z
		SET
            d.E1_odliczenia_inwest = z.C_odlicz_razem		
		WHERE d.GUID = z.deklGUID and d.GUID = _Param_A  and z.GUID = _RecGUID;		
		
		-- dzial D.
		-- ht_dekl_cit_8o.D_wydatki_nowe_tech musi być <=  cit8.E2_podst_opodatk
		-- update set cit8.E3_odl_nowe_tech = 	ht_dekl_cit_8o.D_wydatki_nowe_tech	
		UPDATE 
			ht_dekl_cit d, ht_dekl_cit_8o z
		SET
            d.E3_odl_nowe_tech = z.D_wydatki_nowe_tech		
		WHERE d.GUID = z.deklGUID and d.GUID = _Param_A  and z.GUID = _RecGUID;		
					
	    -- dzial E    E_kwota_ogolem musi byc <= cit8.F_podatek_przed_odl
		UPDATE 
			ht_dekl_cit_8o
		SET 
			E_kwota_ogolem = IFNULL(E_odlicz_art20, 0) + IFNULL(E_inne_odlicz, 0) + IFNULL(E_zwoln_kwota, 0) + IFNULL(E_zaniech_kwota, 0) + IFNULL(E_obnizki_kwota, 0)
		WHERE 
			GUID = _RecGUID;
		-- update set cit8.F_odliczenia = 	ht_dekl_cit_8o.E_kwota_ogolem	
		UPDATE 
			ht_dekl_cit d, ht_dekl_cit_8o z
		SET
            d.F_odliczenia = z.E_kwota_ogolem		
		WHERE d.GUID = z.deklGUID and d.GUID = _Param_A  and z.GUID = _RecGUID;			
							
				
	END IF; 	-- _MODE = 'cit-8O.data.calc'

	/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------
	
	  ------------------------------------------------------------------------------------------------------------------------------------------------------------------ */
	IF _MODE = 'citST.xml.create' THEN
		SELECT 
			CelZlozenia, SposobSkladania, rok, US_GUID, d.doc_id, _varSTR(d.form_ver), d.doc_type,					
			oddaty, dodaty, data_wypelnienia, CIT_ST_A, -- DataZlozenia, DataPrzekazania, KodFormularza,
			przyczyna_ORD_ZU,			-- przyczyna korekty
			 d.ID, d.doc_ver, IFNULL(D_liczba_zatr, 0)
		FROM ht_dekl_cit_st p, e_doc_def d -- , osoby o
		WHERE 
			 p.GUID = _RecGUID AND  p.e_Doc_Def_ID = d.owner_doc_Id -- _e_doc_id, _doc_ver, _form_ver, _e_doc_type, _e_Doc_Def_ID, _OkresOd, _OkresDo;
		INTO 
		  _CelZlozenia, _SposobSkladania, _Rok, _US_GUID, _e_doc_id, _form_ver, _e_doc_type, _OkresOd, _OkresDo, _data_wypelnienia, _CIT_ST_A, 
		  @_przyczyna_ORD_ZU, _e_Doc_Def_ID, _doc_ver, _D_liczba_zatr;
/*
		<xsd:element name="Naglowek" type="TNaglowek"/>
				<xsd:element name="Podmiot1">
					<xsd:complexType>
						<xsd:complexContent>
							<xsd:extension base="etd:TOsobaNiefizyczna">
								<xsd:attribute name="rola" type="xsd:string" use="required" fixed="Podatnik"/>
							</xsd:extension>
						</xsd:complexContent>
					</xsd:complexType>
				</xsd:element>
				<xsd:element ref="PozycjeSzczegolowe">
					<xsd:annotation>
						<xsd:documentation>Informacja o liczbie zatrudnionych w zakładach (oddziałach)</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="Oswiadczenie">
					<xsd:simpleType>
						<xsd:restriction base="xsd:string">
							<xsd:enumeration value="Oświadczam, że są mi znane przepisy Kodeksu karnego skarbowego o odpowiedzialności za podanie danych niezgodnych z rzeczywistością."/>
						</xsd:restriction>
					</xsd:simpleType>
				</xsd:element>
				<xsd:element name="Zalaczniki" minOccurs="0">
				<xsd:complexType>
						<xsd:sequence>
							<xsd:element ref="cstam:Zalacznik_CIT-ST_A" minOccurs="0"/>
							<xsd:element ref="zzu:Zalacznik_ORD-ZU" minOccurs="0"/>
						</xsd:sequence>
					</xsd:complexType>
*/
		SET @eCIT.xml = '';
		SET @xml.IC = 1;
		
		SET @eCIT.xml = '<?xml version="1.0" encoding="UTF-8" ?>\n';							
	
		SET @eCIT.xml = CONCAT(@eCIT.xml, '<Deklaracja xmlns="', _e_Doc_Def_ID, '" ');
	
		SET @eCIT.xml = CONCAT(@eCIT.xml, cDefTypySchema, '\n');		
		SET @eCIT.xmlns = @eCIT.xml;
		
		-- <Naglowek> 
		SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Naglowek>\n');
				  			
			SET @xml.IC = @xml.IC + 1;	
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<KodFormularza kodPodatku="CIT" kodSystemowy="', _e_doc_id, '" rodzajZobowiazania="Z" wersjaSchemy="', _doc_ver, '">', _e_doc_type, '</KodFormularza>\n');
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<WariantFormularza>', _form_ver, '</WariantFormularza>\n');  -- ew. e_doc_def.form_ver	   
			
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<CelZlozenia poz="P_8">');				
			SET @eCIT.xml = CONCAT(@eCIT.xml, _CelZlozenia);  --    <CelZlozenia poz="P_7">1</CelZlozenia>
			SET @eCIT.xml = CONCAT(@eCIT.xml, '</CelZlozenia>\n');
			
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<OkresOd poz="P_4">');				
			SET @eCIT.xml = CONCAT(@eCIT.xml, _OkresOd);  
			SET @eCIT.xml = CONCAT(@eCIT.xml, '</OkresOd>\n');
			
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<OkresDo poz="P_5">');				
			SET @eCIT.xml = CONCAT(@eCIT.xml, _OkresDo);  
			SET @eCIT.xml = CONCAT(@eCIT.xml, '</OkresDo>\n');
			
			SET _KodUS = '';		
			SELECT KOD_urzedu FROM `US`
			WHERE guid = _US_GUID
			into _KodUS;  
			
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<KodUrzedu>');				
			SET @eCIT.xml = CONCAT(@eCIT.xml, _KodUS);  
			SET @eCIT.xml = CONCAT(@eCIT.xml, '</KodUrzedu>\n');
		
			SET @xml.IC = @xml.IC - 1;		
		SET @eCIT.xml = CONCAT(@eCIT.xml,  SPACE(@xml.IC*cSL), '</Naglowek>\n');		
		SET @eCIT.header = @eCIT.xml;
		--  </Naglowek> koniec sekcji 
		
		
		--  Podmiot1 <xsd:extension base="etd:TOsobaNiefizyczna">			<xsd:attribute name="rola" type="xsd:string" use="required" fixed="Podatnik"/>
		
		-- <Naglowek>
		-- CALL e_dekl_vat_tools('cit.xml.insert.header', '', '', _RecGUID, @eDekl.H, '', '');
	
		-- <Podmiot1>
		 CALL e_dekl_vat_tools('xml.insert.podmiot1', '', '', '', @eDekl.P1, 'AdresSiedziby', '');
		 SET @eCIT.xml = CONCAT(@eCIT.xml, IFNULL(@eDekl.P1, 'pusty P1')); 
		 		 
		 SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<PozycjeSzczegolowe>\n');
			SET @xml.IC = @xml.IC + 1;
				-- <PozycjeSzczegolowe> P_6, P_9, P_22, "P_E" maxOccurs="unbounded">, P_169
				-- <xsd:element name="P_6" type="etd:TWybor1" minOccurs="0">  Nr dokumentu
				
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_9>', _SposobSkladania, '</P_9>\n'); -- Sposób składania: 1 - w terminie wpłaty zaliczki na podatek
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_22>', _D_liczba_zatr, '</P_22>\n'); -- Liczba zatrudnionych przez podatnika - ogółem
				
				-- "P_E" maxOccurs="unbounded">  <xsd:attribute name="typ" use="required" fixed="G"/>
				BEGIN
				    DECLARE _done BOOL DEFAULT FALSE;
					
					DECLARE _G_liczba_zatr  INTEGER;
					
					DECLARE _c_P_E CURSOR FOR			
					SELECT  
						A_wojew, B_powiat, C_gmina, D_kod_gminy, E_nazwa, IFNULL(F1_REGON, ''), IFNULL(F2_NIP, ''), IFNULL(G_liczba_zatr, 0)
					FROM 
						ht_dekl_cit_st_poz
					WHERE ngGUID = _RecGUID  ;
					
					DECLARE CONTINUE HANDLER FOR NOT FOUND SET _done = TRUE;	
					
					OPEN _c_P_E;	
					loop1: LOOP
						FETCH _c_P_E INTO
								_A_wojew, _B_powiat, _C_gmina, _D_kod_gminy, _E_nazwa, _F1_REGON, _F2_NIP, _G_liczba_zatr; -- , _ogolem;
						IF _done THEN
								LEAVE loop1;
						ELSE											
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_E typ="G">\n'); 
							SET @xml.IC = @xml.IC + 1;
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_A>', _A_wojew, '</P_A>\n'); 
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_B>', _B_powiat, '</P_B>\n'); 
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_C>', _C_gmina, '</P_C>\n'); 
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_D>', _D_kod_gminy, '</P_D>\n'); 
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_E1>', _E_nazwa, '</P_E1>\n'); 
								IF LENGTH(_F1_REGON) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_F1>', _F1_REGON, '</P_F1>\n'); 
								END IF;	
								IF LENGTH(_F2_NIP) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_F2>', _F2_NIP, '</P_F2>\n'); 
								END IF;	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_G>', _G_liczba_zatr, '</P_G>\n'); 
							SET @xml.IC = @xml.IC - 1;
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</P_E>\n'); 
																											
						END IF;		
					END LOOP;
					CLOSE _c_P_E;
					
				END;	
				
			
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_169>', _data_wypelnienia, '</P_169>\n'); -- Data wypełnienia informacji
			
			SET @xml.IC = @xml.IC - 1;
		SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</PozycjeSzczegolowe>\n');	
		SET @eCIT.poz = @eCIT.xml;
		
		SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Oswiadczenie>Oświadczam, że są mi znane przepisy Kodeksu karnego skarbowego o odpowiedzialności za podanie danych niezgodnych z rzeczywistością.</Oswiadczenie>\n');	
		 
		/* <xsd:element name="Zalaczniki" minOccurs="0">
					
							<xsd:element ref="cstam:Zalacznik_CIT-ST_A" minOccurs="0"/>
							<xsd:element ref="zzu:Zalacznik_ORD-ZU" minOccurs="0"/>					
		   </xsd:element>			  */
				
		IF (_CIT_ST_A > 0)	OR (_CelZlozenia = cKorekta)  THEN
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Zalaczniki>\n');
			
			
			
			IF (_CIT_ST_A > 0) THEN
				-- SET @xml.IC = @xml.IC + 1;
				-- zalacznik ST_A
				  				  
			/*	SELECT 
					 d.doc_id, d.doc_ver, _varSTR(d.form_ver), d.doc_type,	d.ID, p.OdDaty, p.DoDaty					
				FROM ht_dekl_cit_st p, e_doc_def d -- , osoby o
				WHERE 
					p.GUID = _RecGUID AND d.`doc_type`= 'CIT-ST/A' AND d.doc_owner = 'gov.pl' AND p.Rok BETWEEN YEAR(ed.DateFrom) AND YEAR(ed.DateTo)				
				INTO
					_e_doc_id, _doc_ver, _form_ver, _e_doc_type, _e_Doc_Def_ID, _OkresOd, _OkresDo;  */
			
				/* sposob skladania: 
				   1 (w terminie wpłaty zaliczki na podatek) ->  CITSTAM  kodSystemowy = "CITSTA (5)"  
				   2 (jako załącznik do CIT-8)               ->  CITSTA   kodSystemowy = "CTSTAR (5)"
				*/
				IF _SposobSkladania = cStandAlone THEN
					SET cPrefix = 'cstam';
					SET cPreS = '<cstam:';
					SET cPreE = '</cstam:';
					
					SET _e_Doc_Def_ID = '<cstam:Zalacznik_CIT-ST_A xmlns:cstam="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2012/01/19/eD/CITSTAM/">\n';     -- xmlns:cstam="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2012/01/19/eD/CITSTAM/"
					SET _e_doc_id = "CITSTA (5)";
				ELSE  -- cAsAttach
					SET cPrefix = 'csta';
					SET cPreS = '<csta:';
					SET cPreE = '</csta:';
					
					SET _e_Doc_Def_ID = concat(cPreS, 'Zalacznik_CIT-ST_A xmlns:', cPrefix, '="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2012/01/19/eD/CITSTA/">\n');
					SET _e_doc_id = "CITSTAR (5)";
				END IF;
				
				SET  _doc_ver = '1-0E';
				SET  _form_ver = 5;
			
				SET @xml.IC = @xml.IC + 1;  	   -- <xsd:element ref="cstam:Zalacznik_CIT-ST_A" minOccurs="0"/>
					SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), _e_Doc_Def_ID);
				
					SET @xml.IC = @xml.IC + 1;
				
					-- <xsd:element name="Naglowek" type="cstam:TNaglowek_CIT-ST_A"/> (kod formularza i wariant formularza)
					-- <xsd:element name="Naglowek" type="csta:TNaglowek_CIT-ST_A"/>
					-- cPrefix + <xsd:element name="PozycjeSzczegolowe"> 
				
					SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'Naglowek>\n');
						SET @xml.IC = @xml.IC + 1;
						
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'KodFormularza kodSystemowy="', _e_doc_id, '" wersjaSchemy="', _doc_ver, '">', 'CIT-ST/A', cPreE, 'KodFormularza>\n');
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'WariantFormularza>', _form_ver, cPreE, 'WariantFormularza>\n');  
									  
						SET @xml.IC = @xml.IC - 1;				
					SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreE, 'Naglowek>\n');		
					
					SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'PozycjeSzczegolowe>\n');
						SET @xml.IC = @xml.IC + 1;
							-- <xsd:element name="P_2A" type="etd:TWybor1" minOccurs="0">		  "Zał. nr"
							
						BEGIN
							DECLARE _done BOOL DEFAULT FALSE;
							-- DECLARE _ST_A_nazwa_krotka	VARCHAR(70);
					
							-- DECLARE _G_liczba_zatr  INTEGER;
							
							-- <xsd:element name="P_B1" maxOccurs="unbounded"> P_1....P_6A...P_15
							-- cursor analogiczny do _c_P_E
					
							DECLARE _c_P_B1 CURSOR FOR			
							SELECT  
									A_wojew, B_powiat, C_gmina, D_kod_gminy, E_nazwa, IFNULL(ST_A_nazwa_krotka, ''), ST_A_kod_kraju, 
									IFNULL(F1_REGON, ''), IFNULL(F2_NIP, ''), ST_A_miejscowosc,  -- , IFNULL(G_liczba_zatr, 0)
									m.ulica, m.nr_domu, m.nr_lokalu, m.kod_pocztowy
							FROM 
								ht_dekl_cit_st_poz d, gus_miejsca_zatr m
							WHERE d.ngGUID = _RecGUID  AND d.mzGUID = m.GUID;
					
							DECLARE CONTINUE HANDLER FOR NOT FOUND SET _done = TRUE;	
							
							OPEN _c_P_B1;	
							loopST_A: LOOP
							  FETCH _c_P_B1 INTO
								_A_wojew, _B_powiat, _C_gmina, _D_kod_gminy, _E_nazwa, _ST_A_nazwa_krotka, _ST_A_kod_kraju, _F1_REGON, _F2_NIP, _Miasto,
								_Ulica, _Nr_domu, _Nr_lokalu, _Kod_poczt
								; -- , _ogolem;
							  IF _done THEN
								LEAVE loopST_A;
							  ELSE			-- <xsd:element name="P_B1" maxOccurs="unbounded">								
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_B1 typ="G">\n'); -- Dane identyfikacyjne oraz adres zakładu (oddziału)<
								SET @xml.IC = @xml.IC + 1;
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_1>', _E_nazwa, cPreE, 'P_1>\n'); 
								
								-- <xsd:element name="P_2" minOccurs="0">  Nazwa skrócona <xsd:maxLength value="70"/>
								IF LENGTH(_ST_A_nazwa_krotka) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_2>',  _ST_A_nazwa_krotka, cPreE, 'P_2>\n'); 
								END IF;	
								
								IF LENGTH(_F1_REGON) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_3>', _F1_REGON, cPreE, 'P_3>\n'); 
								END IF;	
								IF LENGTH(_F2_NIP) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_4>', _F2_NIP, cPreE, 'P_4>\n'); 
								END IF;	
								
								-- <xsd:element name="P_5" type="etd:TData" minOccurs="0">  Data rozpoczęcia działalności
								IF !ISNULL(_ST_A_data_rozp) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_5>', _ST_A_data_rozp, cPreE, 'P_5>\n'); 
								END IF;
								
								-- <xsd:element name="P_6A" type="etd:TKodKraju">
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_6A>', _ST_A_kod_kraju, cPreE, 'P_6A>\n'); 
								
								-- P_7..P_15  (tylko P_13 "Miejscowość" jest wymagane, reszta minOccurs="0")
								IF LENGTH(_A_wojew) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_7>', _A_wojew, cPreE, 'P_7>\n');
								END IF;
								IF LENGTH(_B_powiat) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_8>', _B_powiat, cPreE, 'P_8>\n');
								END IF;
								IF LENGTH(_C_gmina) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_9>', _C_gmina, cPreE, 'P_9>\n'); 
								END IF;
								
								-- ulica
								IF LENGTH(_Ulica) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_10>', _Ulica, cPreE, 'P_10>\n');
								END IF;
								
								IF LENGTH(_Nr_domu) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_11>', _Nr_domu, cPreE, 'P_11>\n');
								END IF;
								
								IF LENGTH(_Nr_lokalu) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_12>', _Nr_lokalu, cPreE, 'P_12>\n');
								END IF;
								
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_13>', _Miasto, cPreE, 'P_13>\n');
								
								IF LENGTH(_Kod_poczt) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_14>', _Kod_poczt, cPreE, 'P_14>\n');
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreS, 'P_15>', _Miasto, cPreE, 'P_15>\n');
								END IF;
																															
							SET @xml.IC = @xml.IC - 1;
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreE, 'P_B1>\n'); 																											
						END IF;		
							END LOOP;
							CLOSE _c_P_B1;
							
						
						END;			  
						SET @xml.IC = @xml.IC - 1;					
					SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreE, 'PozycjeSzczegolowe>\n');	
										
				SET @xml.IC = @xml.IC - 1;
				
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), cPreE, 'Zalacznik_CIT-ST_A>\n');
			  SET @xml.IC = @xml.IC - 1;	
			END IF;	-- zalacznik ST-A
			
			IF _CelZlozenia = cKorekta THEN
				CALL e_dekl_vat_tools('vat.xml.insert.ORD_ZU', '', '', '', @eCIT.xml, '', '');			
			END IF;
									
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</Zalaczniki>\n');
		
		END IF;
		
		
		SET @eCIT.xml = CONCAT(@eCIT.xml, '</Deklaracja>');

		CALL e_doc_tools('e_doc_po.insert.or.edit', _Param_A, IFNULL(@eCIT.xml, 'XML NULL'), 'CREATE_XML', 'ORYG', '', '', '', '');
	END IF;	
	
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'pit.xml.insert.ORD_ZU'
		Dla korekt dołączamy załącznik z przyczyna korekty
		Parametry - do zrewidowania
		_MODE		  Tryb pracy
		INOUT _RepContent LONGTEXT  XML, do którego wstawiamy zalacznik,	
		
		CALL pit_tools('vat.xml.insert.ORD_ZU', '', '', '', @CIT.XML, '', '');
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/			
  IF _MODE = 'vat.xml.insert.ORD_ZU' THEN
	SET @xml.IC = @xml.IC + 1;
	SET _RepContent = CONCAT(_RepContent, SPACE(@xml.IC*cSL), '<zzu:Zalacznik_ORD-ZU xmlns:zzu="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2011/10/07/eD/ORDZU/">\n');
	  SET @xml.IC = @xml.IC + 1;
	  SET _RepContent = CONCAT(_RepContent, SPACE(@xml.IC*cSL), '<zzu:Naglowek>\n');
		SET @xml.IC = @xml.IC + 1;
		SET _RepContent = CONCAT(_RepContent, SPACE(@xml.IC*cSL), '<zzu:KodFormularza kodSystemowy="ORD-ZU (2)" wersjaSchemy="2-0E">ORD-ZU</zzu:KodFormularza>\n');
		SET _RepContent = CONCAT(_RepContent, SPACE(@xml.IC*cSL), '<zzu:WariantFormularza>2</zzu:WariantFormularza>\n');					
		SET @xml.IC = @xml.IC - 1;
	  SET _RepContent = CONCAT(_RepContent, SPACE(@xml.IC*cSL), '</zzu:Naglowek>\n');
	  
	  SET _RepContent = CONCAT(_RepContent, SPACE(@xml.IC*cSL), '<zzu:PozycjeSzczegolowe>\n');
		SET @xml.IC = @xml.IC + 1;
		SET _RepContent = CONCAT(_RepContent, SPACE(@xml.IC*cSL), '<zzu:P_13>');
		SET _RepContent = CONCAT(_RepContent,  @_przyczyna_ORD_ZU);
		SET _RepContent = CONCAT(_RepContent, '</zzu:P_13>\n');
		SET @xml.IC = @xml.IC - 1;
	  SET _RepContent = CONCAT(_RepContent, SPACE(@xml.IC*cSL), '</zzu:PozycjeSzczegolowe>\n');	
	  SET @xml.IC = @xml.IC - 1;
	SET _RepContent = CONCAT(_RepContent, SPACE(@xml.IC*cSL), '</zzu:Zalacznik_ORD-ZU>\n');					
	SET @xml.IC = @xml.IC - 1;
  END IF;	
	
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'cit8.xml.create'
		
		Parametry - do zrewidowania
		_MODE		  Tryb pracy
		IN _GUID      GUID  rekordu		
		IN _Param_A   Rok, za ktory jest skladana deklaracja
		IN _Param_B   Cel zlozenia: 1 - zgloszenie, 2 - korekta;  
		
		CALL pit_tools('cit8.xml.create', '', '', '', '', '', '');
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/			
IF _MODE = 'cit8.xml.create' THEN

BEGIN
		 
	DECLARE _B_dokumentacja, _B_zwolnienie, _B_wniosl_wklad, _B_uwzgl_odsetki,
			_C_CIT_ST, _C_SSE_R, _C_CIT_8O, _C_CIT_D, _C_sprawozd,
			_E5_podst_opodatk, _F_rok,
			_G_zaliczka1, _G_zaliczka2, _G_zaliczka3, _G_zaliczka4, _G_zaliczka5, _G_zaliczka6, _G_zaliczka7, _G_zaliczka8, _G_zaliczka9, _G_zaliczka10, _G_zaliczka11, _G_zaliczka12,
			_G_zaliczka13, _G_zaliczka14, _G_zaliczka15, _G_zaliczka16, _G_zaliczka17, _G_zaliczka18, _G_zaliczka19, _G_zaliczka20, _G_zaliczka21, _G_zaliczka22, _G_zaliczka23, _G_zaliczka24,
			_G_zaliczka_razem,
			_I_suma_zaliczek, _I_do_zaplaty, _I_nadplata,
			_K_dochod_uzyskany, _K_podatek_nalezny, _K_podatek_naliczony, _K_odsetki,
			_J_dochod1, _J_dochod2, _J_dochod3, _J_dochod4, _J_dochod5, _J_dochod6, _J_dochod7, _J_dochod8, _J_dochod9, _J_dochod10, _J_dochod11, _J_dochod12,    
			_J_dochod13, _J_dochod14, _J_dochod15, _J_dochod16, _J_dochod17, _J_dochod18, _J_dochod19, _J_dochod20, _J_dochod21, _J_dochod22, _J_dochod23, 
			_J_podatek1, _J_podatek2, _J_podatek3, _J_podatek4, _J_podatek5, _J_podatek6, _J_podatek7, _J_podatek8, _J_podatek9, _J_podatek10, _J_podatek11, _J_podatek12,    
			_J_podatek13, _J_podatek14, _J_podatek15, _J_podatek16, _J_podatek17, _J_podatek18, _J_podatek19, _J_podatek20, _J_podatek21, _J_podatek22, _J_podatek23
			INTEGER;
			
	DECLARE _B_kwota_odsetek,
			_D1_przychod_RP, _D1_przychod_poza_RP, _D1_przychod_inny_poza_RP, _D1_przychod_wklad, _D1_przychod_razem,
			_D2_koszty_RP, _D2_koszty_poza_RP, _D2_koszty_inny_poza_RP, _D2_koszty_wklad, _D2_odsetki_wylacz, _D2_koszty_razem,
			_D3_dochod_art7, _D3_strata_art7, _D3_strata_art7_zagr, _D3_dochod, _D3_strata, 
			_E1_dochody_wolne, _E1_odliczenia, _E1_odliczenia_inwest, _E1_dochody_odlicz_razem, 
			_E2_podst_opodatk, _E2_strata, _E3_odl_nowe_tech,
			_E4_odl_inwest, _E4_dochody_SSE, _E4_wydatk_nowe_tech, _E4_kwota_razem, 
			_E5_strata,
			_F_proc_podatk, _F_podatek_przed_odl, _F_odliczenia, _F_podatek_po_odl, _F_dwadziescia_proc,
			_H_rozn_podatek_suma, _H_rozn_suma_podatek
			DOUBLE;
			
	-- zmienne do CIT-8/O		
	DECLARE _B1_P_8, _B1_P_9, _B1_P_10,  _B1_P_11, _B1_P_12, 
					_B1_P_13,  _B1_P_14,  _B1_P_15, _B1_P_16, _B1_P_17, 
			_B1_P_poza_RP, _B1_P_pozarolnicze, _B1_P_nieodpl_swiadcz, _B1_P_mieszk, _B1_P_dotacje_budzet, _B1_P_kwoty_agencje, _B1_P_BGK, _B1_P_projekt,			
					 _B1_inne_kwota, _B1_dochody_razem,
					 _B2_P_22, _B2_P_23, _B2_P_24,  
					 _B2_P_26, _B2_P_27, _B2_P_28, 
					 _B2_P_30, _B2_P_31, _B2_P_32, 
					 _B2_P_34, _B2_P_35, _B2_P_36, 
					 _B2_P_38, _B2_P_39, _B2_P_40, _B2_straty_suma,    
					_B3_P_42,   _B3_P_43,   _B3_P_44,   _B3_P_45,   _B3_P_46,
					   _B3_inne_kwota,   _B3_odlicz_razem,
					_C_wydatki_inwest, _C_dodatk_obniz, _C_odlicz_razem,    
					_D_wydatki_nowe_tech,      
					_E_odlicz_art20, _E_inne_odlicz, 
					 _E_zwoln_kwota,   
					 _E_zaniech_kwota, 
					 _E_obnizki_kwota,   
					_E_kwota_ogolem,       
					_F1_P_65,  _F1_P_66, _F1_P_67,  _F2_P_70 DOUBLE;  			
					
	DECLARE	_B2_P_21, _B2_P_25,	_B2_P_29, _B2_P_33, _B2_P_37, _F1_P_68,   _F1_P_69, _F3_P_71, _F3_P_72 INTEGER;
	DECLARE _B1_inne_tytul, _B3_inne_tytul, _E_zwoln_nr_decyzji, _E_zaniech_tytul,  _E_obnizki_tytul VARCHAR(400);
	DECLARE _E_zwoln_data_decyzji,    _E_zaniech_data_rozp DATE;
	
	
	-- zmienne do CIT-D	
	DECLARE _C_kwota_1, _C_kwota_2, _C_kwota_3   DOUBLE;  			-- _C_kwota_ogolem
	DECLARE _C4_charytatywna, _C4_pomoc_ofiarom, _C4_pomoc_spol, _C4_krajozn, _C4_nauka, _C4_niepelnospr, _C4_kultura, _C4_ekologia, _C4_zdrowie,
			_C4_rozwoj_gosp, _C4_sport, _C4_ratownictwo, _C4_kult, _C4_char_opiekun, _C4_pozost INTEGER;
	DECLARE	_D1_kwota_przekaz, _D1_kwota_odlicz, 
			_D2_kwota_przekaz, _D2_kwota_odlicz,
			_D3_kwota_przekaz, _D3_kwota_odlicz DOUBLE;
	DECLARE	_C1_guid, _C2_guid, _C3_guid, _D1_guid, _D2_guid, _D3_guid VARCHAR(38);	  
			  
	DECLARE  _zalGUID	VARCHAR(38);	  

	/* 
		 - <Deklaracja> 
			<xsd:documentation>ZEZNANIE O WYSOKOŚCI OSIĄGNIĘTEGO DOCHODU (PONIESIONEJ STRATY) PRZEZ PODATNIKA PODATKU DOCHODOWEGO OD OSÓB PRAWNYCH</xsd:documentation>
			 + <Naglowek> 
			 + <Podmiot1> 			 
			 + <PozycjeSzczegolowe> 			 
			 <Pouczenie1>
			 <Pouczenie2>
			 <Oswiadczenie>
			 <Zalaczniki minOccurs="0">  
		   </Deklaracja> 		
		*/	
		
	SET @eCIT.xml = '';
	SET @xml.IC = 1;
		
	SET @eCIT.xml = '<?xml version="1.0" encoding="UTF-8" ?>\n';
	SET @eCIT.prolog =	 @eCIT.xml;
	
	SELECT d.ID
	from ht_dekl_cit p, e_doc_def d
	where p.guid = _RecGUID  AND  p.e_Doc_Def_ID = d.owner_doc_Id 
	into   _e_Doc_Def_ID;
	
	SET @tmp.e_Doc_Def_ID = _e_Doc_Def_ID;
			
	-- SET @eCIT.xml = CONCAT(@eCIT.xml, '<Deklaracja xmlns="http://crd.gov.pl/wzor/2014/01/02/', '1446', '/" ');  -- /2013/10/10/... 
	-- SET @eCIT.xml = CONCAT(@eCIT.xml, '<Deklaracja xmlns="http://crd.gov.pl/wzor/2015/02/06/', '2037', '/" ');  -- targetNamespace="http://crd.gov.pl/wzor/2015/02/06/2037/" 
	SET @eCIT.xml = CONCAT(@eCIT.xml, '<Deklaracja xmlns="', IFNULL(_e_Doc_Def_ID, ''), '" ');
	SET @eCIT.xml = CONCAT(@eCIT.xml, cDefTypySchema, '\n');		
	SET @eCIT.xmlns = @eCIT.xml;	
	-- SET @eCIT.xml = CONCAT(@eCIT.xml,  'xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2011/06/21/eD/DefinicjeTypy/">\n');	

	-- SET @xml.IC = @xml.IC + 1;		
		-- <Naglowek>
		 CALL e_dekl_vat_tools('cit.xml.insert.header', '', '', _RecGUID, @eDekl.H, '', '');
	
		-- <Podmiot1>
		 CALL e_dekl_vat_tools('xml.insert.podmiot1', '', '', '', @eDekl.P1, 'AdresSiedziby', '');
		 SET @eCIT.xml = CONCAT(@eCIT.xml, IFNULL(@eDekl.P1, 'pusty P1')); 
		 
		 -- <PozycjeSzczegolowe> P_20 .. P_100
		 	
		 -- SELECT init_sql FROM ips_ng WHERE guid = 'CIT8_21':
         CALL _IReg_Get('FK', 'Data bilansu', '0', 'DATE', @FK.data_bilansu, '0000-00-00');
		 		        		
		SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<PozycjeSzczegolowe>\n');
			SET @xml.IC = @xml.IC + 1;
						
			select 
			  CelZlozenia, _varInt(B_zwolnienie), _varInt(B_dokumentacja), _varInt(B_wniosl_wklad), _varInt(B_uwzgl_odsetki), _varDOUBLE_NOTNULL(B_kwota_odsetek),
			  C_CIT_ST, C_SSE_R, C_CIT_8O, C_CIT_D, C_sprawozd,
			  _varDOUBLE_NOTNULL(D1_przychod_RP), _varDOUBLE_NOTNULL(D1_przychod_poza_RP), _varDOUBLE_NOTNULL(D1_przychod_inny_poza_RP), _varDOUBLE_NOTNULL(D1_przychod_wklad), _varDOUBLE_NOTNULL(D1_przychod_razem),
			  _varDOUBLE_NOTNULL(D2_koszty_RP), _varDOUBLE_NOTNULL(D2_koszty_poza_RP), _varDOUBLE_NOTNULL(D2_koszty_inny_poza_RP), _varDOUBLE_NOTNULL(D2_koszty_wklad), _varDOUBLE_NOTNULL(D2_odsetki_wylacz), _varDOUBLE_NOTNULL(D2_koszty_razem),
			  _varDOUBLE_NOTNULL(D3_dochod_art7), _varDOUBLE_NOTNULL(D3_strata_art7), _varDOUBLE_NOTNULL(D3_strata_art7_zagr), _varDOUBLE_NOTNULL(D3_dochod), _varDOUBLE_NOTNULL(D3_strata), 
			  _varDOUBLE_NOTNULL(E1_dochody_wolne), _varDOUBLE_NOTNULL(E1_odliczenia), _varDOUBLE_NOTNULL(E1_odliczenia_inwest), _varDOUBLE_NOTNULL(E1_dochody_odlicz_razem), 
			  _varDOUBLE_NOTNULL(E2_podst_opodatk), _varDOUBLE_NOTNULL(E2_strata), _varDOUBLE_NOTNULL(E3_odl_nowe_tech),
			  _varDOUBLE_NOTNULL(E4_odl_inwest), _varDOUBLE_NOTNULL(E4_dochody_SSE), _varDOUBLE_NOTNULL(E4_wydatk_nowe_tech), _varDOUBLE_NOTNULL(E4_kwota_razem), 
			  _varINT_NOTNULL(E5_podst_opodatk), _varDOUBLE_NOTNULL(E5_strata),			  
			  _varDOUBLE_NOTNULL(F_proc_podatk), _varDOUBLE_NOTNULL(F_podatek_przed_odl), _varDOUBLE_NOTNULL(F_odliczenia), _varDOUBLE_NOTNULL(F_podatek_po_odl), _varDOUBLE_NOTNULL(F_dwadziescia_proc), _varINT_NOTNULL(F_rok),
			  _varINT_NOTNULL(G_zaliczka1), _varINT_NOTNULL(G_zaliczka2), _varINT_NOTNULL(G_zaliczka3), _varINT_NOTNULL(G_zaliczka4), _varINT_NOTNULL(G_zaliczka5), _varINT_NOTNULL(G_zaliczka6), 
			  _varINT_NOTNULL(G_zaliczka7), _varINT_NOTNULL(G_zaliczka8), _varINT_NOTNULL(G_zaliczka9), _varINT_NOTNULL(G_zaliczka10), _varINT_NOTNULL(G_zaliczka11), _varINT_NOTNULL(G_zaliczka12),
			  _varINT_NOTNULL(G_zaliczka13), _varINT_NOTNULL(G_zaliczka14), _varINT_NOTNULL(G_zaliczka15), _varINT_NOTNULL(G_zaliczka16), _varINT_NOTNULL(G_zaliczka17), _varINT_NOTNULL(G_zaliczka18), 
			  _varINT_NOTNULL(G_zaliczka19), _varINT_NOTNULL(G_zaliczka20), _varINT_NOTNULL(G_zaliczka21), _varINT_NOTNULL(G_zaliczka22), _varINT_NOTNULL(G_zaliczka23), _varINT_NOTNULL(G_zaliczka24),
			  _varINT_NOTNULL(G_zaliczka_razem),
			  _varDOUBLE_NOTNULL(H_rozn_podatek_suma), _varDOUBLE_NOTNULL(H_rozn_suma_podatek),
			  _varINT_NOTNULL(I_suma_zaliczek), _varINT_NOTNULL(I_do_zaplaty), _varINT_NOTNULL(I_nadplata),
			  _varINT_NOTNULL(K_dochod_uzyskany), _varINT_NOTNULL(K_podatek_nalezny), _varINT_NOTNULL(K_podatek_naliczony), _varINT_NOTNULL(K_odsetki),
			  _varINT_NOTNULL(_J_dochod1), _varINT_NOTNULL(_J_dochod2), _varINT_NOTNULL(_J_dochod3), _varINT_NOTNULL(_J_dochod4), _varINT_NOTNULL(_J_dochod5), _varINT_NOTNULL(_J_dochod6), 
			  _varINT_NOTNULL(_J_dochod7), _varINT_NOTNULL(_J_dochod8), _varINT_NOTNULL(_J_dochod9), _varINT_NOTNULL(_J_dochod10), _varINT_NOTNULL(_J_dochod11), _varINT_NOTNULL(_J_dochod12),    
			  _varINT_NOTNULL(_J_dochod13), _varINT_NOTNULL(_J_dochod14), _varINT_NOTNULL(_J_dochod15), _varINT_NOTNULL(_J_dochod16), _varINT_NOTNULL(_J_dochod17), _varINT_NOTNULL(_J_dochod18), 
			  _varINT_NOTNULL(_J_dochod19), _varINT_NOTNULL(_J_dochod20), _varINT_NOTNULL(_J_dochod21), _varINT_NOTNULL(_J_dochod22), _varINT_NOTNULL(_J_dochod23), 
			_varINT_NOTNULL(_J_podatek1), _varINT_NOTNULL(_J_podatek2), _varINT_NOTNULL(_J_podatek3), _varINT_NOTNULL(_J_podatek4), _varINT_NOTNULL(_J_podatek5), _varINT_NOTNULL(_J_podatek6), 
			_varINT_NOTNULL(_J_podatek7), _varINT_NOTNULL(_J_podatek8), _varINT_NOTNULL(_J_podatek9), _varINT_NOTNULL(_J_podatek10), _varINT_NOTNULL(_J_podatek11), _varINT_NOTNULL(_J_podatek12),    
			_varINT_NOTNULL(_J_podatek13), _varINT_NOTNULL(_J_podatek14), _varINT_NOTNULL(_J_podatek15), _varINT_NOTNULL(_J_podatek16), _varINT_NOTNULL(_J_podatek17), 
			_varINT_NOTNULL(_J_podatek18), _varINT_NOTNULL(_J_podatek19), _varINT_NOTNULL(_J_podatek20), _varINT_NOTNULL(_J_podatek21), _varINT_NOTNULL(_J_podatek22), _varINT_NOTNULL(_J_podatek23)
			from ht_dekl_cit 
			where guid = _RecGUID
			into   
			  _CelZlozenia, _B_zwolnienie, _B_dokumentacja, _B_wniosl_wklad, _B_uwzgl_odsetki, _B_kwota_odsetek,
			  _C_CIT_ST, _C_SSE_R, _C_CIT_8O, _C_CIT_D, _C_sprawozd,
			  _D1_przychod_RP, _D1_przychod_poza_RP, _D1_przychod_inny_poza_RP, _D1_przychod_wklad, _D1_przychod_razem,
			  _D2_koszty_RP, _D2_koszty_poza_RP, _D2_koszty_inny_poza_RP, _D2_koszty_wklad, _D2_odsetki_wylacz, _D2_koszty_razem,
			  _D3_dochod_art7, _D3_strata_art7, _D3_strata_art7_zagr, _D3_dochod, _D3_strata, 
			  _E1_dochody_wolne, _E1_odliczenia, _E1_odliczenia_inwest, _E1_dochody_odlicz_razem, 
			  _E2_podst_opodatk, _E2_strata, _E3_odl_nowe_tech,
			  _E4_odl_inwest, _E4_dochody_SSE, _E4_wydatk_nowe_tech, _E4_kwota_razem, 
			  _E5_podst_opodatk, _E5_strata,
			  _F_proc_podatk, _F_podatek_przed_odl, _F_odliczenia, _F_podatek_po_odl, _F_dwadziescia_proc, _F_rok,
			  _G_zaliczka1, _G_zaliczka2, _G_zaliczka3, _G_zaliczka4, _G_zaliczka5, _G_zaliczka6, _G_zaliczka7, _G_zaliczka8, _G_zaliczka9, _G_zaliczka10, _G_zaliczka11, _G_zaliczka12,
			  _G_zaliczka13, _G_zaliczka14, _G_zaliczka15, _G_zaliczka16, _G_zaliczka17, _G_zaliczka18, _G_zaliczka19, _G_zaliczka20, _G_zaliczka21, _G_zaliczka22, _G_zaliczka23, _G_zaliczka24,
			  _G_zaliczka_razem,
			  _H_rozn_podatek_suma, _H_rozn_suma_podatek,
			  _I_suma_zaliczek, _I_do_zaplaty, _I_nadplata,
			  _K_dochod_uzyskany, _K_podatek_nalezny, _K_podatek_naliczony, _K_odsetki,
			  _J_dochod1, _J_dochod2, _J_dochod3, _J_dochod4, _J_dochod5, _J_dochod6, _J_dochod7, _J_dochod8, _J_dochod9, _J_dochod10, _J_dochod11, _J_dochod12,    
			_J_dochod13, _J_dochod14, _J_dochod15, _J_dochod16, _J_dochod17, _J_dochod18, _J_dochod19, _J_dochod20, _J_dochod21, _J_dochod22, _J_dochod23, 
			_J_podatek1, _J_podatek2, _J_podatek3, _J_podatek4, _J_podatek5, _J_podatek6, _J_podatek7, _J_podatek8, _J_podatek9, _J_podatek10, _J_podatek11, _J_podatek12,    
			_J_podatek13, _J_podatek14, _J_podatek15, _J_podatek16, _J_podatek17, _J_podatek18, _J_podatek19, _J_podatek20, _J_podatek21, _J_podatek22, _J_podatek23
			  ;
			
			  /*  tutaj dane z   od P_20 (B3) do P_100 (K) 		*/ 	
			  -- B.3
			  -- _B_wniosl_wklad, _B_uwzgl_odsetki, _B_kwota_odsetek
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_20>', _B_wniosl_wklad, '</P_20>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_21>', _B_uwzgl_odsetki, '</P_21>\n'); 
			  
			  IF _B_uwzgl_odsetki = 1 THEN
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_22>', _B_kwota_odsetek, '</P_22>\n'); 
			  END IF;
			  
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_23>', _B_zwolnienie, '</P_23>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_24>', _B_dokumentacja, '</P_24>\n'); 
			  
			  -- C.
			  IF _C_CIT_8O > 0 THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_27>', _C_CIT_8O, '</P_27>\n'); 
			  END IF;	
			  			  
			  IF _C_CIT_D > 0 THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_28>', _C_CIT_D, '</P_28>\n'); -- P_28 to nie przelacznik "tak/nie", lecz informacja o liczbie zalacznikow
			  END IF;	
			  
			  -- D.1.
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_30>', _D1_przychod_RP, '</P_30>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_31>', _D1_przychod_poza_RP, '</P_31>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_32>', _D1_przychod_inny_poza_RP, '</P_32>\n'); 
			  IF _D1_przychod_wklad > 0.00 THEN
			     SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_33>', _D1_przychod_wklad, '</P_33>\n'); 
			  END IF; 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_34>', _D1_przychod_razem, '</P_34>\n'); 
			  
			  -- D.2.
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_35>', _D2_koszty_RP, '</P_35>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_36>', _D2_koszty_poza_RP, '</P_36>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_37>', _D2_koszty_inny_poza_RP, '</P_37>\n'); 
			  IF _D2_koszty_wklad > 0.00 THEN
			     SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_38>', _D2_koszty_wklad, '</P_38>\n'); 
			  END IF; 
			  
			  IF _D2_odsetki_wylacz > 0.00 THEN
				 SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_39>', _D2_odsetki_wylacz, '</P_39>\n'); 
			  END IF;
			  
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_40>', _D2_koszty_razem, '</P_40>\n'); 
			  
			  -- D.3.
			  IF (_D3_dochod_art7 > 0) OR (_D3_dochod_art7 = 0 AND _D3_strata_art7 = 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_41>', _D3_dochod_art7, '</P_41>\n'); 
			  END IF;	
			  IF _D3_strata_art7 > 0 THEN
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_42>', _D3_strata_art7, '</P_42>\n'); 
			  END IF;	
			  IF _D3_strata_art7_zagr > 0 THEN			  
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_43>', _D3_strata_art7_zagr, '</P_43>\n'); 
			  END IF;	
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_44>', _D3_dochod, '</P_44>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_45>', _D3_strata, '</P_45>\n'); 
			 
			  -- E.1.
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_46>', _E1_dochody_wolne, '</P_46>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_47>', _E1_odliczenia, '</P_47>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_48>', _E1_odliczenia_inwest, '</P_48>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_49>', _E1_dochody_odlicz_razem, '</P_49>\n'); 
			  
			  -- E.2.
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_50>', _E2_podst_opodatk, '</P_50>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_51>', _E2_strata, '</P_51>\n'); 
			  
			  -- E.3.
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_52>', _E3_odl_nowe_tech, '</P_52>\n'); 
			  
			  -- E.4.
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_53>', _E4_odl_inwest, '</P_53>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_54>', _E4_dochody_SSE, '</P_54>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_55>', _E4_wydatk_nowe_tech, '</P_55>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_56>', _E4_kwota_razem, '</P_56>\n'); 
			  
			  -- E.5.
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_57>', _E5_podst_opodatk, '</P_57>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_58>', _E5_strata, '</P_58>\n'); 
			  
			  -- F.
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_59>', _F_proc_podatk, '</P_59>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_60>', _F_podatek_przed_odl, '</P_60>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_61>', _F_odliczenia, '</P_61>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_62>', _F_podatek_po_odl, '</P_62>\n'); 
			  IF _F_rok > 0 THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_63>', _F_rok, '</P_63>\n'); 
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_64>', _F_dwadziescia_proc, '</P_64>\n'); 
			  END IF;
			  
			  CALL _IReg_Get('', 'DeklaracjeVAT_kwartalnie', '0', 'BOOLEAN', _kwartalnie, 'FALSE'); -- tu zmienic zmienna
			  IF NOT _kwartalnie THEN  -- RegistryInt.GetRegIntValueBoolean('DeklaracjeVAT_kwartalnie', False, '');
			  -- G. P_59 - P_82
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_65>', _G_zaliczka1, '</P_65>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_66>', _G_zaliczka2, '</P_66>\n'); 
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_67>', _G_zaliczka3, '</P_67>\n');	
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_68>', _G_zaliczka4, '</P_68>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_69>', _G_zaliczka5, '</P_69>\n'); 
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_70>', _G_zaliczka6, '</P_70>\n');					
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_71>', _G_zaliczka7, '</P_71>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_72>', _G_zaliczka8, '</P_72>\n'); 
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_73>', _G_zaliczka9, '</P_73>\n');	
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_74>', _G_zaliczka10, '</P_74>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_75>', _G_zaliczka11, '</P_75>\n'); 
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_76>', _G_zaliczka12, '</P_76>\n');				 
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_77>', _G_zaliczka13, '</P_77>\n');	
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_78>', _G_zaliczka14, '</P_78>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_79>', _G_zaliczka15, '</P_79>\n'); 
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_80>', _G_zaliczka16, '</P_80>\n');					
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_81>', _G_zaliczka17, '</P_81>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_82>', _G_zaliczka18, '</P_82>\n'); 
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_83>', _G_zaliczka19, '</P_83>\n');	
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_84>', _G_zaliczka20, '</P_84>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_85>', _G_zaliczka21, '</P_85>\n'); 
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_86>', _G_zaliczka22, '</P_86>\n'); 
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_87>', _G_zaliczka23, '</P_87>\n');									
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_88>', _G_zaliczka_razem, '</P_88>\n');
			  ELSE			  
			  -- H. P_83 - P_91
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_67>', _G_zaliczka3, '</P_67>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_70>', _G_zaliczka6, '</P_70>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_73>', _G_zaliczka9, '</P_73>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_76>', _G_zaliczka12, '</P_76>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_79>', _G_zaliczka15, '</P_79>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_82>', _G_zaliczka18, '</P_82>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_85>', _G_zaliczka21, '</P_85>\n');
				-- SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_90>', _G_zaliczka24, '</P_90>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_88>', _G_zaliczka_razem, '</P_88>\n');
			  END IF;
			  			  
			  -- IF _B_zwolnienie <> 1 THEN
			    IF (_H_rozn_podatek_suma > 0)  OR (_H_rozn_podatek_suma = 0 AND _H_rozn_suma_podatek = 0) THEN
			      SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_89>', _H_rozn_podatek_suma, '</P_89>\n'); 			  			  
				ELSE  
			      SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_90>', _H_rozn_suma_podatek, '</P_90>\n'); 
				END IF;  
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_91>', _I_suma_zaliczek, '</P_91>\n'); 
				IF (_I_do_zaplaty > 0)  OR (_I_do_zaplaty = 0 AND _I_nadplata = 0) THEN
					SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_92>', _I_do_zaplaty, '</P_92>\n'); 
				ELSE	
					SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_93>', _I_nadplata, '</P_93>\n'); 
				END IF;	
			  -- END IF;
			  
			  -- J.ODRĘBNE ZOBOWIĄZANIE PODATKOWE
			  IF (_J_dochod1 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_94>', _J_dochod1, '</P_94>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_100>', _J_podatek1, '</P_100>\n'); 
			  END IF;
			  
			  IF (_J_dochod2 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_95>', _J_dochod2, '</P_95>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_101>', _J_podatek2, '</P_101>\n'); 
			  END IF;
			  
			  IF (_J_dochod3 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_96>', _J_dochod3, '</P_96>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_102>', _J_podatek3, '</P_102>\n'); 
			  END IF;
			  
			  IF (_J_dochod4 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_97>', _J_dochod4, '</P_97>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_103>', _J_podatek4, '</P_103>\n'); 
			  END IF;
			  
			  IF (_J_dochod5 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_98>', _J_dochod5, '</P_98>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_104>', _J_podatek5, '</P_104>\n'); 
			  END IF;
			  
			  IF (_J_dochod6 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_99>', _J_dochod6, '</P_99>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_105>', _J_podatek6, '</P_105>\n'); 
			  END IF;
			  
			  IF (_J_dochod7 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_106>', _J_dochod7, '</P_106>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_112>', _J_podatek7, '</P_112>\n'); 
			  END IF;
			  
			  IF (_J_dochod8 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_107>', _J_dochod8, '</P_107>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_113>', _J_podatek8, '</P_113>\n'); 
			  END IF;
			  
			  IF (_J_dochod9 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_108>', _J_dochod9, '</P_108>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_114>', _J_podatek9, '</P_114>\n'); 
			  END IF;
			  
			  IF (_J_dochod10 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_109>', _J_dochod10, '</P_109>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_115>', _J_podatek10, '</P_115>\n'); 
			  END IF;
			  
			  IF (_J_dochod11 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_110>', _J_dochod11, '</P_110>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_116>', _J_podatek11, '</P_116>\n'); 
			  END IF;
			  
			  IF (_J_dochod12 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_111>', _J_dochod12, '</P_111>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_117>', _J_podatek12, '</P_117>\n'); 
			  END IF;
			  
			  IF (_J_dochod13 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_118>', _J_dochod13, '</P_118>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_124>', _J_podatek13, '</P_124>\n'); 
			  END IF;
			  
			  IF (_J_dochod14 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_119>', _J_dochod14, '</P_119>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_125>', _J_podatek14, '</P_125>\n'); 
			  END IF;
			  
			  IF (_J_dochod15 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_120>', _J_dochod15, '</P_120>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_126>', _J_podatek15, '</P_126>\n'); 
			  END IF;
			  
			  IF (_J_dochod16 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_121>', _J_dochod16, '</P_121>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_127>', _J_podatek16, '</P_127>\n'); 
			  END IF;
			  
			  IF (_J_dochod17 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_122>', _J_dochod17, '</P_122>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_128>', _J_podatek17, '</P_128>\n'); 
			  END IF;
			  
			  IF (_J_dochod18 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_123>', _J_dochod18, '</P_123>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_129>', _J_podatek18, '</P_129>\n'); 
			  END IF;
			  
			  IF (_J_dochod19 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_130>', _J_dochod19, '</P_130>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_135>', _J_podatek19, '</P_135>\n'); 
			  END IF;
			  
			  IF (_J_dochod20 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_131>', _J_dochod20, '</P_131>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_136>', _J_podatek20, '</P_136>\n'); 
			  END IF;
			  
			  IF (_J_dochod21 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_132>', _J_dochod21, '</P_132>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_137>', _J_podatek21, '</P_137>\n'); 
			  END IF;
			  
			  IF (_J_dochod22 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_133>', _J_dochod22, '</P_133>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_138>', _J_podatek22, '</P_138>\n'); 
			  END IF;
			  
			  IF (_J_dochod23 > 0) THEN
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_134>', _J_dochod23, '</P_134>\n');
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_139>', _J_podatek23, '</P_139>\n'); 
			  END IF;
			  
			  -- K.INNE ZOBOWIĄZANIE PODATKOWE
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_140>', _K_dochod_uzyskany, '</P_140>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_141>', _K_podatek_nalezny, '</P_141>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_142>', _K_podatek_naliczony, '</P_142>\n'); 
			  SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<P_143>', _K_odsetki, '</P_143>\n'); 
			  -- 
			  
			SET @xml.IC = @xml.IC - 1;
		SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</PozycjeSzczegolowe>\n');
		-- koniec sekcji pozycji szczegolowych		
		
		/* Pouczenie1 i Pouczenie2 (UTF8)  */  
	  /*  -- wersja 21:	
	    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Pouczenie1>Niniejsze zeznanie stanowi podstawę do wystawienia tytułu wykonawczego zgodnie z przepisami ustawy z dnia 17 czerwca 1966 r. o postępowaniu egzekucyjnym w administracji (Dz.U. z 2005 r. Nr 229, poz.1954, ze zm.), na odsetki od wykazanych i nieuiszczonych w obowiązujących terminach lub uiszczonych w niepełnej wysokości kwot z poz.59-81 i poz.83-90.</Pouczenie1>\n');
		SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Pouczenie2>W przypadku niewpłacenia w obowiązujących terminach kwot z poz.95, 98, 99 i 100 lub wpłacenia ich w niepełnej wysokości niniejsze zeznanie stanowi podstawę do wystawienia tytułu wykonawczego, zgodnie z przepisami ustawy z dnia 17 czerwca 1966 r. o postępowaniu egzekucyjnym w administracji (Dz.U. z 2005 r. Nr 229, poz.1954, ze zm.).</Pouczenie2>\n');	
		SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Oswiadczenie>Oświadczam, że są mi znane przepisy Kodeksu karnego skarbowego o odpowiedzialności za podanie danych niezgodnych z rzeczywistością i przez to narażenie na uszczuplenie podatku.</Oswiadczenie>\n');	
	  */  	
		-- wersja 22:
		SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Pouczenie1>Niniejsze zeznanie stanowi podstawę do wystawienia tytułu wykonawczego zgodnie z przepisami ustawy z dnia 17 czerwca 1966 r. o postępowaniu egzekucyjnym w administracji (Dz. U. z 2014 r. poz. 1619), na odsetki od wykazanych i nieuiszczonych w obowiązujących terminach lub uiszczonych w niepełnej wysokości kwot z poz. 65 - 87.</Pouczenie1>\n');
		SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Pouczenie2>W przypadku niewpłacenia w obowiązujących terminach kwot z poz. 92, 100 - 105, 112 - 117, 124 - 129, 135 - 139, 141 i 142 lub wpłacenia ich w niepełnej wysokości niniejsze zeznanie stanowi podstawę do wystawienia tytułu wykonawczego, zgodnie z przepisami ustawy z dnia 17 czerwca 1966 r. o postępowaniu egzekucyjnym w administracji (Dz. U. z 2014 r. poz. 1619).</Pouczenie2>\n');	
		SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Pouczenie3>Za podanie nieprawdy lub zatajenie prawdy i przez to narażenie na uszczuplenie podatku grozi odpowiedzialnośc przewidziana w Kodeksie karnym skarbowym.</Pouczenie3>\n');	
	
		IF ( (_C_CIT_D > 0) OR (_C_CIT_8O > 0) OR (_CelZlozenia = cKorekta) ) THEN  -- jesli jest zalacznik CIT-8/0 lub ORD-ZU (korekta), to je dolaczamy
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Zalaczniki>\n');
			
			IF (_C_CIT_D > 0) THEN
			
              SET @ptr = 'CIT-D';			
			/*  CIT-D
			<xsd:element name="Zalacznik_CIT-D>
				<xsd:element name="Naglowek" type="czd:TNaglowek_CIT-D"/>
				<xsd:element name="PozycjeSzczegolowe">
			*/
			  			  
			    SELECT 
					 d.doc_id, d.doc_ver, _varSTR(d.form_ver), d.doc_type,	d.ID, n.OdDaty, n.DoDaty	
				FROM 
					ht_dekl_cit n, ht_dekl_cit_d p, e_doc_def d
				WHERE 
					n.GUID = _RecGUID AND p.deklGUID = n.GUID  AND  p.e_Doc_Def_ID = d.owner_doc_Id	 AND p.deleted = 0
				INTO
					_e_doc_id, _doc_ver, _form_ver, _e_doc_type, _e_Doc_Def_ID, _OkresOd, _OkresDo;
					
				SET @xml.IC = @xml.IC + 1;
					SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:Zalacznik_CIT-D xmlns:czd="', _e_Doc_Def_ID, '">\n');				
					SET @xml.IC = @xml.IC + 1;	
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:Naglowek>\n');		
						SET @xml.IC = @xml.IC + 1;
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL),'<czd:KodFormularza kodSystemowy="',_e_doc_id, '" wersjaSchemy="', _doc_ver, '">', _e_doc_type, '</czd:KodFormularza>\n');
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:WariantFormularza>', _form_ver, '</czd:WariantFormularza>\n');	
						
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:OkresOd poz="P_4">', _OkresOd, '</czd:OkresOd>\n');	
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:OkresDo poz="P_5">', _OkresDo, '</czd:OkresDo>\n');	
						SET @xml.IC = @xml.IC - 1;	
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</czd:Naglowek>\n');	
						
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:PozycjeSzczegolowe>\n');
						SET @xml.IC = @xml.IC + 1;
						
							SELECT 
							    RodzajPodatnika,								
								ifnull(C1_guid, ''), ifnull(C2_guid, ''), ifnull(C3_guid, ''), ifnull(D1_guid, ''), ifnull(D2_guid, ''), ifnull(D3_guid, ''),
								_varDOUBLE_NOTNULL(C_kwota_1), _varDOUBLE_NOTNULL(C_kwota_2), _varDOUBLE_NOTNULL(C_kwota_3),  _varDOUBLE_NOTNULL(C_kwota_ogolem),
								C4_charytatywna, C4_pomoc_ofiarom, C4_pomoc_spol, C4_krajozn, C4_nauka, C4_niepelnospr, C4_kultura, C4_ekologia, C4_zdrowie,
								C4_rozwoj_gosp, C4_sport, C4_ratownictwo, C4_kult, C4_char_opiekun, C4_pozost,
								_varDOUBLE_NOTNULL(D1_kwota_przekaz), _varDOUBLE_NOTNULL(D1_kwota_odlicz), 
								_varDOUBLE_NOTNULL(D2_kwota_przekaz), _varDOUBLE_NOTNULL(D2_kwota_odlicz),
								_varDOUBLE_NOTNULL(D3_kwota_przekaz), _varDOUBLE_NOTNULL(D3_kwota_odlicz)
							FROM 
								ht_dekl_cit n, ht_dekl_cit_d p
							WHERE 	
								n.GUID = _RecGUID AND p.deklGUID = n.GUID
							INTO	
								_RodzPodat, 
								_C1_guid, _C2_guid, _C3_guid, _D1_guid, _D2_guid, _D3_guid,
								_C_kwota_1, _C_kwota_2, _C_kwota_3, _C_kwota_ogolem,
								_C4_charytatywna, _C4_pomoc_ofiarom, _C4_pomoc_spol, _C4_krajozn, _C4_nauka, _C4_niepelnospr, _C4_kultura, _C4_ekologia, _C4_zdrowie,
								_C4_rozwoj_gosp, _C4_sport, _C4_ratownictwo, _C4_kult, _C4_char_opiekun, _C4_pozost,
								_D1_kwota_przekaz, _D1_kwota_odlicz, 
								_D2_kwota_przekaz, _D2_kwota_odlicz,
								_D3_kwota_przekaz, _D3_kwota_odlicz								;
								
							-- Nr formularza: jest pole ht_dekl_cit_d.NrFormularza, poki co wstawiamy zawsze "1"
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_6>', '1', '</czd:P_6>\n');	
							
							-- Informacja stanowi załącznik do zeznania  (cAsAttach = 2)
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_8>', _VarSTR(cAsAttach), '</czd:P_8>\n');	
							
							-- "P_10" RodzajPodatnika
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_10>',  _VarSTR(_RodzPodat), '</czd:P_10>\n');	
								
							IF (_C_kwota_ogolem > 0) THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_23>', _C_kwota_ogolem, '</czd:P_23>\n');
								
								IF (_C_kwota_1 > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_24>', _C_kwota_1, '</czd:P_24>\n'); 
								END IF;	
								
								IF (_C_kwota_2 > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_25>', _C_kwota_2, '</czd:P_25>\n'); 
								END IF;	
								
								IF (_C_kwota_3 > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_26>', _C_kwota_3, '</czd:P_26>\n'); 
								END IF;									
							END IF;
																					
							-- Dane darczyńcy (1)  P_27...P_37
							IF LENGTH(_C1_guid) > 0 THEN
								SELECT 
									d.nazwa, gm.IDCountry AS kod_kraju, gm.woj_str AS wojewodztwo,
									gm.pow_str AS powiat, gm.gmi_str AS gmina, 
									d.ulica, d.nr_domu, d.nr_lokalu, 
									gm.nazwa AS miejscowosc, d.kod_pocztowy, M.NazwaMiasta AS poczta
								FROM 
									ht_dekl_cit_podmioty d
								JOIN v_geo_int_miejsca gm ON gm.ID = d.miejsceGUID 
								LEFT JOIN  
									Miasta M ON M.idn = d.poczta
								WHERE 
									d.GUID = _C1_guid
								INTO
									_PelnaNazwa, _ST_A_kod_kraju, _Wojewodztwo,   
									_Powiat, _Gmina,
									_Ulica, _Nr_domu, _Nr_lokalu, 
									_Miasto, _Kod_poczt, _Poczta;
								
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_27>', _PelnaNazwa, '</czd:P_27>\n'); 
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_28A>', _ST_A_kod_kraju, '</czd:P_28A>\n'); 
								IF LENGTH(_Wojewodztwo) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_29>', _Wojewodztwo, '</czd:P_29>\n'); -- minOccurs="0"
								END IF;	
								IF LENGTH(_Powiat) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_30>', _Powiat, '</czd:P_30>\n'); -- minOccurs="0"
								END IF;		
								IF LENGTH(_Gmina) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_31>', _Gmina, '</czd:P_31>\n'); -- minOccurs="0"
								END IF;			
								IF LENGTH(_Ulica) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_32>', _Ulica, '</czd:P_32>\n'); -- minOccurs="0"
								END IF;	
								IF LENGTH(_Nr_domu) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_33>', _Nr_domu, '</czd:P_33>\n'); -- minOccurs="0"
								END IF;		
								IF LENGTH(_Nr_lokalu) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_34>', _Nr_lokalu, '</czd:P_34>\n'); -- minOccurs="0"
								END IF;	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_35>', _Miasto, '</czd:P_35>\n');
								IF LENGTH(_Kod_poczt) > 0 THEN							
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_36>', _Kod_poczt, '</czd:P_36>\n'); -- minOccurs="0"
								END IF;
								IF LENGTH(_Poczta) > 0 THEN							
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_37>', _Poczta, '</czd:P_37>\n'); -- minOccurs="0"
								END IF;		
									
							END IF;	-- IF LENGTH(_C1_guid) > 0 THEN	
							
							-- Dane darczyńcy (2)  P_38...P_48
							IF LENGTH(_C2_guid) > 0 THEN
							   SELECT 
									d.nazwa, gm.IDCountry AS kod_kraju, gm.woj_str AS wojewodztwo,
									gm.pow_str AS powiat, gm.gmi_str AS gmina, 
									d.ulica, d.nr_domu, d.nr_lokalu, 
									gm.nazwa AS miejscowosc, d.kod_pocztowy, M.NazwaMiasta AS poczta
								FROM 
									ht_dekl_cit_podmioty d
								JOIN v_geo_int_miejsca gm ON gm.ID = d.miejsceGUID
								LEFT JOIN  Miasta M ON d.poczta = M.idn
								WHERE 
									d.GUID = _C2_guid
								INTO
									_PelnaNazwa, _ST_A_kod_kraju, _Wojewodztwo,   
									_Powiat, _Gmina,
									_Ulica, _Nr_domu, _Nr_lokalu, 
									_Miasto, _Kod_poczt, _Poczta;	

								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_38>', _PelnaNazwa, '</czd:P_38>\n'); 
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_39A>', _ST_A_kod_kraju, '</czd:P_39A>\n'); 
								IF LENGTH(_Wojewodztwo) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_40>', _Wojewodztwo, '</czd:P_40>\n'); -- minOccurs="0"
								END IF;	
								IF LENGTH(_Powiat) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_41>', _Powiat, '</czd:P_41>\n'); -- minOccurs="0"
								END IF;		
								IF LENGTH(_Gmina) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_42>', _Gmina, '</czd:P_42>\n'); -- minOccurs="0"
								END IF;			
								IF LENGTH(_Ulica) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_43>', _Ulica, '</czd:P_43>\n'); -- minOccurs="0"
								END IF;	
								IF LENGTH(_Nr_domu) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_44>', _Nr_domu, '</czd:P_44>\n'); -- minOccurs="0"
								END IF;		
								IF LENGTH(_Nr_lokalu) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_45>', _Nr_lokalu, '</czd:P_45>\n'); -- minOccurs="0"
								END IF;	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_46>', _Miasto, '</czd:P_46>\n');
								IF LENGTH(_Kod_poczt) > 0 THEN							
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_47>', _Kod_poczt, '</czd:P_47>\n'); -- minOccurs="0"
								END IF;
								IF LENGTH(_Poczta) > 0 THEN							
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_48>', _Poczta, '</czd:P_48>\n'); -- minOccurs="0"
								END IF;		
									
							END IF;		-- IF LENGTH(_C2_guid) > 0 THEN					
							
							-- Dane darczyńcy (3)  P_49...P_59
							IF LENGTH(_C3_guid) > 0 THEN
								SELECT 
									d.nazwa, gm.IDCountry AS kod_kraju, gm.woj_str AS wojewodztwo,
									gm.pow_str AS powiat, gm.gmi_str AS gmina, 
									d.ulica, d.nr_domu, d.nr_lokalu, 
									gm.nazwa AS miejscowosc, d.kod_pocztowy, M.NazwaMiasta AS poczta
								FROM 
									ht_dekl_cit_podmioty d
								JOIN v_geo_int_miejsca gm ON gm.ID = d.miejsceGUID
								LEFT JOIN  
									Miasta M ON d.poczta = M.idn
								WHERE 
									d.GUID = _C3_guid
								INTO
									_PelnaNazwa, _ST_A_kod_kraju, _Wojewodztwo,   
									_Powiat, _Gmina,
									_Ulica, _Nr_domu, _Nr_lokalu, 
									_Miasto, _Kod_poczt, _Poczta;
									
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_49>', _PelnaNazwa, '</czd:P_49>\n'); 
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_50A>', _ST_A_kod_kraju, '</czd:P_50A>\n'); 
								IF LENGTH(_Wojewodztwo) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_51>', _Wojewodztwo, '</czd:P_51>\n'); -- minOccurs="0"
								END IF;	
								IF LENGTH(_Powiat) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_52>', _Powiat, '</czd:P_52>\n'); -- minOccurs="0"
								END IF;		
								IF LENGTH(_Gmina) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_53>', _Gmina, '</czd:P_53>\n'); -- minOccurs="0"
								END IF;			
								IF LENGTH(_Ulica) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_54>', _Ulica, '</czd:P_54>\n'); -- minOccurs="0"
								END IF;	
								IF LENGTH(_Nr_domu) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_55>', _Nr_domu, '</czd:P_55>\n'); -- minOccurs="0"
								END IF;		
								IF LENGTH(_Nr_lokalu) > 0 THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_56>', _Nr_lokalu, '</czd:P_56>\n'); -- minOccurs="0"
								END IF;	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_57>', _Miasto, '</czd:P_57>\n');
								IF LENGTH(_Kod_poczt) > 0 THEN							
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_58>', _Kod_poczt, '</czd:P_58>\n'); -- minOccurs="0"
								END IF;
								IF LENGTH(_Poczta) > 0 THEN							
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_59>', _Poczta, '</czd:P_59>\n'); -- minOccurs="0"
								END IF;			
							END IF;	-- IF LENGTH(_C3_guid) > 0 THEN						
							
							-- sekcja C.4
							IF (_C4_charytatywna > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_60>', _C4_charytatywna, '</czd:P_60>\n'); 
							END IF;	
							
							IF (_C4_pomoc_ofiarom > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_61>', _C4_pomoc_ofiarom, '</czd:P_61>\n'); 
							END IF;	
							
							IF (_C4_pomoc_spol > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_62>', _C4_pomoc_spol, '</czd:P_62>\n'); 
							END IF;	
							
							IF (_C4_krajozn > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_63>', _C4_krajozn, '</czd:P_63>\n'); 
							END IF;	
																												
							IF (_C4_nauka > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_64>', _C4_nauka, '</czd:P_64>\n'); 
							END IF;	
							
							IF (_C4_niepelnospr > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_65>', _C4_niepelnospr, '</czd:P_65>\n'); 
							END IF;	
							
							IF (_C4_kultura > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_66>', _C4_kultura, '</czd:P_66>\n'); 
							END IF;	
							
							IF (_C4_ekologia > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_67>', _C4_ekologia, '</czd:P_67>\n'); 
							END IF;	
							
							IF (_C4_zdrowie > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_68>', _C4_zdrowie, '</czd:P_68>\n'); 
							END IF;	
														
							IF (_C4_rozwoj_gosp > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_69>', _C4_rozwoj_gosp, '</czd:P_69>\n'); 
							END IF;	
							
							IF (_C4_sport > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_70>', _C4_sport, '</czd:P_70>\n'); 
							END IF;	
							
							IF (_C4_ratownictwo > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_71>', _C4_ratownictwo, '</czd:P_71>\n'); 
							END IF;	
							
							IF (_C4_kult > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_72>', _C4_kult, '</czd:P_72>\n'); 
							END IF;	
							
							IF (_C4_char_opiekun > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_73>', _C4_char_opiekun, '</czd:P_73>\n'); 
							END IF;	
							
							IF (_C4_pozost > 0) THEN
									SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_74>', _C4_pozost, '</czd:P_74>\n'); 
							END IF;	
							
												
						-- Informacja o obdarowanym (1)  P_75...P_89   p75, p_76 - kwoty
						IF (_D1_kwota_przekaz > 0) AND LENGTH(_D1_guid > 0) THEN  -- _D1_kwota_przekaz, 						
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_75>', _D1_kwota_przekaz, '</czd:P_75>\n'); 
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_76>', _D1_kwota_odlicz, '</czd:P_76>\n'); 
							
							-- pozost. dane - z oddzielnej tabeli (zlaczenie po D1_guid)  do uzupelnienia
							SELECT 
									d.taxID, d.nazwa, gm.IDCountry AS kod_kraju, gm.woj_str AS wojewodztwo,
									gm.pow_str AS powiat, gm.gmi_str AS gmina, 
									IFNULL(d.ulica, ''), d.nr_domu, d.nr_lokalu, 
									gm.nazwa AS miejscowosc, d.kod_pocztowy, M.NazwaMiasta AS poczta
								FROM 
									ht_dekl_cit_podmioty d
								JOIN	v_geo_int_miejsca gm ON gm.ID = d.miejsceGUID
								LEFT JOIN  
									Miasta M ON d.poczta = M.idn
								WHERE 
									d.GUID = _D1_guid 
								INTO
									_taxID, _PelnaNazwa, _ST_A_kod_kraju, _Wojewodztwo,   
									_Powiat, _Gmina,
									_Ulica, _Nr_domu, _Nr_lokalu, 
									_Miasto, _Kod_poczt, _Poczta;
														
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_77>', _taxID, '</czd:P_77>\n'); 
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_78>', _ST_A_kod_kraju, '</czd:P_78>\n'); 
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_79>', _PelnaNazwa, '</czd:P_79>\n'); 
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_80A>', _ST_A_kod_kraju, '</czd:P_80A>\n'); 
							IF LENGTH(_Wojewodztwo) > 0 THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_81>', _Wojewodztwo, '</czd:P_81>\n'); -- minOccurs="0"
							END IF;	
							IF LENGTH(_Powiat) > 0 THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_82>', _Powiat, '</czd:P_82>\n'); -- minOccurs="0"
							END IF;		
							IF LENGTH(_Gmina) > 0 THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_83>', _Gmina, '</czd:P_83>\n'); -- minOccurs="0"
							END IF;			
							IF LENGTH(_Ulica) > 0 THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_84>', _Ulica, '</czd:P_84>\n'); -- minOccurs="0"
							END IF;	
							IF LENGTH(_Nr_domu) > 0 THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_85>', _Nr_domu, '</czd:P_85>\n'); -- minOccurs="0"
							END IF;		
							IF LENGTH(_Nr_lokalu) > 0 THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_86>', _Nr_lokalu, '</czd:P_86>\n'); -- minOccurs="0"
							END IF;	
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_87>', _Miasto, '</czd:P_87>\n');
							IF LENGTH(_Kod_poczt) > 0 THEN							
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_88>', _Kod_poczt, '</czd:P_88>\n'); -- minOccurs="0"
							END IF;
							IF LENGTH(_Poczta) > 0 THEN							
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_89>', _Poczta, '</czd:P_89>\n'); -- minOccurs="0"
							END IF;	
						END IF;	
						
						-- Informacja o obdarowanym (2)  P_90...P_104  
						IF (_D2_kwota_przekaz > 0)  AND LENGTH(_D2_guid > 0) THEN  -- _D1_kwota_przekaz, 						
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_90>', _D2_kwota_przekaz, '</czd:P_90>\n'); 
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_91>', _D2_kwota_odlicz, '</czd:P_91>\n'); 
							
							-- pozost. dane - z oddzielnej tabeli (zlaczenie po D2_guid)  do uzupelnienia
							SELECT 
									d.taxID, d.nazwa, gm.IDCountry AS kod_kraju, gm.woj_str AS wojewodztwo,
									gm.pow_str AS powiat, gm.gmi_str AS gmina, 
									d.ulica, d.nr_domu, d.nr_lokalu, 
									gm.nazwa AS miejscowosc, d.kod_pocztowy, M.NazwaMiasta AS poczta
								FROM 
									ht_dekl_cit_podmioty d
								JOIN	v_geo_int_miejsca gm ON gm.ID = d.miejsceGUID
								LEFT JOIN  
									Miasta M ON d.poczta = M.idn
								WHERE 
									d.GUID = _D2_guid 
								INTO
									_taxID, _PelnaNazwa, _ST_A_kod_kraju, _Wojewodztwo,   
									_Powiat, _Gmina,
									_Ulica, _Nr_domu, _Nr_lokalu, 
									_Miasto, _Kod_poczt, _Poczta;
									
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_92>', _taxID, '</czd:P_92>\n'); 
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_93>', _ST_A_kod_kraju, '</czd:P_93>\n'); 
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_94>', _PelnaNazwa, '</czd:P_94>\n'); 
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_95A>', _ST_A_kod_kraju, '</czd:P_95A>\n'); 
							IF LENGTH(_Wojewodztwo) > 0 THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_96>', _Wojewodztwo, '</czd:P_96>\n'); -- minOccurs="0"
							END IF;	
							IF LENGTH(_Powiat) > 0 THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_97>', _Powiat, '</czd:P_97>\n'); -- minOccurs="0"
							END IF;	
							IF LENGTH(_Gmina) > 0 THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_98>', _Gmina, '</czd:P_98>\n'); -- minOccurs="0"
							END IF;	
							IF LENGTH(_Ulica) > 0 THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_99>', _Ulica, '</czd:P_99>\n'); -- minOccurs="0"
							END IF;	
							IF LENGTH(_Nr_domu) > 0 THEN							
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_100>', _Nr_domu, '</czd:P_100>\n'); -- minOccurs="0"
							END IF;	
							IF LENGTH(_Nr_lokalu) > 0 THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_101>', _Nr_lokalu, '</czd:P_101>\n'); -- minOccurs="0"
							END IF;	
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_102>', _Miasto, '</czd:P_102>\n'); 
							IF LENGTH(_Kod_poczt) > 0 THEN	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_103>', _Kod_poczt, '</czd:P_103>\n'); -- minOccurs="0"
							END IF;
							IF LENGTH(_Poczta) > 0 THEN	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_104>', _Poczta, '</czd:P_104>\n'); -- minOccurs="0"
							END IF;	
						END IF;	
						
						-- Informacja o obdarowanym (3)  P_105...P_119 
						IF (_D3_kwota_przekaz > 0)  AND LENGTH(_D3_guid > 0) THEN  -- _D1_kwota_przekaz, 						
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_105>', _D3_kwota_przekaz, '</czd:P_105>\n'); 
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_106>', _D3_kwota_odlicz, '</czd:P_106>\n'); 
							
							-- pozost. dane - z oddzielnej tabeli (zlaczenie po D3_guid)  do uzupelnienia
							SELECT 
									d.taxID, d.nazwa, gm.IDCountry AS kod_kraju, gm.woj_str AS wojewodztwo,
									gm.pow_str AS powiat, gm.gmi_str AS gmina, 
									d.ulica, d.nr_domu, d.nr_lokalu, 
									gm.nazwa AS miejscowosc, d.kod_pocztowy, M.NazwaMiasta AS poczta
								FROM 
									ht_dekl_cit_podmioty d
								JOIN	v_geo_int_miejsca gm ON gm.ID = d.miejsceGUID
								LEFT JOIN  
									Miasta M ON d.poczta = M.idn
								WHERE 
									d.GUID = _D3_guid 
								INTO
									_taxID, _PelnaNazwa, _ST_A_kod_kraju, _Wojewodztwo,   
									_Powiat, _Gmina,
									_Ulica, _Nr_domu, _Nr_lokalu, 
									_Miasto, _Kod_poczt, _Poczta;
														
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_107>', _taxID, '</czd:P_107>\n'); 
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_108>', _ST_A_kod_kraju, '</czd:P_108>\n'); 
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_109>', _PelnaNazwa, '</czd:P_109>\n'); 
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_110A>', _ST_A_kod_kraju, '</czd:P_110A>\n'); 
							IF LENGTH(_Wojewodztwo) > 0 THEN
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_111>', _Wojewodztwo, '</czd:P_111>\n'); -- minOccurs="0"
							END IF;
							IF LENGTH(_Powiat) > 0 THEN	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_112>', _Powiat, '</czd:P_112>\n'); -- minOccurs="0"
							END IF;	
							IF LENGTH(_Gmina) > 0 THEN	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_113>', _Gmina, '</czd:P_113>\n'); -- minOccurs="0"
							END IF;	
							IF LENGTH(_Ulica) > 0 THEN	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_114>', _Ulica, '</czd:P_114>\n'); -- minOccurs="0"
							END IF;	
							IF LENGTH(_Nr_domu) > 0 THEN	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_115>', _Nr_domu, '</czd:P_115>\n'); -- minOccurs="0"
							END IF;	
							IF LENGTH(_Nr_lokalu) > 0 THEN	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_116>', _Nr_lokalu, '</czd:P_116>\n'); -- minOccurs="0"
							END IF;								
							SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_117>', _Miasto, '</czd:P_117>\n'); 
							IF LENGTH(_Kod_poczt) > 0 THEN	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_118>', _Kod_poczt, '</czd:P_118>\n'); -- minOccurs="0"
							END IF;	
							IF LENGTH(_Poczta) > 0 THEN	
								SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<czd:P_119>', _Poczta, '</czd:P_119>\n'); -- minOccurs="0"
							END IF;
						END IF;	
						
						
						SET @xml.IC = @xml.IC - 1;	
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</czd:PozycjeSzczegolowe>\n');	
				
				SET @xml.IC = @xml.IC - 1;
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</czd:Zalacznik_CIT-D>\n');
				SET @xml.IC = @xml.IC - 1;
					
			
			END IF;  -- (_C_CIT_D > 0)
			
			IF (_C_CIT_8O > 0) THEN
						  
			/*  8/O
			<xsd:element name="Zalacznik_CIT-8_O">
				<xsd:element name="Naglowek" type="cz8o:TNaglowek_CIT-8_O"/>
				<xsd:element name="PozycjeSzczegolowe">
			*/
			-- <xsd:element ref="cz8o:Zalacznik_CIT-8_O" minOccurs="0"/>
			-- <xsd:element ref="zzu:Zalacznik_ORD-ZU" minOccurs="0"/>
			
			select guid from ht_dekl_cit_8o where
			deleted = 0 and deklGUID = _RecGUID
			into 			_zalGUID;
			
				SELECT 
					 d.doc_id, d.doc_ver, _varSTR(d.form_ver), d.doc_type,	d.ID, n.OdDaty, n.DoDaty	
				FROM 
					ht_dekl_cit n, ht_dekl_cit_8o p, e_doc_def d
				WHERE 
					n.GUID = p.deklGUID AND p.GUID = _zalGUID AND  p.e_Doc_Def_ID = d.owner_doc_Id	
				INTO
					_e_doc_id, _doc_ver, _form_ver, _e_doc_type, _e_Doc_Def_ID, _OkresOd, _OkresDo;
			
				SET @xml.IC = @xml.IC + 1;
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:Zalacznik_CIT-8_O xmlns:cz8o="', _e_Doc_Def_ID, '">\n');
				-- SET _RepContent = CONCAT(_RepContent, SPACE(@xml.IC*cSL), '<zzu:Zalacznik_ORD-ZU xmlns:zzu="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2011/10/07/eD/ORDZU/">\n');
				SET @xml.IC = @xml.IC + 1;
				
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:Naglowek>\n');					
					SET @xml.IC = @xml.IC + 1;
					    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL),'<cz8o:KodFormularza kodSystemowy="',_e_doc_id, '" wersjaSchemy="', _doc_ver, '">', _e_doc_type, '</cz8o:KodFormularza>\n');
					    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:WariantFormularza>', _form_ver, '</cz8o:WariantFormularza>\n');	
						
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:OkresOd poz="P_4">', _OkresOd, '</cz8o:OkresOd>\n');	
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:OkresDo poz="P_5">', _OkresDo, '</cz8o:OkresDo>\n');	
					SET @xml.IC = @xml.IC - 1;	
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</cz8o:Naglowek>\n');
					  
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:PozycjeSzczegolowe>\n');
				SET @xml.IC = @xml.IC + 1;
				/*	  P_8 ..... P_72
					    SET @eCIT.xml = CONCAT(@eCIT.xml, '<zzu:P_13>');
					    SET @eCIT.xml = CONCAT(@eCIT.xml,  _przyczyna_ORD_ZU);
					    SET @eCIT.xml = CONCAT(@eCIT.xml, '</cz8o:P_13>\n');
				*/		
				SELECT 
					_varDOUBLE_NOTNULL(B1_P_8), _varDOUBLE_NOTNULL(B1_P_9), _varDOUBLE_NOTNULL(B1_P_10),  _varDOUBLE_NOTNULL(B1_P_11), _varDOUBLE_NOTNULL(B1_P_12), 
					_varDOUBLE_NOTNULL(B1_P_13),  _varDOUBLE_NOTNULL(B1_P_14),  _varDOUBLE_NOTNULL(B1_P_15), _varDOUBLE_NOTNULL(B1_P_16), _varDOUBLE_NOTNULL(B1_P_17), 
					_varDOUBLE_NOTNULL(B1_P_poza_RP), _varDOUBLE_NOTNULL(B1_P_pozarolnicze), _varDOUBLE_NOTNULL(B1_P_nieodpl_swiadcz), 
					_varDOUBLE_NOTNULL(B1_P_mieszk), _varDOUBLE_NOTNULL(B1_P_dotacje_budzet), _varDOUBLE_NOTNULL(B1_P_kwoty_agencje), _varDOUBLE_NOTNULL(B1_P_BGK), _varDOUBLE_NOTNULL(B1_P_projekt),
					_varSTR_NOTNULL(B1_inne_tytul), _varDOUBLE_NOTNULL(B1_inne_kwota), _varDOUBLE_NOTNULL(B1_dochody_razem),
					_varINT_NOTNULL(B2_P_21), _varDOUBLE_NOTNULL(B2_P_22), _varDOUBLE_NOTNULL(B2_P_23), _varDOUBLE_NOTNULL(B2_P_24),  
					_varINT_NOTNULL(B2_P_25), _varDOUBLE_NOTNULL(B2_P_26), _varDOUBLE_NOTNULL(B2_P_27), _varDOUBLE_NOTNULL(B2_P_28), 
					_varINT_NOTNULL(B2_P_29), _varDOUBLE_NOTNULL(B2_P_30), _varDOUBLE_NOTNULL(B2_P_31), _varDOUBLE_NOTNULL(B2_P_32), 
					_varINT_NOTNULL(B2_P_33), _varDOUBLE_NOTNULL(B2_P_34), _varDOUBLE_NOTNULL(B2_P_35), _varDOUBLE_NOTNULL(B2_P_36), 
					_varINT_NOTNULL(B2_P_37), _varDOUBLE_NOTNULL(B2_P_38), _varDOUBLE_NOTNULL(B2_P_39), _varDOUBLE_NOTNULL(B2_P_40), _varDOUBLE_NOTNULL(B2_straty_suma),    
					_varDOUBLE_NOTNULL(B3_P_42),   _varDOUBLE_NOTNULL(B3_P_43),   _varDOUBLE_NOTNULL(B3_P_44),   _varDOUBLE_NOTNULL(B3_P_45),   _varDOUBLE_NOTNULL(B3_P_46),
					_varSTR_NOTNULL(B3_inne_tytul),   _varDOUBLE_NOTNULL(B3_inne_kwota),   _varDOUBLE_NOTNULL(B3_odlicz_razem),
					_varDOUBLE_NOTNULL(C_wydatki_inwest), _varDOUBLE_NOTNULL(C_dodatk_obniz), _varDOUBLE_NOTNULL(C_odlicz_razem),    
					_varDOUBLE_NOTNULL(D_wydatki_nowe_tech),      
					_varDOUBLE_NOTNULL(E_odlicz_art20), _varDOUBLE_NOTNULL(E_inne_odlicz), 
					_varSTR_NOTNULL(E_zwoln_nr_decyzji), _varDOUBLE_NOTNULL(E_zwoln_kwota),   E_zwoln_data_decyzji,    
					E_zaniech_data_rozp, _varDOUBLE_NOTNULL(E_zaniech_kwota), _varSTR_NOTNULL(E_zaniech_tytul),  
					_varSTR_NOTNULL(E_obnizki_tytul), _varDOUBLE_NOTNULL(E_obnizki_kwota),   
					_varDOUBLE_NOTNULL(E_kwota_ogolem),       
					_varDOUBLE_NOTNULL(F1_P_65),  _varDOUBLE_NOTNULL(F1_P_66), _varDOUBLE_NOTNULL(F1_P_67),  
					_varINT_NOTNULL(F1_P_68),   _varINT_NOTNULL(F1_P_69),
					_varDOUBLE_NOTNULL(F2_P_70),  _varINT_NOTNULL(F3_P_71), _varINT_NOTNULL(F3_P_72)
				FROM 
					ht_dekl_cit_8o
				WHERE 	
					GUID = _zalGUID
				INTO
					_B1_P_8, _B1_P_9, _B1_P_10,  _B1_P_11, _B1_P_12, 
					_B1_P_13,  _B1_P_14,  _B1_P_15, _B1_P_16, _B1_P_17, 
					_B1_P_poza_RP, _B1_P_pozarolnicze, _B1_P_nieodpl_swiadcz, _B1_P_mieszk, _B1_P_dotacje_budzet, _B1_P_kwoty_agencje, _B1_P_BGK, _B1_P_projekt,
					_B1_inne_tytul, _B1_inne_kwota, _B1_dochody_razem,
					_B2_P_21, _B2_P_22, _B2_P_23, _B2_P_24,  
					_B2_P_25, _B2_P_26, _B2_P_27, _B2_P_28, 
					_B2_P_29, _B2_P_30, _B2_P_31, _B2_P_32, 
					_B2_P_33, _B2_P_34, _B2_P_35, _B2_P_36, 
					_B2_P_37, _B2_P_38, _B2_P_39, _B2_P_40, _B2_straty_suma,    
					_B3_P_42,   _B3_P_43,   _B3_P_44,   _B3_P_45,   _B3_P_46,
					_B3_inne_tytul,   _B3_inne_kwota,   _B3_odlicz_razem,
					_C_wydatki_inwest, _C_dodatk_obniz, _C_odlicz_razem,    
					_D_wydatki_nowe_tech,      
					_E_odlicz_art20, _E_inne_odlicz, 
					_E_zwoln_nr_decyzji, _E_zwoln_kwota,   _E_zwoln_data_decyzji,    
					_E_zaniech_data_rozp, _E_zaniech_kwota, _E_zaniech_tytul,  
					_E_obnizki_tytul, _E_obnizki_kwota,   
					_E_kwota_ogolem,       
					_F1_P_65,  _F1_P_66, _F1_P_67,  
					_F1_P_68,   _F1_P_69,
					_F2_P_70,  _F3_P_71, _F3_P_72	;
					
					-- B.1.
					IF _B1_P_8 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_8>', _B1_P_8, '</cz8o:P_8>\n'); 
				    END IF;	
					
					IF _B1_P_poza_RP > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_9>', _B1_P_poza_RP, '</cz8o:P_9>\n'); 
				    END IF;	
					
					IF _B1_P_9 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_10>', _B1_P_9, '</cz8o:P_10>\n'); 
				    END IF;	
					
					IF _B1_P_pozarolnicze > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_11>', _B1_P_pozarolnicze, '</cz8o:P_11>\n'); 
				    END IF;	
					
					IF _B1_P_10 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_12>', _B1_P_10, '</cz8o:P_12>\n'); 
				    END IF;	
					
					IF _B1_P_nieodpl_swiadcz > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_13>', _B1_P_nieodpl_swiadcz, '</cz8o:P_13>\n'); 
				    END IF;	
					
					IF _B1_P_11 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_14>', _B1_P_11, '</cz8o:P_14>\n'); 
				    END IF;	
					
					IF _B1_P_mieszk > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_15>', _B1_P_mieszk, '</cz8o:P_15>\n'); 
				    END IF;	
					
					IF _B1_P_dotacje_budzet > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_16>', _B1_P_dotacje_budzet, '</cz8o:P_16>\n'); 
				    END IF;	
					
					IF _B1_P_kwoty_agencje > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_17>', _B1_P_kwoty_agencje, '</cz8o:P_17>\n'); 
				    END IF;	
					
					IF _B1_P_BGK > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_18>', _B1_P_BGK, '</cz8o:P_18>\n'); 
				    END IF;	
					
					IF _B1_P_projekt > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_19>', _B1_P_projekt, '</cz8o:P_19>\n'); 
				    END IF;	
										
					IF _B1_P_12 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_20>', _B1_P_12, '</cz8o:P_20>\n'); 
				    END IF;	
					IF _B1_P_13 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_21>', _B1_P_13, '</cz8o:P_21>\n'); 
				    END IF;	
					IF _B1_P_14 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_22>', _B1_P_14, '</cz8o:P_22>\n'); 
				    END IF;	
					IF _B1_P_15 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_23>', _B1_P_15, '</cz8o:P_23>\n'); 
				    END IF;	
					IF _B1_P_16 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_24>', _B1_P_16, '</cz8o:P_24>\n'); 
				    END IF;	
					IF _B1_P_17 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_25>', _B1_P_17, '</cz8o:P_25>\n'); 
				    END IF;	
					IF _B1_inne_kwota > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_26>', _B1_inne_tytul, '</cz8o:P_26>\n'); -- P_18
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_27>', _B1_inne_kwota, '</cz8o:P_27>\n'); 
				    END IF;	
					IF _B1_dochody_razem > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_28>', _B1_dochody_razem, '</cz8o:P_28>\n'); -- P_20
				    END IF;	
					
					-- B.2.
					IF _B2_P_21 > 0 THEN  -- _B2_P_22, _B2_P_23, _B2_P_24,  
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_29>', _B2_P_21, '</cz8o:P_29>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_30>', _B2_P_22, '</cz8o:P_30>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_31>', _B2_P_23, '</cz8o:P_31>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_32>', _B2_P_24, '</cz8o:P_32>\n'); 
				    END IF;	
					
					IF _B2_P_25 > 0 THEN  -- _B2_P_22, _B2_P_23, _B2_P_24,  
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_33>', _B2_P_25, '</cz8o:P_33>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_34>', _B2_P_26, '</cz8o:P_34>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_35>', _B2_P_27, '</cz8o:P_35>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_36>', _B2_P_28, '</cz8o:P_36>\n'); 
				    END IF;	
					
					IF _B2_P_29 > 0 THEN  -- _B2_P_22, _B2_P_23, _B2_P_24,  
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_37>', _B2_P_29, '</cz8o:P_37>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_38>', _B2_P_30, '</cz8o:P_38>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_39>', _B2_P_31, '</cz8o:P_39>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_40>', _B2_P_32, '</cz8o:P_40>\n'); 
				    END IF;	
					
					IF _B2_P_33 > 0 THEN  -- _B2_P_22, _B2_P_23, _B2_P_24,  
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_41>', _B2_P_33, '</cz8o:P_41>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_42>', _B2_P_34, '</cz8o:P_42>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_43>', _B2_P_35, '</cz8o:P_43>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_44>', _B2_P_36, '</cz8o:P_44>\n'); 
				    END IF;	
					
					IF _B2_P_37 > 0 THEN  -- _B2_P_22, _B2_P_23, _B2_P_24,  
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_45>', _B2_P_37, '</cz8o:P_45>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_46>', _B2_P_38, '</cz8o:P_46>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_47>', _B2_P_39, '</cz8o:P_47>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_48>', _B2_P_40, '</cz8o:P_48>\n'); 
				    END IF;	
					
					IF _B2_straty_suma > 0 THEN  
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_49>', _B2_straty_suma, '</cz8o:P_49>\n'); 
					END IF;
					
					-- B.3: _B3_P_42,   _B3_P_43,   _B3_P_44,   _B3_P_45,   _B3_P_46,
					-- _B3_inne_tytul,   _B3_inne_kwota,   _B3_odlicz_razem,  
					IF _B3_P_42 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_50>', _B3_P_42, '</cz8o:P_50>\n'); 
				    END IF;	
					IF _B3_P_43 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_51>', _B3_P_43, '</cz8o:P_51>\n'); 
				    END IF;	
					IF _B3_P_44 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_52>', _B3_P_44, '</cz8o:P_52>\n'); 
				    END IF;	
					IF _B3_P_45 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_53>', _B3_P_45, '</cz8o:P_53>\n'); 
				    END IF;	
					IF _B3_P_46 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_54>', _B3_P_46, '</cz8o:P_54>\n'); 
				    END IF;	
					
					IF _B3_inne_kwota > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_55>', _B3_inne_tytul, '</cz8o:P_55>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_56>', _B3_inne_kwota, '</cz8o:P_56>\n'); 
				    END IF;	
					
					SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_57>', _B3_odlicz_razem, '</cz8o:P_57>\n'); 
					
					-- C.  _C_wydatki_inwest, _C_dodatk_obniz, _C_odlicz_razem, 
					IF _C_wydatki_inwest > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_58>', _C_wydatki_inwest, '</cz8o:P_58>\n'); 
				    END IF;	
					IF _C_dodatk_obniz > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_59>', _C_dodatk_obniz, '</cz8o:P_59>\n'); 
				    END IF;						
					
					SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_60>', _C_odlicz_razem, '</cz8o:P_60>\n'); 
					
					-- D. _D_wydatki_nowe_tech
					IF _D_wydatki_nowe_tech > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_61>', _D_wydatki_nowe_tech, '</cz8o:P_61>\n'); 
				    END IF;	
					
					/* E.  _E_odlicz_art20, _E_inne_odlicz, 
					_E_zwoln_nr_decyzji, _E_zwoln_kwota,   _E_zwoln_data_decyzji,    
					_E_zaniech_data_rozp, _E_zaniech_kwota, _E_zaniech_tytul,  
					_E_obnizki_tytul, _E_obnizki_kwota,   
					_E_kwota_ogolem,     */
					IF _E_odlicz_art20 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_62>', _E_odlicz_art20, '</cz8o:P_62>\n'); 
				    END IF;	
					IF _E_inne_odlicz > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_63>', _E_inne_odlicz, '</cz8o:P_63>\n'); 
				    END IF;	
					IF _E_zwoln_kwota > 0 THEN
					    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_64>', _E_zwoln_nr_decyzji, '</cz8o:P_64>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_65>', _E_zwoln_kwota, '</cz8o:P_65>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_66>', _E_zwoln_data_decyzji, '</cz8o:P_66>\n'); 
				    END IF;	
					IF _E_zaniech_kwota > 0 THEN
					    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_67>', _E_zaniech_data_rozp, '</cz8o:P_67>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_68>', _E_zaniech_kwota, '</cz8o:P_68>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_69>', _E_zaniech_tytul, '</cz8o:P_69>\n'); 
				    END IF;	
					IF _E_obnizki_kwota > 0 THEN
					    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_70>', _E_obnizki_tytul, '</cz8o:P_70>\n'); 
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_71>', _E_obnizki_kwota, '</cz8o:P_71>\n'); 						
				    END IF;
					
					SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_72>', _E_kwota_ogolem, '</cz8o:P_72>\n'); 					
					
					-- F. _F1_P_65,  _F1_P_66, _F1_P_67,  	_F1_P_68,   _F1_P_69,					_F2_P_70,  _F3_P_71, _F3_P_72  (wszystkie sa minOccurs="0")
					IF _F1_P_65 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_73>', _F1_P_65, '</cz8o:P_73>\n'); 
				    END IF;	
					IF _F1_P_66 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_74>', _F1_P_66, '</cz8o:P_74>\n'); 
				    END IF;	
					IF _F1_P_67 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_75>', _F1_P_67, '</cz8o:P_75>\n'); 
				    END IF;	
					IF _F1_P_68 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_76>', _F1_P_68, '</cz8o:P_76>\n'); 
				    END IF;	
					IF _F1_P_69 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_77>', _F1_P_69, '</cz8o:P_77>\n'); 
				    END IF;	
					IF _F2_P_70 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_78>', _F2_P_70, '</cz8o:P_78>\n'); 
				    END IF;	
					IF _F3_P_71 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_79>', _F3_P_71, '</cz8o:P_79>\n'); 
				    END IF;	
					IF _F3_P_72 > 0 THEN
						SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<cz8o:P_80>', _F3_P_72, '</cz8o:P_80>\n'); 
				    END IF;	
					
					
				SET @xml.IC = @xml.IC - 1;
				SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</cz8o:PozycjeSzczegolowe>\n');	
				
				SET @xml.IC = @xml.IC - 1;
			    SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</cz8o:Zalacznik_CIT-8_O>\n');
				SET @xml.IC = @xml.IC - 1;
			END IF;
			
			IF _CelZlozenia = cKorekta THEN
				CALL e_dekl_vat_tools('vat.xml.insert.ORD_ZU', '', '', '', @eCIT.xml, '', '');			
			END IF;
									
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '</Zalaczniki>\n');	
		END IF;	
	
	-- SET @xml.IC = @xml.IC - 1;		
	SET @eCIT.xml = CONCAT(@eCIT.xml, '</Deklaracja>');
	
	CALL e_doc_tools('e_doc_po.insert.or.edit', _Param_A, IFNULL(@eCIT.xml, 'XML NULL'), 'CREATE_XML', 'ORYG', '', '', '', '');
END;
END IF;		
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'cit8.rec.insert'
		utworzenie nowego rekordu CIT-8
		Parametry 
				
		IN _MODE 	    VARCHAR(100),    -- 'cit8.rec.insert'
		IN _Year        VARCHAR(50),     -- rok obrach.
		IN _Month       VARCHAR(50),	 -- Cel zlozenia: 1 - zgloszenie, 2 - korekta;  
		IN _RecGUID     VARCHAR(38),     -- GUID tworzonego rekordu    	 
		INOUT _RepContent LONGTEXT,      -- tu: puste
		IN _Param_A 	VARCHAR(250),	 -- data do ("data deklaracji")
		IN _Param_B 	VARCHAR(250)	 -- przyczyna ORD_ZU (da korekt)
		
		CALL pit_tools('cit8.rec.insert', @GUID, '2014', '1', '', '', '');
		CALL pit_tools('cit8.rec.insert', @GUID, '2014', '2', 'blednie wypelnione pole', '', '');
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/			
	IF _MODE = 'cit8.rec.insert' THEN

		CALL _IReg_Get('DaneFirmy', 'Urzad_skarbowy', '0', 'STRING', @US_GUID, '(brak danych)');
		
		CALL _IReg_Get('FK', 'Data bilansu', '0', 'DATE', @FK.data_bilansu, '0000-00-00');
	
		INSERT IGNORE INTO ht_dekl_cit (GUID, KodFormularza, Rok, CelZlozenia, US_GUID, OdDaty, DoDaty, przyczyna_ORD_ZU, data_wypelnienia, B_dokumentacja)  
		SELECT 		 						  -- cel zlozenia: 1 - zgloszenie, 2 - korekta;  
			_RecGUID  AS GUID, 'CIT-8', _varINT(_Year), _varINT(_Month) AS CelZlozenia, @US_GUID, STR_TO_DATE(Concat(_Year,'-01-01'),'%Y-%m-%d'),  STR_TO_DATE(Concat(_Year,'-12-31'),'%Y-%m-%d'), IF(_varINT(_Month) = 2, _Param_B, ''), DATE(NOW()), 2; 	
			
		-- pobrac to co mozna z automatu (na podst. nr kont, rejestrów itd)  i wtedy wywolac cit8.calc	CALL e_dekl_vat_tools('cit8.data.calc', _Year, _Month, _RecGUID, @tmp, '', '');
		-- CALL e_dekl_vat_tools('cit8.data.calc', _Year, _Month, _RecGUID, @tmp, '', '');
		
	END IF;	-- IF _MODE = 'cit8.rec.insert' THEN
	
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'cit.xml.insert.header'  
		Wstawienie naglowka do XMLa z deklaracja CIT (CIT-8, CIT-ST):
		
		<xsd:complexType name="TNaglowek">
			<xsd:element name="KodFormularza">
			<xsd:element name="WariantFormularza">
			<xsd:element name="CelZlozenia">  base="etd:TCelZlozenia"  CIT-8: poz = "P_7"; CIT-ST: poz = "P_8" 
			<xsd:element name="OkresOd">
			<xsd:element name="OkresDo">
			<xsd:element name="KodUrzedu" type="etd:TKodUS"/>

------------------------------------------------------------------------------------------------------------------------------------------------------------------*/				
	IF _MODE = 'cit.xml.insert.header' THEN
	
	  BEGIN
		 -- DECLARE _e_Doc_Def_ID 				 VARCHAR(200);
		 DECLARE _e_doc_id, _e_doc_type      VARCHAR(50);
		 DECLARE _KodFormularza, _form_ver, _doc_ver, _KodUS VARCHAR(10);
		 
		 DECLARE _OkresOd, _OkresDo          DATE;
		 
		 SELECT 
			CelZlozenia, OdDaty, DoDaty, US_GUID, d.doc_id, _varSTR(d.form_ver), d.doc_type, d.doc_ver,					  									
			przyczyna_ORD_ZU, IF(KodFormularza = 'CIT-8', 'P_7', 'P_8') AS poz
			
		 FROM ht_dekl_cit p, e_doc_def d 
		 WHERE 
			 p.GUID = _RecGUID AND  p.e_Doc_Def_ID =  d.owner_doc_Id   -- bylo: d.ID
		INTO 
			_CelZlozenia, _OkresOd, _OkresDo, _US_GUID, _e_doc_id, _form_ver, _e_doc_type, _doc_ver,	@_przyczyna_ORD_ZU, _KodFormularza;  
	
		-- <Naglowek> 
		SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<Naglowek>\n');				  			
			SET @xml.IC = @xml.IC + 1;	
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<KodFormularza kodPodatku="CIT" kodSystemowy="', _e_doc_id, '" rodzajZobowiazania="Z" wersjaSchemy="', _doc_ver, '">', _e_doc_type, '</KodFormularza>\n');
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<WariantFormularza>', _form_ver, '</WariantFormularza>\n');     
			
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<CelZlozenia poz="', _KodFormularza, '">');	-- CASE _KodFormularza WHEN THEN END		
			SET @eCIT.xml = CONCAT(@eCIT.xml, _CelZlozenia);  
			SET @eCIT.xml = CONCAT(@eCIT.xml, '</CelZlozenia>\n');
			
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<OkresOd poz="P_4">');				
			SET @eCIT.xml = CONCAT(@eCIT.xml, _OkresOd);  
			SET @eCIT.xml = CONCAT(@eCIT.xml, '</OkresOd>\n');
			
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<OkresDo poz="P_5">');				
			SET @eCIT.xml = CONCAT(@eCIT.xml, _OkresDo);  
			SET @eCIT.xml = CONCAT(@eCIT.xml, '</OkresDo>\n');
			SET @eCIT._OkresDo = _OkresDo;  -- zmienna @eCIT._OkresDo bedzie potrzebna do zapytania przygotowujacego poz. szczegolowe
			
			SET _KodUS = '';		
			SELECT KOD_urzedu FROM `US`
			WHERE guid = _US_GUID
			into _KodUS;  
			
			SET @eCIT.xml = CONCAT(@eCIT.xml, SPACE(@xml.IC*cSL), '<KodUrzedu>');				
			SET @eCIT.xml = CONCAT(@eCIT.xml, _KodUS);  
			SET @eCIT.xml = CONCAT(@eCIT.xml, '</KodUrzedu>\n');
		
			SET @xml.IC = @xml.IC - 1;		
		SET @eCIT.xml = CONCAT(@eCIT.xml,  SPACE(@xml.IC*cSL), '</Naglowek>\n');
		--  </Naglowek> koniec sekcji 
	  END;
	END IF;

	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'xml.insert.podmiot1'  
		Wstawienie danych podatnika do XMLa z:
		
		a) deklaracja VAT (Podmiot1 = TPodmiotDowolnyBezAdresu2  rola = "Podatnik")
		b) deklaracją CIT (Podmiot1 = TOsobaNiefizyczna  		 rola = "Podatnik" )
				
		TPodmiotDowolnyBezAdresu2 =	OsobaNiefizyczna lub OsobaFizyczna	
		TOsobaNiefizyczna 		  = OsobaNiefizyczna  +  AdresSiedziby(TAdres)
	
		Parametry
		_MODE			Tryb pracy
		INOUT _RecGUID     GUID tworzonego rekordu
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),	
		INOUT _RepContent LONGTEXT,	 dostaniemy tu wynikowy XML Podmiot1	
		IN _Param_A   '' w przypadku dekl. VAT, 'AdresSiedziby' w przypadku CIT
				
		CALL e_dekl_vat_tools('xml.insert.podmiot1', '', '', '', @eDekl.P1, '', '');
		CALL e_dekl_vat_tools('xml.insert.podmiot1', '', '', '', @eDekl.P1, 'AdresSiedziby', '');
		SET @eCIT.xml = CONCAT(@eCIT.xml, @eDekl.P1); 
		
		
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		
	IF _MODE = 'xml.insert.podmiot1' THEN
	BEGIN	

	-- DECLARE  _PESEL_podatnika VARCHAR(11);
	DECLARE _REGON, _NIP     VARCHAR(20);
	DECLARE _Platnik_nazwisko, _Platnik_imie, _PelnaNazwa VARCHAR(200);  
	DECLARE _RodzPodat INTEGER;
	DECLARE _WojewIdn, _PowiatIdn, _GminaIdn, _MiastoIdn, _PocztaIdn INTEGER;
	DECLARE _Miasto,  _Wojewodztwo, _Powiat, _Gmina,  _Poczta   VARCHAR(50);			
	
	
	DECLARE _Platnik_data_urodzenia DATE;
	
	
		SET @tmp := 	@xml.IC * cSL;
		SET @P1.xml = '';
		SET @P1.xml = CONCAT(@P1.xml,  SPACE(@xml.IC*cSL), '<Podmiot1 rola="Podatnik">\n'); 
		
		CALL _IReg_Get('DaneFirmy', 'NIP', '0', 'STRING', _NIP, '(brak danych)'); 
		SET _NIP = REPLACE(_NIP, '-', '');				
		SET _RodzPodat = 0;
		CALL _IReg_Get('DaneFirmy', 'Rodzaj_platnika', '0', 'INTEGER', _RodzPodat, '0'); 
		
		SET @xml.IC = @xml.IC + 1;
				
		IF _RodzPodat = 0 THEN  -- osoba nie-fiz.
					
					-- wstawiamy TIdentyfikatorOsobyNiefizycznej : NIP, pelna_nazwa, REGON
				SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:OsobaNiefizyczna>\n'); 
				
					SET @xml.IC = @xml.IC + 1;
					SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:NIP>');				
					SET @P1.xml = CONCAT(@P1.xml, IFNULL(_NIP, ''));  
					SET @P1.xml = CONCAT(@P1.xml, '</etd:NIP>\n');
					
					CALL _IReg_Get('DaneFirmy', 'pelna_nazwa', '0', 'STRING', _PelnaNazwa, ''); 
					SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:PelnaNazwa>');				
					SET @P1.xml = CONCAT(@P1.xml, REPLACE(_PelnaNazwa, '&', '&#x26;'));    -- _PelnaNazwa
					SET @P1.xml = CONCAT(@P1.xml, '</etd:PelnaNazwa>\n');
					
					CALL _IReg_Get('DaneFirmy', 'REGON', '0', 'STRING', _REGON, '(brak danych)'); 	
					SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:REGON>');				
					SET @P1.xml = CONCAT(@P1.xml, IFNULL(_REGON, ''));  
					SET @P1.xml = CONCAT(@P1.xml, '</etd:REGON>\n');
					
				SET @xml.IC = @xml.IC - 1;	
				SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '</etd:OsobaNiefizyczna>\n'); 		
			
		END IF;
			
		IF _RodzPodat = 1 THEN  -- osoba fiz.
			SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:OsobaFizyczna>\n'); 
			
				-- wstawiamy TIdentyfikatorOsobyFizycznej2 : NIP, imie, nazwisko, data urodz.
				SET @xml.IC = @xml.IC + 1;			
				SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:NIP>');				
				SET @P1.xml = CONCAT(@P1.xml, _NIP);  
				SET @P1.xml = CONCAT(@P1.xml, '</etd:NIP>\n');
				
				CALL _IReg_Get('DaneFirmy', 'Platnik_imie', '0', 'STRING', _Platnik_imie, ''); 
				SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:ImiePierwsze>');				
				SET @P1.xml = CONCAT(@P1.xml, _Platnik_imie);    
				SET @P1.xml = CONCAT(@P1.xml, '</etd:ImiePierwsze>\n');
				
				CALL _IReg_Get('DaneFirmy', 'Platnik_nazwisko', '0', 'STRING', _Platnik_nazwisko, ''); 
				SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:Nazwisko>');				
				SET @P1.xml = CONCAT(@P1.xml, _Platnik_nazwisko);  
				SET @P1.xml = CONCAT(@P1.xml, '</etd:Nazwisko>\n');
				
				CALL _IReg_Get('DaneFirmy', 'Platnik_data_urodzenia', '0', 'DATE', _Platnik_data_urodzenia, ''); 
				SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:DataUrodzenia>');				
				SET @P1.xml = CONCAT(@P1.xml, _Platnik_data_urodzenia);  
				SET @P1.xml = CONCAT(@P1.xml, '</etd:DataUrodzenia>\n');
			
			SET @xml.IC = @xml.IC - 1;	
			SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '</etd:OsobaFizyczna>\n'); 
		END IF;
		
		SET @P1.xml.header = @P1.xml ;
		
		IF _Param_A = 'AdresSiedziby' THEN  -- CIT: Podmiot1 = OsobaNiefizyczna  +  AdresSiedziby(TAdres)
			-- SET @xml.IC = @xml.IC + 1;	
			
			-- dane do AdresSiedziby - sekcja wstawiana dla CIT
			CALL _IReg_Get('DaneFirmy', 'Ulica', '0', 'STRING', _Ulica, ''); 
			CALL _IReg_Get('DaneFirmy', 'Nr_domu', '0', 'STRING', _Nr_domu, ''); 			
			CALL _IReg_Get('DaneFirmy', 'Nr_lokalu', '0', 'STRING', _Nr_lokalu, ''); 
			CALL _IReg_Get('DaneFirmy', 'Miasto', '0', 'INTEGER', _MiastoIdn, '0'); 
				
			SELECT NazwaMiasta FROM `Miasta` WHERE idn = _MiastoIdn INTO _Miasto;
			
			CALL _IReg_Get('DaneFirmy', 'Kod_poczt', '0', 'STRING', _Kod_poczt, ''); 
			CALL _IReg_Get('DaneFirmy', 'Miasto', '0', 'INTEGER', _PocztaIdn, '0'); 
			SELECT NazwaMiasta FROM `Miasta` WHERE idn = _PocztaIdn INTO _Poczta;	

			CALL _IReg_Get('DaneFirmy', 'Wojewodztwo', '0', 'INTEGER', _WojewIdn, '0'); 
			select nazwa 
			from 
				wojewodztwa 
			where idn = _WojewIdn
			into _Wojewodztwo;
			
			CALL _IReg_Get('DaneFirmy', 'powiat', '0', 'INTEGER', _PowiatIdn, '0'); 
			
			select powiat
			from 
				powiaty 
			where idn = _PowiatIdn
			into _Powiat;
			
			CALL _IReg_Get('DaneFirmy', 'gmina', '0', 'INTEGER', _GminaIdn, '0'); 
			
			select gmina
			from 
				gminy
			where idn = _GminaIdn
			into _Gmina; 
				
			SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:', _Param_A, ' rodzajAdresu="RAD">\n');
				SET @xml.IC = @xml.IC + 1;	
				SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:AdresPol>\n');
					SET @xml.IC = @xml.IC + 1;	
					SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:KodKraju>PL</etd:KodKraju>\n');
						
					SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:Wojewodztwo>');				
					SET @P1.xml = CONCAT(@P1.xml, IFNULL(_Wojewodztwo, ''));  
					SET @P1.xml = CONCAT(@P1.xml, '</etd:Wojewodztwo>\n');
					
					SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:Powiat>');				
					SET @P1.xml = CONCAT(@P1.xml, IFNULL(_Powiat, ''));  
					SET @P1.xml = CONCAT(@P1.xml, '</etd:Powiat>\n');
					
					SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:Gmina>');				
					SET @P1.xml = CONCAT(@P1.xml, IFNULL(_Gmina, ''));  
					SET @P1.xml = CONCAT(@P1.xml, '</etd:Gmina>\n');
					
					IF LENGTH(_Ulica) > 0 THEN
					SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:Ulica>');				
					SET @P1.xml = CONCAT(@P1.xml, IFNULL(_Ulica, ''));  
					SET @P1.xml = CONCAT(@P1.xml, '</etd:Ulica>\n');
					END IF;
					
					-- IF LENGTH(_Nr_domu) > 0 THEN
					SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:NrDomu>');				
					SET @P1.xml = CONCAT(@P1.xml, IFNULL(_Nr_domu, ''));  
					SET @P1.xml = CONCAT(@P1.xml, '</etd:NrDomu>\n');
					-- END IF;
					
					IF LENGTH(_Nr_lokalu) > 0 THEN
						SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:NrLokalu>');									
						SET @P1.xml = CONCAT(@P1.xml, _Nr_lokalu);  
						SET @P1.xml = CONCAT(@P1.xml, '</etd:NrLokalu>\n');
					END IF;
					
					SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:Miejscowosc>');				
					SET @P1.xml = CONCAT(@P1.xml, IFNULL(_Miasto, ''));  
					SET @P1.xml = CONCAT(@P1.xml, '</etd:Miejscowosc>\n');
					
					SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:KodPocztowy>');				
					SET @P1.xml = CONCAT(@P1.xml, IFNULL(_Kod_poczt, ''));  
					SET @P1.xml = CONCAT(@P1.xml, '</etd:KodPocztowy>\n');
					
					SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '<etd:Poczta>');				
					SET @P1.xml = CONCAT(@P1.xml, IFNULL(_Poczta, ''));  
					SET @P1.xml = CONCAT(@P1.xml, '</etd:Poczta>\n');
								
					SET @xml.IC = @xml.IC - 1;					
				SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '</etd:AdresPol>\n');
				SET @xml.IC = @xml.IC - 1;	
			SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '</etd:', _Param_A, '>\n');
				
				
		--	SET @xml.IC = @xml.IC - 1;	
		END IF; -- IF _Param_A = 'AdresSiedziby' THEN
		
		SET @xml.IC = @xml.IC - 1;		
		SET @P1.xml = CONCAT(@P1.xml, SPACE(@xml.IC*cSL), '</Podmiot1>\n');	

		SET _RepContent	= @P1.xml;  -- zwracamy XML Podmiot1
	END;
	
	
	END IF;  -- IF _MODE = 'xml.insert.podmiot1' THEN
	
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'vat7.data.calc'
		Wyliczenie pól 
		Parametry
		_MODE			Tryb pracy
		INOUT _RecGUID     GUID tworzonego rekordu
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),		 
		INOUT _RepContent     Wygenerowana zawartość pliku XML
		
		CALL e_dekl_vat_tools('vat7.data.calc', '{0A3F4841-12FB-422F-9509-547BBDE770C7}', @eVAT7.Content);
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		

	IF _MODE = 'vat7.data.calc' THEN

		-- (dzial C i D)
		UPDATE 
			ht_dekl_vat7
		SET 
			P_45 = IFNULL(P_20, 0) + IFNULL(P_21, 0) + IFNULL(P_23, 0) + IFNULL(P_25, 0) + IFNULL(P_27, 0) + IFNULL(P_29, 0) + IFNULL(P_31, 0) + 
				IFNULL(P_32, 0) + IFNULL(P_33, 0) + IFNULL(P_35, 0) + IFNULL(P_37, 0) + IFNULL(P_39, 0) + 
			-- P_41 (z wer. 14) zostalo zastapione przez C_13_podst + C_14_podst + C_15_podst
			IFNULL(C_13_podst, 0) + IFNULL(C_14_podst, 0) + IFNULL(C_15_podst, 0),
			P_46 = IFNULL(P_26, 0) + IFNULL(P_28, 0) + IFNULL(P_30, 0) + IFNULL(P_34, 0) + IFNULL(P_36, 0) + IFNULL(P_38, 0) + IFNULL(P_40, 0) + 
			-- P_42 (z wer. 14) zostalo zastapione przez  C_14_podatek + C_15_podatek
			IFNULL(C_14_podatek, 0) + IFNULL(C_15_podatek, 0) + 
			+ IFNULL(P_43, 0) - IFNULL(P_44, 0),
			P_55 = IFNULL(P_47, 0) + IFNULL(P_48, 0) + IFNULL(P_50, 0) + IFNULL(P_52, 0) + IFNULL(P_53, 0) + IFNULL(P_54, 0) 
		WHERE 
			GUID = _RecGUID;
	
	    -- dzial E
		UPDATE 
			ht_dekl_vat7
		SET 	
			P_58 = IF(IFNULL(P_46, 0) > P_55, IFNULL(P_46, 0) - P_55 - IFNULL(P_56, 0) - IFNULL(P_57, 0), 0),
			P_60 = IF(IFNULL(P_46, 0) <= P_55, P_55 - IFNULL(P_46, 0) + IFNULL(P_59, 0), 0)
		WHERE 
			GUID = _RecGUID;
			
		UPDATE 
			ht_dekl_vat7
		SET 	
			P_65 = P_60 - IFNULL(P_61, 0) 
		WHERE 
			GUID = _RecGUID AND P_60 > 0;
			
			
		
		
		UPDATE 
			ht_dekl_vat7	
		SET
            P_74 = IF( (select count(*) from ht_dekl_vat7_zd where deklGUID = _RecGUID) > 0, 1, 0)		
		WHERE 
			GUID = _RecGUID and P_73 = 1;	-- jesli zaznaczono dołączenie załącznika VAT-ZD, to uzupełniamy pole z liczbą zalacznikow
			
	
	END IF; 	-- _MODE = 'vat7.data.calc'
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'vatUE.poz.select'
		Pobranie danych do okna edycyjnego dekalaracji VAT UE
		Parametry
		_MODE			Tryb pracy
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),		 
		INOUT _RecGUID     GUID tworzonego rekordu		- tylko ten parametr jest tu używany
		INOUT _RepContent     tutaj: nieużywane
		IN _Param_A 	VARCHAR(250),	  -- cel złożenia (deklaracja / korekta deklaracji) : dla VAT UE zawsze =1
    	IN _Param_B 	VARCHAR(250)	  -- okresla, czy jest to zeznanie miesieczne czy kwartalne, określane na podst. klucza IREG
		
		CALL e_dekl_vat_tools('vatUE.poz.select', '2013', '6', 'VAT_UE_2013_6', @_eDeklContent, '1', '1');
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		

	IF _MODE = 'vatUE.poz.select' THEN
						
		SELECT 
		-- 'wenwątrzwspólnotowych dostawach towarów' 
		-- 'wenwątrzwspólnotowych nabyciach towarów' 	
		--  'wenwątrzwspólnotowym świadczeniu usług' 
		 p.GUID, p.deklGUID,  -- p.grupa, 
		/* (CASE p.grupa WHEN 1 THEN 	1 		
		              WHEN  2 THEN 	2		
					  WHEN  3 THEN 	3 		
		END) AS grupa,   -- lub CASE p.grupa ... END 1 - Dostawa (sekcja C), 2 - Nabycie (D), 3 - Uslugi (E)  */
		p.grupa,
		 p.kod_kraju, p.id_VAT_kontrah, p.kwota, p.trojstronna 
		FROM 
			ht_dekl_vat_ue_poz p
		WHERE deklGUID = _RecGUID
		ORDER BY grupa;
								
	END IF; 	-- _MODE = 'vatUE.poz.select'
	
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'vatUE.data.insert'
		Utworzenie nowego wpisu do tabel VAT UE
		Parametry
		_MODE			Tryb pracy
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),		 
		INOUT _RecGUID     GUID tworzonego rekordu		
		INOUT _RepContent     tutaj: nieużywane
		IN _Param_A 	VARCHAR(250),	  -- cel złożenia (deklaracja / korekta deklaracji) : dla VAT UE / UEK zawsze =1
    	IN _Param_B 	VARCHAR(250)	  -- okresla, czy jest to zeznanie miesieczne czy kwartalne
		
		CALL e_dekl_vat_tools('vatUE.data.insert', '2013', '6', 'VAT_UE_2013_6', @_eDeklContent, '1', '1');
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		

	IF _MODE = 'vatUE.data.insert' THEN
						
		DROP TEMPORARY TABLE IF EXISTS  t_vatue;
		
		CREATE TEMPORARY TABLE t_vatue
		SELECT kontrNIP, SUM(o.netto) AS kwota, rv_id 
		FROM opng o
		WHERE o.deleted=0 AND o.rv_id IN (cWDT, cWNT, cUSL_UE)  
		AND (YEAR(o.data_vat) = _Year)
		AND 
			  IF(_Param_B = cMies, (MONTH(o.data_vat) = _Month), (QUARTER(o.data_vat) = _Month)  )
		-- AND (QUARTER(o.data_vat)=QUARTER("#datado#"))
		-- AND (MONTH(o.data_vat)=MONTH("#datado#"))
		GROUP BY kontrNIP, rv_id;
		
		select count(*) from t_vatue
		into _JestZD;
		
		if _JestZD >0 then
		    -- wstawiamy rekord tylko wtedy, gdy sa rzeczywiste dane za wskazany miesiac
			INSERT IGNORE INTO ht_dekl_vat_ue (GUID, rok, miesiac, data_wypelnienia, CelZlozenia, RodzajDekl)  
			SELECT 
				 _RecGUID  AS GUID, _Year, _Month, DATE(NOW()), _varINT(_Param_A) AS CelZlozenia, _varINT(_Param_B); 
				 -- cel zlozenia: 1 - zgloszenie, 2 - korekta;  RodzajDekl : 1 - miesięczna, 2 - kwartalna	
		
			-- wypelniamy sekcje C, D, E	 
			INSERT IGNORE INTO ht_dekl_vat_ue_poz (GUID, deklGUID, grupa, kod_kraju, id_VAT_kontrah, kwota, trojstronna)  
			SELECT 	
				NEWGUID(), _RecGUID  AS deklGUID, (CASE rv_id WHEN cWDT THEN 1 WHEN cWNT THEN 2 WHEN cUSL_UE THEN 3 END) AS grupa, 
				LEFT(kontrNIP, 2) AS kod_kraju, RIGHT(kontrNIP, LENGTH(kontrNIP)-2) AS kontrNIP, kwota, 1	
			FROM 
				t_vatue
			ORDER BY kontrNIP, rv_id;
		END IF;						
	END IF; 	-- _MODE = 'vatUE.data.insert'
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'vatUE.xml.create'
		Wygenerowanie dokumentu XML z fakturٍ
		Parametry
		_MODE			Tryb pracy		
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),		 
		INOUT _RecGUID     GUID tworzonego rekordu
		INOUT _RepContent     Wygenerowana zawartoݦ pliku XML
		IN _Param_A   idn rekordu z t_e_doc_ng
		IN _Param_B
		
		CALL e_dekl_vat_tools('vatUE.xml.create', '2013', '6', '{0A3F4841-12FB-422F-9509-547BBDE770C7}', @eVAT.Content. '', '');
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		
	IF _MODE = 'vatUE.xml.create' THEN
	BEGIN	
		DECLARE _trojstronna INTEGER;
		DECLARE _kod_kraju VARCHAR(2); 
		
		
		DECLARE _done BOOL DEFAULT FALSE;	
		
		
		DECLARE _c_dane_sekcji CURSOR FOR			
		select  
			kod_kraju, id_VAT_kontrah, kwota, trojstronna
		from 
			ht_dekl_vat_ue_poz
		WHERE deklGUID = _RecGUID  and grupa = _Grupa
		;
				
		DECLARE CONTINUE HANDLER FOR NOT FOUND SET _done = TRUE;			
		
		/*
		VAT UE:
		Deklaracja
		Naglowek
		Podmiot1
		PozSzczegolowe
		Pouczenie

		*/
		
		SET _RodzajDekl = cMies;
		
		SELECT 
			CelZlozenia, DATE(data_wypelnienia), RodzajDekl			
		FROM 
			ht_dekl_vat_ue
		WHERE 
			GUID = _RecGUID
		INTO _CelZlozenia, _data_wypelnienia, _RodzajDekl;	
		
		SET @eVAT.Content = '';
		
		SET @eVAT.Content = '<?xml version="1.0" encoding="UTF-8" ?>\n';
		
		SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:Deklaracja xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2011/06/21/eD/DefinicjeTypy/" xmlns:tns="http://crd.gov.pl/wzor/2013/06/18/1215/">\n');

			-- <Naglowek> 
			SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:Naglowek>\n');
						
				SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:KodFormularza kodSystemowy="VAT-UE (3)" wersjaSchemy="1-0E">VAT-UE</tns:KodFormularza>\n');
				SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:WariantFormularza>3</tns:WariantFormularza>\n');
				
				SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:Rok>');				
				SET @eVAT.Content = CONCAT(@eVAT.Content, _Year);  
				SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:Rok>\n');
				
				IF _RodzajDekl = cMies THEN
						SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:Miesiac>');				
						SET @eVAT.Content = CONCAT(@eVAT.Content, _Month);  
						SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:Miesiac>\n');
				END IF;
					
				IF _RodzajDekl = cKwart THEN
						SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:Kwartal>');				
						SET @eVAT.Content = CONCAT(@eVAT.Content, _Month);  
						SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:Kwartal>\n');
				END IF;
				
				-- dla VAT_UE i VAT_UEK CelZlozenia zawsze = 1 
				SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:CelZlozenia>');				
				SET @eVAT.Content = CONCAT(@eVAT.Content, 1);  --    <CelZlozenia>1</CelZlozenia>
				-- SET @eVAT.Content = CONCAT(@eVAT.Content, _CelZlozenia);  --    <CelZlozenia>1</CelZlozenia>
				SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:CelZlozenia>\n');
				
				-- SET @eVAT.Content = 
				
				SET _KodUS = '';
				select _varSTR_NOTNULL(kod_urzedu) FROM US 
					WHERE  guid = (SELECT valueA FROM IReg WHERE idpath LIKE '%danefirmy%' AND idkey='Urzad_skarbowy')
				into _KodUS;
					
				SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:KodUrzedu>');				
				SET @eVAT.Content = CONCAT(@eVAT.Content, _KodUS);  
				SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:KodUrzedu>\n');
									
			SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:Naglowek>\n');
			--  </Naglowek> 
			SET @eVAT_header = @eVAT.Content;
			
			-- sekcja danych podatnika  (na formularzu: sekcja B)
			SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:Podmiot1 rola="Podatnik">\n'); -- TPodmiotDowolnyBezAdresu2
			
				CALL _IReg_Get('DaneFirmy', 'NIP', '0', 'STRING', _NIP, '(brak danych)'); 
				SET _NIP = REPLACE(_NIP, '-', '');
				CALL _IReg_Get('DaneFirmy', 'REGON', '0', 'STRING', _REGON, '(brak danych)'); 	
				CALL _IReg_Get('DaneFirmy', 'pelna_nazwa', '0', 'STRING', _PelnaNazwa, ''); 									
				
				SET _RodzPodat = 0;											
				CALL _IReg_Get('DaneFirmy', 'Rodzaj_platnika', '0', 'INTEGER', _RodzPodat, '0');   	
				
				IF _RodzPodat = 1 THEN -- osoba fiz.  TIdentyfikatorOsobyFizycznej2
				SET @eVAT.Content = CONCAT(@eVAT.Content, '<etd:OsobaFizyczna>\n'); 
					-- TIdentyfikatorOsobyFizycznej : NIP, imie, nazwisko, data ur., Nr PESEL; 4 ost. dane da桲ozdziel. ';' w pelnej nazwie
					-- IREG: Platnik_nazwisko, Platnik_imie, Platnik_data_urodzenia, Platnik_PESEL
					
					SET @eVAT.Content = CONCAT(@eVAT.Content, '<etd:NIP>');				
					SET @eVAT.Content = CONCAT(@eVAT.Content, _NIP);  
					SET @eVAT.Content = CONCAT(@eVAT.Content, '</etd:NIP>\n');
					
					CALL _IReg_Get('DaneFirmy', 'Platnik_imie', '0', 'STRING', _Platnik_imie, ''); 
					SET @eVAT.Content = CONCAT(@eVAT.Content, '<etd:ImiePierwsze>');				
					SET @eVAT.Content = CONCAT(@eVAT.Content, _Platnik_imie);    
					SET @eVAT.Content = CONCAT(@eVAT.Content, '</etd:ImiePierwsze>\n');
					
					CALL _IReg_Get('DaneFirmy', 'Platnik_nazwisko', '0', 'STRING', _Platnik_nazwisko, ''); 
					SET @eVAT.Content = CONCAT(@eVAT.Content, '<etd:Nazwisko>');				
					SET @eVAT.Content = CONCAT(@eVAT.Content, _Platnik_nazwisko);  
					SET @eVAT.Content = CONCAT(@eVAT.Content, '</etd:Nazwisko>\n');
					
					CALL _IReg_Get('DaneFirmy', 'Platnik_data_urodzenia', '0', 'DATE', _Platnik_data_urodzenia, ''); 
					SET @eVAT.Content = CONCAT(@eVAT.Content, '<etd:DataUrodzenia>');				
					SET @eVAT.Content = CONCAT(@eVAT.Content, _Platnik_data_urodzenia);  
					SET @eVAT.Content = CONCAT(@eVAT.Content, '</etd:DataUrodzenia>\n');
										
				SET @eVAT.Content = CONCAT(@eVAT.Content, '</etd:OsobaFizyczna>\n'); 
				END IF;
			
				IF _RodzPodat = 0 THEN -- osoba nie-fiz.
					SET @eVAT.Content = CONCAT(@eVAT.Content, '<etd:OsobaNiefizyczna>\n'); 
					
					SET @eVAT.Content = CONCAT(@eVAT.Content, '<etd:NIP>');				
					SET @eVAT.Content = CONCAT(@eVAT.Content, _NIP);  
					SET @eVAT.Content = CONCAT(@eVAT.Content, '</etd:NIP>\n');
					
					-- etd:PelnaNazwa
					SET @eVAT.Content = CONCAT(@eVAT.Content, '<etd:PelnaNazwa>');				
					SET @eVAT.Content = CONCAT(@eVAT.Content, REPLACE(_PelnaNazwa, '&', '&#x26;'));  
					SET @eVAT.Content = CONCAT(@eVAT.Content, '</etd:PelnaNazwa>\n');
					
					
					SET @eVAT.Content = CONCAT(@eVAT.Content, '<etd:REGON>');				
					SET @eVAT.Content = CONCAT(@eVAT.Content, _REGON);  
					SET @eVAT.Content = CONCAT(@eVAT.Content, '</etd:REGON>\n');
					
					SET @eVAT.Content = CONCAT(@eVAT.Content, '</etd:OsobaNiefizyczna>\n'); 						
				END IF;
			
			SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:Podmiot1>\n');
			
			SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:PozycjeSzczegolowe>\n');
						
			-- grupa 1			
			SET _Grupa = 1;  
			
			select count(*) 
			from ht_dekl_vat_ue_poz where grupa = _Grupa
			into _JestZD;
			
			/*  <tns:Grupa1>
			  <tns:P_Da>BE</tns:P_Da>
			  <tns:P_Db>125874</tns:P_Db>
			  <tns:P_Dc>12</tns:P_Dc>
			  <tns:P_Dd>2</tns:P_Dd>
			  </tns:Grupa1>  */
			
			IF _JestZD > 0 THEN
				OPEN _c_dane_sekcji;
				loop_C: LOOP 
					FETCH 
						_c_dane_sekcji 
					INTO 	
						_kod_kraju, _id_VAT_kontrah, _kwota_transakcji,  _trojstronna;
					IF _done THEN
							LEAVE loop_C;  
						ELSE
						  SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:Grupa1>\n');
							SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:P_Da>');				
							SET @eVAT.Content = CONCAT(@eVAT.Content, _kod_kraju);  
							SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:P_Da>\n');
							
							SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:P_Db>');				
							SET @eVAT.Content = CONCAT(@eVAT.Content, _id_VAT_kontrah);  
							SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:P_Db>\n');
							
							SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:P_Dc>');				
							SET @eVAT.Content = CONCAT(@eVAT.Content, _kwota_transakcji);  
							SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:P_Dc>\n');
							
							SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:P_Dd>');				
							SET @eVAT.Content = CONCAT(@eVAT.Content, _trojstronna);   -- 1: nie dotyczy; 2: dotyczy 
							SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:P_Dd>\n');
						
						  SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:Grupa1>\n');
					END IF;		
				END LOOP;
				CLOSE _c_dane_sekcji;
				
			END IF;
						
			-- grupa 2
			SET _done = FALSE;
			SET _JestZD = 0;
			SET _Grupa = 2;
			
			select count(*) 
			from ht_dekl_vat_ue_poz where grupa = _Grupa
			into _JestZD;
			
			IF _JestZD > 0 THEN
				OPEN _c_dane_sekcji;
				loop_D: LOOP 
					FETCH 
						_c_dane_sekcji 
					INTO 	
						_kod_kraju, _id_VAT_kontrah, _kwota_transakcji,  _trojstronna;
					IF _done THEN
							LEAVE loop_D;  
					ELSE
						  SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:Grupa2>\n');
							SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:P_Na>');				
							SET @eVAT.Content = CONCAT(@eVAT.Content, _kod_kraju);  
							SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:P_Na>\n');
							
							SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:P_Nb>');				
							SET @eVAT.Content = CONCAT(@eVAT.Content, _id_VAT_kontrah);  
							SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:P_Nb>\n');
							
							SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:P_Nc>');				
							SET @eVAT.Content = CONCAT(@eVAT.Content, _kwota_transakcji);  
							SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:P_Nc>\n');
							
							SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:P_Nd>');				
							SET @eVAT.Content = CONCAT(@eVAT.Content, _trojstronna);   -- 1: nie dotyczy; 2: dotyczy 
							SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:P_Nd>\n');
						
						  SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:Grupa2>\n');
					END IF;		
				END LOOP;
				CLOSE _c_dane_sekcji;
				
			END IF;
			
			-- grupa 3
			SET _done = FALSE;
			SET _JestZD = 0;
			SET _Grupa = 3;
			
			select count(*) 
			from ht_dekl_vat_ue_poz where grupa = _Grupa
			into _JestZD;
			
			IF _JestZD > 0 THEN
				OPEN _c_dane_sekcji;
				loop_E: LOOP 
					FETCH 
						_c_dane_sekcji 
					INTO 	
						_kod_kraju, _id_VAT_kontrah, _kwota_transakcji,  _trojstronna;
					IF _done THEN
							LEAVE loop_E;  
					ELSE
						  SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:Grupa3>\n');
							SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:P_Ua>');				
							SET @eVAT.Content = CONCAT(@eVAT.Content, _kod_kraju);  
							SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:P_Ua>\n');
							
							SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:P_Ub>');				
							SET @eVAT.Content = CONCAT(@eVAT.Content, _id_VAT_kontrah);  
							SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:P_Ub>\n');
							
							SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:P_Uc>');				
							SET @eVAT.Content = CONCAT(@eVAT.Content, _kwota_transakcji);  
							SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:P_Uc>\n');
						/*	
							SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:P_Ud>');				
							SET @eVAT.Content = CONCAT(@eVAT.Content, _trojstronna);   -- 1: nie dotyczy; 2: dotyczy 
							SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:P_Ud>\n');
						*/
						  SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:Grupa3>\n');
					END IF;		
				END LOOP;
				CLOSE _c_dane_sekcji;
				
			END IF;
			
			SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:PozycjeSzczegolowe>\n');
			
			SET @eVAT.Content = CONCAT(@eVAT.Content, '<tns:Pouczenie>Za podanie nieprawdy lub zatajenie prawdy grozi odpowiedzialność przewidziana w Kodeksie karnym skarbowym.</tns:Pouczenie>');
		
		SET @eVAT.Content = CONCAT(@eVAT.Content, '</tns:Deklaracja>');
		
					
		SET _RepContent = @eVAT.Content;		
		SELECT IFNULL(@eVAT.Content, '') AS _RepContent;
		
		-- teraz kluczowa sprawa - wstawienie wygenerowanego XMLa do e_doc
		SET _IDN = _Param_A;
		CALL e_doc_tools('e_doc_po.insert.or.edit', _IDN, IFNULL(@eVAT.Content, ''), 'CREATE_XML', 'ORYG', '', '', '', '');
		
	END;
	END IF; 	-- _MODE = 'vatUE.xml.create'
	
	
	
	IF _MODE = 'standard.vat7.data.prepare' THEN
	
		CREATE TEMPORARY TABLE	t_vat7 AS		
		SELECT -- * from t_vat7
			 _RecGUID  AS GUID, _Param_B, _Year, _Month, DATE(NOW()), 1 AS edit, _varINT(_Param_A) AS p07, -- cel zlozenia: 1 - zgloszenie, 2 - korekta zgloszenia			
			SUM(IF(o.rv_id = 2021, o.tabwartnetto6, 0)) AS kwota20,	  -- C.1
			SUM(IF(o.rv_id in(cUSL_UE, cUSL_poza_UE), o.netto, 0)) AS kwota21,   -- C.2
			SUM(IF(o.rv_id = cUSL_UE, o.netto, 0)) AS kwota22,   		  -- C.2a
			SUM(IF(o.rv_id = 2021, o.tabwartnetto5, 0)) AS kwota23,	  -- C.3
			SUM(IF(o.rv_id = 2021, o.tabwartnetto5, 0)) AS kwota24,	  -- C.3a
			-- rejestry : 2021 = sprzedaży krajowej, 2041 = "rejestr korekt VAT 150 dni - sprzedaż"
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartnetto3 + o.tabwartnetto9, 0)) AS kwota25,	  -- C.4   
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartvat3 + o.tabwartvat9, 0)) AS kwota26,	  -- C.4 VAT
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartnetto2 + o.tabwartnetto11, 0)) AS kwota27,	  -- C.5
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartvat2 + o.tabwartvat11, 0)) AS kwota28,	  -- C.5 VAT
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartnetto1 + o.tabwartnetto10, 0)) AS kwota29,	  -- C.6
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartvat1 + o.tabwartvat10, 0)) AS kwota30,	  -- C.6 VAT   2021 = cSpKraj
			SUM(IF(o.rv_id = 2023, o.netto, 0)) AS kwota31,   		  -- C.7 (WDT)
			SUM(IF(o.rv_id = 2022, o.netto, 0)) AS kwota32,   		  -- C.8 (Eksport towar󷩍
			SUM(IF(o.rv_id = 2024, o.netto, 0)) AS kwota33,   		  -- C.9 (WNT)
			SUM(IF(o.rv_id = 2024, o.vat, 0)) AS kwota34,   		  -- C.9 VAT (WNT)
			SUM(IF(o.rv_id = 2025, o.netto, 0)) AS kwota37,   		  -- C.11 
			SUM(IF(o.rv_id = 2025, o.vat, 0)) AS kwota38,   		  -- C.11 VAT 
			SUM(IF(o.rv_id = 2032, o.netto, 0)) AS kwota39,   		  -- C.12          BS: 2032
			SUM(IF(o.rv_id = 2032, o.vat, 0)) AS kwota40,   		  -- C.12 VAT 
			-- C_13_podst  C.13 w v.15
			SUM(IF(o.rv_id = cSpOdwr, o.netto, 0)) AS C_13_podst,   		  -- C.13          BS: cSpOdwr
			-- C.14
			SUM(IF(o.rv_id = cZkOdwr, o.netto, 0)) AS C_14_podst,   		  -- C.14          BS: cZkOdwr
			SUM(IF(o.rv_id = cZkOdwr, o.vat, 0)) AS C_14_podatek,   		  -- C.14          BS: cZkOdwr
			-- BS: "wiersz nr 15 - rejestr nr nie ma takiego rejestru ( może być kolejny - ale na razie nie mam takich zakupów - choć kto wie .. ) "
			0 AS C_15_podst, 0 AS C_15_podatek,
			/* kwota41 i kwota42 zostaja zastapione przez C*_podst, C*_podatek
			SUM(IF(o.rv_id IN(2028, cSpOdwr, cZkOdwr), o.netto, 0)) AS kwota41,   		  -- ver. 14: C.12   cSpOdwr, cZkOdwr
			SUM(IF(o.rv_id IN(2028, cZkOdwr), o.vat, 0)) AS kwota42,   		              -- ver. 14: C.12 VAT */
			
			-- SUM(IF(o.rv_id in(2020,2024,2025,2037), o.netto, 0)) AS kwota45,
			-- SUM(IF(o.rv_id in(2020,2024,2025,2037), o.vat, 0)) AS kwota46,
			
			SUM(IF(o.rv_id = 2030, o.netto, 0)) AS kwota49,   		  -- D.2.49 
			SUM(IF(o.rv_id = 2030, o.vat, 0)) AS kwota50,   		  -- D.2.50 
			SUM(IF(o.rv_id in(2020,2024,2025,2037, 2040, cZkOdwr, 2032), o.netto, 0)) AS kwota51,   -- D.2.41   2040: "rejestr korekt VAT 150 dni - zakup"
			SUM(IF(o.rv_id in(2020,2024,2025,2037, 2040, cZkOdwr, 2032),   (o.vat - o.vat_bez_odliczenia_paliwo - o.vat_bez_odliczenia_pojazd), 0)) AS kwota52    -- D.2.42
		FROM 
			opng o
		WHERE 
			(YEAR(o.data_vat) = _Year) AND 
			  IF(_Param_B = cVAT7, (MONTH(o.data_vat) = _Month), (QUARTER(o.data_vat) = _Month)  ) AND (deleted = 0);
	
	END IF;
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'vat7.data.insert'
		Wpis do tabeli ht_dekl_vat7
		Parametry
		_MODE			Tryb pracy
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),		 
		IN _RecGUID     GUID tworzonego rekordu		
		INOUT _RepContent     Wygenerowana zawartość pliku XML
		
		CALL e_dekl_vat_tools('vat7.data.insert', 2015, 5, '{0A3F4841-12FB-422F-9509-547BBDE770C7}', @eVAT7.Content, 1, 1);
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		

	IF _MODE = 'vat7.data.insert' THEN
				
		 DROP TEMPORARY TABLE IF EXISTS	t_vat7;	
		 
		 SET _CallMode = 'standard.vat7.data.prepare';
		 
		 SELECT _GetAppOwner() INTO @AppOwnerName;
		 IF @AppOwnerName = 'IRKO' THEN
			SET _CallMode = 'irko.vat7.data.prepare';  -- replace (_CallMode, 'standard', @AppOwnerName)
			SET @CallMode = _CallMode ;
		 END IF;
		 
		 CALL e_dekl_vat_tools(_CallMode, _Year, _Month, _RecGUID, @tmp, _Param_A, _Param_B);
		-- call 'standard.vat7.data.prepare'		
				
		INSERT IGNORE INTO ht_dekl_vat7 (GUID, RodzajDekl, rok, miesiac, data_wypelnienia, edit, CelZlozenia,
			P_20, P_21, P_22, P_23, P_24, P_25, P_26, P_27, P_28, P_29, P_30, P_31, P_32, P_33, 
			P_34, P_37, P_38, P_39, P_40, 
			C_13_podst, C_14_podst, C_14_podatek, C_15_podst, C_15_podatek,
			-- P_41, P_42,  
			P_49, P_50, P_51, P_52  )  -- calc = 1, P_45, P_46,
		SELECT * from t_vat7;
		
		/*	 _RecGUID  AS GUID, _Param_B, _Year, _Month, DATE(NOW()), 1 AS edit, _varINT(_Param_A) AS p07, -- cel zlozenia: 1 - zgloszenie, 2 - korekta zgloszenia			
			SUM(IF(o.rv_id = 2021, o.tabwartnetto6, 0)) AS kwota20,	  -- C.1
			SUM(IF(o.rv_id in(cUSL_UE, cUSL_poza_UE), o.netto, 0)) AS kwota21,   -- C.2
			SUM(IF(o.rv_id = cUSL_UE, o.netto, 0)) AS kwota22,   		  -- C.2a
			SUM(IF(o.rv_id = 2021, o.tabwartnetto5, 0)) AS kwota23,	  -- C.3
			SUM(IF(o.rv_id = 2021, o.tabwartnetto5, 0)) AS kwota24,	  -- C.3a
			-- rejestry : 2021 = sprzedaży krajowej, 2041 = "rejestr korekt VAT 150 dni - sprzedaż"
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartnetto3 + o.tabwartnetto9, 0)) AS kwota25,	  -- C.4   
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartvat3 + o.tabwartvat9, 0)) AS kwota26,	  -- C.4 VAT
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartnetto2 + o.tabwartnetto11, 0)) AS kwota27,	  -- C.5
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartvat2 + o.tabwartvat11, 0)) AS kwota28,	  -- C.5 VAT
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartnetto1 + o.tabwartnetto10, 0)) AS kwota29,	  -- C.6
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartvat1 + o.tabwartvat10, 0)) AS kwota30,	  -- C.6 VAT   2021 = cSpKraj
			SUM(IF(o.rv_id = 2023, o.netto, 0)) AS kwota31,   		  -- C.7 (WDT)
			SUM(IF(o.rv_id = 2022, o.netto, 0)) AS kwota32,   		  -- C.8 (Eksport towar󷩍
			SUM(IF(o.rv_id = 2024, o.netto, 0)) AS kwota33,   		  -- C.9 (WNT)
			SUM(IF(o.rv_id = 2024, o.vat, 0)) AS kwota34,   		  -- C.9 VAT (WNT)
			SUM(IF(o.rv_id = 2025, o.netto, 0)) AS kwota37,   		  -- C.11 
			SUM(IF(o.rv_id = 2025, o.vat, 0)) AS kwota38,   		  -- C.11 VAT 
			SUM(IF(o.rv_id = 2032, o.netto, 0)) AS kwota39,   		  -- C.12          BS: 2032
			SUM(IF(o.rv_id = 2032, o.vat, 0)) AS kwota40,   		  -- C.12 VAT 
			-- C_13_podst  C.13 w v.15
			SUM(IF(o.rv_id = cSpOdwr, o.netto, 0)) AS C_13_podst,   		  -- C.13          BS: cSpOdwr
			-- C.14
			SUM(IF(o.rv_id = cZkOdwr, o.netto, 0)) AS C_14_podst,   		  -- C.14          BS: cZkOdwr
			SUM(IF(o.rv_id = cZkOdwr, o.vat, 0)) AS C_14_podatek,   		  -- C.14          BS: cZkOdwr
			-- BS: "wiersz nr 15 - rejestr nr nie ma takiego rejestru ( może być kolejny - ale na razie nie mam takich zakupów - choć kto wie .. ) "
			0 AS C_15_podst, 0 AS C_15_podatek,
						
			SUM(IF(o.rv_id = 2030, o.netto, 0)) AS kwota49,   		  -- D.2.49 
			SUM(IF(o.rv_id = 2030, o.vat, 0)) AS kwota50,   		  -- D.2.50 
			SUM(IF(o.rv_id in(2020,2024,2025,2037, 2040, cZkOdwr, 2032), o.netto, 0)) AS kwota51,   -- D.2.41   2040: "rejestr korekt VAT 150 dni - zakup"
			SUM(IF(o.rv_id in(2020,2024,2025,2037, 2040, cZkOdwr, 2032),   (o.vat - o.vat_bez_odliczenia_paliwo - o.vat_bez_odliczenia_pojazd), 0)) AS kwota52    -- D.2.42
		FROM 
			opng o
		WHERE 
			(YEAR(o.data_vat) = _Year) AND 
			  IF(_Param_B = cVAT7, (MONTH(o.data_vat) = _Month), (QUARTER(o.data_vat) = _Month)  ) AND (deleted = 0);
		*/
		
		SET @eVAT.pointer = 'AFTER INS. INTO ht_dekl_vat7';
		
		-- dla MPGK zerujemy kwoty w wierszu C.2
		SELECT _GetAppOwner() INTO @AppOwner;
		IF @AppOwner = 'MPGK' THEN
			UPDATE ht_dekl_vat7
			SET P_21 =0, P_22 = 0
			WHERE GUID  = _RecGUID;	
		END IF;
		
		-- przepisujemy ewentualna kwote do przeniesienia z deklaracji za poprz. miesiac (P65 -> P47)
		SET _KwotaPoprz = 0;
		SELECT 
			IFNULL(P_65, 0) AS poprz 
		FROM 	
			ht_dekl_vat7
		WHERE 	
			 (100*rok + miesiac) = PERIOD_ADD(100*_Year + _Month, -1)
			 AND (deleted = 0)
		ORDER BY 
			lastupdate DESC
		LIMIT 1
		INTO
			_KwotaPoprz;
			
		IF  _KwotaPoprz > 0 THEN
			UPDATE 
				ht_dekl_vat7
			SET 
				P_47 = _KwotaPoprz
			WHERE 
				GUID  = _RecGUID;	
		END IF;		
			
		
		-- jesli tworzony dokument to korekta, to trzeba skopiowac ewentualny zalacznik ZD
		IF _varINT(_Param_A)  = 2 THEN   
		    SET _OrgGUID = '';
			SET _JestZD = 0;
			-- pobieramy dane z oryginalnego zgloszenia
			SELECT 
				guid, P_73 AS VAT_ZD
			FROM 
				ht_dekl_vat7
			WHERE 
				rok = _Year AND miesiac = _Month AND  CelZlozenia = 1 AND deleted = 0
			INTO _OrgGUID, _JestZD;
			
			IF _JestZD = 1 THEN  
			
				-- ustawiamy przelacznik mowiacy o zalaczeniu VAT-ZD
				update ht_dekl_vat7
				set P_73 = 1
				where GUID = _RecGUID;
			
				-- przepisanie zalacznikow z oryginalnego dokumentu
				INSERT IGNORE INTO 
					ht_dekl_vat7_zd(GUID, deklGUID, kontrGUID, kontrnazwa, kontrNIP, nrdokfin, datawystaw, dataplatnosci, korekta_podstawy, korekta_podatku)
				SELECT 
					NewGUID(), _RecGUID, kontrGUID, kontrnazwa, kontrNIP, nrdokfin, datawystaw, dataplatnosci, korekta_podstawy, korekta_podatku
				FROM 
					ht_dekl_vat7_zd 
				WHERE	
					deklGUID = _OrgGUID;				
			END IF;
		END IF;
				
		-- naliczenie p󬠷yliczanych	(dziaӠC, D i E)
		CALL e_dekl_vat_tools('vat7.data.calc', _Year, _Month, _RecGUID, @tmp, '', '');
	/*	
		UPDATE 
			ht_dekl_vat7
		SET 
			P_45 = P_20 + P_21 + P_23 + P_25 + P_27 + P_29 + P_31 + P_32 + P_33 + P_35 + P_37 + P_41, 
			P_46 = P_26 + P_28 + P_30 + P_34 + IFNULL(P_36, 0) + P_38 + P_42 + IFNULL(P_43, 0) - IFNULL(P_44, 0),
			P_55 = IFNULL(P_47, 0) + IFNULL(P_48, 0) + P_50 + P_52 + IFNULL(P_53, 0) + IFNULL(P_54, 0) 
		WHERE 
			GUID = _RecGUID;
			
		-- naliczenie p󬠷yliczanych	(dziaӠE)
		
		UPDATE 
			ht_dekl_vat7
		SET 	
			P_58 = IF(P_46 > P_55, P_46 - P_55 - IFNULL(P_56, 0) - IFNULL(P_57, 0), 0),
			P_60 = IF(P_46 <= P_55, P_55 - P_46 + IFNULL(P_59, 0), 0)
		WHERE 
			GUID = _RecGUID;    */
			
		-- SELECT 	_PozGUID AS _RecGUID, '' AS _RepContent;

	END IF; 	-- _MODE = 'vat7.data.insert'
	
		
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'vat7.xml.create'
		Wygenerowanie dokumentu XML z fakturٍ
		Parametry
		_MODE			Tryb pracy
		INOUT _RecGUID     GUID tworzonego rekordu
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),		 
		INOUT _RepContent     Wygenerowana zawartoݦ pliku XML
		IN _Param_A   idn rekordu z t_e_doc_ng
		
		CALL ht_EDI_tools('vat7.xml.create', '{0A3F4841-12FB-422F-9509-547BBDE770C7}', @eVAT7.Content);
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		
	IF _MODE = 'vat7.xml.create' THEN
	BEGIN	
		
		DECLARE  _datawystaw, _terminplatn, _LastDay  DATE;
		DECLARE	_korekta_podstawy, _korekta_podatku, _SUM_korekta_podstawy, _SUM_korekta_podatku DOUBLE;
		
		DECLARE  _nrdokfin VARCHAR(30);			
		
		DECLARE _P_20, _P_21, _P_22, _P_23, _P_24, _P_25, _P_26, _P_27, _P_28, _P_29, _P_30, _P_31, _P_32, _P_33, 
				_P_34, _P_37, _P_38, _P_39, _P_40, 
				--  _P_41, _P_42, 
				_C_13_podst, _C_14_podst, _C_14_podatek, _C_15_podst, _C_15_podatek,
				_P_49, _P_50, _P_51, _P_52, _P_45, _P_46, _P_47,
				_P_55, _P_56, _P_57, _P_58, _P_59, _P_60, _P_61,
				_P_62, _P_63, _P_64, _P_65, _P_73, _P_74
				INTEGER;
		
		DECLARE _done BOOL DEFAULT FALSE;	
		
		DECLARE _c_vat_zd CURSOR FOR			
		select  
			kontrnazwa, kontrNIP, nrdokfin, datawystaw, dataplatnosci, IFNULL(korekta_podstawy, 0.00), IFNULL(korekta_podatku, 0.00)	
		from 
			ht_dekl_vat7_zd
		WHERE deklGUID = _RecGUID
		;
				
		DECLARE CONTINUE HANDLER FOR NOT FOUND SET _done = TRUE;			
		
	/*	SET CSpKF 		= 03;
		SET CSpKR 		= 04;
		SET cVatZw   	=  3; */
			
		-- SET _AllowSummary = 0;
		/* SET _TabStat = REPLACE('stat_prac_#Rok#', '#Rok#', _Rok);
		
		SET _SQLText =  'SELECT DATE(''#Rok#-12-31'') INTO @GUS_reports.Z06.create_LastDay';
		SET _SQLText = REPLACE(_SQLText, '#Rok#', _Rok);	
		SET @_SQLText = _SQLText;
		CALL _ExecuteCmd(_SQLText, @Error);	
		SET _LastDay = @GUS_reports.Z06.create_LastDay;
		*/
			
		SELECT 
			CelZlozenia, RodzajDekl,
			_varINT_NOTNULL(P_20), _varINT_NOTNULL(P_21), _varINT_NOTNULL(P_22), _varINT_NOTNULL(P_23), 
			_varINT_NOTNULL(P_24), _varINT_NOTNULL(P_25), _varINT_NOTNULL(P_26), _varINT_NOTNULL(P_27), 
			_varINT_NOTNULL(P_28), _varINT_NOTNULL(P_29), _varINT_NOTNULL(P_30), _varINT_NOTNULL(P_31), _varINT_NOTNULL(P_32), _varINT_NOTNULL(P_33), 
			_varINT_NOTNULL(P_34), _varINT_NOTNULL(P_37), _varINT_NOTNULL(P_38), _varINT_NOTNULL(P_39), _varINT_NOTNULL(P_40), 
			-- _varINT_NOTNULL(P_41), _varINT_NOTNULL(P_42), 
			_varINT_NOTNULL(C_13_podst), _varINT_NOTNULL(C_14_podst), _varINT_NOTNULL(C_14_podatek), _varINT_NOTNULL(C_15_podst), _varINT_NOTNULL(C_15_podatek), 
			_varINT_NOTNULL(P_49), _varINT_NOTNULL(P_50), _varINT_NOTNULL(P_51), _varINT_NOTNULL(P_52),
			_varINT_NOTNULL(P_45), _varINT_NOTNULL(P_46), _varINT_NOTNULL(P_47), _varINT_NOTNULL(P_55), _varINT_NOTNULL(P_56), _varINT_NOTNULL(P_57), _varINT_NOTNULL(P_58), 
			_varINT_NOTNULL(P_59), _varINT_NOTNULL(P_60),
			_varINT_NOTNULL(P_61), _varINT_NOTNULL(P_62), _varINT_NOTNULL(P_63), _varINT_NOTNULL(P_64), _varINT_NOTNULL(P_65),
			P_73, _varINT_NOTNULL(P_74), przyczyna_ORD_ZU, DATE(data_wypelnienia)
			
		FROM 
			ht_dekl_vat7
		WHERE 
			GUID = _RecGUID
		INTO _CelZlozenia, _RodzajDekl, _P_20, _P_21, _P_22, _P_23, _P_24, _P_25, _P_26, _P_27, _P_28, _P_29, _P_30, _P_31, _P_32, _P_33, 
				_P_34, _P_37, _P_38, _P_39, _P_40, 
				-- _P_41, _P_42, 
				_C_13_podst, _C_14_podst, _C_14_podatek, _C_15_podst, _C_15_podatek,
				_P_49, _P_50, _P_51, _P_52,
				_P_45, _P_46, _P_47, _P_55, _P_56, _P_57, _P_58, _P_59, _P_60, _P_61, _P_62, _P_63, _P_64, _P_65, _P_73, _P_74, _przyczyna_ORD_ZU,
				_data_wypelnienia				;
		
		
		/* 
		 - <Deklaracja> 
			 + <Naglowek> 
			 + <Podmiot1> 
			 + <PozycjeSzczegolowe> 
			 <Pouczenie1>
			 <Pouczenie2>
			 <Zalaczniki minOccurs="0">  
		   </Deklaracja> 		
		*/	
				
		/*
		DROP TEMPORARY TABLE IF EXISTS `t_DaneAdr_utf`;
		CREATE TEMPORARY TABLE `t_DaneAdr_utf` (
			`Name` VARCHAR(200) COLLATE utf8_polish_ci NOT NULL DEFAULT '',
			`Value` VARCHAR(200) COLLATE utf8_polish_ci NOT NULL DEFAULT ''
			)ENGINE=MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci	   ;  */
		
		SET @eVAT7.Content = '';
		SET @xml.IC = 1;
		
		SET @eVAT7.Content = '<?xml version="1.0" encoding="UTF-8" ?>\n';
		
		SELECT 
			-- CelZlozenia, RodzajDekl, rok, miesiac, US_GUID, 
			d.doc_id, _varSTR(d.form_ver), 
			d.doc_type,	-- p.data_wypelnienia, 	
			d.ID, d.doc_ver, d.doc_owner 			
		FROM 
			ht_dekl_vat7 p, e_doc_def d -- , osoby o
		WHERE 
			p.GUID = _RecGUID AND  p.e_Doc_Def_ID = d.owner_doc_Id -- _e_doc_id, _doc_ver, _form_ver, _e_doc_type, _e_Doc_Def_ID, _OkresOd, _OkresDo;
		INTO 
		  -- _CelZlozenia, _RodzajDekl, _Rok, _Okres, _US_GUID, 
		  _e_doc_id, _form_ver, 
		  _e_doc_type,  -- _data_wypelnienia,  
		  _e_Doc_Def_ID, _doc_ver, _kodPodatku;  
		  
		SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<Deklaracja xmlns="', _e_Doc_Def_ID, '" ');
	
		SET @eVAT7.Content = CONCAT(@eVAT7.Content, cDefTypySchema, '\n');		
		SET @eVAT7.xmlns = @eVAT7.Content; 
	/*													
		IF _RodzajDekl = cVAT7 THEN 		
		  -- ver. 14: SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<Deklaracja xmlns="http://crd.gov.pl/wzor/2013/04/09/1113/" xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2011/06/21/eD/DefinicjeTypy/">\n');
		  -- ver. 15:
			SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<Deklaracja xmlns="http://crd.gov.pl/wzor/2015/07/15/2491/" ', cDefTypySchema, '\n');	-- xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2011/06/21/eD/DefinicjeTypy/">\n');
		END IF;	
				
		IF _RodzajDekl = cVAT7K THEN 			
			-- ver. 8: SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<Deklaracja xmlns="http://crd.gov.pl/wzor/2013/04/09/1114/" xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2011/06/21/eD/DefinicjeTypy/">\n');
			-- ver. 9:
			SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<Deklaracja xmlns="http://crd.gov.pl/wzor/2015/07/09/2480/" ', cDefTypySchema, '\n');	-- xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2011/06/21/eD/DefinicjeTypy/">\n');
		END IF;	
    */		
						
			-- <Naglowek> 
			SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<Naglowek>\n');
			   -- SET @ble.Content = @eVAT7.Content;
				
				SET @xml.IC = @xml.IC + 1;
			/*	IF _RodzajDekl = cVAT7 THEN 			
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<KodFormularza kodPodatku="VAT" kodSystemowy="VAT-7 (15)" rodzajZobowiazania="Z" wersjaSchemy="1-1E">VAT-7</KodFormularza>\n');
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<WariantFormularza>15</WariantFormularza>\n');
				END IF;	
				
				IF _RodzajDekl = cVAT7K THEN 			
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<KodFormularza kodPodatku="VAT" kodSystemowy="VAT-7K (9)" rodzajZobowiazania="Z" wersjaSchemy="1-0E">VAT-7K</KodFormularza>\n');
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<WariantFormularza>9</WariantFormularza>\n');
				END IF;	
				*/
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<KodFormularza kodPodatku="', _kodPodatku,'" kodSystemowy="', _e_doc_id, '" rodzajZobowiazania="Z" wersjaSchemy="', _doc_ver, '">', _e_doc_type, '</KodFormularza>\n');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<WariantFormularza>', _form_ver, '</WariantFormularza>\n');  -- ew. e_doc_def.form_ver	   
				
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<CelZlozenia poz="P_7">');				
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, _CelZlozenia);  --    <CelZlozenia poz="P_7">1</CelZlozenia>
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</CelZlozenia>\n');
				
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<Rok>');				
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, _Year);  
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</Rok>\n');
				
				IF _RodzajDekl = cVAT7 THEN
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<Miesiac>');				
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, _Month);  
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</Miesiac>\n');
				END IF;
				
				IF _RodzajDekl = cVAT7K THEN
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<Kwartal>');				
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, _Month);  
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</Kwartal>\n');
				END IF;
				
				-- SET @ble.Content = @eVAT7.Content;
				set _KodUS = '';
				select _varSTR_NOTNULL(kod_urzedu) FROM US 
					WHERE  guid = (SELECT valueA FROM IReg WHERE idpath LIKE '%danefirmy%' AND idkey='Urzad_skarbowy')
				into _KodUS;
				
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<KodUrzedu>', _KodUS, '</KodUrzedu>\n');				
				
				SET @xml.IC = @xml.IC - 1;									
			SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '</Naglowek>\n');
			--  </Naglowek> koniec sekcji nagԳwka deklaracji
			SET @eVAT7_header = @eVAT7.Content;
			
			
			-- sekcja danych podatnika  (na formularzu: sekcja B)
			SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<Podmiot1 rola="Podatnik">\n'); 
				SET @xml.IC = @xml.IC + 1;
			
			-- if RegistryInt.GetRegIntValueInteger('Rodzaj_platnika', 0, 'DaneFirmy', 1) = 1 then  // osoba fiz.
			CALL _IReg_Get('DaneFirmy', 'NIP', '0', 'STRING', _NIP, '(brak danych)'); 
			SET _NIP = REPLACE(_NIP, '-', '');
			CALL _IReg_Get('DaneFirmy', 'REGON', '0', 'STRING', _REGON, '(brak danych)'); 	
			CALL _IReg_Get('DaneFirmy', 'pelna_nazwa', '0', 'STRING', _PelnaNazwa, ''); 
						
			
			SET _RodzPodat = 0;													
			CALL _IReg_Get('DaneFirmy', 'Rodzaj_platnika', '0', 'INTEGER', _RodzPodat, '0');   	
			
			IF _RodzPodat = 1 THEN -- osoba fiz.
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<OsobaFizyczna>\n'); 
					SET @xml.IC = @xml.IC + 1;
					-- TIdentyfikatorOsobyFizycznej : NIP, imie, nazwisko, data ur., Nr PESEL; 4 ost. dane da桲ozdziel. ';' w pelnej nazwie
					-- IREG: Platnik_nazwisko, Platnik_imie, Platnik_data_urodzenia, Platnik_PESEL
					
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<NIP>');				
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, _NIP);  
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</NIP>\n');
					
					CALL _IReg_Get('DaneFirmy', 'Platnik_imie', '0', 'STRING', _Platnik_imie, ''); 
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<ImiePierwsze>');				
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, _Platnik_imie);    
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</ImiePierwsze>\n');
					
					CALL _IReg_Get('DaneFirmy', 'Platnik_nazwisko', '0', 'STRING', _Platnik_nazwisko, ''); 
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<Nazwisko>');				
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, _Platnik_nazwisko);  
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</Nazwisko>\n');
					
					CALL _IReg_Get('DaneFirmy', 'Platnik_data_urodzenia', '0', 'DATE', _Platnik_data_urodzenia, ''); 
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<DataUrodzenia>');				
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, _Platnik_data_urodzenia);  
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</DataUrodzenia>\n');
										
					SET @xml.IC = @xml.IC - 1;								
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '</OsobaFizyczna>\n'); 
			END IF;
			
			IF _RodzPodat = 0 THEN -- osoba nie-fiz.
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<OsobaNiefizyczna>\n');
						SET @xml.IC = @xml.IC + 1;
					
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<NIP>');				
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, _NIP);  
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</NIP>\n');
					
					-- etd:PelnaNazwa
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<PelnaNazwa>');				
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, REPLACE(_PelnaNazwa, '&', '&#x26;'));  -- REPLACE(_PelnaNazwa, '&', '&#x26;')  REPLACE(_PelnaNazwa, '&', 'and')
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</PelnaNazwa>\n');
										
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<REGON>');				
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, _REGON);  
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</REGON>\n');
					
					SET @xml.IC = @xml.IC - 1;
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '</OsobaNiefizyczna>\n'); 						
			END IF;
			SET @xml.IC = @xml.IC - 1;   			
			SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '</Podmiot1>\n');
						
			SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<PozycjeSzczegolowe>\n');			
				SET @xml.IC = @xml.IC + 1;
						
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_10>', _P_20, '</P_10>\n');				
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_11>', _P_21, '</P_11>\n');				
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_12>', _P_22, '</P_12>\n');				
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_13>', _P_23, '</P_13>\n');				
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_14>', _P_24, '</P_14>\n');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_15>', _P_25, '</P_15>\n');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_16>', _P_26, '</P_16>\n');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_17>', _P_27, '</P_17>\n');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_18>', _P_28, '</P_18>\n');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_19>', _P_29, '</P_19>\n');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_20>', _P_30, '</P_20>\n');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_21>', _P_31, '</P_21>\n');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_22>', _P_32, '</P_22>\n');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_23>', _P_33, '</P_23>\n');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_24>', _P_34, '</P_24>\n');
				IF _P_37 > 0 THEN
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_27>', _P_37, '</P_27>\n');
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_28>', _P_38, '</P_28>\n');
				END IF;	
				IF _P_39 > 0 THEN
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_29>', _P_39, '</P_29>\n');
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_30>', _P_40, '</P_30>\n');								
				END IF;	
				-- ver. 15: dotad nie bylo zmian w numeracji 
				
				/*  _P_41, _P_42 zastapione przez _C_dd_podst, _C_dd_podatek
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<P_31>');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, _P_41);
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</P_31>\n');
				
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<P_32>');
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, _P_42);
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</P_32>\n');  */
				
				IF _C_13_podst > 0 THEN
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_31>', _C_13_podst, '</P_31>\n');								
				END IF;		
				IF _C_14_podst > 0 THEN
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_32>', _C_14_podst, '</P_32>\n');
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_33>', _C_14_podatek, '</P_33>\n');
				END IF;			
				IF _C_15_podst > 0 THEN
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_34>', _C_15_podst, '</P_34>\n');
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_35>', _C_15_podatek, '</P_35>\n');
				END IF;				
								
				-- Razem - Podstawa opodatkowania
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_38>', _P_45, '</P_38>\n');						
				-- Razem - Podatek należny
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_39>', _P_46, '</P_39>\n');		
				-- koniec sekcji C.
				
				-- sekcja D.1. Kwota nadwyżki z poprzedniej deklaracji
				IF _P_47 > 0 THEN
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_40>', _P_47, '</P_40>\n');							
				END IF;					
				
				-- sekcja D.2. Nabycie towarów i usług oraz podatek naliczony z uwzgl. korekt.
				IF _P_49 > 0 THEN
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_41>', _P_49, '</P_41>\n');												
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_42>', _P_50, '</P_42>\n');																
				END IF;	
				
				IF _P_51 > 0 THEN
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_43>', _P_51, '</P_43>\n');												
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_44>', _P_52, '</P_44>\n');																						
				END IF;	
				
				-- sekcja D.3. Podatek naliczony - do odliczenia
				/*  poki co komentujemy, bo brak pobrania danych do zmiennej _P_48
				IF _P_48 > 0 THEN  -- Korekta podatku naliczonego, o której mowa w art. 89b ust. 1 ustawy
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_47>', _P_48, '</P_47>\n');												
				END IF;  */
				
				IF _P_55 > 0 THEN  -- Razem kwota podatku naliczonego do odliczenia
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_48>', _P_55, '</P_48>\n');																
				END IF;	
				
				-- sekcja E. obliczenie wysokosci zobowiazania podatkowego lub kwoty zwrotu
				
				IF _P_56 > 0 THEN  -- Kwota wydatkowana na zakup kas rejestrujących, do odliczenia w danym okresie rozliczeniowym
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_49>', _P_56, '</P_49>\n');						
				END IF;	
				
				IF _P_57 > 0 THEN  -- Kwota podatku objęta zaniechaniem poboru
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_50>', _P_57, '</P_50>\n');											
				END IF;	
				
				-- Kwota podatku podlegającego wpłacie do urzędu skarbowego
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_51>', _P_58, '</P_51>\n');											
				
				-- Kwota wydatkowana na zakup kas rejestrujących, przysługująca do zwrotu w danym okresie rozliczeniowym
				IF _P_59 > 0 THEN  
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_52>', _P_59, '</P_52>\n');											
				END IF;	
								
				IF _P_60 > 0 THEN   -- Nadwyżka podatku naliczonego nad należnym
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_53>', _P_60, '</P_53>\n');											
				END IF;	
				
				-- Kwota do zwrotu na rachunek bankowy wskazany przez podatnika
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_54>', _P_61, '</P_54>\n');											
				
				IF _P_62 > 0 THEN   -- w tym kwota do zwrotu - w terminie 25 dni
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_55>', _P_62, '</P_55>\n');											
				END IF;									
				
				IF _P_63 > 0 THEN   -- w tym kwota do zwrotu - w terminie 60 dni
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_56>', _P_63, '</P_56>\n');											
				END IF;									
				
				IF _P_64 > 0 THEN   -- w tym kwota do zwrotu - w terminie 180 dni
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_57>', _P_64, '</P_57>\n');											
				END IF;									
				
				-- Kwota do przeniesienia na następny okres rozliczeniowy
				IF _P_65 > 0 THEN   -- w tym kwota do zwrotu - w terminie 180 dni
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_58>', _P_65, '</P_58>\n');											
				END IF;	
				
								
				IF (_P_73 = 1) AND (_P_74 > 0) THEN  -- jesli zaznaczono korekte VAT_ZD i podana liczbe zalacznikow, to podajemy informacje o ich liczbie
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_66>', _P_73, '</P_66>\n');		
					
				    -- Jeżeli w poz. 66 zaznaczono kwadrat nr 1, należy podać liczbę załączników VAT-ZD enumeration value="1"
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_67>', '1', '</P_67>\n');											
				END IF;		
				
				-- <xsd:element name="P_71" minOccurs="0">  Telefon kontaktowy
				
				-- Data wypełnienia minInclusive value="2015-07-01"
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<P_72>', _data_wypelnienia, '</P_72>\n');																					
					
				SET @xml.IC = @xml.IC - 1;
			SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '</PozycjeSzczegolowe>\n');
			
			SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<Pouczenie1>W przypadku niewpłacenia w obowiązującym terminie kwoty z poz. 51 lub wpłacenia jej w niepełnej wysokości, niniejsza deklaracja stanowi podstawę do wystawienia tytułu wykonawczego zgodnie z przepisami ustawy z dnia 17 czerwca 1966 r. o postępowaniu egzekucyjnym w administracji (Dz. U. z 2014 r. poz. 1619, z późn. zm.).</Pouczenie1>\n');
			 
			SET @eVAT7.Content = CONCAT(@eVAT7.Content, SPACE(@xml.IC*cSL), '<Pouczenie2>Za podanie nieprawdy lub zatajenie prawdy i przez to narażenie podatku na uszczuplenie grozi odpowiedzialność przewidziana w Kodeksie karnym skarbowym.</Pouczenie2>\n');
			
			IF ( (_P_74 > 0) OR (_CelZlozenia = 2) ) THEN  -- jesli jest zalacznik VAT-ZD lub ORD-ZU (korekta), to je dolaczamy
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<Zalaczniki>\n');
			 IF (_P_74 > 0)	THEN
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:Wniosek_VAT-ZD xmlns:vzd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2013/01/10/eD/VATZD/">\n');
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:Naglowek>\n');
					
						SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:KodFormularza kodSystemowy="VAT-ZD (1)" wersjaSchemy="1-0E">VAT-ZD</vzd:KodFormularza>\n');
						SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:WariantFormularza>1</vzd:WariantFormularza>\n');
					
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:Naglowek>\n');
										
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:PozycjeSzczegolowe>\n');
					
					SET _SUM_korekta_podstawy = 0.00; 
					SET	_SUM_korekta_podatku = 0.00; 
					
					OPEN _c_vat_zd;
					loop_ZD: LOOP -- petla loop po zalacznikach
						FETCH 
							_c_vat_zd 
						INTO 
							_P_nazwa, _P_NIP, _nrdokfin, _datawystaw, _terminplatn, _korekta_podstawy, _korekta_podatku	;
						IF _done THEN
							LEAVE loop_ZD;
						ELSE
						
							-- sekcja P_B (1 wpis = 1 wiersz w załączniku)
							SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:P_B typ="G">');
							
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:P_BB>');
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, _P_nazwa);
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:P_BB>\n');
																
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:P_BC>');
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, _P_NIP);
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:P_BC>\n');
								
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:P_BD1>');
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, _nrdokfin);
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:P_BD1>\n');
								
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:P_BD2>');
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, _datawystaw);
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:P_BD2>\n');
								
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:P_BE>');
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, _terminplatn);
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:P_BE>\n');
																
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:P_BF>');
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, _korekta_podstawy);
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:P_BF>\n');
								
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:P_BG>');
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, _korekta_podatku);
								SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:P_BG>\n');	
								
								SET _SUM_korekta_podstawy = _SUM_korekta_podstawy + _korekta_podstawy; 
								SET	_SUM_korekta_podatku  = _SUM_korekta_podatku  + _korekta_podatku; 
								
							SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:P_B>');	
						END IF;
					END LOOP;
					CLOSE _c_vat_zd;

					-- end loop
					-- podsumowanie kwoty ogółem (10, 11):
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:P_10>');
					SET @eVAT7.Content = CONCAT(@eVAT7.Content,  _varInt(_Rnd(_SUM_korekta_podstawy, 0)));
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:P_10>\n');
				
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<vzd:P_11>');
					SET @eVAT7.Content = CONCAT(@eVAT7.Content,  _varInt(_Rnd(_SUM_korekta_podatku, 0)));
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:P_11>\n');
					
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:PozycjeSzczegolowe>\n');
														
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</vzd:Wniosek_VAT-ZD>\n');
			  END IF; -- (_P_74 > 0)	
				-- jesli dokument to korekta, to zalaczamy ORD-ZU
				IF (_CelZlozenia = cKorekta) THEN
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<zzu:Zalacznik_ORD-ZU xmlns:zzu="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2011/10/07/eD/ORDZU/">\n');
					  SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<zzu:Naglowek>\n');					
					    SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<zzu:KodFormularza kodSystemowy="ORD-ZU (2)" wersjaSchemy="2-0E">ORD-ZU</zzu:KodFormularza>\n');
					    SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<zzu:WariantFormularza>2</zzu:WariantFormularza>\n');					
					  SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</zzu:Naglowek>\n');
					  
					  SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<zzu:PozycjeSzczegolowe>\n');
					    SET @eVAT7.Content = CONCAT(@eVAT7.Content, '<zzu:P_13>');
					    SET @eVAT7.Content = CONCAT(@eVAT7.Content,  _przyczyna_ORD_ZU);
					    SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</zzu:P_13>\n');
					  SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</zzu:PozycjeSzczegolowe>\n');	
					SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</zzu:Zalacznik_ORD-ZU>\n');					
				END IF;
			
				SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</Zalaczniki>\n');
			END IF;  -- ( (_P_74 > 0) OR (_CelZlozenia = 2) ) THEN
			
			SET @xml.IC = @xml.IC - 1;
		SET @eVAT7.Content = CONCAT(@eVAT7.Content, '</Deklaracja>');
							
		-- SET @GUS_reports.Z06_RepContent = CONCAT(@GUS_reports.Z06_RepContent, '\n\n[Formularze]', '\nCount=1');
		
		-- zamiana parametr󷠮a wartosci
		-- SET @GUS_reports.Z06_RepContent = REPLACE(@GUS_reports.Z06_RepContent, '#Rok#', _Rok);
		SET _RepContent = @eVAT7.Content;
		-- SELECT _varSTR_NOTNULL(@GUS_reports.Z06_RepContent) AS _RepContent;
		SELECT IFNULL(@eVAT7.Content, '') AS _RepContent;
		
		-- teraz kluczowa sprawa - wstawienie wygenerowanego XMLa do e_doc
		SET _IDN = _Param_A;
		CALL e_doc_tools('e_doc_po.insert.or.edit', _IDN, IFNULL(@eVAT7.Content, ''), 'CREATE_XML', 'ORYG', '', '', '', '');
		-- SET NAMES cp1250;	
		
	END;  
	
	END IF; 	-- _MODE = 'vat7.xml.create'
	
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------	
	'irko.vat7.data.prepare'
		Przygotowanie danych do wpisu do tabeli ht_dekl_vat7  (werska dla Irko)
		Parametry
		_MODE			Tryb pracy
		INOUT _RecGUID     GUID tworzonego rekordu
		IN _Year      VARCHAR(50),
		IN _Month     VARCHAR(50),		 
		INOUT _RepContent     Wygenerowana zawartość pliku XML
		
		CALL ht_EDI_tools('vat7.data.prepare', '{0A3F4841-12FB-422F-9509-547BBDE770C7}', @eVAT7.Content);
------------------------------------------------------------------------------------------------------------------------------------------------------------------*/		
	
	IF _MODE = 'irko.vat7.data.prepare' THEN
		
	/*	INSERT IGNORE INTO ht_dekl_vat7 (GUID, RodzajDekl, rok, miesiac, data_wypelnienia, edit, CelZlozenia,
			P_20, P_21, P_22, P_23, P_24, P_25, P_26, P_27, P_28, P_29, P_30, P_31, P_32, P_33, 
			P_34, P_37, P_38, P_39, P_40, 
			C_13_podst, C_14_podst, C_14_podatek, C_15_podst, C_15_podatek,
			-- P_41, P_42,  
			P_49, P_50, P_51, P_52  )  -- calc = 1, P_45, P_46,  */
							
		CREATE TEMPORARY TABLE	t_vat7 AS
		SELECT 
			 _RecGUID  AS GUID, _Param_B, _Year, _Month, DATE(NOW()), 1 AS edit, _varINT(_Param_A) AS p07, -- cel zlozenia: 1 - zgloszenie, 2 - korekta zgloszenia			
			SUM(IF(o.rv_id = 2021, o.tabwartnetto6, 0)) AS kwota20,	  -- C.1
			SUM(IF(o.rv_id in(cUSL_UE, cUSL_poza_UE), o.netto, 0)) AS kwota21,   -- C.2
			SUM(IF(o.rv_id = cUSL_UE, o.netto, 0)) AS kwota22,   		  -- C.2a
			SUM(IF(o.rv_id = 2021, o.tabwartnetto5, 0)) AS kwota23,	  -- C.3
			SUM(IF(o.rv_id = 12021, o.tabwartnetto5, 0)) AS kwota24,	  -- C.3a
			-- rejestry : 2021 = sprzedaży krajowej, 2041 = "rejestr korekt VAT 150 dni - sprzedaż"
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartnetto3 + o.tabwartnetto9, 0)) AS kwota25,	  -- C.4   
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartvat3 + o.tabwartvat9, 0)) AS kwota26,	  -- C.4 VAT
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartnetto2 + o.tabwartnetto11, 0)) AS kwota27,	  -- C.5
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartvat2 + o.tabwartvat11, 0)) AS kwota28,	  -- C.5 VAT
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartnetto1 + o.tabwartnetto10, 0)) AS kwota29,	  -- C.6
			SUM(IF(o.rv_id in(2021, 2041), o.tabwartvat1 + o.tabwartvat10, 0)) AS kwota30,	  -- C.6 VAT   2021 = cSpKraj
			SUM(IF(o.rv_id = 2023, o.netto, 0)) AS kwota31,   		  -- C.7 (WDT)
			SUM(IF(o.rv_id = 2022, o.netto, 0)) AS kwota32,   		  -- C.8 (Eksport towar?
			SUM(IF(o.rv_id = 2024, o.netto, 0)) AS kwota33,   		  -- C.9 (WNT)
			SUM(IF(o.rv_id = 2024, o.vat, 0)) AS kwota34,   		  -- C.9 VAT (WNT)
			SUM(IF(o.rv_id = 2025, o.netto, 0)) AS kwota37,   		  -- C.11 
			SUM(IF(o.rv_id = 2025, o.vat, 0)) AS kwota38,   		  -- C.11 VAT 
			SUM(IF(o.rv_id = 12032, o.netto, 0)) AS kwota39,   		  -- C.12          BS: 2032
			SUM(IF(o.rv_id = 12032, o.vat, 0)) AS kwota40,   		  -- C.12 VAT 
			-- C_13_podst  C.13 w v.15
			SUM(IF(o.rv_id = 2028, o.netto, 0)) AS C_13_podst,   		  -- C.13          BS: cSpOdwr
			-- C.14
			SUM(IF(o.rv_id = cZkOdwr, o.netto, 0)) AS C_14_podst,   		  -- C.14          BS: cZkOdwr
			SUM(IF(o.rv_id = cZkOdwr, o.vat, 0)) AS C_14_podatek,   		  -- C.14          BS: cZkOdwr
			
			SUM(IF(o.rv_id = 2032, o.netto, 0)) AS C_15_podst,
			SUM(IF(o.rv_id = 2032, o.vat, 0)) AS C_15_podatek,
			
			
			SUM(IF(o.rv_id = 2030, o.netto, 0)) AS kwota49,   		  -- D.2.49 
			SUM(IF(o.rv_id = 2030, o.vat, 0)) AS kwota50,   		  -- D.2.50 
			SUM(IF(o.rv_id IN(2020,2024,2025,2037, 2040, 2032), o.netto, 0)) AS kwota51,   -- D.2.41   2040: "rejestr korekt VAT 150 dni - zakup"
			SUM(IF(o.rv_id IN(2020,2024,2025,2037, 2040, 2032),   (o.vat - o.vat_bez_odliczenia_paliwo - o.vat_bez_odliczenia_pojazd), 0)) AS kwota52    -- D.2.42
		FROM 
			opng o
		WHERE 
			(YEAR(o.data_vat) = _Year) AND 
			  IF(_Param_B = cVAT7, (MONTH(o.data_vat) = _Month), (QUARTER(o.data_vat) = _Month)  ) AND (deleted = 0);
		
		SET @eVAT.pointer = 'AFTER prepare';
													
	END IF; 	-- _MODE = 'irko.vat7.data.prepare'

	

	IF _MODE = 'vat7.xml.get' THEN
	-- BEGIN
	--	SET NAMES utf8;	
		SET @eVAT7.Content = '';
		CALL e_dekl_vat_tools('vat7.xml.create', _Year, _Month, _RecGUID, @eVAT7.Content);
		DROP TEMPORARY TABLE IF EXISTS `t_to_eVAT7_content`;
		CREATE TEMPORARY TABLE `t_to_eVAT7_content` (
			Content LONGBLOB -- CHARACTER SET UTF8		
		) ENGINE=MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;
		-- SET @exp.MaxaZmienna = IFNULL(@exp.MaxaZmienna, 0);
		-- SELECT _varSTR_NOTNULL(@GUS_reports.Z06_RepContent) AS _RepContent;
		-- SELECT @eVAT7.Content AS _RepContent;
		INSERT INTO `t_to_eVAT7_content` SELECT @eVAT7.Content;
		
		SELECT Content  FROM `t_to_eVAT7_content`;  -- @eVAT7.Content
		-- DROP TEMPORARY TABLE IF EXISTS `t_to_edi_content`;
--	 SET NAMES cp1250;	
	END IF; 	-- _MODE = 'vat7.xml.get'


END$$

DELIMITER ;