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

DROP PROCEDURE IF EXISTS `pl_pres_dodmiesz`$$
	
CREATE DEFINER=`root`@`localhost` PROCEDURE `pl_pres_dodmiesz`(
		IN _MODE VARCHAR(38), 
		IN _PracGUID VARCHAR(38),
		IN _Rok INT,
		IN _Msc INT,
		IN _Ile INT,
		IN _WHERE_SQL TEXT, 
		IN _Param_A VARCHAR(50),
		IN _Param_B VARCHAR(50)
)
SPROC: BEGIN
	DECLARE _SQLText TEXT DEFAULT '';
	DECLARE _SQLTextPZ TEXT DEFAULT '';
	DECLARE _PZ TEXT;
	DECLARE _poz_rok, _poz_miesiac INTEGER;
	DECLARE _guidy VARCHAR(255);
	DECLARE _done BOOL DEFAULT FALSE;
	DECLARE _data_pocz, _data_konc VARCHAR(10);
	/*	
	DECLARE _c_cursor CURSOR FOR			
	SELECT  
		rok, miesiac, guidy
	FROM 
		tmp_zmn_brutto; */
	
				
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET _done = TRUE;			
	
/*	
CALL pl_pres_dodmiesz('Clear','{F05CF880-771A-4C2E-A598-D26281D1C656}',2021,2,3,'','datawyplaty','');
CALL pl_pres_dodmiesz('PrepareData','{F05CF880-771A-4C2E-A598-D26281D1C656}',2021,2,3,'','datawyplaty','');
CALL pl_pres_dodmiesz('PrepareData','{F05CF880-771A-4C2E-A598-D26281D1C656}',2021,2,3,'','','');

CALL pl_pres_dodmiesz('SELECT','{F05CF880-771A-4C2E-A598-D26281D1C656}',2021,2,3,'','','');
SELECT @_SQLText, @WhereX, @_SQLTextPZ, @data_pocz;

SELECT * FROM tmp_zaswiadczenie3;
SELECT * FROM tmp_zaswiadczenie3pz;
*/
	
	IF (_MODE = 'Clear') THEN
		drop temporary table IF EXISTS tmp_zaswiadczenie3;
		drop temporary table IF EXISTS tmp_zaswiadczenie3pz;		
		drop temporary table IF EXISTS tmp_zmn_brutto;
	END IF;
	
	SET _data_pocz = date_add(concat(_Rok,'-',_Msc,'-01'), interval - (_Ile-1) month);
	SET _data_konc = last_day(concat(_Rok,'-',_Msc,'-01'));
	
	set @data_pocz = _data_pocz;
	
	IF (_MODE = 'PrepareData') THEN
		drop temporary table IF EXISTS tmp_zaswiadczenie3pz;
		CREATE TEMPORARY TABLE tmp_zaswiadczenie3pz (
		datawyplaty date NOT NULL DEFAULT '0000-00-00',
		rok int DEFAULT NULL,
		miesiac int DEFAULT NULL,
		Imiona varchar(45) DEFAULT '',
		Nazwisko varchar(30) DEFAULT '',
		KosztyUzyskania double(21,4) DEFAULT NULL,
		SumaBrutto double(21,4) DEFAULT NULL,
		SumaPotracen double(21,4) DEFAULT NULL,
		SumaNetto double(21,4) DEFAULT NULL,
		SumaEmerytalna double(21,4) DEFAULT NULL,
		SumaRentowa double(21,4) DEFAULT NULL,
		SumaChorobowa double(21,4) DEFAULT NULL,
		PodstawaPPD int DEFAULT NULL,
		OkresUmowy varchar(20) DEFAULT NULL,
		Zaliczka double(21,4) DEFAULT NULL,
		StanowiskoStr varchar(80) DEFAULT NULL,
		SumaZdrowotnaPobr double(21,4) NOT NULL,
		SumaZdrowotnaOdlicz double(21,4) NOT NULL,
		Potracenia double(21,4) NOT NULL,
		UmowaOd date DEFAULT NULL,
		UmowaDo date DEFAULT NULL,
		CzyObecniePracuje int DEFAULT NULL,
		Plec int NOT NULL DEFAULT 0,
		NrPesel varchar(11) DEFAULT NULL,
		osobaGUID varchar(38) NOT NULL DEFAULT '',
		TypOkresuUmowy int NOT NULL DEFAULT 2,
		DataZatrudnieniawzakl date DEFAULT NULL,
		OkrProbnyDo date DEFAULT NULL,
		DataZwolnienia date DEFAULT NULL,
		ZastepstwoDo date DEFAULT NULL,
		UmowaDo2 date DEFAULT NULL,
		UNIQUE KEY rok (rok,miesiac)
		) DEFAULT CHARSET=cp1250 COLLATE=cp1250_general_ci
		;

		-- 1. dane z plac 
		SET _SQLText = '
		create temporary table tmp_zaswiadczenie3 
			SELECT  
				P.datawyplaty, 
				GROUP_CONCAT(''"'',P.GUID, ''"'') AS guidy,
				#rok_msc#,
				O.Imiona,	O.Nazwisko, 
				SUM(IFNULL(P.KosztyUzyskania,0)) as KosztyUzyskania, 
				SUM(IFNULL(P.KwotaBrutto + IF(P.ZwolnienieOdPodatku26Lat = 1,0,P.SklFEmerytalnyPracow + P.SklFRentowyPracow + P.SklFChorobowyPracow),0)) as SumaBrutto,  
-- 			SUM(IFNULL(IF(P.ZwolnienieOdPodatku26Lat = 1,0,P.SklFEmerytalnyPracow + P.SklFRentowyPracow + P.SklFChorobowyPracow),0)) as SumaPotracen, 
				SUM(IFNULL(P.SklFEmerytalnyPracow + P.SklFRentowyPracow + P.SklFChorobowyPracow,0) ) as SumaPotracen, 
				SUM(IFNULL(P.KwotaNetto,0) ) as SumaNetto, 
				SUM(P.SklFEmerytalnyPracow ) as SumaEmerytalna, 
				SUM(P.SklFRentowyPracow ) as SumaRentowa, 
				SUM(P.SklFChorobowyPracow ) as SumaChorobowa, 
				SUM(P.PodstawaPPD) as PodstawaPPD, 
				CASE WHEN (Pr.TypOkresuUmowy)=1 THEN "na czas określony"  
					WHEN (Pr.TypOkresuUmowy)=2 THEN "na czas nieokreślony" 
					WHEN (Pr.TypOkresuUmowy)=3 THEN "na okres próbny" 
					WHEN (Pr.TypOkresuUmowy)=4 THEN "na okres zastępstwa" 
				END as OkresUmowy, 
				SUM(P.Zaliczka ) as Zaliczka, 
				(select S.stanowisko from stanowiska S where S.GUID=Pr.stanowisko) as StanowiskoStr, 
				SUM(SklKasaChorychPracowPobr) as SumaZdrowotnaPobr, -- WyplZUS_SklZdrPobr ???
				SUM(SklKasaChorOdlicz) as SumaZdrowotnaOdlicz,  -- WyplZUS_SklZdrOdl ???
				((SELECT SUM(ps.kwota + ps.ZmniejszZwieksz) as wynik FROM place_skladniki ps  WHERE ps.RodzajSkladnika=4 and ps.GUID_zapisu_placowego=P.GUID)+  (select SUM(Kwota+ZmniejszZwieksz) as osoba from place_skladniki 
      where GUID_definicja_skladnika_placy ="C_15" and GUID_zapisu_placowego=P.GUID) +  (select SUM(Kwota+ZmniejszZwieksz) as Kwota from place_skladniki 
      where GUID_definicja_skladnika_placy ="C_19" and GUID_zapisu_placowego=P.GUID) +  (select SUM(Kwota+ZmniejszZwieksz) as Kwota from place_skladniki where GUID_definicja_skladnika_placy ="C_16" and GUID_zapisu_placowego=P.GUID)     )  as Potracenia, 
				Pr.DataRozpoczeciaCiaglosci as UmowaOd, 
				Pr.UmowaDo as UmowaDo, 
				Pr.CzyObecniePracuje, 
				O.Plec,  
				O.NrPesel, 
				O.GUID as osobaGUID, 
				Pr.TypOkresuUmowy, 
				Pr.DataZatrudnieniawzakl, 
				Pr.OkrProbnyDo, 
				Pr.DataZwolnienia, 
				Pr.ZastepstwoDo, 
				Pr.UmowaDo as UmowaDo2
			FROM place P 
			JOIN osoby O on O.GUID=P.GUID_pracownika 
			JOIN Pracownicy Pr on Pr.GUID=P.GUID_pracownika 
			WHERE 
				P.GUID_pracownika= #prac#  and 
				#data# and 
				P.deleted=0 
			#GRP#	
			';
			SET @_SQLText00 =	_SQLText;				
/*
			IF (_Param_A = 'datawyplaty') THEN
				SET @WhereX = '(YEAR(P.datawyplaty)*12+MONTH(P.datawyplaty) between #rok#*12+#msc#-#ile#+1 AND #rok#*12+#msc#) ';
				SET @Rok_Msc = 'YEAR(P.datawyplaty) as rok, MONTH(P.datawyplaty) as miesiac';		
				SET @GRP = 'group by YEAR(P.datawyplaty), MONTH(P.datawyplaty) order by YEAR(P.datawyplaty) ASC, MONTH(P.datawyplaty) ASC';
			ELSE
				SET @WhereX = '(P.Rok*12+P.miesiac between #rok#*12+#msc#-#ile#+1 AND #rok#*12+#msc#) ';
				SET @Rok_Msc = 'P.rok as rok, P.miesiac as miesiac';				
				SET @GRP = 'group by P.rok, P.miesiac order by P.rok ASC, P.miesiac ASC';
			END IF;
*/
			IF (_Param_A = 'datawyplaty') THEN
				SET @WhereX = '(P.datawyplaty) between "#data_pocz#" AND "#data_konc#" ';
				SET @Rok_Msc = 'YEAR(P.datawyplaty) as rok, MONTH(P.datawyplaty) as miesiac';
				SET @GRP = 'group by YEAR(P.datawyplaty), MONTH(P.datawyplaty) order by YEAR(P.datawyplaty) ASC, MONTH(P.datawyplaty) ASC';
			ELSE
				SET @WhereX = 'concat(P.Rok,"-",LPAD(P.miesiac,2,"0"),"-01") between "#data_pocz#" AND "#data_konc#" ';
				SET @Rok_Msc = 'P.rok as rok, P.miesiac as miesiac';				
				SET @GRP = 'group by P.rok, P.miesiac order by P.rok ASC, P.miesiac ASC';
			END IF;

			
			
			
		SET _SQLText =	REPLACE(_SQLText, '#GRP#', IFNULL(@GRP,''));
		SET _SQLText =	REPLACE(_SQLText, '#data#', IFNULL(@WhereX,''));		
		SET _SQLText =	REPLACE(_SQLText, '#rok#', _Rok);
		SET _SQLText =	REPLACE(_SQLText, '#msc#', _Msc);
		SET _SQLText =	REPLACE(_SQLText, '#ile#', _Ile);
		SET _SQLText =	REPLACE(_SQLText, '#prac#', concat('"',_PracGUID,'"'));
		SET _SQLText =	REPLACE(_SQLText, '#rok_msc#', IFNULL(@Rok_Msc,''));
		SET _SQLText =	REPLACE(_SQLText, '#data_pocz#', _data_pocz);
		SET _SQLText =	REPLACE(_SQLText, '#data_konc#', _data_konc);
		
		SET @_SQLText =	_SQLText;
		
		CALL _ExecuteCmd(_SQLText, @Error);		

		alter table tmp_zaswiadczenie3 add unique (rok,miesiac);
		
		-- 1.b. -- #45385 od sumy brutto nalezy odjac te skladniki, ktore maja wylaczony przelacznik 'dodaj_do_zaswiadczen'
		
		drop temporary table IF EXISTS tmp_zmn_brutto;
		create temporary table tmp_zmn_brutto (
		rok integer,
		miesiac integer,
		guidy varchar(255),
		osobaguid varchar(38),
		kwota double(16,4)
		);
		insert into tmp_zmn_brutto
        select rok, miesiac, left(guidy, 255), osobaGUID, 0.00 
		from tmp_zaswiadczenie3;  
		
		-- update tmp_zmn_brutto set kwota = 0;
		
		BEGIN
		  DECLARE _c_cursor CURSOR FOR			
			SELECT  
				rok, miesiac, LEFT(guidy, 255) AS guidy
			FROM 
			tmp_zmn_brutto; 
				
		-- pojechac kursorem i po kolei liczyc sume skladnikow, nast. update tmp_zmn_brutto set kwota = @kwota
		SET _done = FALSE; SET @tmp.I = 0;
		OPEN _c_cursor;	
		loop1: LOOP
			FETCH _c_cursor INTO
				_poz_rok, _poz_miesiac, _guidy;
			IF _done THEN
				SET @guidy = 'brak';
					LEAVE loop1;
			ELSE				
					SET @guidy = _guidy;
				SET @tmp.I = @tmp.I + 1;
				set @_SQLText_poz = '
				select ifnull(sum(ps.kwota), 0) from place_skladniki ps, definicja_skladnika_placy dsp
				where ps.GUID_definicja_skladnika_placy = dsp.GUID AND ps.GUID_zapisu_placowego in (#_guidy#) 
					  AND ps.RodzajSkladnika IN (2) AND kwota > 0 AND dsp.dodaj_do_zaswiadczen=0
				into @zmn.kwota;	';
				
				SET @_SQLText_poz =	REPLACE(@_SQLText_poz, '#_guidy#', _guidy);
				CALL _ExecuteCmd(@_SQLText_poz, @Error);
				
				update tmp_zmn_brutto set kwota = @zmn.kwota where rok = _poz_rok and miesiac = _poz_miesiac ;
			END IF;
		END LOOP;
		CLOSE _c_cursor;	
		
		END;
		
		-- 2.  dane ze zlecen
		CALL _IReg_Get('', 'ZaswiadczenieMieszkaniowePZ', '0', 'BOOLEAN', @CzyPZ, 0); -- do licha, to jest jednak lipa
		if (@CzyPZ <> 0) THEN
		-- teraz pz do pozniejszej sumy
			SET _SQLTextPZ = ' 
			insert into tmp_zaswiadczenie3pz 
			SELECT  
				P.datawyplaty, 
				#rok_msc#,
				O.Imiona,	O.Nazwisko, 
				SUM(IFNULL(P.KosztyUzyskania,0)) as KosztyUzyskania, 
				SUM(IFNULL(P.KwotaBrutto + IF(P.ZwolnienieOdPodatku26Lat = 1,0,P.SklFemerytalnyZleceniob + P.SklFrentowyZleceniob + P.SklFchorobowyZleceniob),0)) as SumaBrutto, 
-- 			SUM(IFNULL(IF(P.ZwolnienieOdPodatku26Lat = 1,0,P.SklFemerytalnyZleceniob + P.SklFrentowyZleceniob + P.SklFchorobowyZleceniob),0)) as SumaPotracen, 
				SUM(IFNULL(P.SklFemerytalnyZleceniob + P.SklFrentowyZleceniob + P.SklFchorobowyZleceniob,0) ) as SumaPotracen, 
				SUM(IFNULL(P.KwotaNetto,0)) as SumaNetto, 
				SUM(IFNULL(P.SklFemerytalnyZleceniob,0)) as SumaEmerytalna, 
				SUM(IFNULL(P.SklFrentowyZleceniob,0)) as SumaRentowa, 
				SUM(IFNULL(P.SklFchorobowyZleceniob,0)) as SumaChorobowa, 
				_VarInt(0) as PodstawaPPD, 
				CASE WHEN (Pr.TypOkresuUmowy)=1 THEN "na czas określony"  
					WHEN (Pr.TypOkresuUmowy)=2 THEN "na czas nieokreślony" 
					WHEN (Pr.TypOkresuUmowy)=3 THEN "na okres próbny" 
					WHEN (Pr.TypOkresuUmowy)=4 THEN "na okres zastępstwa" 
				END as OkresUmowy, 
				SUM(IFNULL(P.Zaliczka,0)) as Zaliczka, 
				(select S.stanowisko from stanowiska S where S.GUID=Pr.stanowisko) as StanowiskoStr, 
				SUM(IFNULL(P.SklKasaChorychZleceniobPobr,0)) as SumaZdrowotnaPobr,
				0 as SumaZdrowotnaOdlicz, 
				0 as Potracenia, 
				Pr.DataRozpoczeciaCiaglosci as UmowaOd, 
				Pr.UmowaDo as UmowaDo, 
				Pr.CzyObecniePracuje, 
				O.Plec,  
				O.NrPesel, 
				O.GUID as osobaGUID , 
				Pr.TypOkresuUmowy, 
				Pr.DataZatrudnieniawzakl, 
				Pr.OkrProbnyDo, 
				Pr.DataZwolnienia, 
				Pr.ZastepstwoDo, 
				Pr.UmowaDo as UmowaDo2
			FROM prace_zlecone P
			JOIN osoby O on O.GUID = P.GUID_pracownika 
			JOIN Pracownicy Pr on Pr.GUID = O.GUID
			WHERE 
				P.GUID_pracownika= #prac#  and 
				#data# and 
				P.deleted=0 
			#GRP#	
			';
			
	/*		IF (_Param_A = 'datawyplaty') THEN
				SET @WhereX = '(YEAR(PZ.datawyplaty)*12+MONTH(PZ.datawyplaty) between #rok#*12+#msc#-#ile#+1 AND #rok#*12+#msc#) ';
				SET @Rok_Msc = 'YEAR(PZ.datawyplaty) as rok, MONTH(PZ.datawyplaty) as miesiac';
				
				SET @GRP = 'group by YEAR(PZ.datawyplaty), MONTH(PZ.datawyplaty) order by YEAR(PZ.datawyplaty) ASC, MONTH(PZ.datawyplaty) ASC';
			ELSE
				SET @WhereX = '(PZ.Rok*12+PZ.miesiac between #rok#*12+#msc#-#ile#+1 AND #rok#*12+#msc#) ';
				SET @Rok_Msc = 'PZ.rok as rok, PZ.miesiac as miesiac';
				
				SET @GRP = 'group by PZ.rok, PZ.miesiac order by PZ.rok ASC, PZ.miesiac ASC';
			END IF;  */
			
		SET _SQLTextPZ =	REPLACE(_SQLTextPZ, '#GRP#', @GRP);
		SET _SQLTextPZ =	REPLACE(_SQLTextPZ, '#data#', @WhereX);
		SET _SQLTextPZ =	REPLACE(_SQLTextPZ, '#rok#', _Rok);
		SET _SQLTextPZ =	REPLACE(_SQLTextPZ, '#msc#', _Msc);
		SET _SQLTextPZ =	REPLACE(_SQLTextPZ, '#ile#', _Ile);
		SET _SQLTextPZ =	REPLACE(_SQLTextPZ, '#prac#', concat('"',_PracGUID,'"'));
		SET _SQLTextPZ =	REPLACE(_SQLTextPZ, '#rok_msc#', @Rok_Msc);
		SET _SQLTextPZ =	REPLACE(_SQLTextPZ, '#data_pocz#', _data_pocz);
		SET _SQLTextPZ =	REPLACE(_SQLTextPZ, '#data_konc#', _data_konc);
				
		SET @_SQLTextPZ =	_SQLTextPZ;
		SET @_SQLTextPZ0 =	_SQLTextPZ;
		CALL _ExecuteCmd(_SQLTextPZ, @Error);

		-- alter table tmp_zaswiadczenie3pz add unique (rok,miesiac);
						
		END IF;
		
	END IF;

	
	
	IF (_MODE = 'SELECT') THEN
	
	/* DROP TEMPORARY TABLE IF EXISTS tmp_zaswiadczenie3pz1;
	  CREATE TEMPORARY TABLE tmp_zaswiadczenie3pz1
		SELECT * FROM tmp_zaswiadczenie3pz;   */

		IF @CzyPZ = 1 THEN
		 SET _PZ = 'LEFT JOIN tmp_zaswiadczenie3pz PZ ON O.GUID=PZ.osobaGUID and z.rok=PZ.rok and z.miesiac=PZ.miesiac';
		ELSE
			SET _PZ = '';
		END IF;

		DROP TEMPORARY TABLE IF EXISTS  okresy_3m;
		CREATE TEMPORARY TABLE okresy_3m 
		(lp INTEGER,
		osobaguid VARCHAR(38),
		rok INTEGER,
		miesiac INTEGER);
		
		SET @lp=0;
		SET @rok=_Rok;
		SET @miesiac=_Msc+1;
		SET @ile = _Ile;
		
		WHILE @lp < _ile DO
			SET @data = date_add(_data_pocz, interval @lp month);
			-- INSERT INTO okresy_3m SELECT @lp:=@lp+1, _PracGUID,@rok, @miesiac:=@miesiac-1;
			INSERT INTO okresy_3m SELECT @lp:=@lp+1, _PracGUID, year(@data), month(@data);
		END WHILE;
		
	DROP temporary table if exists tmp_zaswiadczenie3_wydruk;
		SET _SQLText = '
			create temporary table tmp_zaswiadczenie3_wydruk
				SELECT  
				"pl_pres_dodmiesz" as pl_pres_dodmiesz,
				#rok_msc#,
				O.Imiona, O.Nazwisko, 
				IFNULL(P.KosztyUzyskania,0)+IFNULL(PZ.KosztyUzyskania,0) as KosztyUzyskania, 
				-- IFNULL(P.datawyplaty,0)+IFNULL(PZ.datawyplaty,0) as datawyplaty, 
				IFNULL(P.SumaBrutto,0) + IFNULL(PZ.SumaBrutto,0) - IFNULL(b.kwota, 0) as SumaBrutto, 
				IFNULL(P.SumaPotracen,0)+IFNULL(PZ.SumaPotracen,0) as SumaPotracen, 
				IFNULL(P.SumaNetto,0)+IFNULL(PZ.SumaNetto,0) as SumaNetto, 
				IFNULL(P.SumaEmerytalna,0)+IFNULL(PZ.SumaEmerytalna,0) as SumaEmerytalna, 
				IFNULL(P.SumaRentowa,0)+IFNULL(PZ.SumaRentowa,0) as SumaRentowa, 
				IFNULL(P.SumaChorobowa,0)+IFNULL(PZ.SumaChorobowa,0) as SumaChorobowa, 
				P.PodstawaPPD, 
				CASE WHEN (Pr.TypOkresuUmowy)=1 THEN "na czas określony"  WHEN (Pr.TypOkresuUmowy)=2 THEN "na czas nieokreślony" WHEN (Pr.TypOkresuUmowy)=3 THEN "na okres próbny" WHEN (Pr.TypOkresuUmowy)=4 THEN "na okres zastępstwa"  END as OkresUmowy, 
				IFNULL(P.Zaliczka,0)+IFNULL(PZ.Zaliczka,0) as Zaliczka,
				(select S.stanowisko from stanowiska S where S.GUID=Pr.stanowisko) as StanowiskoStr, 

				IFNULL(P.SumaZdrowotnaPobr,0)+IFNULL(PZ.SumaZdrowotnaPobr,0) as SumaZdrowotnaPobr,

				P.SumaZdrowotnaOdlicz, P.Potracenia,
				Pr.DataRozpoczeciaCiaglosci as UmowaOd, Pr.UmowaDo as UmowaDo, Pr.CzyObecniePracuje,  O.Plec,  O.NrPesel, O.GUID as osobaGUID , 
				Pr.TypOkresuUmowy, Pr.DataZatrudnieniawzakl, Pr.OkrProbnyDo, Pr.DataZwolnienia, Pr.ZastepstwoDo, Pr.UmowaDo as umowaDo2 
				FROM osoby O
				LEFT JOIN okresy_3m z ON O.guid=z.osobaguid 
				LEFT JOIN tmp_zaswiadczenie3pz PZ ON O.GUID=PZ.osobaGUID and z.rok=PZ.rok and z.miesiac=PZ.miesiac
				LEFT JOIN tmp_zaswiadczenie3 P ON O.GUID=P.osobaGUID and z.rok=P.rok and z.miesiac=P.miesiac
				LEFT JOIN tmp_zmn_brutto b ON   O.GUID = b.osobaGUID and z.rok=b.rok and z.miesiac=b.miesiac
				LEFT JOIN Pracownicy Pr ON Pr.GUID=O.GUID 								
				WHERE Pr.GUID= #prac#
				and #data# 				
			order by Rok ASC, Miesiac ASC				
		';

		/* 
				FROM tmp_zaswiadczenie3 P 
				LEFT JOIN tmp_zaswiadczenie3pz PZ ON PZ.rok=P.rok and PZ.miesiac=P.miesiac and P.osobaGUID=PZ.osobaGUID
				LEFT JOIN tmp_zmn_brutto b ON b.rok=P.rok and b.miesiac=P.miesiac and P.osobaGUID = b.osobaGUID
				LEFT JOIN osoby O on O.GUID=P.osobaGUID 
				LEFT JOIN Pracownicy Pr on Pr.GUID=P.osobaGUID 
				WHERE P.osobaGUID= #prac#
				and #data# 				
			order by Rok ASC, Miesiac ASC
		*/
/*		
			IF (_Param_A = 'datawyplaty') THEN
				SET @WhereX = '(YEAR(ifnull(P.datawyplaty,PZ.datawyplaty))*12+MONTH(ifnull(P.datawyplaty,PZ.datawyplaty)) between #rok#*12+#msc#-#ile#+1 AND #rok#*12+#msc#) ';
				SET @Rok_Msc = 'YEAR(ifnull(P.datawyplaty,PZ.datawyplaty)) as rok, MONTH(ifnull(P.datawyplaty,PZ.datawyplaty)) as miesiac';
			ELSE
				SET @WhereX = '(ifnull(P.Rok, PZ.Rok)*12+ifnull(P.miesiac, PZ.miesiac) between #rok#*12+#msc#-#ile#+1 AND #rok#*12+#msc#) ';
				SET @Rok_Msc = 'ifnull(P.rok, PZ.Rok) as rok, ifnull(P.miesiac, PZ.miesiac) as miesiac';
			END IF;
			*/
			
			IF (_Param_A = 'datawyplaty') THEN
				SET @WhereX = '(P.datawyplaty between "#data_pocz#" AND "#data_konc#" OR
												PZ.datawyplaty between "#data_pocz#" AND "#data_konc#" )';
				SET @Rok_Msc = 'YEAR(ifnull(P.datawyplaty,PZ.datawyplaty)) as rok, MONTH(ifnull(P.datawyplaty,PZ.datawyplaty)) as miesiac';
			ELSE
				SET @WhereX = '(concat(P.Rok,"-",LPAD(P.miesiac,2,"0"),"-01") between "#data_pocz#" AND "#data_konc#" OR
												concat(PZ.Rok,"-",LPAD(PZ.miesiac,2,"0"),"-01") between "#data_pocz#" AND "#data_konc#" )';
				SET @Rok_Msc = 'ifnull(P.rok, PZ.Rok) as rok, ifnull(P.miesiac, PZ.miesiac) as miesiac';
			END IF;
			

			
		SET _SQLText =	REPLACE(_SQLText, '#data#', @WhereX);
		SET _SQLText =	REPLACE(_SQLText, '#rok#', _Rok);
		SET _SQLText =	REPLACE(_SQLText, '#msc#', _Msc);
		SET _SQLText =	REPLACE(_SQLText, '#ile#', _Ile);
		SET _SQLText =	REPLACE(_SQLText, '#prac#', CONCAT('"',_PracGUID,'"'));
		SET _SQLText =	REPLACE(_SQLText, '#rok_msc#', @Rok_Msc);
		SET _SQLText =	REPLACE(_SQLText, '#data_pocz#', _data_pocz);
		SET _SQLText =	REPLACE(_SQLText, '#data_konc#', _data_konc);

		
		SET @_SQLText =	_SQLText;
		CALL _ExecuteCmd(_SQLText, @Error);
		SELECT * FROM tmp_zaswiadczenie3_wydruk GROUP BY rok,miesiac;
		
	END IF;
	
END$$

DELIMITER ;
