 /*!40101 SET NAMES utf8 */;
DELIMITER $$



DROP PROCEDURE IF EXISTS `pl_zus`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `pl_zus`(
	IN _MODE VARCHAR(150),
	IN _Key VARCHAR(255),	
	IN _Param_A VARCHAR(255),
	IN _Param_B VARCHAR(255),
	IN _Param_C TEXT, -- INOUT _RepContent TEXT,	  -- bylo jak IN, wiec wywolania w Delphi trzeba zmienić - wstawic tu jakiś arg @repcontent
	IN _Param_D VARCHAR(255),
	IN _Param_E VARCHAR(255),
	IN _Param_F VARCHAR(255),
	IN _Param_G VARCHAR(255)
)
SPROC: BEGIN 

DECLARE _GUID_pracownika VARCHAR(38);
DECLARE _GUID VARCHAR(38);
DECLARE _LAZAM, _LAMEL, _LAKOR TINYINT;
-- DECLARE _nowe_adresy INT;

IF (_MODE = 'create.RSA') THEN

	SET @pl.ZUS.RepContent = '';		
	CALL pl_zus('insert.KEDU.header', '', '', '', '', '', '', '', '');
	
	SET @pl.ZUS.RepContent = CONCAT(@pl.ZUS.RepHeader, '<ZUSRSA>\n');
	
	-- blok I. Dane organizacyjne (nr raportu)
	/*
	<xs:complexType name="t_DORSA">
    <xs:sequence>
      <xs:element name="p1" type="t_IdentyfikatorDeklRap_8"/> ->
	     <xs:element name="p1" type="t_IdentDeklRap_2"/>
         <xs:element name="p2" type="t_Data_MMRRRR_6"/>
    </xs:sequence>
    </xs:complexType>  */
	
	SET @pl.ZUS.RepContent = CONCAT(@pl.ZUS.RepContent, '<I>');
	
	-- <I><p1><p1>01</p1><p2>2014-03</p2></p1></I>
	SET @pl.ZUS.RepContent = CONCAT(@pl.ZUS.RepContent, '<p1><p1>01</p1>');
	SET @pl.ZUS.RepContent = CONCAT(@pl.ZUS.RepContent, '<p2>', '</p2></p1>');  -- 2014-03, 1999-01
	
	SET @pl.ZUS.RepContent = CONCAT(@pl.ZUS.RepContent, '</I>\n');
	
	-- blok II : dane płatnika składek  
	CALL pl_zus('insert.payer.data', '', '', '', '', '', '', '', '');
	SET @pl.ZUS.RepContent = CONCAT(@pl.ZUS.RepContent, @pl.ZUS.RepPayerId);
	
	/* pobieramy dane osób, które powinny zostać wykazane w tym raporcie:
	   na podst. */
	-- blok III : dane dot. osoby ubezp.
	
	SET @pl.ZUS.RepContent = CONCAT(@pl.ZUS.RepContent, '</ZUSRSA>\n');
	
	SET @pl.ZUS.RepContent = CONCAT(@pl.ZUS.RepContent, '</KEDU>');
	
	-- tymczasowo, do prezentacji
	select @pl.ZUS.RepContent;
	
END IF; -- IF (_MODE = 'insert.KEDU.header')


-- odpowiednik WstawNaglowekKEDU
IF (_MODE = 'insert.KEDU.header') THEN

	SET @pl.ZUS.RepHeader = '';		
	SET @pl.ZUS.RepHeader = '<?xml version="1.0" encoding="UTF-8"?>\n';
	SET @pl.ZUS.RepHeader = CONCAT(@pl.ZUS.RepHeader, '<KEDU wersja_schematu="1" xmlns="http://www.zus.pl/2013/KEDU_4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.zus.pl/2013/KEDU_4 kedu_4.xsd">\n');
    SET @pl.ZUS.RepHeader = CONCAT(@pl.ZUS.RepHeader, '<naglowek.KEDU><program><producent>Asseco Poland S.A.</producent><symbol>Płatnik</symbol><wersja>901001</wersja></program></naglowek.KEDU>\n');
	
END IF; -- IF (_MODE = 'insert.KEDU.header')

/* {II blok w ZUA, ZZA, ZCA; RCA, RZA }
  procedure WstawDaneIdentPlatnikaSkl(aSL: TStringList); */
IF (_MODE = 'insert.payer.data') THEN

	/* <xs:complexType name="t_DIPL">
    <xs:sequence>
      <xs:element name="p1" type="t_NIP_10" minOccurs="0"/>
      <xs:element name="p2" type="t_REGON_14" minOccurs="0"/>
      <xs:element name="p3" type="t_PESEL_11" minOccurs="0"/>
      <xs:element name="p4" type="t_RodzajDokumentu_1" minOccurs="0"/>
      <xs:element name="p5" type="t_IdentyfikatorPlatnUbezp_9" minOccurs="0"/>
      <xs:element name="p6" type="t_NazwaSkrocona_31" minOccurs="0"/>
      <xs:element name="p7" type="t_Nazwisko_31" minOccurs="0"/>
      <xs:element name="p8" type="t_Imie_22" minOccurs="0"/>
      <xs:element name="p9" type="t_Data_DDMMRRRR_8" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>  */

	SET @pl.ZUS.RepPayerId = '';		
	SET @pl.ZUS.RepPayerId = '<II>';
	
		CALL _IReg_Get('DaneFirmy', 'NIP', 0, 'STRING', @DaneFirmy_NIP, 0); 
		SET @DaneFirmy_NIP = REPLACE(@DaneFirmy_NIP, '-', '');
		SET @pl.ZUS.RepPayerId = CONCAT(@pl.ZUS.RepPayerId, '<p1>', @DaneFirmy_NIP, '</p1>');  -- p1
		-- SET @pl.ZUS.RepPayerId = CONCAT(@pl.ZUS.RepPayerId, '</p1>');  -- p1
		
		CALL _IReg_Get('DaneFirmy', 'regon', 0, 'STRING', @DaneFirmy_REGON, 0); 
		SET @pl.ZUS.RepPayerId = CONCAT(@pl.ZUS.RepPayerId, '<p2>', @DaneFirmy_REGON,'</p2>');  -- p2
		
		CALL _IReg_Get('DaneFirmy', 'Nazwa_skrocona', 0, 'STRING', @DaneFirmy_NazwaSkr, '(brak danych)'); 
		SET @pl.ZUS.RepPayerId = CONCAT(@pl.ZUS.RepPayerId, '<p6>', @DaneFirmy_NazwaSkr,'</p6>');  -- p6
		
	SET @pl.ZUS.RepPayerId = CONCAT(@pl.ZUS.RepPayerId, '<II>\n');
	
END IF; -- IF (_MODE = 'insert.payer.data')

  

/*--------------
GenerujRSA

1. WstawRCA_RZA_RSA_poczatek
2.a. NaPodstNieob
2.b. NaPodstRozlChorob
3. WstawRCA_RZA_RSA_koniec

--------------*/

/*--------------
tryby uzywane dla IFDEF GEO_ADRESY
--------------*/

    IF (_MODE = 'pl.zus.tmpAdr') THEN
		DROP TEMPORARY TABLE IF EXISTS tmp_AMEL_prac; 
		
		CREATE TEMPORARY TABLE tmp_AMEL_prac 
		SELECT  o.GUID, Gmi_Str AS AMEL_Gmina, adr.nazwa_1 AS AMEL_Ulica, GEO.NrPos AS AMEL_NrDomu, 
			GEO.NrLoc AS AMEL_nrMieszkania, GEOM.Nazwa AS AMEL_Miejscowosc, GEO.zipcode AS AMEL_KodPocztowy, GEOM.Nazwa AS AMEL_Poczta, 
			pow_str AS AMEL_Powiat, woj_str AS AMEL_Wojewodztwo  
		FROM osoby o 
		LEFT JOIN geo_int_adr_link GEO ON GEO.AdrTyp LIKE ';MEL;' AND GEO.objTable='osoby' AND GEO.objGUID=o.GUID 
		LEFT JOIN v_geo_int_miejsca GEOM ON GEOM.ID = GEO.geo_int_miejsca_ID 
		LEFT JOIN `geo_int_adresy` adr ON adr.id = GEO.geo_int_adresy_ID 
		WHERE o.GUID = _Key;

		DROP TEMPORARY TABLE IF EXISTS tmp_AZAM_prac; 
		
		CREATE TEMPORARY TABLE tmp_AZAM_prac 
		SELECT  o.GUID, Gmi_Str AS AZAM_Gmina, adr.nazwa_1 AS AZAM_Ulica, GEO.NrPos AS AZAM_NrDomu, 
				GEO.NrLoc AS AZAM_nrMieszkania, GEOM.Nazwa AS AZAM_Miejscowosc, GEO.zipcode AS AZAM_KodPocztowy, GEOM.Nazwa AS AZAM_Poczta, 
				pow_str AS AZAM_Powiat, woj_str AS AZAM_Wojewodztwo  
		FROM osoby o 
		LEFT JOIN geo_int_adr_link GEO ON GEO.AdrTyp LIKE ';ZAM;' AND GEO.objTable='osoby' AND GEO.objGUID=o.GUID 
		LEFT JOIN v_geo_int_miejsca GEOM ON GEOM.ID = GEO.geo_int_miejsca_ID 
		LEFT JOIN `geo_int_adresy` adr ON adr.id = GEO.geo_int_adresy_ID 
		WHERE o.GUID= _Key;
	
		DROP TEMPORARY TABLE IF EXISTS tmp_AKOR_prac; 
		
		CREATE TEMPORARY TABLE tmp_AKOR_prac 
		SELECT  o.GUID, Gmi_Str AS AKOR_Gmina, adr.nazwa_1 AS AKOR_Ulica, GEO.NrPos AS AKOR_NrDomu, 
				GEO.NrLoc AS AKOR_nrMieszkania, GEOM.Nazwa AS AKOR_Miejscowosc, GEO.zipcode AS AKOR_KodPocztowy, GEOM.Nazwa AS AKOR_Poczta, 
				pow_str AS AKOR_Powiat, woj_str AS AKOR_Wojewodztwo  
		FROM osoby o 
		LEFT JOIN geo_int_adr_link GEO ON GEO.AdrTyp LIKE ';KOR;' AND GEO.objTable='osoby' AND GEO.objGUID=o.GUID 
		LEFT JOIN v_geo_int_miejsca GEOM ON GEOM.ID = GEO.geo_int_miejsca_ID 
		LEFT JOIN `geo_int_adresy` adr ON adr.id = GEO.geo_int_adresy_ID 
		WHERE o.GUID= _Key;
	
	END IF;
	
	/*
	Wywolanie danych do ZUA: 
	  CALL pl_zus('pl.zus.ZUA','Prac18','','','','','','','');
	*/
	IF (_MODE = 'pl.zus.ZUA') THEN
	
		CALL pl_zus('pl.zus.tmpAdr', _Key ,'','','','','','','');
		
		SELECT 
			O.GUID, O.Nazwisko, O.Imie1, O.Imie2, O.NrNIP, O.NrPesel, O.DataUrodzenia, O.Obywatelstwo, O.NazwiskoPanienskie, 
			IF(O.plec, 'M', 'K') AS plec, 
			IF((AZAM.AZAM_KodPocztowy <> AMEL.AMEL_KodPocztowy) or (AZAM.AZAM_Miejscowosc <> AMEL.AMEL_Miejscowosc) or 
			(AZAM.AZAM_Gmina <> AMEL.AMEL_Gmina) or (AZAM.AZAM_Gmina <> AMEL.AMEL_Gmina) or 
			(AZAM.AZAM_Ulica <> AMEL.AMEL_Ulica) or (AZAM.AZAM_NrDomu <> AMEL.AMEL_NrDomu) or 
			(AZAM.AZAM_nrMieszkania <> AMEL.AMEL_nrMieszkania), 1, 0) as roznicaAMEL_ZAM, 
			REPLACE(AZAM.AZAM_KodPocztowy, '-', '') AS AZAM_KodPocztowy, AZAM.AZAM_Miejscowosc, 
			AZAM.AZAM_GMINA AS Gmina, AZAM.AZAM_Ulica, REPLACE(UCASE(AZAM.AZAM_NrDomu), ' ', '') AS AZAM_NrDomu, 
			REPLACE(AZAM.AZAM_nrMieszkania, ' ', '') AS AZAM_nrMieszkania, 
			REPLACE(AKOR.AKOR_KodPocztowy, '-', '') AS AKOR_KodPocztowy, 
			AKOR.AKOR_Miejscowosc, AKOR.AKOR_Ulica, REPLACE(UCASE(AKOR.AKOR_NrDomu), ' ', '') AS AKOR_NrDomu, 
			REPLACE(AKOR.AKOR_nrMieszkania, ' ', '') AS AKOR_nrMieszkania, 
			SPACE(14) AS REGON, SPACE(31) AS NazwaFirmy, 
			Z.ZgloszZUA_ZZA, Z.KodTytuluUbezpieczenia, Z.DataPowstObowUbezpSpol, Z.DataPowstObowUbezpZdrow, 
			Z.PodlEmerytalneUbzp, Z.PodlRentoweUbzp, Z.PodlChorobUbzp, Z.PodlWypadkUbzp, 
			Z.Dobr_UbzpEmeryt, Z.Dobr_UbzpRentowe, Z.Dobr_UbzpChorobowe, Z.Dobr_UbzpZdrowotne, 
			Z.Dobr_UemerytOd, Z.Dobr_UrentoweOd, Z.Dobr_UchorobOd, Z.Dobr_UzdrowotneOd, 
			Z.KwotaPierwszejSkladkiUbzpZdrow, Z.Dobr_UzdrowotneOd, Z.JestSpokrewniona, Z.WspolneGospDomoweZprac, 
			Z.KodStopniaNiezdDopracy, Z.OkresNiezdolnOd, Z.OkresNiezdDo, Z.NiezdolnDoPracyCzasNieokr, 
			Z.KodStanowPracyGorniczej, Z.PracGorniczaOd, Z.PracaGorniczaDo, Z.GornikCzasNieokr, 
			Z.KodKasyChorych, Z.DataPrzystapDoKasy, Z.NiepelnosprOd, Z.NiepelnosprDo, Z.NipelnosprCzasNieokr, Z.KodPokrewienstwaZpracod, 
			P.Etat_L, P.Etat_M, P.PIT_PESEL_NIP, 
			LEFT(' ',10) as KodGUS, 
			W.symbol AS KodWykszt, 
			Z.KodPracyWszczegWarunkach, Z.PracaWszczegWarOd, Z.PracaWszczegWarDo, Z.SczegWarunCzasNieokr, 
			REPEAT('0', 16) AS ID_SYSTEMOWY,  REPEAT('0', 16) AS NR_WER_DANYCH_ID, REPEAT('0', 2) AS POZIOM_UFNOSCI_ID, 
			LEFT(' ',10) AS DowodOsobisty, 
			LEFT(' ',10) AS Paszport 
			FROM osoby O
			LEFT JOIN tmp_AZAM_prac AZAM on AZAM.GUID = O.GUID
			LEFT JOIN tmp_AMEL_prac AMEL on AMEL.GUID = O.GUID
			LEFT JOIN tmp_AKOR_prac AKOR on AKOR.GUID = O.GUID
			LEFT JOIN Pracownicy P ON O.GUID = P.GUID 
			-- LEFT JOIN gminy G ON O.AZAM_GminaDzielnica = G.idn 
			LEFT JOIN zawody ZW ON P.ZawodWykonGUS = ZW.idn 
			LEFT JOIN wyksztalcenie W ON P.Wyksztalcenie = W.idn 
			LEFT JOIN pracownicy_ZUS Z ON O.GUID = Z.GUID_Pracownika 
			WHERE O.GUID = _Key
		;	
	
	END IF;	--	IF _MODE = 'pl.zus.ZUA'

	/*
	Wywolanie danych do ZZA: 
	  CALL pl_zus('pl.zus.ZZA','Prac18','','','','','','','');
	*/
	IF (_MODE = 'pl.zus.ZZA') THEN
	
		CALL pl_zus('pl.zus.tmpAdr', _Key ,'','','','','','','');
		
		SELECT 
			O.GUID, O.Nazwisko, O.Imie1, O.Imie2, O.NrNIP, O.NrPesel, O.DataUrodzenia, O.Obywatelstwo, O.NazwiskoPanienskie, 
			IF(O.plec, 'M', 'K') AS plec, 
			IF((AZAM.AZAM_KodPocztowy <> AMEL.AMEL_KodPocztowy) or (AZAM.AZAM_Miejscowosc <> AMEL.AMEL_Miejscowosc) or 
			(AZAM.AZAM_Gmina <> AMEL.AMEL_Gmina) or (AZAM.AZAM_Gmina <> AMEL.AMEL_Gmina) or 
			(AZAM.AZAM_Ulica <> AMEL.AMEL_Ulica) or (AZAM.AZAM_NrDomu <> AMEL.AMEL_NrDomu) or 
			(AZAM.AZAM_nrMieszkania <> AMEL.AMEL_nrMieszkania), 1, 0) as roznicaAMEL_ZAM, 
			REPLACE(AZAM.AZAM_KodPocztowy, '-', '') AS AZAM_KodPocztowy, AZAM.AZAM_Miejscowosc, 
			AZAM.AZAM_GMINA AS Gmina, AZAM.AZAM_Ulica, REPLACE(UCASE(AZAM.AZAM_NrDomu), ' ', '') AS AZAM_NrDomu, 
			REPLACE(AZAM.AZAM_nrMieszkania, ' ', '') AS AZAM_nrMieszkania, 
			REPLACE(AKOR.AKOR_KodPocztowy, '-', '') AS AKOR_KodPocztowy, 
			AKOR.AKOR_Miejscowosc, AKOR.AKOR_Ulica, REPLACE(UCASE(AKOR.AKOR_NrDomu), ' ', '') AS AKOR_NrDomu, 
			REPLACE(AKOR.AKOR_nrMieszkania, ' ', '') AS AKOR_nrMieszkania, 
			SPACE(14) AS REGON, SPACE(31) AS NazwaFirmy, 
			IF(!ISNULL(O.NrSeriaDowoduOsobistego), REPLACE(O.NrSeriaDowoduOsobistego, ' ', ''), '') AS DowodOsobisty, 
			IF(!ISNULL(O.NrPaszportu), REPLACE(O.NrPaszportu, ' ', ''), '') AS Paszport, 
			Z.ZgloszZUA_ZZA, Z.KodTytuluUbezpieczenia, Z.DataPowstObowUbezpSpol, Z.DataPowstObowUbezpZdrow,
			Z.Dobr_UemerytOd, Z.Dobr_UrentoweOd, Z.Dobr_UchorobOd, Z.Dobr_UzdrowotneOd, 
			Z.KodKasyChorych, Z.DataPrzystapDoKasy, Z.NiepelnosprOd, Z.NiepelnosprDo, Z.NipelnosprCzasNieokr,
			Z.KwotaPierwszejSkladkiUbzpZdrow, Z.Dobr_UzdrowotneOd, Z.JestSpokrewniona, Z.WspolneGospDomoweZprac,
			IFNULL(za.KodGUS,'') AS KodGUS
			FROM osoby O 
			INNER JOIN Pracownicy p ON O.GUID = p.GUID 
			LEFT JOIN pracownicy_ZUS Z ON O.GUID = Z.GUID_Pracownika
			LEFT JOIN zawody za ON za.idn = p.ZawodWykonGUS
    	LEFT JOIN tmp_AZAM_prac AZAM on AZAM.GUID = O.GUID
			LEFT JOIN tmp_AMEL_prac AMEL on AMEL.GUID = O.GUID
			LEFT JOIN tmp_AKOR_prac AKOR on AKOR.GUID = O.GUID
	  		WHERE O.GUID = _Key
		;
	END IF;	--	IF _MODE = 'pl.zus.ZZA'
		

	-- CALL pl_zus('ZUS_ERP7','{64DBA549-458F-4F0E-9CDE-D8BCECB39810}','','','','','','','');
/*
SELECT o.nazwisko, o.imiona, r.*
FROM rp7 r
INNER JOIN osoby o ON o.guid = r.guid_pracownika
WHERE guid_pracownika='{5B6C475F-0C8C-4449-BF66-B250BEE50FDF}';

SELECT * FROM osoby WHERE nazwisko = 'stormann'; guid='{516F0EB5-E901-405C-BBA0-9A35041C36EF}';

SELECT * FROM rp7_po; WHERE guid_pracownika='{5B6C475F-0C8C-4449-BF66-B250BEE50FDF}';

CALL pl_zus('ZUS_ERP7','{CE9E26CC-712A-4763-986D-274506D4D094}','','','','','','','');
CALL pl_zus('ZUS_ERP7_2','{71124E32-2DF6-466B-BEA9-F01F7E58284B}','','','','','','','');
*/
	IF (_MODE = 'ZUS_ERP7') THEN

		SET _GUID = _Key;
		SELECT GUID_pracownika INTO _GUID_pracownika FROM rp7 WHERE GUID = _GUID;
		CALL pl_pres_zlecenia('ADRESY_PRAC',_GUID_pracownika,'','','','','scenariusz');

		select
		'pl_zus_ZUS_ERP7' as pl_zus_ZUS_ERP7,
			2024 as rok, -- tutaj chyba rok obrachunkowy jest potrzebny
			IF(o.plec = 0,'Pani','Pan') AS plec,
			IF(o.plec = 0,'Panią','Panem') AS plec2,
			IF(o.plec = 0,'Pani','Pana') AS plec3,
			IF(o.plec = 0,'a','y') AS ay,
			o.Nazwisko, o.Imiona,
			o.DataUrodzenia,
			(SELECT valuea FROM IReg WHERE idkey = 'Pelna_nazwa' LIMIT 1) AS FirmaNazwa,
			(SELECT valuea FROM IReg WHERE idkey = 'Address Info' LIMIT 1) AS FirmaAdres,
			(SELECT valuea FROM IReg WHERE idkey = 'NIP' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaNIP,
			(SELECT valuea FROM IReg WHERE idkey = 'Miasto' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaMiasto,
			CONCAT((SELECT valuea FROM IReg WHERE idkey = 'Regon' LIMIT 1),' - ',(SELECT valuea FROM IReg WHERE idkey = 'EKD' LIMIT 1)) AS FirmaRegonEkd,
			(SELECT valuea FROM IReg WHERE idkey = 'Miasto_Sadu' LIMIT 1) AS Miasto_Sadu,
			(SELECT valuea FROM IReg WHERE idkey = 'NKP' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaNKP,
		-- r.*,
		o.NazwiskoPanienskie as NazwiskoRodowe,
		o.NrPesel, o.plec,
		p.DataZatrudnieniawzakl, IF(IFNULL(r.WynZaPraceDo,'')='',p.DataZwolnienia,r.WynZaPraceDo) as DataZwolnienia_P, p.UmowaDo, r.ostatnie_stanowisko as stanowisko,
  r.okres_zatrudnienia,
  r.uwagi,
  r.DataWystawienia,
  r.DoDInfo,
  r.zalacznik,
  if(r.t_niezdolnosc = 0, 'NIE', 'TAK') as t_niezdolnosc,
  if(r.t_zasilek = 0, 'NIE', 'TAK') as t_zasilek,
  if(r.t_chorobowy = 0, 'NIE', 'TAK') as t_chorobowy,
  if(r.t_opiekunczy = 0, 'NIE', 'TAK') as t_opiekunczy,
  if(r.t_rehabilit = 0, 'NIE', 'TAK') as t_rehabilit,
  if(r.t_urlopbezplatny = 0, 'NIE', 'TAK') as t_urlopbezplatny,
  if(r.t_urlopwychowawczy = 0 AND zalacznik not like '%macierz%', 'NIE', 'TAK') as t_urlopwychowawczy,
  if(r.t_chorobowy = 0 and r.t_opiekunczy = 0 and zalacznik not like '%macierz%', 'NIE', 'TAK') as t_zas_razem,

  case when  LOCATE('leczenie domowe', zalacznik) >0  then
  concat('leczenie domowe:', SUBSTRING_INDEX(SUBSTRING_INDEX(zalacznik, 'leczenie domowe:', -1), ', \r', 1))
  else '' END AS sw_niezd,

  case when  LOCATE('urlop wychowawczy', zalacznik) >0  then
  concat('urlop wychowawczy:', SUBSTRING_INDEX(SUBSTRING_INDEX(zalacznik, 'urlop wychowawczy:', -1), ', \r', 1))
  else '' END AS sw_wych,

  case when  LOCATE('świadczenie rehabilitacyjne', zalacznik) >0  then
  concat('swiadczenie rehabilitacyjne:', SUBSTRING_INDEX(SUBSTRING_INDEX(zalacznik, 'świadczenie rehabilitacyjne:', -1), ', \r', 1))
  else '' END AS sw_reh,

  case when  LOCATE('urlop bezpłatny', zalacznik) >0  then
  left(concat('urlop bezpłatny:', SUBSTRING_INDEX(SUBSTRING_INDEX(zalacznik, 'urlop bezpłatny:', -1), ', \r', 1)),250)
  else '' END AS sw_bezp,

  case when  LOCATE('urlop macierzyński', zalacznik) >0  then
  left(concat('zasiłek macierzyński:', SUBSTRING_INDEX(SUBSTRING_INDEX(zalacznik, 'urlop macierzyński:', -1), ', \r', 1)),250)
  else '' END AS sw_mac,

  ifnull((select group_concat(concat(imie, ' data ur. ',dataurodzenia)) from dzieci where guid_pracownika = o.GUID), 'Brak') as dzieci,
		t.*
		FROM rp7 r
		INNER JOIN osoby o ON o.GUID = r.GUID_pracownika
		INNER JOIN Pracownicy p ON p.GUID=o.GUID
		left JOIN temp_osoba_adres t ON t.GUID_pracownika = o.GUID
		WHERE r.GUID = _GUID;

	END IF; -- IF (_MODE = 'ZUS.ERP7')

	-- sekcja z sama tabelka na wydruku
	IF (_MODE = 'ZUS_ERP7_2') THEN
		SET _GUID = _Key;


		select 'pl_zus_ZUS_ERP7_2' as pl_zus_ZUS_ERP7_2,
		rp.*,
		(SklStKwota + SklZmKwota + SklInnyKwota + SklNatKwota + SwiadczUbezpSpolKwota) as SklSuma,
		SklStKwota + SklZmKwota as kol_2, -- suma skladnikow stalych i zmiennych
		SwiadczUbezpSpolKwota as kol_3, -- zasilki chorobowy, opiekunczy, macierzynski
		0 as kol_4, -- zasilek rehab, dodatek wyrownawczy - a skad to wziac?

		-- SklInnyKwota as kol_5, -- inne zasilki, ale tak naprawde do wyjasnienia, co tam ma byc
		0 as kol_5,

		-- Kwota as kol_6, -- kwota przychodu za danych rok
  SklInnyKwota as kol_6, -- inne zasilki - wg Edyty kwoty przekroczen

		0 as kol_71, -- inne naleznosi, koore nie zostaly ujete w poprzednich kolumnach, o ile sa w podstawie skladek - kwota
		'' as kol_72 --  j.w - rodzaj

		from rp7_po rp
		where rp.GUIDng = _GUID
		order by rp.rok
		;

	END IF;

 -- tutaj pewnie trzeba zebrac informacje o przekroczeniach limitow ZUS - gdzie to może być?
	IF (_MODE = 'ZUS_ERP7_3') THEN
  SET _GUID = _Key;

		select _MODE as ZUS_ERP7_3,
		-- replace(BylLimit, 'LIMIT ', '') as BylLimit,
		BylLimit,
		_varInt(SUBSTRING_INDEX(replace(BylLimit, 'LIMIT ', ''), '/', -1)) as rok,
		_varInt(SUBSTRING_INDEX(replace(BylLimit, 'LIMIT ', ''), '/', 1)) as mc
		FROM rp7_po WHERE byllimit <> '' AND GUIDng = _GUID
		ORDER BY rok, mc
		;

	END IF;


END$$

DELIMITER ;
