 /*!40101 SET NAMES utf8 */;

DELIMITER $$

DROP PROCEDURE IF EXISTS `pl_pit11_new`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `pl_pit11_new`(
     IN _MODE 	VARCHAR(100),        
     IN _RecGUID  VARCHAR(38),
     IN _OdDnia VARCHAR(50),
     IN _DoDnia VARCHAR(50), 
     IN _Rok INT, 
     IN _Wystawiajacy VARCHAR(50), 
     IN _Param_A VARCHAR(50),
     IN _Param_B VARCHAR(50),
     IN _Param_C VARCHAR(50),
     IN _Param_D VARCHAR(50)
)

 /*
Testowanie _Param_D=TEST dane finalnie wpadają do tabeli tymczasowej 1. Lista.
 CALL pl_pit11_new('pit.new.prepare.list','FOR_ALL','_ODDnia','_DoDnia',2021,'PIT_11','','','','TEST');  

2. Wykonanie pitow 
CALL pl_pit11_new('pit.new.create','FOR_ALL','_ODDnia','_DoDnia',2021,'PIT_11','','','','TEST');  

Zestawienie porownujace z pitami z tegoi samego okresu _Param_D=1 - tylko rozne. 
CALL pl_pit11_new('porownanie','FOR_ALL','_ODDnia','_DoDnia',2021,'PIT_11','','','','1'); 
SELECT * FROM t_pit_porownanie ;

Dla pojedynczego ludzika
SET @pracguid='{56E1E131-24D8-4EDC-BB04-965D43169D61}'
CALL pl_pit8c('ADD_PIT', 2021,'{E302A048-98E2-4060-A094-63C558A2AD5C}','','','','');
SELECT 'old', p.* FROM `Pit_11_8B` p WHERE pracGUID=@pracguid AND YEAR(OkresOd)=2021
UNION
SELECT 'new', t.* FROM t_Pit_11_8B_test_ALL t WHERE  pracGUID=@pracguid
*/
SPROC: BEGIN



IF _MODE LIKE 'pit.new.show.list' THEN
	-- SET @zalogowana='cf23fedf8f020ff365c0e164a6251d76';
	SET @zalogowana=@session.Registration.UserGUID;

	DROP TEMPORARY TABLE  IF EXISTS t_osoby_pit11_ift1;



	CREATE TEMPORARY TABLE t_osoby_pit11_ift1
	(SELECT DISTINCT o.Nazwisko, o.Imiona, _varINT(1) AS Pit11, _varINT(0) AS IFT1,  p.GUID_pracownika ,P1.ugrpguid
	FROM place p
	LEFT JOIN osoby o ON o.GUID=p.GUID_pracownika
	JOIN Pracownicy P1 ON P1.GUID= o.GUID
	WHERE  YEAR(p.datawyplaty)= _ROK AND p.deleted=0 AND
	IF(_RecGUID NOT IN ('FOR_ALL',''),o.guid=_RecGUID,TRUE))
	-- and 	(SELECT COUNT(*) FROM grupy_osob grp WHERE  grp.grupaGUID=P1.ugrpGUID AND grp.osobaGUID= @zalogowana)>0 AND p.deleted=0 )
	UNION
		(SELECT DISTINCT o.Nazwisko,o.Imiona, _varINT(1) AS Pit11, _varINT(0) AS IFT1,  z.GUID_pracownika,P2.ugrpguid
		FROM prace_zlecone z LEFT JOIN osoby o ON o.GUID=z.GUID_pracownika  JOIN Pracownicy P2 ON P2.GUID= o.GUID
			WHERE YEAR(z.datawyplaty)=_ROK AND
			IF(_RecGUID NOT IN ('FOR_ALL',''),o.guid=_RecGUID,TRUE) AND
		--	(SELECT COUNT(*) FROM grupy_osob grp  WHERE grp.grupaGUID=P2.ugrpGUID AND grp.osobaGUID= @zalogowana)>0 AND
			(z.zazlecenie + z.ZasChorRazem + z.ZasMacierz + z.ZasOpiekun +z.ZasRehab + z.wynagr_prokurent) > 0
			AND z.RodzajRyczaltu IN ('7','8','9','10','11','12','13','14') AND z.deleted=0)
	UNION
		(SELECT DISTINCT o.Nazwisko,o.Imiona, _varINT(0) AS Pit11, _varINT(1) AS IFT1,  z.GUID_pracownika,P2.ugrpguid  FROM prace_zlecone z
		LEFT JOIN osoby o ON o.GUID=z.GUID_pracownika
		JOIN Pracownicy P2 ON P2.GUID= o.GUID
		WHERE YEAR(z.datawyplaty)=_ROK AND
		IF(_RecGUID NOT IN ('FOR_ALL',''),o.guid=_RecGUID,TRUE) AND
	--	(SELECT COUNT(*) FROM grupy_osob grp  WHERE grp.grupaGUID=P2.ugrpGUID AND grp.osobaGUID=@zalogowana)>0 AND
		(z.zazlecenie + z.ZasChorRazem + z.ZasMacierz + z.ZasOpiekun +z.ZasRehab + z.wynagr_prokurent) > 0 AND z.RodzajRyczaltu IN ('2') AND z.deleted=0)
	ORDER BY Nazwisko, Imiona;



	IF _Param_A='' THEN
		SELECT * FROM    t_osoby_pit11_ift1 t WHERE
		(SELECT COUNT(*) FROM grupy_osob grp  WHERE grp.grupaGUID=t.ugrpGUID AND grp.osobaGUID= @zalogowana)>0 ;
	END IF;



END IF;


IF _MODE LIKE 'pit.new.clear%' THEN

	SET @GUID_Prac=NULL,@26lat_start=NULL,@26lat_prac=NULL,@Zasilki=NULL,@Okres_od=NULL,@Okres_do=NULL,@limit_zakwaterowania=NULL,@ile=0;
	DROP TEMPORARY TABLE IF EXISTS t_place_pit  ;
	DROP TEMPORARY TABLE IF EXISTS t_koszty_zakwaterowania ;
	DROP TEMPORARY TABLE IF EXISTS t_pit_list;
	DROP TEMPORARY TABLE IF EXISTS t_pit_place;
	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec;
	DROP TEMPORARY TABLE IF EXISTS t_osoby_pit11_ift1;
	END IF;

IF _MODE LIKE 'pit.new.prepare.list' or 'pit.new.prepare_list' THEN



	CALL pl_pit11_new('pit.new.clear','','','','','','','','','');

	CREATE TEMPORARY TABLE t_pit_list (
	  GUID_pracownika VARCHAR(38),
	  nazwisko VARCHAR(30),
	  imie  VARCHAR(30),
	  Okres_od DATE,
	  Okres_do DATE,
	  err INT DEFAULT 0,
	  Status_opis  TEXT

	);





	CALL pl_pit11_new('pit.new.show.list',_RecGUID,'','',_ROK,'','PIT_11','','','');
	INSERT INTO t_pit_list (GUID_pracownika,nazwisko,imie,Okres_od,Okres_do)
	SELECT t.GUID_pracownika, t.Nazwisko, t.Imiona, '','' FROM t_osoby_pit11_ift1 t WHERE t.Pit11=1 ;--  AND
	--	(SELECT COUNT(*) FROM grupy_osob grp  WHERE grp.grupaGUID=t.ugrpGUID AND grp.osobaGUID= @zalogowana)>0 ;

--	END IF;



	ALTER TABLE t_pit_list

		ADD COLUMN US VARCHAR(38),
		ADD COLUMN PIT_PESEL_NIP INT,
		ADD COLUMN Podatnik_NIP  VARCHAR(14),
		ADD COLUMN rezydent INT,
		ADD COLUMN Podatnik_DataUrodzenia DATE ,
		ADD COLUMN Podatnik_Kraj VARCHAR(30) ,
		ADD COLUMN Podatnik_Wojewodztwo VARCHAR(30)   ,
		ADD COLUMN Podatnik_Powiat VARCHAR(30) ,
		ADD COLUMN Podatnik_Gmina  VARCHAR(30)   ,
		ADD COLUMN Podatnik_Ulica  VARCHAR(200)  ,
		ADD COLUMN Podatnik_NrDomu VARCHAR(10)    ,
		ADD COLUMN Podatnik_NrLokalu VARCHAR(10) ,
		ADD COLUMN Podatnik_Miejscowosc  VARCHAR(30)    ,
		ADD COLUMN Podatnik_KodPocztowy VARCHAR(10)  ,
		ADD COLUMN Podatnik_Poczta  VARCHAR(30),
		ADD COLUMN Podatnik_Swiadczenia  INT  ,
		ADD COLUMN f_wyn2 DOUBLE(16,4) NOT NULL DEFAULT 0,
		ADD COLUMN f_wyn2_opis VARCHAR(250),
		ADD COLUMN f_wyn3 DOUBLE(16,4) NOT NULL DEFAULT 0,
		ADD COLUMN f_wyn3_opis VARCHAR(250),
		ADD COLUMN f_wyn4 DOUBLE(16,4) NOT NULL DEFAULT 0,
		ADD COLUMN f_wyn4_opis VARCHAR(250),
		ADD COLUMN f_wyn_razem DOUBLE(16,4) NOT NULL DEFAULT 0,
		ADD COLUMN zagr_nrdok VARCHAR(50),
		ADD COLUMN zagr_rodzaj_ident INT DEFAULT 0,
		ADD COLUMN zagr_rodzaj_ident_str VARCHAR(50),
		ADD COLUMN Info_o_kosztach INT DEFAULT '-1',
		ADD COLUMN rok INT DEFAULT '-1',
		ADD COLUMN kod_US VARCHAR(10)
		;


SET @bylem_AS ='';
SET @US_AS ='';
 SET @err2_AS ='';
 SET @Status_opis_AS ='';
 SET @Concat_AS ='';
 SET @KodUS_AS ='';
 SET @Where_AS ='';
 SET @Kraj_AS ='';
 SET @Status_AS ='';

 SET @bylem_AS2 = '';
 SET @US_AS2 ='';
 SET @Kraj_AS2 ='';





 BEGIN
		DECLARE _Local_SRCGUID VARCHAR(38);
		DECLARE _done BOOL DEFAULT FALSE;
		DECLARE _c_proc CURSOR FOR
			SELECT
				GUID_pracownika
			FROM t_pit_list;

			DECLARE CONTINUE HANDLER FOR NOT FOUND SET _done = TRUE;
		OPEN _c_proc;
			loop_for_all: LOOP
				FETCH _c_proc INTO
					_Local_SRCGUID
				;
				IF _done THEN
					LEAVE loop_for_all;
				ELSE
		CALL pl_pit11_new ('pit.new.check.err',_Local_SRCGUID,'','',_ROK,'','PIT_11','','','');

			END IF;
			END LOOP;

		CLOSE _c_proc;
	END;


	UPDATE t_pit_list t, Kraje k SET t.Podatnik_Kraj=k.nazwa  WHERE t.Podatnik_Kraj=k.idn;
	UPDATE t_pit_list t, `wojewodztwa` w SET t.Podatnik_Wojewodztwo=w.nazwa  WHERE t.Podatnik_Wojewodztwo=w.idn;
	UPDATE t_pit_list t, `powiaty` p SET t.Podatnik_powiat=p.powiat   WHERE t.Podatnik_powiat=p.idn;
	UPDATE t_pit_list t, `gminy` g SET t.Podatnik_gmina=g.gmina  WHERE t.Podatnik_gmina=g.idn;
	
-- usrtawianie informacji o kosztach uzyskania przychodu (domyslnie -1 wartosc nieustalona , ustawiamy 0 - jeden stosunek pracy , 3 jeden stosunek pracy z dojazdem)
	
	SET @Koszty_uzysk_przych = (SELECT ValueN FROM IReg WHERE IdKey = 'Koszty_uzyskania_przychodu' AND rok=_Rok);
	SET @Zw_Koszty_uzysk_przych = (SELECT ValueN FROM IReg WHERE IdKey = 'Zw_koszty_uzyskania_przychodu' AND rok=_Rok);
	UPDATE t_pit_list t, Pracownicy p set Info_o_kosztach=0 WHERE p.KosztyUzyskania=@Koszty_uzysk_przych and p.GUID=t.GUID_pracownika and (SELECT COUNT(*) FROM place pl WHERE p.guid=pl.GUID_pracownika  AND pl.deleted=0 and YEAR(pl.datawyplaty) =_ROK)>0;
	UPDATE t_pit_list t, Pracownicy p set Info_o_kosztach=2 WHERE p.KosztyUzyskania=@Zw_Koszty_uzysk_przych and p.GUID=t.GUID_pracownika and (SELECT COUNT(*) FROM place pl WHERE p.guid=pl.GUID_pracownika  AND pl.deleted=0 and YEAR(pl.datawyplaty) =_ROK)>0;

	IF _RecGUID  IN ('FOR_ALL','FOR_TAG')   THEN

		SELECT * FROM t_pit_list;

	ELSEIF (SELECT SUM(err) FROM t_pit_list)>0  THEN

		SELECT '' AS GUID, _varSTR(Status_opis) AS Msg FROM t_pit_list;
	ELSE
		SET @one.GUID='';
		CALL pl_pit11_new('get_dane_platnika','','_ODDnia','_DoDnia',_ROK,'','','','','');
		CALL pl_pit11_new(CONCAT('pit.new.create.one.',_ROK,'.end'),_RecGUID,'_ODDnia','_DoDnia',_ROK,_Wystawiajacy,'PIT_11','','',_Param_D);

		SELECT @one.GUID AS GUID ,_varSTR('OK') AS Msg;

	END IF;

END IF;



IF _MODE = 'pit.new.check.err'  THEN

	DROP TEMPORARY TABLE IF EXISTS t_swiadczenia_item;
	SET @ile_s=0;
	CALL pl_pit8c('ADD_PIT', _ROK, _RecGUID,'','','','');
	UPDATE t_pit_list SET Podatnik_Swiadczenia=@ile_s WHERE GUID_pracownika=_RecGUID;

	IF  @ile_s >3 THEN
		UPDATE t_pit_list t SET t.Status_opis='Znaleziono więcej niż 3 pozycje świadczeń.Prosimy doprecyzować świadczenia.'
		 WHERE t.GUID_pracownika=_RecGUID;
	ELSEIF  @ile_s >0 THEN
		UPDATE t_pit_list  t, t_swiadczenia_item ts
		SET
			f_wyn2=IFNULL(ts.kwota,0),
			f_wyn2_opis=ts.opis
		WHERE ts.lp=1 AND t.GUID_pracownika=_RecGUID;

		UPDATE t_pit_list  t, t_swiadczenia_item ts
		SET
			f_wyn3=IFNULL(ts.kwota,0),
			f_wyn3_opis=ts.opis
		WHERE ts.lp=2  AND t.GUID_pracownika=_RecGUID;

			UPDATE t_pit_list  t, t_swiadczenia_item ts
		SET
		f_wyn4=IFNULL(ts.kwota,0),
		f_wyn4_opis=ts.opis
			WHERE ts.lp=3  AND t.GUID_pracownika=_RecGUID;
    END IF;

 CALL _IReg_Get('DaneFirmy', 'geo_adresy_prac_do_pit', '0', 'int', @geo_adresy_prac_do_pit, '0');

SET @geo_adres= (SELECT IF(@session.globals.Owner IN ('CRIST','SHIPYARD','IRKO') 
or @geo_adresy_prac_do_pit,1,0));

 IF @geo_adres THEN
  DROP TEMPORARY TABLE IF EXISTS t_adr_osoby_enum;
  CALL Create_Adr_TempTable('osoby', _RecGUID, '', '');

  UPDATE t_pit_list  t, Pracownicy p, osoby o, t_adr_osoby ta SET
		t.US=p.KluczUrzeduSkarbowego,
		t.PIT_PESEL_NIP=p.PIT_PESEL_NIP,
		t.Podatnik_NIP=IF(p.PIT_PESEL_NIP=1,o.NrNIP,o.NrPESEL),
		t.rezydent=p.rezydent,
		t.Imie=o.Imie1,
		t.Podatnik_DataUrodzenia=o.dataurodzenia,
		t.Podatnik_Kraj= IF(p.adres_do_PIT=2,ta.AKOR_Kraj,IF(p.adres_do_PIT=1,ta.AZAM_Kraj,ta.AMEL_Kraj)),
		t.Podatnik_Wojewodztwo= IF(p.adres_do_PIT=2,ta.AKOR_Wojewodztwo,IF(p.adres_do_PIT=1,ta.AZAM_Wojewodztwo,ta.AMEL_Wojewodztwo)),
		t.Podatnik_Powiat=IF(p.adres_do_PIT=2,ta.AKOR_Powiat,IF(p.adres_do_PIT=1,ta.AZAM_Powiat,ta.AMEL_Powiat)),
		t.Podatnik_Gmina=IF(p.adres_do_PIT=2,ta.AKOR_Gmina,IF(p.adres_do_PIT=1,ta.AZAM_Gmina,ta.AMEL_Gmina)),
		t.Podatnik_Ulica=IF(p.adres_do_PIT=2,ta.AKOR_Ulica,IF(p.adres_do_PIT=1,ta.AZAM_Ulica,ta.AMEL_Ulica)),
		t.Podatnik_NrDomu=IF(p.adres_do_PIT=2,ta.AKOR_NrDomu,IF(p.adres_do_PIT=1,ta.AZAM_NrDomu,ta.AMEL_NrDomu)),
		t.Podatnik_NrLokalu=IF(p.adres_do_PIT=2,ta.AKOR_nrMieszkania,IF(p.adres_do_PIT=1,ta.AZAM_nrMieszkania,ta.AMEL_nrMieszkania)),
		t.Podatnik_Miejscowosc=IF(p.adres_do_PIT=2,ta.AKOR_Miejscowosc,IF(p.adres_do_PIT=1,ta.AZAM_Miejscowosc,ta.AMEL_Miejscowosc)),
		t.Podatnik_KodPocztowy=IF(p.adres_do_PIT=2,ta.AKOR_KodPocztowy,IF(p.adres_do_PIT=1,ta.AZAM_KodPocztowy,ta.AMEL_KodPocztowy)),
		t.Podatnik_Poczta=IF(p.adres_do_PIT=2,ta.AKOR_Poczta,IF(p.adres_do_PIT=1,ta.AZAM_Poczta,ta.AMEL_Poczta)),

		t.kod_US = IFNULL((SELECT US.Kod_urzedu FROm US WHERE US.guid=p.KluczUrzeduSkarbowego),''),

		t.rok = _ROK
 WHERE p.GUID=o.GUID AND p.GUID=t.GUID_pracownika AND  ta.GUID = o.GUID AND t.GUID_pracownika=_RecGUID;

 ELSE

  UPDATE t_pit_list  t, Pracownicy p, osoby o SET
		t.US=p.KluczUrzeduSkarbowego,
		t.PIT_PESEL_NIP=p.PIT_PESEL_NIP,
		t.Podatnik_NIP=IF(p.PIT_PESEL_NIP=1,o.NrNIP,o.NrPESEL),
		t.rezydent=p.rezydent,
		t.Imie=o.Imie1,
		t.Podatnik_DataUrodzenia=o.dataurodzenia,
		t.Podatnik_Kraj= IF(p.adres_do_PIT=2,o.AKOR_Kraj,IF(p.adres_do_PIT=1,o.AZAM_Kraj,o.AMEL_Kraj)),
		t.Podatnik_Wojewodztwo= IF(p.adres_do_PIT=2,o.AKOR_Wojewodztwo,IF(p.adres_do_PIT=1,o.AZAM_Wojewodztwo,o.AMEL_Wojewodztwo)),
		t.Podatnik_Powiat=IF(p.adres_do_PIT=2,o.AKOR_Powiat,IF(p.adres_do_PIT=1,o.AZAM_Powiat,o.AMEL_Powiat)),
		t.Podatnik_Gmina=IF(p.adres_do_PIT=2,o.AKOR_GminaDzielnica,IF(p.adres_do_PIT=1,o.AZAM_GminaDzielnica,o.AMEL_GminaDzielnica)),
		t.Podatnik_Ulica=IF(p.adres_do_PIT=2,o.AKOR_Ulica,IF(p.adres_do_PIT=1,o.AZAM_Ulica,o.AMEL_Ulica)),
		t.Podatnik_NrDomu=IF(p.adres_do_PIT=2,o.AKOR_NrDomu,IF(p.adres_do_PIT=1,o.AZAM_NrDomu,o.AMEL_NrDomu)),
		t.Podatnik_NrLokalu=IF(p.adres_do_PIT=2,o.AKOR_nrMieszkania,IF(p.adres_do_PIT=1,o.AZAM_nrMieszkania,o.AMEL_nrMieszkania)),
		t.Podatnik_Miejscowosc=IF(p.adres_do_PIT=2,o.AKOR_Miejscowosc,IF(p.adres_do_PIT=1,o.AZAM_Miejscowosc,o.AMEL_Miejscowosc)),
		t.Podatnik_KodPocztowy=IF(p.adres_do_PIT=2,o.AKOR_KodPocztowy,IF(p.adres_do_PIT=1,o.AZAM_KodPocztowy,o.AMEL_KodPocztowy)),
		t.Podatnik_Poczta=IF(p.adres_do_PIT=2,o.AKOR_Poczta,IF(p.adres_do_PIT=1,o.AZAM_Poczta,o.AMEL_Poczta)),

		t.kod_US = IFNULL((SELECT US.Kod_urzedu FROM US WHERE US.guid=p.KluczUrzeduSkarbowego),''),
		t.rok = _ROK
  WHERE p.GUID=o.GUID AND p.GUID=t.GUID_pracownika AND t.GUID_pracownika=_RecGUID;

  IF _RecGUID  ='Prac37' THEN
    SET @bylem_AS2 = _RecGUID;

    SELECT t.US INTO @US_AS2 FROM t_pit_list t WHERE t.GUID_pracownika=_RecGUID;
    SELECT t.US INTO @Kraj_AS2 FROM t_pit_list t WHERE t.GUID_pracownika=_RecGUID;

  END IF;


END IF;


	UPDATE t_pit_list t, osoby o
		SET zagr_rodzaj_ident_str=  CASE
			WHEN o.zagr_rodzaj_ident = 1 THEN 'numer identyfikacyjny TIN'
			WHEN o.zagr_rodzaj_ident = 2 THEN 'numer ubezpieczeniowy'
			WHEN o.zagr_rodzaj_ident = 3 THEN 'paszport'
			WHEN o.zagr_rodzaj_ident = 4 THEN 'urzędowy dokument stwierdzający tożsamość'
			WHEN o.zagr_rodzaj_ident = 8 THEN 'inny rodzaj identyfikacji podatkowej'
			WHEN o.zagr_rodzaj_ident = 9 THEN 'inny dokument potwierdzający tożsamość'
			ELSE  '' END,

			t.zagr_rodzaj_ident=IFNULL(o.zagr_rodzaj_ident,0),
			t.zagr_nrdok=IFNULL(o.NrPaszportu,'')
		WHERE 	o.GUID=t.GUID_pracownika AND (LENGTH(t.Podatnik_NIP)=0 OR t.Podatnik_NIP='---') AND o.zagr_rodzaj_ident<>0;

DROP TEMPORARY TABLE IF EXISTS t_end_date;

SET @ROK=_ROK;
SET @DataOd= NULL;
SET @DataDo= NULL;
SET @exists = NULL;


-- 20240220 AS nie ustawiamy tych dat bo wprowadzają w bład opieramy się na polu rok
    -- SET @DataOd = (SELECT IF(p.DataZatrudnieniaWzakl>_varDATE(CONCAT(_ROK,'-01-01')),p.DataZatrudnieniaWzakl,_varDATE(CONCAT(_ROK,'-01-01'))) FROM Pracownicy p WHERE  p.GUID=_RecGUID);

    -- CREATE TEMPORARY TABLE t_end_date (end_date DATE);
    -- INSERT INTO t_end_date SELECT MAX(datawyplaty)	FROM place WHERE GUID_Pracownika=_RecGUID AND deleted=0  AND YEAR(datawyplaty)=_ROK;
    -- INSERT INTO t_end_date SELECT MAX(datawyplaty)	FROM prace_zlecone WHERE GUID_Pracownika=_RecGUID AND YEAR(datawyplaty)=_ROK;
    -- INSERT INTO t_end_date 	SELECT  IFNULL(MAX('odDnia'),'2021-12-31')  FROM  historia_pracy WHERE  GUIDPr=_RecGUID  AND YEAR(odDnia)=_ROK AND Czyobecniepracuje=0;

    -- SET @DataDo= (SELECT MAX(end_date) FROM  t_end_date);

    -- UPDATE t_pit_list SET Okres_Od=@DataOd, Okres_Do=LAST_DAY(@DataDo) WHERE GUID_pracownika=_RecGUID;

    -- SET @exists = (SELECT pit.guid FROM Pit_11_8B pit WHERE   pit.pracGUID=_RecGUID AND OkresOd=@DataOd AND OkresDo=LAST_DAY(@DataDo) AND pit.deleted=0 AND typ_zgloszenia=1 LIMIT 1);

     UPDATE t_pit_list SET Okres_Do=_varDATE(CONCAT(_ROK,'-12-31')) WHERE GUID_pracownika=_RecGUID;
     
	 SET @exists = (SELECT pit.guid FROM Pit_11_8B pit WHERE pit.pracGUID=_RecGUID AND pit.rok = _ROK AND pit.deleted=0 AND typ_zgloszenia=1 LIMIT 1);


IF @exists IS NOT NULL THEN
	UPDATE  t_pit_list t SET t.err=2 , t.Status_opis="PIT za wskazany okres już istnieje\n" WHERE t.GUID_pracownika=_RecGUID;

ELSE

UPDATE  t_pit_list t SET t.Status_opis="Pracownik nie ma wybranego urzędu skarbowego\n" WHERE IFNULL(t.US,'')='' AND t.GUID_pracownika=_RecGUID;
UPDATE  t_pit_list t SET t.Status_opis=CONCAT(IFNULL(t.Status_opis,"")," Brak numeru identyfikacyjnego pracownika \n") WHERE t.GUID_pracownika=_RecGUID AND t.zagr_nrdok=0 AND t.Podatnik_NIP IS NULL;
UPDATE  t_pit_list t SET t.Status_opis=CONCAT(IFNULL(t.Status_opis,"")," Brak kraju w danych pracownika \n")
                       WHERE t.GUID_pracownika=_RecGUID AND (IFNULL(t.Podatnik_Kraj,'')='' OR t.Podatnik_Kraj='0');
UPDATE  t_pit_list t SET t.Status_opis=CONCAT(IFNULL(t.Status_opis,"")," Nie określone miasto w danych pracownika \n") WHERE t.GUID_pracownika=_RecGUID AND IFNULL(t.Podatnik_Miejscowosc,'')='';
UPDATE  t_pit_list t SET t.Status_opis=CONCAT(IFNULL(t.Status_opis,"")," Brak nr domu w danych pracownika \n") WHERE t.GUID_pracownika=_RecGUID AND IFNULL(t.Podatnik_NrDomu,'')='';
-- UPDATE  t_pit_list t SET t.Status_opis=CONCAT(IFNULL(t.Status_opis,"")," Nie określona poczta w danych pracownika \n") WHERE t.GUID_pracownika=_RecGUID AND IFNULL(t.Podatnik_Poczta,'')='';
UPDATE  t_pit_list t SET t.Status_opis=CONCAT(IFNULL(t.Status_opis,"")," Nie określony powiat w danych pracownika \n")
                      WHERE t.GUID_pracownika=_RecGUID AND ( IFNULL(t.Podatnik_Powiat,'')='' OR t.Podatnik_Powiat='0');
UPDATE  t_pit_list t SET t.Status_opis=CONCAT(IFNULL(t.Status_opis,"")," Nie określona gmina w danych pracownika \n")
                      WHERE t.GUID_pracownika=_RecGUID AND (IFNULL(t.Podatnik_Gmina,'')='' OR t.Podatnik_Gmina='0');
UPDATE  t_pit_list t SET t.Status_opis=CONCAT(IFNULL(t.Status_opis,"")," Nie określone województwo w danych pracownika \n")
                      WHERE t.GUID_pracownika=_RecGUID AND (IFNULL(t.Podatnik_Wojewodztwo,'')='' OR t.Podatnik_Wojewodztwo='0');
UPDATE  t_pit_list t SET t.Status_opis=CONCAT(IFNULL(t.Status_opis,"")," Nie przypisany kod urzędu skarbowego \n") WHERE t.GUID_pracownika=_RecGUID AND IFNULL(t.kod_US,'')='';


 UPDATE t_pit_list t SET t.Status_opis = CONCAT("PIT NIE ZOSTANIE WYGENEROWANY: \n",t.status_opis) WHERE NOT ISNULL(t.status_opis) AND t.GUID_pracownika=_RecGUID;

 IF _RecGUID  ='Prac37'
  THEN
    SET @bylem_AS = _RecGUID;
    SELECT t.US INTO @US_AS FROM t_pit_list t WHERE t.GUID_pracownika=_RecGUID;

    SELECT t.err INTO @err2_AS FROM t_pit_list t WHERE t.GUID_pracownika=_RecGUID;

    SELECT t.Status_opis INTO @Status_opis_AS FROM t_pit_list t WHERE t.GUID_pracownika=_RecGUID;

    SELECT CONCAT(t.US,t.Podatnik_Kraj,t.Podatnik_Miejscowosc,t.Podatnik_NrDomu,t.Podatnik_Poczta,
			       t.Podatnik_Powiat,t.Podatnik_Gmina,t.Podatnik_Wojewodztwo)
          INTO @Concat_AS
	   FROM t_pit_list t WHERE t.GUID_pracownika=_RecGUID;

    SELECT t.kod_US INTO @KodUS_AS FROM t_pit_list t WHERE t.GUID_pracownika=_RecGUID;

    SELECT t.Podatnik_Kraj INTO @Kraj_AS FROM t_pit_list t WHERE t.GUID_pracownika=_RecGUID;

    SELECT t.Status_Opis INTO @Status_AS FROM t_pit_list t WHERE t.GUID_pracownika=_RecGUID;


  END IF ; -- IF _RecGUID=''

 UPDATE t_pit_list SET err=1 WHERE  Status_opis IS NOT NULL AND err<>2;


	END IF;
END IF;


    IF _MODE ='pit.new.create' THEN
   -- SET @testRG=CONCAT(_MODE,_RecGUID,_ODDnia,_DoDnia);
    IF _PARAM_D='TEST' THEN
		DROP TEMPORARY TABLE IF EXISTS t_Pit_11_8B_test_ALL;
		CREATE TEMPORARY TABLE t_Pit_11_8B_test_ALL LIKE `Pit_11_8B`;

		ALTER  TABLE t_Pit_11_8B_test_ALL CHANGE `idn` `idn` INT(11) NOT NULL;
		ALTER TABLE t_Pit_11_8B_test_ALL DROP PRIMARY KEY;
    END IF;

		CALL pl_pit11_new('get_dane_platnika','','','','','','','','','');

    BEGIN
		DECLARE _Local_SRCGUID VARCHAR(38);
		DECLARE _done BOOL DEFAULT FALSE;
		DECLARE _c_proc CURSOR FOR
			SELECT
				GUID_pracownika
			FROM t_pit_list  WHERE IF(_Param_D='TEST',TRUE,err=0);-- UWAGA TYLKO DO POROWNANIA

			DECLARE CONTINUE HANDLER FOR NOT FOUND SET _done = TRUE;
		OPEN _c_proc;
			loop_for_all: LOOP
				FETCH _c_proc INTO
					_Local_SRCGUID
				;
				IF _done THEN
					LEAVE loop_for_all;
				ELSE

		CALL pl_pit11_new(CONCAT('pit.new.create.one.',_ROK),_Local_SRCGUID,_ODDnia,_DoDnia,_ROK,_Wystawiajacy,'PIT_11','','',_PARAM_D);

		SET @ile=@ile+1;
			END IF;
			END LOOP;

		CLOSE _c_proc;
	END;


  SELECT _varSTR(CONCAT('Liczba wygenerowanych pitów:  ',@ile)) AS Msg;

  IF _PARAM_D NOT IN ('DEBUG','TEST') THEN
   CALL pl_pit11_new('pit.clear','','','','','','','','','');
  END IF;

   END IF;

   IF _MODE ='get_dane_platnika' THEN

   SET
    @Platnik_NIP='',
    @PelnaNazwa='',
    @Platnik_Kraj='Polska',
    @Platnik_wojewodztwo='',
    @Platnik_powiat='',
    @Platnik_gmina='',
    @Platnik_ulica='',
    @Platnik_Nr_domu='',
    @Platnik_Nr_lokalu='',
    @Platnik_Miasto='',
    @Platnik_Kod_poczt='',
    @Platnik_poczta='',
    @Nazwa1='' ,
    @Nazwa2='',
    @Nazwa3='',
    @Nazwa4='';

   -- przepisany badziew z exe na wszelki wypadek ( i tak okrojony)
   CALL _IReg_Get('DaneFirmy', 'NIP', '0', 'STRING', @Platnik_NIP , '0');
   CALL _IReg_Get('DaneFirmy', 'Rodzaj_platnika', '0', 'int', @Rodzaj_platnika , '0');
   CALL _IReg_Get('DaneFirmy', 'pelna_nazwa', '0', 'STRING', @PelnaNazwa, '');
   CALL _IReg_Get('DaneFirmy', 'pelna_nazwa', '0', 'STRING', @Nazwa_skrocona, '');
   CALL _IReg_Get('DaneFirmy', 'Platnik_PESEL', '0', 'STRING', @Platnik_PESEL, '');
   CALL _IReg_Get('DaneFirmy', 'Platnik_imie', '0', 'STRING', @Platnik_imie, '');
   CALL _IReg_Get('DaneFirmy', 'Platnik_data_urodzenia', '0', 'DATE', @PlatnikDataUrodzenia, '');
   CALL _IReg_Get('DaneFirmy', 'Regon', '0', 'STRING', @Regon, '');
   CALL _IReg_Get('DaneFirmy', 'Platnik_nazwisko', '0', 'STRING', @Platnik_nazwisko, '');
   CALL _IReg_Get('DaneFirmy', 'Poczta', '0', 'INT', @Platnik_poczta, '');
  SET @Platnik_poczta=(SELECT NazwaMiasta FROM  Miasta WHERE idn=@Platnik_poczta);


	CALL _IReg_Get('Owner', 'Wojewodztwo', '0', 'STRING', @Platnik_wojewodztwo, '');
	CALL _IReg_Get('Owner', 'Powiat', '0', 'STRING', @Platnik_powiat, '');
	CALL _IReg_Get('Owner', 'Gmina', '0', 'STRING', @Platnik_gmina, '');
	-- CALL _IReg_Get('Owner', 'Ulica', '0', 'STRING', @Platnik_ulica, '');
	CALL _IReg_Get('DaneFirmy', 'Ulica', '0', 'STRING', @Platnik_ulica, '');

	CALL _IReg_Get('Owner', 'Nr_domu', '0', 'STRING', @Platnik_Nr_domu, '');
	CALL _IReg_Get('Owner', 'Nr_lokalu', '0', 'STRING', @Platnik_Nr_lokalu, '');
	CALL _IReg_Get('Owner', 'Miasto', '0', 'STRING', @Platnik_Miasto, '');
	CALL _IReg_Get('DaneFirmy', 'Kod_poczt', '0', 'STRING', @Platnik_Kod_poczt, '');





  IF @Rodzaj_platnika=0 THEN

	SET @Nazwa1=@PelnaNazwa,
		@NazwaPlatnika=CONCAT(@PelnaNazwa,' ',@Regon),
		@Nazwa2=@Regon;
 ELSE
-- SET @Nazwa4=@Platnik_PESEL;
-- END IF;
-- IF (YEAR(@PlatnikDataUrodzenia) > 1950) AND (LENGTH(@Platnik_imie)>1) THEN
    SET  @PelnaNazwa = CONCAT(@Platnik_nazwisko ,' ',@Platnik_imie,' ',@PlatnikDataUrodzenia,' ' ,@Platnik_PESEL),
        @Nazwa1 = @Platnik_nazwisko,
        @Nazwa2 = @Platnik_imie,
        @Nazwa3 = @PlatnikDataUrodzenia,
        @Nazwa4 = @Platnik_PESEL;
  END IF ;

  IF @Inny_adres_na_PIT11>1 THEN


SET @POTEM=POTEM;

	/*
 if RegistryInt.GetRegIntValueBoolean('Inny_adres_na_PIT11', {$IFDEF ABC_BD} True{$ELSE}False{$ENDIF ABC_BD}, 'DaneFirmy') then
      begin
//seba start: tymczasowo
        Pit11Rec.Poczta := RegistryInt.GetRegIntValueString('PIT11_Poczta', DaneAdresoweFirmy.PL_Poczta, 'DaneFirmy');
        Pit11Rec.NrDomu := RegistryInt.GetRegIntValueString('PIT11_NrDomu', DaneAdresoweFirmy.PL_NrDomu, 'DaneFirmy');
        Pit11Rec.NrLokalu := RegistryInt.GetRegIntValueString('PIT11_NrLokalu', DaneAdresoweFirmy.PL_NrLokalu, 'DaneFirmy');
        Pit11Rec.Powiat := RegistryInt.GetRegIntValueString('PIT11_Powiat', DaneAdresoweFirmy.PL_Powiat, 'DaneFirmy');
        Pit11Rec.Gmina := RegistryInt.GetRegIntValueString('PIT11_Gmina', DaneAdresoweFirmy.PL_Gmina, 'DaneFirmy'); //seba bylo:GetGminaByID(RegistryInt.GetRegIntValueInteger('Gmina',0,'DaneFirmy'));
        Pit11Rec.Ulica := RegistryInt.GetRegIntValueString('PIT11_Ulica', DaneAdresoweFirmy.PL_Ulica, 'DaneFirmy'); //seba bylo:RegistryInt.GetRegIntValueString('Ulica','','DaneFirmy');
        Pit11Rec.KodPocztowy := RegistryInt.GetRegIntValueString('PIT11_KodPocztowy', DaneAdresoweFirmy.PL_KodPocztowy, 'DaneFirmy');
        Pit11Rec.NazwaPlatnika := RegistryInt.GetRegIntValueString('PIT11_NazwaPlatnika', Pit11Rec.NazwaPlatnika, 'DaneFirmy');
        Pit11Rec.Miejscowosc := RegistryInt.GetRegIntValueString('PIT11_Miejscowosc', DaneAdresoweFirmy.PL_Miejscowosc, 'DaneFirmy');
//seba end

        Pit11Rec.Poczta := RegistryInt.GetRegIntValueString('PIT_Poczta', Pit11Rec.Poczta, 'PITy'); //seba bylo:  OwnerApp.City;
        Pit11Rec.NrDomu := RegistryInt.GetRegIntValueString('PIT_NrDomu', Pit11Rec.NrDomu, 'PITy'); //seba bylo:RegistryInt.GetRegIntValueString('Nr_domu','','DaneFirmy');
        Pit11Rec.NrLokalu := RegistryInt.GetRegIntValueString('PIT_NrLokalu', Pit11Rec.NrLokalu, 'PITy'); //seba bylo:RegistryInt.GetRegIntValueString('Nr_lokalu','','DaneFirmy');
        Pit11Rec.Powiat := RegistryInt.GetRegIntValueString('PIT_Powiat', Pit11Rec.Powiat, 'PITy'); //seba bylo:GetPowiatByID(RegistryInt.GetRegIntValueInteger('Powiat',0,'DaneFirmy'));
        Pit11Rec.Gmina := RegistryInt.GetRegIntValueString('PIT_Gmina', Pit11Rec.Gmina, 'PITy'); //seba bylo:GetGminaByID(RegistryInt.GetRegIntValueInteger('Gmina',0,'DaneFirmy'));
        Pit11Rec.Ulica := RegistryInt.GetRegIntValueString('PIT_Ulica', Pit11Rec.Ulica , 'PITy'); //seba bylo:RegistryInt.GetRegIntValueString('Ulica','','DaneFirmy');
        Pit11Rec.KodPocztowy := RegistryInt.GetRegIntValueString('PIT_KodPocztowy', Pit11Rec.KodPocztowy, 'PITy');
        Pit11Rec.NazwaPlatnika := RegistryInt.GetRegIntValueString('PIT_NazwaPlatnika', Pit11Rec.NazwaPlatnika, 'PITy');


 */
 END IF;


   END IF;

   IF _MODE ='pit.new.create.one.test' THEN

   SET @testRG = 'bylem';

   END IF;



-- PIT-11 dla 2024 i dla roku 2025

IF (_MODE LIKE 'pit.new.create.one.2024%' OR _MODE LIKE 'pit.new.create.one.2025%') THEN

   SET @wystawiajacy_imie =(SELECT  imie1 FROM osoby WHERE guid=_Wystawiajacy);
   SET @wystawiajacy_nazwisko =(SELECT  nazwisko FROM osoby WHERE guid=_Wystawiajacy);



	DROP TEMPORARY TABLE IF EXISTS t_place_pit  ;
	DROP TEMPORARY TABLE IF EXISTS t_pit_place  ;
	DROP TEMPORARY TABLE IF EXISTS t_koszty_zakwaterowania ;
	DROP TEMPORARY TABLE IF EXISTS t_KosztyUPT;



	SET @KwotaDoLimitu26NarastPrZlecenia=0,@KwotaDoLimitu26NarastPrPlace=0;
	SET @NaliczUlgeNaPowrot=(SELECT IFNULL(UU.NaliczUlgeNaPowrot,0) FROM urlopy UU WHERE UU.GUIDPr = _RecGUID AND UU.rok = _ROK);
	SET @GUID_Prac=_RecGUID;
	SELECT Okres_od,Okres_do INTO @Okres_od,@Okres_do FROM  t_pit_list WHERE GUID_Pracownika=_RecGUID;
	SET @26lat_start='2019-08-01';
	SET @26lat_prac = (SELECT DATE_ADD(o.DataUrodzenia, INTERVAL 26 YEAR) FROM osoby o WHERE o.guid = _RecGUID);
	SET @wiek_emeryt =(SELECT DATE_ADD(o.DataUrodzenia, INTERVAL IF(o.plec=1,65,60) YEAR) FROM osoby o WHERE o.guid = _RecGUID);
    SET @limit_zakwaterowania = (SELECT ValueN FROM IReg WHERE IdKey='zwrotuKosztowZakwaterowaniaKwota' AND rok=_ROK);
	SET @ProcKosztUzyskPracTworcz= (SELECT Pr.ProcKosztUzyskPracTworcz/100 FROM Pracownicy Pr WHERE guid=_RecGUID);
	SET @Old_pit= (SELECT COUNT(*) FROM Pit_11_8B p WHERE p.readonly=0 AND p.deleted=0 AND p.rok =_ROK AND p.pracGUID=_RecGUID);


	SET @MaxDochodZw26 = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatek26lat' AND rok=_Rok);
	SET @KwDoLim26NarZlec =
        (SELECT IFNULL(SUM(KwotaDoLimitu26),0) AS KwDoLim26NarZlec
        FROM prace_zlecone
		WHERE GUID_Pracownika = _RecGUID AND  YEAR(datawyplaty) = _Rok AND deleted = 0 );

    SET @KwDoLim26NarPlac =
        (SELECT IFNULL(SUM(KwotaDoLimitu26),0) AS KwDoLim26NarPlac
        FROM place
		WHERE GUID_pracownika = _RecGUID AND YEAR(datawyplaty) = _Rok  AND deleted = 0 );


	/* TODO usunac jak sie zdecyduja Ponizsze parametry nie wykorzystywane AS wycofal sie z wyliczen - narazie maja pozostac */

	SET @MaxDochodZwDR = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatekDR' AND rok=_Rok);
    SET @MaxDochodZwPE = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatekPE' AND rok=_Rok);
	SET @MaxDochodZwPEDR = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatekDR' AND rok=_Rok);
	IF IFNULL(@MaxDochodZwPEDR,0) =0 THEN
			SET @MaxDochodZwPEDR = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatekPE' AND rok=_Rok);
	END IF;
	SET @KwDoLimDRNarZlec =
        (SELECT IFNULL(SUM(KwotaDoLimituDR),0) AS KwDoLimDRNarZlec
		FROM prace_zlecone
		WHERE GUID_Pracownika = _RecGUID AND  YEAR(datawyplaty) = _Rok AND deleted = 0 );
    SET @KwDoLimDRNarPlac =
        (SELECT IFNULL(SUM(KwotaDoLimituDR),0) AS KwDoLimDRNarPlac
        FROM place
		WHERE GUID_pracownika = _RecGUID AND YEAR(datawyplaty) = _Rok  AND deleted = 0 );
	SET @KwDoLimPENarZlec =
        (SELECT IFNULL(SUM(KwotaDoLimituPE),0) AS KwDoLimPENarZlec
		FROM prace_zlecone
		WHERE GUID_Pracownika = _RecGUID AND  YEAR(datawyplaty) = _Rok AND deleted = 0 );
    SET @KwDoLimPENarPlac =
        (SELECT IFNULL(SUM(KwotaDoLimituPE),0) AS KwDoLimDRNarPlac
        FROM place
		WHERE GUID_pracownika = _RecGUID AND YEAR(datawyplaty) = _Rok  AND deleted = 0 );

	 /* Koniec nieuzywanych parametrow */

	-- Naliczanie
		CREATE TEMPORARY TABLE t_place_pit
			SELECT p.*,
		IF(p.KwotaBrutto=SUM(ps.kwota),1,0) AS tylko_zasilki,


		IF(p.PodstawaPPD = ROUND(SUM(ps.kwota)),1,0) AS PPDtoZas,
		SUM(ps.kwota) AS zasilki_all ,
		SUM(IF(ps.GUID_definicja_skladnika_placy IN ('C_9','C_11','ZCHZ'),ps.kwota,0)) AS zasilki ,
		SUM(IF(ps.GUID_definicja_skladnika_placy IN ('C_10'),ps.kwota,0)) AS z_macierzynski,
		'1.0000' AS prop_zasilki_all,
		'0.0000' AS zal_zasilki_all,
		'0.0000' AS zal_zasilki,
		'0.0000' AS zal_z_macierzynski,
		IF(p.datawyplaty >=@26lat_start AND datawyplaty < @26lat_prac,1,0) AS 26lat,
		IF(p.datawyplaty >= @wiek_emeryt,1,0) AS emeryt,
		IF(@NaliczUlgeNaPowrot OR p.NaliczUlgeDlaPE OR p.NaliczUlgeDlaDR,1,0) AS G_114,
		0 AS opodatkowany26lat,
		0 AS opodatkowanyPE,
		0 AS opodatkowanyDR,
		'0.0000' AS wart_nie_do_odlicz26lat,
		'0.0000' AS wart_nie_do_odliczPE,
		'0.0000' AS wart_nie_do_odliczDR,
		_rnd2(@KwDoLim26NarZlec+@KwDoLim26NarPlac - p.KwotaDoLimitu26) AS KwotaDoLimitu26NarastPr,
		_rnd2(@MaxDochodZw26 - (@KwDoLim26NarZlec+@KwDoLim26NarPlac - p.KwotaDoLimitu26)) AS PozostaloDoOdliczenia26Pr,


		_rnd2(@KwDoLimPENarZlec+@KwDoLimPENarPlac - p.KwotaDoLimituPE) AS KwotaDoLimituPENarastPr,
		_rnd2(@MaxDochodZwPE - (@KwDoLimPENarZlec+@KwDoLimPENarPlac - p.KwotaDoLimituPE)) AS PozostaloDoOdliczeniaPEPr,
		_rnd2(@KwDoLimDRNarZlec+@KwDoLimDRNarPlac - p.KwotaDoLimituDR) AS KwotaDoLimituDRNarastPr,
		_rnd2(@MaxDochodZwDR - (@KwDoLimDRNarZlec+@KwDoLimDRNarPlac - p.KwotaDoLimituDR)) AS PozostaloDoOdliczeniaDRPr,
		_rnd2(@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (p.KwotaDoLimituPE + p.KwotaDoLimituDR)) AS KwotaDoLimituPEDRNarast,
		_rnd2(@MaxDochodZwPEDR - (@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (p.KwotaDoLimituPE +p.KwotaDoLimituDR))) AS PozostaloDoOdliczeniaPEDR


	FROM place p
	LEFT JOIN place_skladniki ps ON ps.GUID_zapisu_placowego = p.GUID AND ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ')
	WHERE
		GUID_pracownika=_RecGUID AND
		YEAR(p.datawyplaty)=_ROK AND
		deleted=0
	GROUP BY p.guid;



	ALTER TABLE t_place_pit ADD COLUMN NALICZ_KwotaDoLimitu26NarastPr DOUBLE (16,4);

	DROP TEMPORARY TABLE IF EXISTS t_narastajaca_do_limitu_26_one;
	DROP TEMPORARY TABLE IF EXISTS t_narastajaca_do_limitu_26_final;

	CREATE TEMPORARY TABLE t_narastajaca_do_limitu_26_one
	SELECT ta.guid,ta.datawyplaty,ta.KwotaDoLimitu26,miesiac, ta.KwotaDoLimitu26-IF(ta.datawyplaty<='2022-06-30',ta.zasilki_all,ta.zasilki) AS KwotaDoLimitu26_bez_zas FROM t_place_pit ta;

	CREATE TEMPORARY TABLE t_narastajaca_do_limitu_26_final
	SELECT p.guid,
	(SELECT SUM(t.KwotaDoLimitu26_bez_zas) FROM t_narastajaca_do_limitu_26_one t WHERE t.datawyplaty<= LAST_DAY(p.datawyplaty) AND t.guid<>p.guid) AS NALICZ_KwotaDoLimitu26NarastPr FROM t_place_pit p;

	UPDATE t_place_pit p,t_narastajaca_do_limitu_26_final t SET p.NALICZ_KwotaDoLimitu26NarastPr=IFNULL(t.NALICZ_KwotaDoLimitu26NarastPr,0) WHERE p.guid=t.guid;



	UPDATE t_place_pit p SET p.prop_zasilki_all=p.zasilki/p.zasilki_all WHERE p.tylko_zasilki AND p.zasilki>0 AND p.z_macierzynski>0;
	UPDATE t_place_pit p SET p.zal_zasilki_all=p.Zaliczka WHERE tylko_zasilki ;
	UPDATE t_place_pit p SET p.zal_zasilki_all=IF(p.zasilki_all>0 AND p.Zaliczka>0,_Rnd(p.zasilki_all*(p.ProcentPodatku/100)-p.KwotaWolnaOdPodatku,0),0) WHERE NOT tylko_zasilki ;
	UPDATE t_place_pit p SET p.zal_zasilki_all=0 WHERE p.zal_zasilki_all<0;

	UPDATE t_place_pit p SET p.zal_zasilki = _Rnd(p.zal_zasilki_all * p.prop_zasilki_all,0) WHERE p.zasilki>0;
	UPDATE t_place_pit p SET p.zal_z_macierzynski = _Rnd(p.zal_zasilki_all - p.zal_zasilki,0);


	UPDATE t_place_pit p SET p.opodatkowany26lat=1
	WHERE
	(p.ZwolnienieOdPodatku26Lat AND ((p.PodstawaPPD + p.KosztyUzyskania) =0));


	UPDATE t_place_pit p SET p.opodatkowany26lat=2
	WHERE
	(p.ZwolnienieOdPodatku26Lat AND ( ( (p.RazemSkladkiPracownika>0) AND (p.SkladkiUbezpSpolDoOdliczenia=p.RazemSkladkiPracownika ) AND (p.PodstawaPPD + p.KosztyUzyskania >0)
                                  )
                                 OR
                                  ( (p.PodstawaPPD + p.KosztyUzyskania >0) AND (p.RazemSkladkiPracownika=0) AND (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab =0)
                                  )
                                 )
                            OR (KwotaDoLimitu26NarastPr > @MaxDochodZw26)
 );



	UPDATE t_place_pit p SET p.opodatkowany26lat=3 WHERE
		(p.ZwolnienieOdPodatku26Lat AND ( ( (p.SkladkiUbezpSpolDoOdliczenia>0) AND (p.SkladkiUbezpSpolDoOdliczenia<>p.RazemSkladkiPracownika) )
                                    OR
                                  (  (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab >0)
                                   )
                                )

                    AND  ( p.KwotaDoLimitu26NarastPr < @MaxDochodZw26  )
                    AND (p.PodstawaPPD + p.KosztyUzyskania>0)
);







	UPDATE t_place_pit p SET p.opodatkowanyDR=1
	WHERE
	(p.NaliczUlgeDlaDR AND ((p.PodstawaPPD + p.KosztyUzyskania) =0));


	UPDATE t_place_pit p SET p.opodatkowanyDR=2
	WHERE
	(p.NaliczUlgeDlaDR AND ( ( (p.RazemSkladkiPracownika>0) AND (p.SkladkiUbezpSpolDoOdliczenia=p.RazemSkladkiPracownika ) AND (p.PodstawaPPD + p.KosztyUzyskania >0)
                                  )
                                 OR
                                  ( (p.PodstawaPPD + p.KosztyUzyskania >0) AND (p.RazemSkladkiPracownika=0) AND (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab  =0)
                                  )
                                 )
                            OR (KwotaDoLimituDRNarastPr > @MaxDochodZwDR));



	UPDATE t_place_pit p SET p.opodatkowanyDR=3 WHERE
		(p.NaliczUlgeDlaDR AND ( ( (p.SkladkiUbezpSpolDoOdliczenia>0) AND (p.SkladkiUbezpSpolDoOdliczenia<>p.RazemSkladkiPracownika) )
                                    OR
                                  (  (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab  >0)
                                   )
                                )


					AND  ( p.KwotaDoLimituDRNarastPr < @MaxDochodZwDR  )
                    AND (p.PodstawaPPD + p.KosztyUzyskania>0));





	UPDATE t_place_pit p SET p.opodatkowanyPE=1
	WHERE
	(p.NaliczUlgeDlaPE AND ((p.PodstawaPPD + p.KosztyUzyskania) =0));


	UPDATE t_place_pit p SET p.opodatkowanyPE=2
	WHERE
	(p.NaliczUlgeDlaPE AND ( ( (p.RazemSkladkiPracownika>0) AND (p.SkladkiUbezpSpolDoOdliczenia=p.RazemSkladkiPracownika ) AND (p.PodstawaPPD + p.KosztyUzyskania >0)
                                  )
                                 OR
                                  ( (p.PodstawaPPD + p.KosztyUzyskania >0) AND (p.RazemSkladkiPracownika=0) AND (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab  =0)
                                  )
                                 )
                            OR (KwotaDoLimituPENarastPr > @MaxDochodZwPE));



	UPDATE t_place_pit p SET p.opodatkowanyPE=3 WHERE
		(p.NaliczUlgeDlaPE AND ( ( (p.SkladkiUbezpSpolDoOdliczenia>0) AND (p.SkladkiUbezpSpolDoOdliczenia<>p.RazemSkladkiPracownika) )
                                    OR
                                  (  (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab  >0)
                                   )
                                )

					AND  (p.KwotaDoLimituPENarastPr < @MaxDochodZwPE )
                    AND (p.PodstawaPPD + p.KosztyUzyskania>0));







	ALTER TABLE t_place_pit
		ADD COLUMN koszty_zakw DOUBLE (16,4) NOT NULL DEFAULT 0,
		ADD COLUMN koszty_UTP DOUBLE (16,4) NOT NULL DEFAULT 0  ;


	CREATE TEMPORARY TABLE t_koszty_zakwaterowania
	SELECT SUM(ps.kwota) AS kwota,p.guid FROM place_skladniki ps ,definicja_skladnika_placy dsp ,t_place_pit p
	WHERE dsp.GUID = ps.GUID_definicja_skladnika_placy AND ps.GUID_zapisu_placowego = p.GUID AND dsp.zwrotKosztowZakwaterowania = 1 ;

	UPDATE t_place_pit tp, t_koszty_zakwaterowania tz SET tp.koszty_zakw=IF(tz.kwota>@limit_zakwaterowania,@limit_zakwaterowania,tz.kwota) WHERE tp.guid=tz.guid;

	CREATE TEMPORARY TABLE t_KosztyUPT
	SELECT SUM(ps.kwota) AS kwota,p.guid FROM place_skladniki ps ,definicja_skladnika_placy dsp ,t_place_pit p
	WHERE dsp.GUID = ps.GUID_definicja_skladnika_placy AND ps.GUID_zapisu_placowego = p.GUID AND dsp.DoPodstKosztUPT = 1  ;

	UPDATE t_place_pit tp, t_KosztyUPT tk SET tp.koszty_UTP=tk.kwota WHERE tp.guid=tk.guid;


	CREATE TEMPORARY TABLE  t_pit_place
	SELECT
	_RecGUID AS GUID_pracownika,
	SUM(koszty_UTP * @ProcKosztUzyskPracTworcz)  AS Przychod1_2old,
	-- SUM(IFNULL(SumaSkladnikowDlaKUPT,0)) AS Przychod1_2,  -- nowe AS 27.12.2024

	-- SUM(p.pWynagrodzNormalne) + sum(p.pDRzPodatPrzychod) AS Przychod1,
    SUM(p.pWynagrodzNormalne)  AS Przychod1,

	-- SUM(p.pZaliczkaWynagrodzNormalne) + sum(p.pDRzPodatPodatek) AS Zaliczka1,
	SUM(p.pZaliczkaWynagrodzNormalne)  AS Zaliczka1,
	SUM(IF(NOT p.26lat AND NOT p.emeryt AND NOT p.G_114 AND p.KwotaBrutto > p.zasilki_all,IF((ABS(p.KosztyUzyskania)>ABS(p.KwotaBrutto)), (p.KwotaBrutto), (p.KosztyUzyskania)),
	IF(p.GUID_storno<>'',p.KosztyUzyskania ,0)))
	AS KosztyUzyskPrzy1,

	SUM(p.pWynagrNormPrAut) AS Przychod1_2, -- nowe AS 27.12.2024
 SUM(p.pWynagrKosztPrAut) AS KosztyUzyskPrzy1_2, -- nowe AS 27.12.2024

	SUM(p.p26latzPodatPrzychod)  AS Przychod2,
	SUM(p.p26latzPodatPodatek) AS Zaliczka2,
	SUM(p.p26latzPodatKoszty)  AS KosztyUzyskPrzy2 ,

	SUM(p.p26latzPodatPrzychodPrAut) AS Przychod2_2, -- nowe AS 27.12.2024
 SUM(p.p26latzPodatKosztyPrAut) AS KosztyUzyskPrzy2_2,  -- nowe AS 27.12.2024

	SUM(p.pPEzPodatPrzychod)  AS Przychod12,
	SUM(p.pPEzPodatPodatek) AS Zaliczka12,
	SUM(p.pPEzPodatKoszty)  AS KosztyUzyskPrzy12 ,

	SUM(p.pPEzPodatPrzychodPrAut) AS Przychod12_2,   -- nowe AS 27.12.2024
 SUM(p.pPEzPodatKosztyPrAut) AS KosztyUzyskPrzy12_2,   -- nowe AS 27.12.2024


	SUM(p.KosztyUzyskania) AS KosztyUzyskania,

	SUM(p.pZasMacNormPrzych) AS Przychod14,
	SUM(p.pZasMacNormPodatek) AS Zaliczka14,



	SUM(p.pZasMac26latPrzych) AS Przychod15,
	SUM(p.pZasMac26latPodatek) AS Zaliczka15,

	SUM(p.pZasMacPePrzych) AS Przychod16,
	SUM(p.pZasMacPePodatek) AS Zaliczka16,

	SUM(p.pZasilkiPrzych) AS innezrodla,
	SUM(zasilki) AS innezrodla_dochod,
	SUM(IF(p.zaliczka>0 AND  p.KwotaBrutto=zasilki, IF(ABS(p.KosztyUzyskania)>ABS(p.KwotaBrutto), p.KwotaBrutto, p.KosztyUzyskania),0)) AS innezrodla_KosztyUzysk,
	SUM(p.pZasilkiPodatek) AS innezrodla_zaliczka ,

	SUM(IF(NOT p.26lat,  p.PPKskladkaPracod ,0)) AS PPK,

	-- SUM(p.KosztyUPT) AS KosztyUzyskPrzy1_2,  -- nowe AS 27.12.2024

	-- SUM(p.pSkladkiZUSnormalne) + sum(p.pSkladkaZUSodDRzPodatkiem) AS SklUbezpSpol,
	SUM(p.pSkladkiZUSnormalne)  AS SklUbezpSpol,
	SUM(IFNULL(p.SklKasaChorychPracowPobr,0)) AS SklUbezpZdrow,

	SUM(p.pSkladkaZUSod26PEzPodatkiem) AS SklUbezpSpol_2 ,
	SUM(p.pSkladkaZUSodZwolnionych) AS SklUbezpSpol_3 ,


	SUM(IF(p.26lat AND ( NOT p.ZwolnienieOdPodatku26Lat OR ( p.ZwolnienieOdPodatku26Lat AND ( p.Zaliczka>0) AND p.PodstawaPPD <> Zasilki)),p.SklKasaChorOdlicz,0)) AS SklUbezpZdrow_2,
	SUM(IF(p.26lat AND p.ZwolnienieOdPodatku26Lat ,p.SklKasaChorOdlicz,0)) AS SklUbezpZdrow_3,

	SUM(p.p26latbezPodatPrzychod) -SUM(p.p26latbezPodatZasMac) AS Przychody_art21u1_1,
	SUM(p.p26latbezPodatZasMac) AS Przychody_art21u1_3,

	SUM(IF(p.26lat AND  p.ZwolnienieOdPodatku26Lat AND p.Zaliczka= 0, p.PPKskladkaPracod,0))AS ppk_art21u1_1  ,
	SUM(IF(NOT p.26lat AND p.G_114  AND p.Zaliczka= 0, p.PPKskladkaPracod,0))AS ppk_art21u1_152_1 ,

	IF((SUM(p.pDRbezPodatPrzychod) + SUM(p.pPEbezPodatPrzychod) - SUM(p.pDRbezPodatZasMac) - SUM(p.pPEbezPodatZasMac))<0,0,
	SUM(p.pDRbezPodatPrzychod) + SUM(p.pPEbezPodatPrzychod) - SUM(p.pDRbezPodatZasMac) - SUM(p.pPEbezPodatZasMac)) AS Przychody_art21u1_152_1,
	SUM(p.pDRbezPodatZasMac) + SUM(p.pPEbezPodatZasMac)  AS Przychody_art21u1_152_3,
	@NaliczUlgeNaPowrot AS ulgaPW,
	SUM(p.NaliczUlgeDlaPE) AS ulgaPE,
	SUM(p.NaliczUlgeDlaDR) AS ulgaDR

FROM t_place_pit p ;



	DROP TEMPORARY TABLE IF EXISTS t_prace_zlecone_pit ;
	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec4 ;
	SET @Naliczac_podatek_od_zasilkow = (SELECT ValueI FROM IReg WHERE idkey = 'Naliczac_podatek_od_zasilkow');


	CREATE TEMPORARY TABLE t_prace_zlecone_pit
	SELECT pz.*,
	IF(pz.KwotaBrutto=SUM(ps.kwota),1,0) AS tylko_zasilki,
	SUM(ps.kwota) AS zasilki_all ,
	SUM(IF(ps.GUID_definicja_skladnika_placy IN ('Z_2','Z_4'),ps.kwota,0)) AS zasilki,
	SUM(IF(ps.GUID_definicja_skladnika_placy IN ('Z_3'),ps.kwota,0)) AS z_macierzynski,
	'1.0000' AS prop_zasilki_all,
	'0.0000' AS zal_zasilki_all,
	'0.0000' AS zal_zasilki,
	'0.0000' AS zal_z_macierzynski,
	IF(pz.datawyplaty >=@26lat_start AND datawyplaty <= @26lat_prac,1,0) AS 26lat,
	IF(pz.datawyplaty >= @wiek_emeryt,1,0) AS emeryt,
	IF(@NaliczUlgeNaPowrot OR pz.NaliczUlgeDlaPE OR pz.NaliczUlgeDlaDR,1,0) AS G_114,
	0 AS opodatkowany26lat,
	0 AS opodatkowanyPE,
	0 AS opodatkowanyDR,


	@KwDoLim26NarZlec + @KwDoLim26NarPlac - pz.KwotaDoLimitu26 AS KwotaDoLimitu26NarastPr,
	@MaxDochodZw26 - (@KwDoLim26NarZlec + @KwDoLim26NarPlac - pz.KwotaDoLimitu26) AS PozostaloDoOdliczenia26,

	@KwDoLimPENarZlec+@KwDoLimPENarPlac - pz.KwotaDoLimituPE AS KwotaDoLimituPENarastPr,
	@MaxDochodZwPE - (@KwDoLimPENarZlec+@KwDoLimPENarPlac - pz.KwotaDoLimituPE) AS PozostaloDoOdliczeniaPE,

	@KwDoLimDRNarZlec+@KwDoLimDRNarPlac - pz.KwotaDoLimituDR AS KwotaDoLimituDRNarastPr,
	@MaxDochodZwDR - (@KwDoLimDRNarZlec+@KwDoLimDRNarPlac - pz.KwotaDoLimituDR) AS PozostaloDoOdliczeniaDR,

	@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (pz.KwotaDoLimituPE + pz.KwotaDoLimituDR) AS KwotaDoLimituPEDRNarast,
	@MaxDochodZwPEDR - (@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (pz.KwotaDoLimituPE +pz.KwotaDoLimituDR)) AS PozostaloDoOdliczeniaPEDR




	FROM prace_zlecone pz
	LEFT JOIN place_skladniki ps ON ps.GUID_zapisu_placowego = pz.GUID AND ps.GUID_definicja_skladnika_placy IN ("Z_2","Z_3","Z_4")
	WHERE
	GUID_pracownika=_RecGUID AND


	YEAR(pz.datawyplaty)=_ROK AND
	deleted=0
	GROUP BY pz.guid;

	IF @Naliczac_podatek_od_zasilkow THEN

		UPDATE t_prace_zlecone_pit pz SET pz.prop_zasilki_all=pz.zasilki/pz.zasilki_all WHERE pz.tylko_zasilki AND pz.zasilki>0 AND pz.z_macierzynski>0;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_zasilki_all=pz.Zaliczka WHERE tylko_zasilki ;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_zasilki_all=IF(pz.zasilki_all>0 AND pz.Zaliczka>0,_Rnd(pz.zasilki_all*(pz.ProcentPodatku/100)-pz.KwotaWolnaOdPodatkuZlec,0),0) WHERE NOT tylko_zasilki ;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_zasilki_all=0 WHERE pz.zal_zasilki_all<0;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_zasilki = _Rnd(pz.zal_zasilki_all * pz.prop_zasilki_all,0) WHERE pz.zasilki>0;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_z_macierzynski = _Rnd(pz.zal_zasilki_all - pz.zal_zasilki,0);

	END IF;




	UPDATE t_prace_zlecone_pit pz SET opodatkowany26lat=1
	WHERE
	(pz.ZwolnienieOdPodatku26Lat AND ((pz.Dochod + pz.KosztyUzyskania) =0));



	UPDATE t_prace_zlecone_pit pz SET opodatkowany26lat=2
	WHERE
	(pz.ZwolnienieOdPodatku26Lat AND (pz.Dochod>0) AND
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod < 1));



	UPDATE t_prace_zlecone_pit pz SET opodatkowany26lat=3 WHERE
	(pz.ZwolnienieOdPodatku26Lat AND (pz.Dochod>0) AND
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod >= 1));


	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyDR=1
	WHERE
	(pz.NaliczUlgeDlaDR AND ((pz.Dochod + pz.KosztyUzyskania) =0));


	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyDR=2
	WHERE
	(pz.NaliczUlgeDlaDR AND (pz.Dochod>0) AND
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod < 1));

	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyDR=3 WHERE
	(pz.NaliczUlgeDlaDR AND (pz.Dochod>0) AND
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod >= 1));


	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyPE=1
	WHERE
	(pz.NaliczUlgeDlaPE AND ((pz.Dochod + pz.KosztyUzyskania) =0));



	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyPE=2
	WHERE
	(pz.NaliczUlgeDlaPE AND (pz.Dochod>0) AND
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod < 1));



	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyPE=3 WHERE
	(pz.NaliczUlgeDlaPE AND (pz.Dochod>0) AND
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod >= 1));



	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec;
	CREATE TEMPORARY TABLE  t_pit_zlec
	SELECT _RecGUID AS GUID_pracownika,

	SUM(pz.zSkladkiZUSnormalne) + sum(pz.zSkladkaZUSodDRzPodatkiem) AS SklUbezpSpol,

	SUM(pz.zSkladkaZUSod26PEzPodatkiem) AS SklUbezpSpol_2,

	SUM(pz.zSkladkaZUSodZwolnionych) AS SklUbezpSpol_3,

	SUM(IFNULL(pz.SklKasaChorychZleceniobPobr,0)) AS SklUbezpZdrow,
	SUM(IF(pz.UmowaODzielo = 0 AND pz.26lat AND ( NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND ( pz.Zaliczka>0))) ,pz.SklKasaChorychZleceniobOdlicz,0)) AS SklUbezpZdrow_2,
	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat   AND pz.Zaliczka= 0 , pz.SklKasaChorychZleceniobOdlicz,0)) AS SklUbezpZdrow_3,

	-- SUM(pz.z26latbezPodatPrzychod) - SUM(pz.z26latbezPodatZasMac)   AS Przychody_art21u1_2,
	SUM(pz.z26latbezPodatPrzychod) AS Przychody_art21u1_2,
	SUM(pz.z26latbezPodatZasMac)  AS Przychody_art21u1_3,
	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat   AND pz.Zaliczka= 0,pz.PPKskladkaPracod,0)) AS ppk_art21u1_2 ,

	if((SUM(pz.zDRbezPodatPrzychod)+ SUM(pz.zPEbezPodatPrzychod) -  SUM(pz.zDRbezPodatZasMac) - sum(pz.zPEbezPodatZasMac))<0,0,
    SUM(pz.zDRbezPodatPrzychod)+ SUM(pz.zPEbezPodatPrzychod) -  SUM(pz.zDRbezPodatZasMac) - sum(pz.zPEbezPodatZasMac)) AS Przychody_art21u1_152_2,

	SUM(pz.zDRbezPodatZasMac) + SUM(pz.zPEbezPodatZasMac) AS Przychody_art21u1_152_3,
	sum(pz.zZasMacNormPrzych) as zZasMacNormPrzych,
	sum(pz.zZasMacNormPodatek) as zZasMacNormPodatek,
	sum(pz.zZasMac26latPrzych) as zZasMac26latPrzych,
	sum(pz.zZasMac26latPodatek) as zZasMac26latPodatek,
	sum(pz.zZasMacPePodatek) as zZasMacPePodatek,
	sum(pz.zZasMacPePrzych) as zZasMacPePrzych,
	sum(pz.zZasilkiPrzych) as zZasilkiPrzych,
	sum(pz.zZasilkiPodatek) as zZasilkiPodatek,
	@NaliczUlgeNaPowrot AS ulgaPW,
	SUM(pz.NaliczUlgeDlaPE) AS ulgaPE,
	SUM(pz.NaliczUlgeDlaDR) AS ulgaDR
	FROM t_prace_zlecone_pit  pz  ;


	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec2;
	CREATE TEMPORARY TABLE  t_pit_zlec2
	SELECT  _RecGUID AS GUID_pracownika,SUM(pz.zaliczka),
		SUM(IF(NOT pz.26lat AND NOT pz.emeryt AND NOT  pz.G_114,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)+IFNULL(DodUbezpMedyczneZlec,0),0)) AS ZaZlecenie1,
		SUM(IF(NOT pz.26lat AND NOT pz.emeryt AND NOT  pz.G_114,pz.PPKskladkaPracod,0)) AS PPK5,
		SUM(IF(NOT pz.26lat AND NOT pz.emeryt AND NOT  pz.G_114, pz.Zaliczka,0)
		-IFNULL(pz.zal_zasilki_all,0)
	) AS Zaliczka1 ,

		SUM(IF(NOT pz.26lat AND NOT pz.emeryt AND NOT  pz.G_114, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),
		(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy1,



		SUM(pz.z26latzPodatPrzychod) AS ZaZlecenie2,
	--	SUM(IF(pz.26lat AND pz.opodatkowany26lat IN (2,3) AND (NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND (pz.Zaliczka>0))),pz.PPKskladkaPracod,0)) AS PPK6,
		SUM(pz.z26latzPodatPodatek) AS Zaliczka2 ,
		SUM(pz.z26latzPodatKoszty) AS KosztyUzyskPrzy2,

		SUM(pz.zPEzPodatPrzychod) AS ZaZlecenie13,
	--	SUM(IF(pz.emeryt AND pz.Zaliczka>0,pz.PPKskladkaPracod,0)) AS PPK13,
		SUM(pz.zPEzPodatPodatek) AS Zaliczka13 ,
		SUM(pz.zPEzPodatKoszty) AS KosztyUzyskPrzy13,


		SUM(pz.zasilki_all)*0 AS innezrodla,
		SUM(pz.zasilki_all)*0 AS innezrodla_dochod,
		SUM(IF(pz.zasilki_all >0,pz.zasilki_all* pz.ProcentPodatku/100,0))*0 AS innezrodla_zaliczka

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN ('7') AND pz.UmowaODzielo = 0  ;





	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec4;
	CREATE TEMPORARY TABLE  t_pit_zlec4
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat OR pz.UmowaODzielo = 1,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)+IFNULL(DodUbezpMedyczneZlec,0),0)) AS ZaZlecenie4,
		SUM(IF(NOT pz.26lat OR pz.UmowaODzielo = 1,pz.PPKskladkaPracod,0)) AS PPK4,
		SUM(IF(NOT pz.26lat OR pz.UmowaODzielo = 1,pz.Zaliczka,0))-
		SUM(pz.zal_zasilki_all) AS Zaliczka4,
		SUM(IF(NOT pz.26lat OR pz.UmowaODzielo = 1, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy4

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN ('8','9','12','13','14') OR (pz.RodzajRyczaltu IN (7) AND pz.UmowaODzielo = 1 ) ;




	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec_11;
	CREATE TEMPORARY TABLE  t_pit_zlec_11
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)+IFNULL(DodUbezpMedyczneZlec,0),0)) AS ZaZlecenie,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(pz.zal_zasilki_all) AS Zaliczka,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN (11)  ;




		DROP TEMPORARY TABLE IF EXISTS t_pit_zlec_10A;
	CREATE TEMPORARY TABLE  t_pit_zlec_10A
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)+IFNULL(DodUbezpMedyczneZlec,0),0)) AS ZaZlecenie,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(pz.zal_zasilki_all) AS Zaliczka,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN (10)   AND pz.KosztyUzyskania=0;

	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec_10;
	CREATE TEMPORARY TABLE  t_pit_zlec_10
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)+IFNULL(DodUbezpMedyczneZlec,0),0)) AS ZaZlecenie,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(pz.zal_zasilki_all) AS Zaliczka,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN (10)   AND pz.KosztyUzyskania>0;




	DROP TEMPORARY TABLE IF EXISTS   ta_Pit_11_8B;
	CREATE TEMPORARY TABLE ta_Pit_11_8B LIKE Pit_11_8B;
	ALTER TABLE ta_Pit_11_8B CHANGE `idn` `idn` INT(11) NOT NULL, DROP PRIMARY KEY;

   INSERT INTO `ta_Pit_11_8B`
	(idn,GUID,pracGUID,NIP,OkresOd,OkresDo,US,NazwaPlatnika,Kraj,Wojewodztwo,Powiat,Gmina,
	Ulica,
	Nrdomu,NrLokalu,Miejscowosc,KodPocztowy,Poczta, Nazwa1 , Nazwa2, Nazwa3,Nazwa4,
	Podatnik_Nazwisko,Podatnik_Imie,Podatnik_NIP,
	Podatnik_DataUrodzenia,Podatnik_Kraj,
	Podatnik_Wojewodztwo,Podatnik_Powiat,
	Podatnik_Gmina,Podatnik_Ulica,
	Podatnik_NrDomu,Podatnik_NrLokalu,
	Podatnik_Miejscowosc,Podatnik_KodPocztowy,Podatnik_Poczta,
	zagr_nrdok,zagr_rodzaj_ident,zagr_rodzaj_ident_str,rezydent,
	Imie,Nazwisko,
	f_wyn2,f_wyn2_opis,f_wyn3,f_wyn3_opis,f_wyn4,f_wyn4_opis,f_wyn_razem,PIT_PESEL_NIP,
	Info_o_kosztach, rok)

  SELECT 0,UUID(), _RecGUID,
    @Platnik_NIP,
    t.Okres_od,LAST_DAY(t.Okres_do),t.US,@PelnaNazwa,
    @Platnik_Kraj,@Platnik_wojewodztwo,@Platnik_powiat,@Platnik_gmina,
    @Platnik_ulica,
    @Platnik_Nr_domu,@Platnik_Nr_lokalu,
    @Platnik_Miasto,@Platnik_Kod_poczt,@Platnik_poczta, @Nazwa1 , @Nazwa2, @Nazwa3,@Nazwa4,

    t.nazwisko,t.imie,Podatnik_NIP,Podatnik_DataUrodzenia,
    t.Podatnik_Kraj,
    t.Podatnik_Wojewodztwo,
    t.Podatnik_Powiat,
    t.Podatnik_Gmina,
    t.Podatnik_Ulica,
    t.Podatnik_NrDomu,
    t.Podatnik_NrLokalu,
    t.Podatnik_Miejscowosc,
    t.Podatnik_KodPocztowy,
    t.Podatnik_Poczta,
	t.zagr_nrdok,
    t.zagr_rodzaj_ident,
    t.zagr_rodzaj_ident_str,
    t.rezydent,
	@wystawiajacy_imie,
	@wystawiajacy_nazwisko,
	t.f_wyn2,
    t.f_wyn2_opis,
    t.f_wyn3,
    t.f_wyn3_opis,
    t.f_wyn4,
    t.f_wyn4_opis,
    t.f_wyn2+t.f_wyn3+t.f_wyn4,
	t.PIT_PESEL_NIP,
	t.Info_o_kosztach,

	t.rok

    FROM t_pit_list t WHERE t.GUID_Pracownika=_RecGUID;


    SET @testRGd=(SELECT COUNT(*)FROM t_pit_place);

    	UPDATE ta_Pit_11_8B t, t_pit_place TP,t_pit_zlec  TZ
	SET
		t.Przychod1=IFNULL(TP.Przychod1,0),
		t.KosztyUzyskPrzy1=IFNULL(TP.KosztyUzyskPrzy1,0),

		-- t.Dochod1=IFNULL(TP.Przychod1,0)-IFNULL(TP.KosztyUzyskPrzy1,0),
		-- nowe AS 27.12.2024
		t.Dochod1=IFNULL(TP.Przychod1,0) + IFNULL(TP.Przychod1_2,0)
                  	  -IFNULL(TP.KosztyUzyskPrzy1,0) - IFNULL(TP.KosztyUzyskPrzy1_2,0),

		t.Zaliczka1=IFNULL(TP.Zaliczka1,0),
		t.Przychod1_2=IFNULL(TP.Przychod1_2,0),

		t.KosztyUzyskPrzy1_2 = IFNULL(TP.KosztyUzyskPrzy1_2,0),  -- zmiana AS 2025-01-17

		t.Przychod2=IFNULL(TP.Przychod2,0),
		t.Dochod2=IFNULL(TP.Przychod2,0) - IFNULL(TP.KosztyUzyskPrzy2,0),
		t.Zaliczka2=IFNULL(TP.Zaliczka2,0),
		t.KosztyUzyskPrzy2=IFNULL(TP.KosztyUzyskPrzy2,0),

		t.Przychod12=IFNULL(TP.Przychod12,0),
		t.Dochod12=IFNULL(TP.Przychod12,0)-IFNULL(TP.KosztyUzyskPrzy12,0),
		t.Zaliczka12=IFNULL(TP.Zaliczka12,0),
		t.KosztyUzyskPrzy12=IFNULL(TP.KosztyUzyskPrzy12,0),


		t.Przychod14=IFNULL(TP.Przychod14,0) + IFNULL(TZ.zZasMacNormPrzych,0),
		t.Dochod14=IFNULL(TP.Przychod14,0),
		t.Zaliczka14=IFNULL(TP.Zaliczka14,0) + IFNULL(TZ.zZasMacNormPodatek,0),


		t.Przychod15=IFNULL(TP.Przychod15,0) + IFNULL(TZ.zZasMac26latPrzych,0),
		t.Dochod15=IFNULL(TP.Przychod15,0),
		t.Zaliczka15=IFNULL(TP.Zaliczka15,0) + IFNULL(TZ.zZasMac26latPodatek,0),

		t.Przychod16=IFNULL(TP.Przychod16,0) + IFNULL(TZ.zZasMacPePrzych,0),
		t.Dochod16=IFNULL(TP.Przychod16,0),
		t.Zaliczka16=IFNULL(TP.Zaliczka16,0)+ IFNULL(TZ.zZasMacPePodatek,0),

		t.Przychod11=IFNULL(TP.innezrodla,0) + IFNULL(TZ.zZasilkiPrzych,0),
		t.Dochod11=IFNULL(TP.innezrodla_dochod,0) - IFNULL(TP.innezrodla_KosztyUzysk,0),
		t.Zaliczka11=IFNULL(TP.innezrodla_zaliczka,0) + IFNULL(TZ.zZasilkiPodatek,0),
		t.KosztyUzyskPrzy11=IFNULL(TP.innezrodla_KosztyUzysk,0),

		t.SklUbezpSpol=IFNULL(TP.SklUbezpSpol,0)+IFNULL(TZ.SklUbezpSpol,0),
		t.PPK=IFNULL(TP.PPK,0),

		t.SklUbezpSpol_2=IFNULL(TP.SklUbezpSpol_2,0)+IFNULL(TZ.SklUbezpSpol_2,0),
		t.SklUbezpSpol_3=IFNULL(TP.SklUbezpSpol_3,0)+IFNULL(TZ.SklUbezpSpol_3,0),
		t.SklUbezpZdrow_Pobr=IFNULL(TP.SklUbezpZdrow,0) + IFNULL(TZ.SklUbezpZdrow,0),



		t.Przychody_art21u1=IFNULL(TP.Przychody_art21u1_3,0)+IFNULL(TP.Przychody_art21u1_1,0) + IFNULL(TZ.Przychody_art21u1_2,0),
		t.Przychody_art21u1_1=IFNULL(TP.Przychody_art21u1_1,0),
		t.Przychody_art21u1_2= IFNULL(TZ.Przychody_art21u1_2,0),
		t.Przychody_art21u1_3= IFNULL(TP.Przychody_art21u1_3,0)+IFNULL(TZ.Przychody_art21u1_3,0),

		t.Przychody_art21u1_152=IFNULL(TP.Przychody_art21u1_152_1,0)+IFNULL(TP.Przychody_art21u1_152_3,0)+IFNULL(TZ.Przychody_art21u1_152_2,0)+IFNULL(TZ.Przychody_art21u1_152_3,0),
		t.Przychody_art21u1_152_1=IFNULL(TP.Przychody_art21u1_152_1,0),
		t.Przychody_art21u1_152_2=IFNULL(TZ.Przychody_art21u1_152_2,0),
		t.Przychody_art21u1_152_3=IFNULL(TP.Przychody_art21u1_152_3,0)+IFNULL(TZ.Przychody_art21u1_152_3,0)


	WHERE 	t.pracGUID=TP.GUID_pracownika AND t.pracGUID=TZ.GUID_pracownika;

	UPDATE ta_Pit_11_8B t, t_pit_place TP
		SET
		t.podst_zwol_21_1_152=IF(TP.ulgaPW>0,1,0),
		t.podst_zwol_21_1_153=IF(TP.ulgaDR>0,1,0),
		t.podst_zwol_21_1_154=IF(TP.ulgaPE>0,1,0)
	WHERE t.pracGUID=TP.GUID_pracownika AND (t.Przychody_art21u1_152_1>0 OR t.Przychody_art21u1_152_3>0);

	UPDATE ta_Pit_11_8B t, t_pit_zlec TZ
		SET
		t.podst_zwol_21_1_152=IF(TZ.ulgaPW>0,1,0),
		t.podst_zwol_21_1_153=IF(TZ.ulgaDR>0,1,0),
		t.podst_zwol_21_1_154=IF(TZ.ulgaPE>0,1,0)
	WHERE t.pracGUID=TZ.GUID_pracownika AND (t.Przychody_art21u1_152_2>0);



	UPDATE ta_Pit_11_8B t, t_pit_zlec2 t2
	SET
		t.PPK5=t2.PPK5,
		t.Przychod5=t2.PPK5 + t2.ZaZlecenie1,
		t.KosztyUzyskPrzy5=t2.KosztyUzyskPrzy1,
		t.Dochod5=t2.PPK5 + t2.ZaZlecenie1 - t2.KosztyUzyskPrzy1,
		t.Zaliczka5=t2.Zaliczka1,

	--	t.PPK6=t2.PPK6,
		t.Przychod6= t2.ZaZlecenie2,
		t.KosztyUzyskPrzy6=t2.KosztyUzyskPrzy2,
		t.Dochod6=t2.ZaZlecenie2-t2.KosztyUzyskPrzy2,
		t.Zaliczka6=t2.Zaliczka2,


		t.Przychod13=t2.ZaZlecenie13,
		t.KosztyUzyskPrzy13=t2.KosztyUzyskPrzy13,
		t.Dochod13=t2.ZaZlecenie13-t2.KosztyUzyskPrzy13,
		t.Zaliczka13=t2.Zaliczka13






	WHERE 	t.pracGUID=t2.GUID_pracownika;

	SET @paramD=_Param_D;




		UPDATE ta_Pit_11_8B t, t_pit_zlec4 t4, t_pit_zlec_11 t11
			SET
				t.PPK4=IFNULL(t4.PPK4,0)+IFNULL(t11.PPK,0),
				t.Przychod4=IFNULL(t4.PPK4,0) + IFNULL(t4.ZaZlecenie4,0) + IFNULL(t11.PPK,0) + IFNULL(t11.ZaZlecenie,0),
				t.KosztyUzyskPrzy4=IFNULL(t4.KosztyUzyskPrzy4,0) + IFNULL(t11.KosztyUzyskPrzy,0),
				t.Dochod4=IFNULL(t4.PPK4,0) + IFNULL(t4.ZaZlecenie4,0) - IFNULL(t4.KosztyUzyskPrzy4,0) +
				IFNULL(t11.PPK,0) + IFNULL(t11.ZaZlecenie,0) - IFNULL(t11.KosztyUzyskPrzy,0),
				t.Zaliczka4=IFNULL(t4.Zaliczka4,0) + IFNULL(t11.Zaliczka,0)
			WHERE 	t.pracGUID=t4.GUID_pracownika AND
					t.pracGUID=t11.GUID_pracownika ;



		UPDATE ta_Pit_11_8B t, t_pit_zlec_10 t10 ,t_pit_zlec_10A t10A
	SET


		t.Przychod10=IFNULL(t10.ZaZlecenie,0),
		t.Przychod10A=IFNULL(t10A.ZaZlecenie,0),
		t.Dochod10=IFNULL(t10.ZaZlecenie,0)+IFNULL(t10A.ZaZlecenie,0) - IFNULL(t10.KosztyUzyskPrzy,0) - IFNULL(t10A.KosztyUzyskPrzy,0),
		t.KosztyUzyskPrzy10=IFNULL(t10.KosztyUzyskPrzy,0) + IFNULL(t10A.KosztyUzyskPrzy,0),
		t.Zaliczka10=IFNULL(t10.Zaliczka,0)+IFNULL(t10A.Zaliczka,0)

	WHERE 	t.pracGUID=t10.GUID_pracownika AND
		t.pracGUID=t10A.GUID_pracownika
	;













IF @Old_pit THEN

DROP TEMPORARY TABLE IF EXISTS ta_Pit_11_8B_old;
CREATE TEMPORARY TABLE  ta_Pit_11_8B_old
SELECT
SUM(Przychod1)Przychod1,
SUM(KosztyUzyskPrzy1)KosztyUzyskPrzy1,
SUM(Dochod1)Dochod1,
SUM(Zaliczka1)Zaliczka1,
SUM(Przychod1_2)Przychod1_2,
SUM(KosztyUzyskPrzy1_2)KosztyUzyskPrzy1_2,
SUM(Przychod2)Przychod2,
SUM(Dochod2)Dochod2,
SUM(Zaliczka2)Zaliczka2,
SUM(Przychod3)Przychod3,
SUM(Dochod3)Dochod3,
SUM(Zaliczka3)Zaliczka3,
SUM(Przychod4)Przychod4,
SUM(Dochod4)Dochod4,
SUM(Zaliczka4)Zaliczka4,
SUM(Przychod5)Przychod5,
SUM(Dochod5)Dochod5,
SUM(Zaliczka5)Zaliczka5,
SUM(Przychod6)Przychod6,
SUM(KosztyUzyskPrzy6)KosztyUzyskPrzy6,
SUM(Dochod6)Dochod6,
SUM(Zaliczka6)Zaliczka6,
SUM(Przychod7)Przychod7,
SUM(KosztyUzyskPrzy7)KosztyUzyskPrzy7,
SUM(Dochod7)Dochod7,
SUM(Zaliczka7)Zaliczka7,
SUM(Przychod8)Przychod8,
SUM(KosztyUzyskPrzy8)KosztyUzyskPrzy8,
SUM(Dochod8)Dochod8,
SUM(Zaliczka8)Zaliczka8,
SUM(Przychod9)Przychod9,
SUM(KosztyUzyskPrzy9)KosztyUzyskPrzy9,
SUM(Dochod9)Dochod9,
SUM(Zaliczka9)Zaliczka9,
SUM(Przychod10)Przychod10,
SUM(Dochod10)Dochod10,
SUM(Zaliczka10)Zaliczka10,
SUM(SklUbezpSpol)SklUbezpSpol,
SUM(SklUbezpZdrow)SklUbezpZdrow,
SUM(PrzychodyZZagranicy)PrzychodyZZagranicy,
SUM(PrzychodyBezzwrotnaPomoc)PrzychodyBezzwrotnaPomoc,
SUM(Przychod11)Przychod11,
SUM(Dochod11)Dochod11,
SUM(Zaliczka11)Zaliczka11,
SUM(KosztyUzyskPrzy10)KosztyUzyskPrzy10,
SUM(emeryt_doch_zwoln)emeryt_doch_zwoln,
SUM(inne_doch_zwoln)inne_doch_zwoln,
SUM(praca_doch_zwoln)praca_doch_zwoln,
SUM(skl_ubsp_zagr)skl_ubsp_zagr,
SUM(skl_ubzd_zagr)skl_ubzd_zagr,
SUM(Przychod10A)Przychod10A,
SUM(przychody_stypendium)przychody_stypendium,
SUM(f_wyn_zbiory)f_wyn_zbiory,
SUM(f_wyn2)f_wyn2,
SUM(f_wyn3)f_wyn3,
SUM(f_wyn4)f_wyn4,
SUM(f_wyn_razem)f_wyn_razem,
SUM(ppk)ppk,
SUM(Przychod2_2)Przychod2_2,
SUM(KosztyUzyskPrzy2)KosztyUzyskPrzy2,
SUM(KosztyUzyskPrzy2_2)KosztyUzyskPrzy2_2,
SUM(praca_doch_zwoln_2)praca_doch_zwoln_2,
SUM(KosztyUzyskPrzy11)KosztyUzyskPrzy11,
SUM(Przychody_art21u1)Przychody_art21u1,
SUM(Przychody_art21u1_1)Przychody_art21u1_1,
SUM(Przychody_art21u1_2)Przychody_art21u1_2,
SUM(KosztyUzyskPrzy4)KosztyUzyskPrzy4,
SUM(KosztyUzyskPrzy5)KosztyUzyskPrzy5,
SUM(SklUbezpSpol_2)SklUbezpSpol_2,
SUM(SklUbezpSpol_3)SklUbezpSpol_3,
SUM(SklUbezpZdrow_2)SklUbezpZdrow_2,
SUM(SklUbezpZdrow_3)SklUbezpZdrow_3,
SUM(ppk4)ppk4,
SUM(ppk5)ppk5,
SUM(ppk6)ppk6,
SUM(ppk7)ppk7,
SUM(ppk7UoD)ppk7UoD,
SUM(ppk8)ppk8,
SUM(ppk9)ppk9,
SUM(ppk10)ppk10,
SUM(ppk10A)ppk10A,
SUM(ppk11)ppk11,
SUM(ppk_art21u1_1)ppk_art21u1_1,
SUM(ppk_art21u1_2)ppk_art21u1_2,
SUM(Przychody_art21u1_3)Przychody_art21u1_3,
SUM(Przychody_art21u1_152)Przychody_art21u1_152,
SUM(Przychody_art21u1_152_1)Przychody_art21u1_152_1,
SUM(Przychody_art21u1_152_2)Przychody_art21u1_152_2,
SUM(Przychody_art21u1_152_3)Przychody_art21u1_152_3,
SUM(SklUbezpZdrow_Pobr)SklUbezpZdrow_Pobr,
SUM(Przychod12)Przychod12,
SUM(KosztyUzyskPrzy12)KosztyUzyskPrzy12,
SUM(Dochod12)Dochod12,
SUM(praca_doch_zwoln_12)praca_doch_zwoln_12,
SUM(Zaliczka12)Zaliczka12,
SUM(Przychod12_2)Przychod12_2,
SUM(KosztyUzyskPrzy12_2)KosztyUzyskPrzy12_2,
SUM(Przychod13)Przychod13,
SUM(KosztyUzyskPrzy13)KosztyUzyskPrzy13,
SUM(Dochod13)Dochod13,
SUM(Zaliczka13)Zaliczka13,
SUM(Przychod14)Przychod14,
SUM(Dochod14)Dochod14,
SUM(Zaliczka14)Zaliczka14,
SUM(Przychod15)Przychod15,
SUM(Dochod15)Dochod15,
SUM(Zaliczka15)Zaliczka15,
SUM(Przychod16)Przychod16,
SUM(Dochod16)Dochod16,
SUM(Zaliczka16)Zaliczka16 FROM `Pit_11_8B` WHERE readonly=0 AND deleted=0 AND rok=_ROK AND pracGUID=_RecGUID;





UPDATE ta_Pit_11_8B t, ta_Pit_11_8B_old o
SET
t.Przychod1=t.Przychod1 - o.Przychod1,
t.KosztyUzyskPrzy1=t.KosztyUzyskPrzy1-o.KosztyUzyskPrzy1,
t.Dochod1=t.Dochod1-o.Dochod1 ,
t.Zaliczka1=t.Zaliczka1-o.Zaliczka1 ,
t.Przychod1_2=t.Przychod1_2-o.Przychod1_2 ,
t.KosztyUzyskPrzy1_2=t.KosztyUzyskPrzy1_2-o.KosztyUzyskPrzy1_2 ,
t.Przychod2=t.Przychod2-o.Przychod2 ,
t.Dochod2=t.Dochod2-o.Dochod2 ,
t.Zaliczka2=t.Zaliczka2-o.Zaliczka2 ,
t.Przychod3=t.Przychod3-o.Przychod3 ,
t.Dochod3=t.Dochod3-o.Dochod3 ,
t.Zaliczka3=t.Zaliczka3-o.Zaliczka3 ,
t.Przychod4=t.Przychod4-o.Przychod4 ,
t.Dochod4=t.Dochod4-o.Dochod4 ,
t.Zaliczka4=t.Zaliczka4-o.Zaliczka4 ,
t.Przychod5=t.Przychod5-o.Przychod5 ,
t.Dochod5=t.Dochod5-o.Dochod5 ,
t.Zaliczka5=t.Zaliczka5-o.Zaliczka5 ,
t.Przychod6=t.Przychod6-o.Przychod6 ,
t.KosztyUzyskPrzy6=t.KosztyUzyskPrzy6-o.KosztyUzyskPrzy6 ,
t.Dochod6=t.Dochod6-o.Dochod6 ,
t.Zaliczka6=t.Zaliczka6-o.Zaliczka6 ,
t.Przychod7=t.Przychod7-o.Przychod7 ,
t.KosztyUzyskPrzy7=t.KosztyUzyskPrzy7-o.KosztyUzyskPrzy7 ,
t.Dochod7=t.Dochod7-o.Dochod7 ,
t.Zaliczka7=t.Zaliczka7-o.Zaliczka7 ,
t.Przychod8=t.Przychod8-o.Przychod8 ,
t.KosztyUzyskPrzy8=t.KosztyUzyskPrzy8-o.KosztyUzyskPrzy8 ,
t.Dochod8=t.Dochod8-o.Dochod8 ,
t.Zaliczka8=t.Zaliczka8-o.Zaliczka8 ,
t.Przychod9=t.Przychod9-o.Przychod9 ,
t.KosztyUzyskPrzy9=t.KosztyUzyskPrzy9-o.KosztyUzyskPrzy9 ,
t.Dochod9=t.Dochod9-o.Dochod9 ,
t.Zaliczka9=t.Zaliczka9-o.Zaliczka9 ,
t.Przychod10=t.Przychod10-o.Przychod10 ,
t.Dochod10=t.Dochod10-o.Dochod10 ,
t.Zaliczka10=t.Zaliczka10-o.Zaliczka10 ,
t.SklUbezpSpol=t.SklUbezpSpol-o.SklUbezpSpol ,
t.SklUbezpZdrow=t.SklUbezpZdrow-o.SklUbezpZdrow ,
t.PrzychodyZZagranicy=t.PrzychodyZZagranicy-o.PrzychodyZZagranicy ,
t.PrzychodyBezzwrotnaPomoc=t.PrzychodyBezzwrotnaPomoc-o.PrzychodyBezzwrotnaPomoc ,
t.Przychod11=t.Przychod11-o.Przychod11 ,
t.Dochod11=t.Dochod11-o.Dochod11 ,
t.Zaliczka11=t.Zaliczka11-o.Zaliczka11 ,
t.KosztyUzyskPrzy10=t.KosztyUzyskPrzy10-o.KosztyUzyskPrzy10 ,
t.emeryt_doch_zwoln=t.emeryt_doch_zwoln-o.emeryt_doch_zwoln ,
t.inne_doch_zwoln=t.inne_doch_zwoln-o.inne_doch_zwoln ,
t.praca_doch_zwoln=t.praca_doch_zwoln-o.praca_doch_zwoln ,
t.skl_ubsp_zagr=t.skl_ubsp_zagr-o.skl_ubsp_zagr ,
t.skl_ubzd_zagr=t.skl_ubzd_zagr-o.skl_ubzd_zagr ,
t.Przychod10A=t.Przychod10A-o.Przychod10A ,
t.przychody_stypendium=t.przychody_stypendium-o.przychody_stypendium ,
t.f_wyn_zbiory=t.f_wyn_zbiory-o.f_wyn_zbiory ,
t.f_wyn2=t.f_wyn2-o.f_wyn2,
t.f_wyn3=t.f_wyn3-o.f_wyn3 ,
t.f_wyn4=t.f_wyn4-o.f_wyn4 ,
t.f_wyn_razem=t.f_wyn_razem-o.f_wyn_razem ,
t.ppk=t.ppk-o.ppk ,
t.Przychod2_2=t.Przychod2_2-o.Przychod2_2 ,
t.KosztyUzyskPrzy2=t.KosztyUzyskPrzy2-o.KosztyUzyskPrzy2 ,
t.KosztyUzyskPrzy2_2=t.KosztyUzyskPrzy2_2-o.KosztyUzyskPrzy2_2 ,
t.praca_doch_zwoln_2=t.praca_doch_zwoln_2-o.praca_doch_zwoln_2 ,
t.KosztyUzyskPrzy11=t.KosztyUzyskPrzy11-o.KosztyUzyskPrzy11 ,
t.Przychody_art21u1=t.Przychody_art21u1-o.Przychody_art21u1 ,
t.Przychody_art21u1_1=t.Przychody_art21u1_1-o.Przychody_art21u1_1 ,
t.Przychody_art21u1_2=t.Przychody_art21u1_2-o.Przychody_art21u1_2 ,
t.KosztyUzyskPrzy4=t.KosztyUzyskPrzy4-o.KosztyUzyskPrzy4 ,
t.KosztyUzyskPrzy5=t.KosztyUzyskPrzy5-o.KosztyUzyskPrzy5 ,
t.SklUbezpSpol_2=t.SklUbezpSpol_2-o.SklUbezpSpol_2,
t.SklUbezpSpol_3=t.SklUbezpSpol_3-o.SklUbezpSpol_3,
t.SklUbezpZdrow_2=t.SklUbezpZdrow_2-o.SklUbezpZdrow_2 ,
t.SklUbezpZdrow_3=t.SklUbezpZdrow_3-o.SklUbezpZdrow_3 ,
t.ppk4=t.ppk4-o.ppk4 ,
t.ppk5=t.ppk5-o.ppk5 ,
t.ppk6=t.ppk6-o.ppk6 ,
t.ppk7=t.ppk7-o.ppk7 ,
t.ppk7UoD=t.ppk7UoD-o.ppk7UoD ,
t.ppk8=t.ppk8-o.ppk8 ,
t.ppk9=t.ppk9-o.ppk9 ,
t.ppk10=t.ppk10-o.ppk10 ,
t.ppk10A=t.ppk10A-o.ppk10A ,
t.ppk11=t.ppk11-o.ppk11 ,
t.ppk_art21u1_1=t.ppk_art21u1_1-o.ppk_art21u1_1 ,
t.ppk_art21u1_2=t.ppk_art21u1_2-o.ppk_art21u1_2 ,
t.Przychody_art21u1_3=t.Przychody_art21u1_3-o.Przychody_art21u1_3 ,
t.Przychody_art21u1_152=t.Przychody_art21u1_152-o.Przychody_art21u1_152 ,
t.Przychody_art21u1_152_1=t.Przychody_art21u1_152_1-o.Przychody_art21u1_152_1 ,
t.Przychody_art21u1_152_2=t.Przychody_art21u1_152_2-o.Przychody_art21u1_152_2 ,
t.Przychody_art21u1_152_3=t.Przychody_art21u1_152_3-o.Przychody_art21u1_152_3 ,
t.SklUbezpZdrow_Pobr=t.SklUbezpZdrow_Pobr-o.SklUbezpZdrow_Pobr ,
t.Przychod12=t.Przychod12-o.Przychod12 ,
t.KosztyUzyskPrzy12=t.KosztyUzyskPrzy12-o.KosztyUzyskPrzy12 ,
t.Dochod12=t.Dochod12-o.Dochod12 ,
t.praca_doch_zwoln_12=t.praca_doch_zwoln_12-o.praca_doch_zwoln_12 ,
t.Zaliczka12=t.Zaliczka12-o.Zaliczka12 ,
t.Przychod12_2=t.Przychod12_2-o.Przychod12_2 ,
t.KosztyUzyskPrzy12_2=t.KosztyUzyskPrzy12_2-o.KosztyUzyskPrzy12_2 ,
t.Przychod13=t.Przychod13-o.Przychod13,
t.KosztyUzyskPrzy13=t.KosztyUzyskPrzy13-o.KosztyUzyskPrzy13 ,
t.Dochod13=t.Dochod13-o.Dochod13 ,
t.Zaliczka13=t.Zaliczka13-o.Zaliczka13 ,
t.Przychod14=t.Przychod14-o.Przychod14 ,
t.Dochod14=t.Dochod14-o.Dochod14 ,
t.Zaliczka14=t.Zaliczka14-o.Zaliczka14 ,
t.Przychod15=t.Przychod15-o.Przychod15 ,
t.Dochod15=t.Dochod15-o.Dochod15 ,
t.Zaliczka15=t.Zaliczka15-o.Zaliczka15 ,
t.Przychod16=t.Przychod16-o.Przychod16 ,
t.Dochod16=t.Dochod16-o.Dochod16 ,
t.Zaliczka16=t.Zaliczka16-o.Zaliczka16;

END IF;


-- TEST jest wstawiany w wywolanie w programie, gdy uzytkownikiem jest jmam
 IF _Param_D='TEST' THEN
-- 	IF _Param_D='TEST_XXX' THEN

		INSERT IGNORE  INTO t_Pit_11_8B_test_ALL SELECT * FROM ta_Pit_11_8B;

	ELSE
		INSERT IGNORE INTO `Pit_11_8B` SELECT * FROM ta_Pit_11_8B;

		INSERT INTO `log` (GUIDlink,useridn,czas,table_link,osobaguid,info)
		SELECT GUID,'',NOW(),'Pit_11_8B',@SYSTEM.Client.Session.GUID,'Tworzenie PIT ' FROM ta_Pit_11_8B;


	END IF;

	  IF _MODE LIKE '%end' THEN

		SET @one.GUID =(SELECT GUID FROM ta_Pit_11_8B);

	  END IF;



 END IF; -- KONIEC 2024


IF _MODE LIKE 'pit.new.create.one.2023%' THEN

   SET @wystawiajacy_imie =(SELECT  imie1 FROM osoby WHERE guid=_Wystawiajacy);
   SET @wystawiajacy_nazwisko =(SELECT  nazwisko FROM osoby WHERE guid=_Wystawiajacy);

  

	DROP TEMPORARY TABLE IF EXISTS t_place_pit  ;
	DROP TEMPORARY TABLE IF EXISTS t_pit_place  ;
	DROP TEMPORARY TABLE IF EXISTS t_koszty_zakwaterowania ;
	DROP TEMPORARY TABLE IF EXISTS t_KosztyUPT;



	SET @KwotaDoLimitu26NarastPrZlecenia=0,@KwotaDoLimitu26NarastPrPlace=0;
	SET @NaliczUlgeNaPowrot=(SELECT IFNULL(UU.NaliczUlgeNaPowrot,0) FROM urlopy UU WHERE UU.GUIDPr = _RecGUID AND UU.rok = _ROK);
	SET @GUID_Prac=_RecGUID;
	SELECT Okres_od,Okres_do INTO @Okres_od,@Okres_do FROM  t_pit_list WHERE GUID_Pracownika=_RecGUID;
	SET @26lat_start='2019-08-01';
	SET @26lat_prac = (SELECT DATE_ADD(o.DataUrodzenia, INTERVAL 26 YEAR) FROM osoby o WHERE o.guid = _RecGUID);
	SET @wiek_emeryt =(SELECT DATE_ADD(o.DataUrodzenia, INTERVAL IF(o.plec=1,65,60) YEAR) FROM osoby o WHERE o.guid = _RecGUID);
    SET @limit_zakwaterowania = (SELECT ValueN FROM IReg WHERE IdKey='zwrotuKosztowZakwaterowaniaKwota' AND rok=_ROK);
	SET @ProcKosztUzyskPracTworcz= (SELECT Pr.ProcKosztUzyskPracTworcz/100 FROM Pracownicy Pr WHERE guid=_RecGUID);
	SET @Old_pit= (SELECT COUNT(*) FROM Pit_11_8B p WHERE p.readonly=0 AND p.deleted=0 AND p.rok =_ROK AND p.pracGUID=_RecGUID);

	
	SET @MaxDochodZw26 = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatek26lat' AND rok=_Rok);
	SET @KwDoLim26NarZlec =
        (SELECT IFNULL(SUM(KwotaDoLimitu26),0) AS KwDoLim26NarZlec
        FROM prace_zlecone
		WHERE GUID_Pracownika = _RecGUID AND  YEAR(datawyplaty) = _Rok AND deleted = 0 );

    SET @KwDoLim26NarPlac =
        (SELECT IFNULL(SUM(KwotaDoLimitu26),0) AS KwDoLim26NarPlac
        FROM place
		WHERE GUID_pracownika = _RecGUID AND YEAR(datawyplaty) = _Rok  AND deleted = 0 );

		
	/* TODO usunac jak sie zdecyduja Ponizsze parametry nie wykorzystywane AS wycofal sie z wyliczen - narazie maja pozostac */	

	SET @MaxDochodZwDR = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatekDR' AND rok=_Rok);
    SET @MaxDochodZwPE = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatekPE' AND rok=_Rok);
	SET @MaxDochodZwPEDR = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatekDR' AND rok=_Rok);
	IF IFNULL(@MaxDochodZwPEDR,0) =0 THEN
			SET @MaxDochodZwPEDR = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatekPE' AND rok=_Rok);
	END IF;
	SET @KwDoLimDRNarZlec =
        (SELECT IFNULL(SUM(KwotaDoLimituDR),0) AS KwDoLimDRNarZlec
		FROM prace_zlecone
		WHERE GUID_Pracownika = _RecGUID AND  YEAR(datawyplaty) = _Rok AND deleted = 0 );
    SET @KwDoLimDRNarPlac =
        (SELECT IFNULL(SUM(KwotaDoLimituDR),0) AS KwDoLimDRNarPlac
        FROM place
		WHERE GUID_pracownika = _RecGUID AND YEAR(datawyplaty) = _Rok  AND deleted = 0 );
	SET @KwDoLimPENarZlec =
        (SELECT IFNULL(SUM(KwotaDoLimituPE),0) AS KwDoLimPENarZlec
		FROM prace_zlecone
		WHERE GUID_Pracownika = _RecGUID AND  YEAR(datawyplaty) = _Rok AND deleted = 0 );
    SET @KwDoLimPENarPlac =
        (SELECT IFNULL(SUM(KwotaDoLimituPE),0) AS KwDoLimDRNarPlac
        FROM place
		WHERE GUID_pracownika = _RecGUID AND YEAR(datawyplaty) = _Rok  AND deleted = 0 );

	 /* Koniec nieuzywanych parametrow */  

	-- Naliczanie	  
		CREATE TEMPORARY TABLE t_place_pit
			SELECT p.*,
		IF(p.KwotaBrutto=SUM(ps.kwota),1,0) AS tylko_zasilki,
		
		
		IF(p.PodstawaPPD = ROUND(SUM(ps.kwota)),1,0) AS PPDtoZas,
		SUM(ps.kwota) AS zasilki_all ,
		SUM(IF(ps.GUID_definicja_skladnika_placy IN ('C_9','C_11','ZCHZ'),ps.kwota,0)) AS zasilki ,
		SUM(IF(ps.GUID_definicja_skladnika_placy IN ('C_10'),ps.kwota,0)) AS z_macierzynski,
		'1.0000' AS prop_zasilki_all,
		'0.0000' AS zal_zasilki_all,
		'0.0000' AS zal_zasilki,
		'0.0000' AS zal_z_macierzynski,
		IF(p.datawyplaty >=@26lat_start AND datawyplaty < @26lat_prac,1,0) AS 26lat,
		IF(p.datawyplaty >= @wiek_emeryt,1,0) AS emeryt,
		IF(@NaliczUlgeNaPowrot OR p.NaliczUlgeDlaPE OR p.NaliczUlgeDlaDR,1,0) AS G_114,
		0 AS opodatkowany26lat, 
		0 AS opodatkowanyPE, 
		0 AS opodatkowanyDR, 
		'0.0000' AS wart_nie_do_odlicz26lat,
		'0.0000' AS wart_nie_do_odliczPE,
		'0.0000' AS wart_nie_do_odliczDR,
		_rnd2(@KwDoLim26NarZlec+@KwDoLim26NarPlac - p.KwotaDoLimitu26) AS KwotaDoLimitu26NarastPr,
		_rnd2(@MaxDochodZw26 - (@KwDoLim26NarZlec+@KwDoLim26NarPlac - p.KwotaDoLimitu26)) AS PozostaloDoOdliczenia26Pr,
		
		
		_rnd2(@KwDoLimPENarZlec+@KwDoLimPENarPlac - p.KwotaDoLimituPE) AS KwotaDoLimituPENarastPr,
		_rnd2(@MaxDochodZwPE - (@KwDoLimPENarZlec+@KwDoLimPENarPlac - p.KwotaDoLimituPE)) AS PozostaloDoOdliczeniaPEPr,
		_rnd2(@KwDoLimDRNarZlec+@KwDoLimDRNarPlac - p.KwotaDoLimituDR) AS KwotaDoLimituDRNarastPr,
		_rnd2(@MaxDochodZwDR - (@KwDoLimDRNarZlec+@KwDoLimDRNarPlac - p.KwotaDoLimituDR)) AS PozostaloDoOdliczeniaDRPr,
		_rnd2(@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (p.KwotaDoLimituPE + p.KwotaDoLimituDR)) AS KwotaDoLimituPEDRNarast,
		_rnd2(@MaxDochodZwPEDR - (@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (p.KwotaDoLimituPE +p.KwotaDoLimituDR))) AS PozostaloDoOdliczeniaPEDR
		

	FROM place p
	LEFT JOIN place_skladniki ps ON ps.GUID_zapisu_placowego = p.GUID AND ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ')
	WHERE
		GUID_pracownika=_RecGUID AND
		YEAR(p.datawyplaty)=_ROK AND
		deleted=0
	GROUP BY p.guid;
	
	
	
	ALTER TABLE t_place_pit ADD COLUMN NALICZ_KwotaDoLimitu26NarastPr DOUBLE (16,4);

	DROP TEMPORARY TABLE IF EXISTS t_narastajaca_do_limitu_26_one;
	DROP TEMPORARY TABLE IF EXISTS t_narastajaca_do_limitu_26_final;
	
	CREATE TEMPORARY TABLE t_narastajaca_do_limitu_26_one
	SELECT ta.guid,ta.datawyplaty,ta.KwotaDoLimitu26,miesiac, ta.KwotaDoLimitu26-IF(ta.datawyplaty<='2022-06-30',ta.zasilki_all,ta.zasilki) AS KwotaDoLimitu26_bez_zas FROM t_place_pit ta;
 
	CREATE TEMPORARY TABLE t_narastajaca_do_limitu_26_final
	SELECT p.guid,
	(SELECT SUM(t.KwotaDoLimitu26_bez_zas) FROM t_narastajaca_do_limitu_26_one t WHERE t.datawyplaty<= LAST_DAY(p.datawyplaty) AND t.guid<>p.guid) AS NALICZ_KwotaDoLimitu26NarastPr FROM t_place_pit p;
 
	UPDATE t_place_pit p,t_narastajaca_do_limitu_26_final t SET p.NALICZ_KwotaDoLimitu26NarastPr=IFNULL(t.NALICZ_KwotaDoLimitu26NarastPr,0) WHERE p.guid=t.guid;



	UPDATE t_place_pit p SET p.prop_zasilki_all=p.zasilki/p.zasilki_all WHERE p.tylko_zasilki AND p.zasilki>0 AND p.z_macierzynski>0;
	UPDATE t_place_pit p SET p.zal_zasilki_all=p.Zaliczka WHERE tylko_zasilki ;
	UPDATE t_place_pit p SET p.zal_zasilki_all=IF(p.zasilki_all>0 AND p.Zaliczka>0,_Rnd(p.zasilki_all*(p.ProcentPodatku/100)-p.KwotaWolnaOdPodatku,0),0) WHERE NOT tylko_zasilki ;
	UPDATE t_place_pit p SET p.zal_zasilki_all=0 WHERE p.zal_zasilki_all<0;

	UPDATE t_place_pit p SET p.zal_zasilki = _Rnd(p.zal_zasilki_all * p.prop_zasilki_all,0) WHERE p.zasilki>0;
	UPDATE t_place_pit p SET p.zal_z_macierzynski = _Rnd(p.zal_zasilki_all - p.zal_zasilki,0);
	
	
	UPDATE t_place_pit p SET p.opodatkowany26lat=1 
	WHERE
	(p.ZwolnienieOdPodatku26Lat AND ((p.PodstawaPPD + p.KosztyUzyskania) =0));
	

	UPDATE t_place_pit p SET p.opodatkowany26lat=2 
	WHERE 
	(p.ZwolnienieOdPodatku26Lat AND ( ( (p.RazemSkladkiPracownika>0) AND (p.SkladkiUbezpSpolDoOdliczenia=p.RazemSkladkiPracownika ) AND (p.PodstawaPPD + p.KosztyUzyskania >0)
                                  )  
                                 OR
                                  ( (p.PodstawaPPD + p.KosztyUzyskania >0) AND (p.RazemSkladkiPracownika=0) AND (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab =0) 
                                  )                           
                                 )
                            OR (KwotaDoLimitu26NarastPr > @MaxDochodZw26)     
 );



	UPDATE t_place_pit p SET p.opodatkowany26lat=3 WHERE
		(p.ZwolnienieOdPodatku26Lat AND ( ( (p.SkladkiUbezpSpolDoOdliczenia>0) AND (p.SkladkiUbezpSpolDoOdliczenia<>p.RazemSkladkiPracownika) )
                                    OR
                                  (  (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab >0)  
                                   )
                                )   
                                
                    AND  ( p.KwotaDoLimitu26NarastPr < @MaxDochodZw26  )
                    AND (p.PodstawaPPD + p.KosztyUzyskania>0)				
);


	 




	UPDATE t_place_pit p SET p.opodatkowanyDR=1 
	WHERE
	(p.NaliczUlgeDlaDR AND ((p.PodstawaPPD + p.KosztyUzyskania) =0));
		

	UPDATE t_place_pit p SET p.opodatkowanyDR=2 
	WHERE 
	(p.NaliczUlgeDlaDR AND ( ( (p.RazemSkladkiPracownika>0) AND (p.SkladkiUbezpSpolDoOdliczenia=p.RazemSkladkiPracownika ) AND (p.PodstawaPPD + p.KosztyUzyskania >0)
                                  )  
                                 OR
                                  ( (p.PodstawaPPD + p.KosztyUzyskania >0) AND (p.RazemSkladkiPracownika=0) AND (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab  =0) 
                                  )                           
                                 )
                            OR (KwotaDoLimituDRNarastPr > @MaxDochodZwDR));



	UPDATE t_place_pit p SET p.opodatkowanyDR=3 WHERE
		(p.NaliczUlgeDlaDR AND ( ( (p.SkladkiUbezpSpolDoOdliczenia>0) AND (p.SkladkiUbezpSpolDoOdliczenia<>p.RazemSkladkiPracownika) )
                                    OR
                                  (  (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab  >0)  
                                   )
                                )   
                                
                 
					AND  ( p.KwotaDoLimituDRNarastPr < @MaxDochodZwDR  )
                    AND (p.PodstawaPPD + p.KosztyUzyskania>0));
					

					
	

	UPDATE t_place_pit p SET p.opodatkowanyPE=1 
	WHERE
	(p.NaliczUlgeDlaPE AND ((p.PodstawaPPD + p.KosztyUzyskania) =0));
		

	UPDATE t_place_pit p SET p.opodatkowanyPE=2 
	WHERE 
	(p.NaliczUlgeDlaPE AND ( ( (p.RazemSkladkiPracownika>0) AND (p.SkladkiUbezpSpolDoOdliczenia=p.RazemSkladkiPracownika ) AND (p.PodstawaPPD + p.KosztyUzyskania >0)
                                  )  
                                 OR
                                  ( (p.PodstawaPPD + p.KosztyUzyskania >0) AND (p.RazemSkladkiPracownika=0) AND (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab  =0) 
                                  )                           
                                 )
                            OR (KwotaDoLimituPENarastPr > @MaxDochodZwPE));



	UPDATE t_place_pit p SET p.opodatkowanyPE=3 WHERE
		(p.NaliczUlgeDlaPE AND ( ( (p.SkladkiUbezpSpolDoOdliczenia>0) AND (p.SkladkiUbezpSpolDoOdliczenia<>p.RazemSkladkiPracownika) )
                                    OR
                                  (  (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab  >0)  
                                   )
                                )   
                                
					AND  (p.KwotaDoLimituPENarastPr < @MaxDochodZwPE )
                    AND (p.PodstawaPPD + p.KosztyUzyskania>0));		
			
	


	


	ALTER TABLE t_place_pit
		ADD COLUMN koszty_zakw DOUBLE (16,4) NOT NULL DEFAULT 0,
		ADD COLUMN koszty_UTP DOUBLE (16,4) NOT NULL DEFAULT 0  ;


	CREATE TEMPORARY TABLE t_koszty_zakwaterowania
	SELECT SUM(ps.kwota) AS kwota,p.guid FROM place_skladniki ps ,definicja_skladnika_placy dsp ,t_place_pit p
	WHERE dsp.GUID = ps.GUID_definicja_skladnika_placy AND ps.GUID_zapisu_placowego = p.GUID AND dsp.zwrotKosztowZakwaterowania = 1 ;

	UPDATE t_place_pit tp, t_koszty_zakwaterowania tz SET tp.koszty_zakw=IF(tz.kwota>@limit_zakwaterowania,@limit_zakwaterowania,tz.kwota) WHERE tp.guid=tz.guid;

	CREATE TEMPORARY TABLE t_KosztyUPT
	SELECT SUM(ps.kwota) AS kwota,p.guid FROM place_skladniki ps ,definicja_skladnika_placy dsp ,t_place_pit p
	WHERE dsp.GUID = ps.GUID_definicja_skladnika_placy AND ps.GUID_zapisu_placowego = p.GUID AND dsp.DoPodstKosztUPT = 1  ;

	UPDATE t_place_pit tp, t_KosztyUPT tk SET tp.koszty_UTP=tk.kwota WHERE tp.guid=tk.guid;


	CREATE TEMPORARY TABLE  t_pit_place
	SELECT
	_RecGUID AS GUID_pracownika,
	SUM(koszty_UTP * @ProcKosztUzyskPracTworcz)  AS Przychod1_2old,
	SUM(IFNULL(SumaSkladnikowDlaKUPT,0)) AS Przychod1_2,

	-- SUM(p.pWynagrodzNormalne) + sum(p.pDRzPodatPrzychod) AS Przychod1,
    SUM(p.pWynagrodzNormalne)  AS Przychod1,

	-- SUM(p.pZaliczkaWynagrodzNormalne) + sum(p.pDRzPodatPodatek) AS Zaliczka1,
	SUM(p.pZaliczkaWynagrodzNormalne)  AS Zaliczka1,
	SUM(IF(NOT p.26lat AND NOT p.emeryt AND NOT p.G_114 AND p.KwotaBrutto > p.zasilki_all,IF((ABS(p.KosztyUzyskania)>ABS(p.KwotaBrutto)), (p.KwotaBrutto), (p.KosztyUzyskania)),
	IF(p.GUID_storno<>'',p.KosztyUzyskania ,0)))
	AS KosztyUzyskPrzy1,

	SUM(p.p26latzPodatPrzychod)  AS Przychod2,
	SUM(p.p26latzPodatPodatek) AS Zaliczka2,
	SUM(p.p26latzPodatKoszty)  AS KosztyUzyskPrzy2 ,

	 
	SUM(p.pPEzPodatPrzychod)  AS Przychod12,
	SUM(p.pPEzPodatPodatek) AS Zaliczka12,
	SUM(p.pPEzPodatKoszty)  AS KosztyUzyskPrzy12 ,
	
	SUM(p.KosztyUzyskania) AS KosztyUzyskania,

	SUM(p.pZasMacNormPrzych) AS Przychod14,
	SUM(p.pZasMacNormPodatek) AS Zaliczka14,


	
	SUM(p.pZasMac26latPrzych) AS Przychod15,
	SUM(p.pZasMac26latPodatek) AS Zaliczka15,

	SUM(p.pZasMacPePrzych) AS Przychod16,
	SUM(p.pZasMacPePodatek) AS Zaliczka16,

	SUM(p.pZasilkiPrzych) AS innezrodla,
	SUM(zasilki) AS innezrodla_dochod,
	SUM(IF(p.zaliczka>0 AND  p.KwotaBrutto=zasilki, IF(ABS(p.KosztyUzyskania)>ABS(p.KwotaBrutto), p.KwotaBrutto, p.KosztyUzyskania),0)) AS innezrodla_KosztyUzysk,
	SUM(p.pZasilkiPodatek) AS innezrodla_zaliczka ,

	SUM(IF(NOT p.26lat,  p.PPKskladkaPracod ,0)) AS PPK,
	SUM(p.KosztyUPT) AS KosztyUzyskPrzy1_2,
	-- SUM(p.pSkladkiZUSnormalne) + sum(p.pSkladkaZUSodDRzPodatkiem) AS SklUbezpSpol,
	SUM(p.pSkladkiZUSnormalne)  AS SklUbezpSpol,
	SUM(IFNULL(p.SklKasaChorychPracowPobr,0)) AS SklUbezpZdrow,

	SUM(p.pSkladkaZUSod26PEzPodatkiem) AS SklUbezpSpol_2 ,
	SUM(p.pSkladkaZUSodZwolnionych) AS SklUbezpSpol_3 ,


	SUM(IF(p.26lat AND ( NOT p.ZwolnienieOdPodatku26Lat OR ( p.ZwolnienieOdPodatku26Lat AND ( p.Zaliczka>0) AND p.PodstawaPPD <> Zasilki)),p.SklKasaChorOdlicz,0)) AS SklUbezpZdrow_2,
	SUM(IF(p.26lat AND p.ZwolnienieOdPodatku26Lat ,p.SklKasaChorOdlicz,0)) AS SklUbezpZdrow_3,

	SUM(p.p26latbezPodatPrzychod) -SUM(p.p26latbezPodatZasMac) AS Przychody_art21u1_1,
	SUM(p.p26latbezPodatZasMac) AS Przychody_art21u1_3,

	SUM(IF(p.26lat AND  p.ZwolnienieOdPodatku26Lat AND p.Zaliczka= 0, p.PPKskladkaPracod,0))AS ppk_art21u1_1  ,
	SUM(IF(NOT p.26lat AND p.G_114  AND p.Zaliczka= 0, p.PPKskladkaPracod,0))AS ppk_art21u1_152_1 ,
	
	IF((SUM(p.pDRbezPodatPrzychod) + SUM(p.pPEbezPodatPrzychod) - SUM(p.pDRbezPodatZasMac) - SUM(p.pPEbezPodatZasMac))<0,0,
	SUM(p.pDRbezPodatPrzychod) + SUM(p.pPEbezPodatPrzychod) - SUM(p.pDRbezPodatZasMac) - SUM(p.pPEbezPodatZasMac)) AS Przychody_art21u1_152_1,
	SUM(p.pDRbezPodatZasMac) + SUM(p.pPEbezPodatZasMac)  AS Przychody_art21u1_152_3,
	@NaliczUlgeNaPowrot AS ulgaPW,
	SUM(p.NaliczUlgeDlaPE) AS ulgaPE,
	SUM(p.NaliczUlgeDlaDR) AS ulgaDR

FROM t_place_pit p ;



	DROP TEMPORARY TABLE IF EXISTS t_prace_zlecone_pit ;
	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec4 ;
	SET @Naliczac_podatek_od_zasilkow = (SELECT ValueI FROM IReg WHERE idkey = 'Naliczac_podatek_od_zasilkow');


	CREATE TEMPORARY TABLE t_prace_zlecone_pit
	SELECT pz.*,
	IF(pz.KwotaBrutto=SUM(ps.kwota),1,0) AS tylko_zasilki,
	SUM(ps.kwota) AS zasilki_all ,
	SUM(IF(ps.GUID_definicja_skladnika_placy IN ('Z_2','Z_4'),ps.kwota,0)) AS zasilki,
	SUM(IF(ps.GUID_definicja_skladnika_placy IN ('Z_3'),ps.kwota,0)) AS z_macierzynski,
	'1.0000' AS prop_zasilki_all,
	'0.0000' AS zal_zasilki_all,
	'0.0000' AS zal_zasilki,
	'0.0000' AS zal_z_macierzynski,
	IF(pz.datawyplaty >=@26lat_start AND datawyplaty <= @26lat_prac,1,0) AS 26lat,
	IF(pz.datawyplaty >= @wiek_emeryt,1,0) AS emeryt,
	IF(@NaliczUlgeNaPowrot OR pz.NaliczUlgeDlaPE OR pz.NaliczUlgeDlaDR,1,0) AS G_114,
	0 AS opodatkowany26lat, 
	0 AS opodatkowanyPE, 
	0 AS opodatkowanyDR, 

	
	@KwDoLim26NarZlec + @KwDoLim26NarPlac - pz.KwotaDoLimitu26 AS KwotaDoLimitu26NarastPr,
	@MaxDochodZw26 - (@KwDoLim26NarZlec + @KwDoLim26NarPlac - pz.KwotaDoLimitu26) AS PozostaloDoOdliczenia26,
	
	@KwDoLimPENarZlec+@KwDoLimPENarPlac - pz.KwotaDoLimituPE AS KwotaDoLimituPENarastPr,
	@MaxDochodZwPE - (@KwDoLimPENarZlec+@KwDoLimPENarPlac - pz.KwotaDoLimituPE) AS PozostaloDoOdliczeniaPE,
		
	@KwDoLimDRNarZlec+@KwDoLimDRNarPlac - pz.KwotaDoLimituDR AS KwotaDoLimituDRNarastPr,
	@MaxDochodZwDR - (@KwDoLimDRNarZlec+@KwDoLimDRNarPlac - pz.KwotaDoLimituDR) AS PozostaloDoOdliczeniaDR,

	@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (pz.KwotaDoLimituPE + pz.KwotaDoLimituDR) AS KwotaDoLimituPEDRNarast,
	@MaxDochodZwPEDR - (@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (pz.KwotaDoLimituPE +pz.KwotaDoLimituDR)) AS PozostaloDoOdliczeniaPEDR
	
	
	

	FROM prace_zlecone pz
	LEFT JOIN place_skladniki ps ON ps.GUID_zapisu_placowego = pz.GUID AND ps.GUID_definicja_skladnika_placy IN ("Z_2","Z_3","Z_4")
	WHERE
	GUID_pracownika=_RecGUID AND
	
	
	YEAR(pz.datawyplaty)=_ROK AND
	deleted=0
	GROUP BY pz.guid;
	
	IF @Naliczac_podatek_od_zasilkow THEN
	
		UPDATE t_prace_zlecone_pit pz SET pz.prop_zasilki_all=pz.zasilki/pz.zasilki_all WHERE pz.tylko_zasilki AND pz.zasilki>0 AND pz.z_macierzynski>0;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_zasilki_all=pz.Zaliczka WHERE tylko_zasilki ;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_zasilki_all=IF(pz.zasilki_all>0 AND pz.Zaliczka>0,_Rnd(pz.zasilki_all*(pz.ProcentPodatku/100)-pz.KwotaWolnaOdPodatkuZlec,0),0) WHERE NOT tylko_zasilki ;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_zasilki_all=0 WHERE pz.zal_zasilki_all<0;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_zasilki = _Rnd(pz.zal_zasilki_all * pz.prop_zasilki_all,0) WHERE pz.zasilki>0;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_z_macierzynski = _Rnd(pz.zal_zasilki_all - pz.zal_zasilki,0);
	
	END IF;
	
	


	UPDATE t_prace_zlecone_pit pz SET opodatkowany26lat=1 
	WHERE
	(pz.ZwolnienieOdPodatku26Lat AND ((pz.Dochod + pz.KosztyUzyskania) =0));
	
	

	UPDATE t_prace_zlecone_pit pz SET opodatkowany26lat=2 
	WHERE 
	(pz.ZwolnienieOdPodatku26Lat AND (pz.Dochod>0) AND 
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod < 1));



	UPDATE t_prace_zlecone_pit pz SET opodatkowany26lat=3 WHERE
	(pz.ZwolnienieOdPodatku26Lat AND (pz.Dochod>0) AND 
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod >= 1));
	

	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyDR=1 
	WHERE
	(pz.NaliczUlgeDlaDR AND ((pz.Dochod + pz.KosztyUzyskania) =0));
	

	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyDR=2 
	WHERE 
	(pz.NaliczUlgeDlaDR AND (pz.Dochod>0) AND 
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod < 1));

	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyDR=3 WHERE
	(pz.NaliczUlgeDlaDR AND (pz.Dochod>0) AND 
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod >= 1));
	

	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyPE=1 
	WHERE
	(pz.NaliczUlgeDlaPE AND ((pz.Dochod + pz.KosztyUzyskania) =0));
	
	

	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyPE=2 
	WHERE 
	(pz.NaliczUlgeDlaPE AND (pz.Dochod>0) AND 
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod < 1));



	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyPE=3 WHERE
	(pz.NaliczUlgeDlaPE AND (pz.Dochod>0) AND 
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod >= 1));
	


	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec;
	CREATE TEMPORARY TABLE  t_pit_zlec
	SELECT _RecGUID AS GUID_pracownika,
	
	SUM(pz.zSkladkiZUSnormalne) + sum(pz.zSkladkaZUSodDRzPodatkiem) AS SklUbezpSpol,
	
	SUM(pz.zSkladkaZUSod26PEzPodatkiem) AS SklUbezpSpol_2,
	
	SUM(pz.zSkladkaZUSodZwolnionych) AS SklUbezpSpol_3,
	
	SUM(IFNULL(pz.SklKasaChorychZleceniobPobr,0)) AS SklUbezpZdrow,
	SUM(IF(pz.UmowaODzielo = 0 AND pz.26lat AND ( NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND ( pz.Zaliczka>0))) ,pz.SklKasaChorychZleceniobOdlicz,0)) AS SklUbezpZdrow_2,
	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat   AND pz.Zaliczka= 0 , pz.SklKasaChorychZleceniobOdlicz,0)) AS SklUbezpZdrow_3,



	SUM(pz.z26latbezPodatPrzychod) - SUM(pz.z26latbezPodatZasMac)   AS Przychody_art21u1_2,
	SUM(pz.z26latbezPodatZasMac)  AS Przychody_art21u1_3,
	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat   AND pz.Zaliczka= 0,pz.PPKskladkaPracod,0)) AS ppk_art21u1_2 ,

	if((SUM(pz.zDRbezPodatPrzychod)+ SUM(pz.zPEbezPodatPrzychod) -  SUM(pz.zDRbezPodatZasMac) - sum(pz.zPEbezPodatZasMac))<0,0,	
    SUM(pz.zDRbezPodatPrzychod)+ SUM(pz.zPEbezPodatPrzychod) -  SUM(pz.zDRbezPodatZasMac) - sum(pz.zPEbezPodatZasMac)) AS Przychody_art21u1_152_2,
	
	SUM(pz.zDRbezPodatZasMac) + SUM(pz.zPEbezPodatZasMac) AS Przychody_art21u1_152_3,
	sum(pz.zZasMacNormPrzych) as zZasMacNormPrzych,
	sum(pz.zZasMacNormPodatek) as zZasMacNormPodatek,
	sum(pz.zZasMac26latPrzych) as zZasMac26latPrzych,
	sum(pz.zZasMac26latPodatek) as zZasMac26latPodatek,
	sum(pz.zZasMacPePodatek) as zZasMacPePodatek,
	sum(pz.zZasMacPePrzych) as zZasMacPePrzych,
	sum(pz.zZasilkiPrzych) as zZasilkiPrzych,
	sum(pz.zZasilkiPodatek) as zZasilkiPodatek,
	@NaliczUlgeNaPowrot AS ulgaPW,
	SUM(pz.NaliczUlgeDlaPE) AS ulgaPE,
	SUM(pz.NaliczUlgeDlaDR) AS ulgaDR
	FROM t_prace_zlecone_pit  pz  ;


	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec2;
	CREATE TEMPORARY TABLE  t_pit_zlec2
	SELECT  _RecGUID AS GUID_pracownika,SUM(pz.zaliczka),
		SUM(IF(NOT pz.26lat AND NOT pz.emeryt AND NOT  pz.G_114,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)+IFNULL(DodUbezpMedyczneZlec,0),0)) AS ZaZlecenie1,
		SUM(IF(NOT pz.26lat AND NOT pz.emeryt AND NOT  pz.G_114,pz.PPKskladkaPracod,0)) AS PPK5,
		SUM(IF(NOT pz.26lat AND NOT pz.emeryt AND NOT  pz.G_114, pz.Zaliczka,0) 
		-IFNULL(pz.zal_zasilki_all,0)
	) AS Zaliczka1 ,
	
		SUM(IF(NOT pz.26lat AND NOT pz.emeryt AND NOT  pz.G_114, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),
		(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy1,



		SUM(pz.z26latzPodatPrzychod) AS ZaZlecenie2,
	--	SUM(IF(pz.26lat AND pz.opodatkowany26lat IN (2,3) AND (NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND (pz.Zaliczka>0))),pz.PPKskladkaPracod,0)) AS PPK6,
		SUM(pz.z26latzPodatPodatek) AS Zaliczka2 ,
		SUM(pz.z26latzPodatKoszty) AS KosztyUzyskPrzy2,

		SUM(pz.zPEzPodatPrzychod) AS ZaZlecenie13,
	--	SUM(IF(pz.emeryt AND pz.Zaliczka>0,pz.PPKskladkaPracod,0)) AS PPK13,
		SUM(pz.zPEzPodatPodatek) AS Zaliczka13 ,
		SUM(pz.zPEzPodatKoszty) AS KosztyUzyskPrzy13,


		SUM(pz.zasilki_all)*0 AS innezrodla,
		SUM(pz.zasilki_all)*0 AS innezrodla_dochod,
		SUM(IF(pz.zasilki_all >0,pz.zasilki_all* pz.ProcentPodatku/100,0))*0 AS innezrodla_zaliczka

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN ('7') AND pz.UmowaODzielo = 0  ;





	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec4;
	CREATE TEMPORARY TABLE  t_pit_zlec4
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat OR pz.UmowaODzielo = 1,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)+IFNULL(DodUbezpMedyczneZlec,0),0)) AS ZaZlecenie4,
		SUM(IF(NOT pz.26lat OR pz.UmowaODzielo = 1,pz.PPKskladkaPracod,0)) AS PPK4,
		SUM(IF(NOT pz.26lat OR pz.UmowaODzielo = 1,pz.Zaliczka,0))-
		SUM(pz.zal_zasilki_all) AS Zaliczka4,
		SUM(IF(NOT pz.26lat OR pz.UmowaODzielo = 1, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy4

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN ('8','9','12','13','14') OR (pz.RodzajRyczaltu IN (7) AND pz.UmowaODzielo = 1 ) ;




	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec_11;
	CREATE TEMPORARY TABLE  t_pit_zlec_11
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)+IFNULL(DodUbezpMedyczneZlec,0),0)) AS ZaZlecenie,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(pz.zal_zasilki_all) AS Zaliczka,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN (11)  ;

 
 

		DROP TEMPORARY TABLE IF EXISTS t_pit_zlec_10A;
	CREATE TEMPORARY TABLE  t_pit_zlec_10A
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)+IFNULL(DodUbezpMedyczneZlec,0),0)) AS ZaZlecenie,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(pz.zal_zasilki_all) AS Zaliczka,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN (10)   AND pz.KosztyUzyskania=0;

	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec_10;
	CREATE TEMPORARY TABLE  t_pit_zlec_10
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)+IFNULL(DodUbezpMedyczneZlec,0),0)) AS ZaZlecenie,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(pz.zal_zasilki_all) AS Zaliczka,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN (10)   AND pz.KosztyUzyskania>0;




	DROP TEMPORARY TABLE IF EXISTS   ta_Pit_11_8B;
	CREATE TEMPORARY TABLE ta_Pit_11_8B LIKE Pit_11_8B;
	ALTER TABLE ta_Pit_11_8B CHANGE `idn` `idn` INT(11) NOT NULL, DROP PRIMARY KEY;

   INSERT INTO `ta_Pit_11_8B`
	(idn,GUID,pracGUID,NIP,OkresOd,OkresDo,US,NazwaPlatnika,Kraj,Wojewodztwo,Powiat,Gmina,
	Ulica,
	Nrdomu,NrLokalu,Miejscowosc,KodPocztowy,Poczta, Nazwa1 , Nazwa2, Nazwa3,Nazwa4,
	Podatnik_Nazwisko,Podatnik_Imie,Podatnik_NIP,
	Podatnik_DataUrodzenia,Podatnik_Kraj,
	Podatnik_Wojewodztwo,Podatnik_Powiat,
	Podatnik_Gmina,Podatnik_Ulica,
	Podatnik_NrDomu,Podatnik_NrLokalu,
	Podatnik_Miejscowosc,Podatnik_KodPocztowy,Podatnik_Poczta,
	zagr_nrdok,zagr_rodzaj_ident,zagr_rodzaj_ident_str,rezydent,
	Imie,Nazwisko,
	f_wyn2,f_wyn2_opis,f_wyn3,f_wyn3_opis,f_wyn4,f_wyn4_opis,f_wyn_razem,PIT_PESEL_NIP,
	Info_o_kosztach, rok)

  SELECT 0,UUID(), _RecGUID,
    @Platnik_NIP,
    t.Okres_od,LAST_DAY(t.Okres_do),t.US,@PelnaNazwa,
    @Platnik_Kraj,@Platnik_wojewodztwo,@Platnik_powiat,@Platnik_gmina,
    @Platnik_ulica,
    @Platnik_Nr_domu,@Platnik_Nr_lokalu,
    @Platnik_Miasto,@Platnik_Kod_poczt,@Platnik_poczta, @Nazwa1 , @Nazwa2, @Nazwa3,@Nazwa4,

    t.nazwisko,t.imie,Podatnik_NIP,Podatnik_DataUrodzenia,
    t.Podatnik_Kraj,
    t.Podatnik_Wojewodztwo,
    t.Podatnik_Powiat,
    t.Podatnik_Gmina,
    t.Podatnik_Ulica,
    t.Podatnik_NrDomu,
    t.Podatnik_NrLokalu,
    t.Podatnik_Miejscowosc,
    t.Podatnik_KodPocztowy,
    t.Podatnik_Poczta,
	t.zagr_nrdok,
    t.zagr_rodzaj_ident,
    t.zagr_rodzaj_ident_str,
    t.rezydent,
	@wystawiajacy_imie,
	@wystawiajacy_nazwisko,
	t.f_wyn2,
    t.f_wyn2_opis,
    t.f_wyn3,
    t.f_wyn3_opis,
    t.f_wyn4,
    t.f_wyn4_opis,
    t.f_wyn2+t.f_wyn3+t.f_wyn4,
	t.PIT_PESEL_NIP,
	t.Info_o_kosztach, 
    
	t.rok 

    FROM t_pit_list t WHERE t.GUID_Pracownika=_RecGUID;


    SET @testRGd=(SELECT COUNT(*)FROM t_pit_place);

    	UPDATE ta_Pit_11_8B t, t_pit_place TP,t_pit_zlec  TZ
	SET
		t.Przychod1=IFNULL(TP.Przychod1,0),
		t.KosztyUzyskPrzy1=IFNULL(TP.KosztyUzyskPrzy1,0),
	
		t.Dochod1=IFNULL(TP.Przychod1,0)-IFNULL(TP.KosztyUzyskPrzy1,0),
		t.Zaliczka1=IFNULL(TP.Zaliczka1,0),
		t.Przychod1_2=IFNULL(TP.Przychod1_2,0),

		t.Przychod2=IFNULL(TP.Przychod2,0),
		t.Dochod2=IFNULL(TP.Przychod2,0) - IFNULL(TP.KosztyUzyskPrzy2,0),
		t.Zaliczka2=IFNULL(TP.Zaliczka2,0),
		t.KosztyUzyskPrzy2=IFNULL(TP.KosztyUzyskPrzy2,0),

		t.Przychod12=IFNULL(TP.Przychod12,0),
		t.Dochod12=IFNULL(TP.Przychod12,0)-IFNULL(TP.KosztyUzyskPrzy12,0),
		t.Zaliczka12=IFNULL(TP.Zaliczka12,0),
		t.KosztyUzyskPrzy12=IFNULL(TP.KosztyUzyskPrzy12,0),


		t.Przychod14=IFNULL(TP.Przychod14,0) + IFNULL(TZ.zZasMacNormPrzych,0),
		t.Dochod14=IFNULL(TP.Przychod14,0),
		t.Zaliczka14=IFNULL(TP.Zaliczka14,0) + IFNULL(TZ.zZasMacNormPodatek,0),


		t.Przychod15=IFNULL(TP.Przychod15,0) + IFNULL(TZ.zZasMac26latPrzych,0),
		t.Dochod15=IFNULL(TP.Przychod15,0),
		t.Zaliczka15=IFNULL(TP.Zaliczka15,0) + IFNULL(TZ.zZasMac26latPodatek,0),

		t.Przychod16=IFNULL(TP.Przychod16,0) + IFNULL(TZ.zZasMacPePrzych,0),
		t.Dochod16=IFNULL(TP.Przychod16,0),
		t.Zaliczka16=IFNULL(TP.Zaliczka16,0)+ IFNULL(TZ.zZasMacPePodatek,0),

		t.Przychod11=IFNULL(TP.innezrodla,0) + IFNULL(TZ.zZasilkiPrzych,0),
		t.Dochod11=IFNULL(TP.innezrodla_dochod,0) - IFNULL(TP.innezrodla_KosztyUzysk,0),
		t.Zaliczka11=IFNULL(TP.innezrodla_zaliczka,0) + IFNULL(TZ.zZasilkiPodatek,0),
		t.KosztyUzyskPrzy11=IFNULL(TP.innezrodla_KosztyUzysk,0),

		t.SklUbezpSpol=IFNULL(TP.SklUbezpSpol,0)+IFNULL(TZ.SklUbezpSpol,0),
		t.PPK=IFNULL(TP.PPK,0),

		t.SklUbezpSpol_2=IFNULL(TP.SklUbezpSpol_2,0)+IFNULL(TZ.SklUbezpSpol_2,0),
		t.SklUbezpSpol_3=IFNULL(TP.SklUbezpSpol_3,0)+IFNULL(TZ.SklUbezpSpol_3,0),
		t.SklUbezpZdrow_Pobr=IFNULL(TP.SklUbezpZdrow,0) + IFNULL(TZ.SklUbezpZdrow,0),
	
	

		t.Przychody_art21u1=IFNULL(TP.Przychody_art21u1_3,0)+IFNULL(TP.Przychody_art21u1_1,0) + IFNULL(TZ.Przychody_art21u1_2,0),
		t.Przychody_art21u1_1=IFNULL(TP.Przychody_art21u1_1,0),
		t.Przychody_art21u1_2= IFNULL(TZ.Przychody_art21u1_2,0),
		t.Przychody_art21u1_3= IFNULL(TP.Przychody_art21u1_3,0)+IFNULL(TZ.Przychody_art21u1_3,0),

		t.Przychody_art21u1_152=IFNULL(TP.Przychody_art21u1_152_1,0)+IFNULL(TP.Przychody_art21u1_152_3,0)+IFNULL(TZ.Przychody_art21u1_152_2,0)+IFNULL(TZ.Przychody_art21u1_152_3,0),
		t.Przychody_art21u1_152_1=IFNULL(TP.Przychody_art21u1_152_1,0),
		t.Przychody_art21u1_152_2=IFNULL(TZ.Przychody_art21u1_152_2,0),
		t.Przychody_art21u1_152_3=IFNULL(TP.Przychody_art21u1_152_3,0)+IFNULL(TZ.Przychody_art21u1_152_3,0)


	WHERE 	t.pracGUID=TP.GUID_pracownika AND t.pracGUID=TZ.GUID_pracownika;

	UPDATE ta_Pit_11_8B t, t_pit_place TP
		SET
		t.podst_zwol_21_1_152=IF(TP.ulgaPW>0,1,0),
		t.podst_zwol_21_1_153=IF(TP.ulgaDR>0,1,0),
		t.podst_zwol_21_1_154=IF(TP.ulgaPE>0,1,0)
	WHERE t.pracGUID=TP.GUID_pracownika AND (t.Przychody_art21u1_152_1>0 OR t.Przychody_art21u1_152_3>0);

	UPDATE ta_Pit_11_8B t, t_pit_zlec TZ
		SET
		t.podst_zwol_21_1_152=IF(TZ.ulgaPW>0,1,0),
		t.podst_zwol_21_1_153=IF(TZ.ulgaDR>0,1,0),
		t.podst_zwol_21_1_154=IF(TZ.ulgaPE>0,1,0)
	WHERE t.pracGUID=TZ.GUID_pracownika AND (t.Przychody_art21u1_152_2>0);



	UPDATE ta_Pit_11_8B t, t_pit_zlec2 t2
	SET
		t.PPK5=t2.PPK5,
		t.Przychod5=t2.PPK5 + t2.ZaZlecenie1,
		t.KosztyUzyskPrzy5=t2.KosztyUzyskPrzy1,
		t.Dochod5=t2.PPK5 + t2.ZaZlecenie1 - t2.KosztyUzyskPrzy1,
		t.Zaliczka5=t2.Zaliczka1,

	--	t.PPK6=t2.PPK6,
		t.Przychod6= t2.ZaZlecenie2,
		t.KosztyUzyskPrzy6=t2.KosztyUzyskPrzy2,
		t.Dochod6=t2.ZaZlecenie2-t2.KosztyUzyskPrzy2,
		t.Zaliczka6=t2.Zaliczka2,


		t.Przychod13=t2.ZaZlecenie13,
		t.KosztyUzyskPrzy13=t2.KosztyUzyskPrzy13,
		t.Dochod13=t2.ZaZlecenie13-t2.KosztyUzyskPrzy13,
		t.Zaliczka13=t2.Zaliczka13

		
	
	
	

	WHERE 	t.pracGUID=t2.GUID_pracownika;

	SET @paramD=_Param_D;




		UPDATE ta_Pit_11_8B t, t_pit_zlec4 t4, t_pit_zlec_11 t11
			SET
				t.PPK4=IFNULL(t4.PPK4,0)+IFNULL(t11.PPK,0),
				t.Przychod4=IFNULL(t4.PPK4,0) + IFNULL(t4.ZaZlecenie4,0) + IFNULL(t11.PPK,0) + IFNULL(t11.ZaZlecenie,0),
				t.KosztyUzyskPrzy4=IFNULL(t4.KosztyUzyskPrzy4,0) + IFNULL(t11.KosztyUzyskPrzy,0),
				t.Dochod4=IFNULL(t4.PPK4,0) + IFNULL(t4.ZaZlecenie4,0) - IFNULL(t4.KosztyUzyskPrzy4,0) + 
				IFNULL(t11.PPK,0) + IFNULL(t11.ZaZlecenie,0) - IFNULL(t11.KosztyUzyskPrzy,0),
				t.Zaliczka4=IFNULL(t4.Zaliczka4,0) + IFNULL(t11.Zaliczka,0)
			WHERE 	t.pracGUID=t4.GUID_pracownika AND
					t.pracGUID=t11.GUID_pracownika ;



		UPDATE ta_Pit_11_8B t, t_pit_zlec_10 t10 ,t_pit_zlec_10A t10A
	SET


		t.Przychod10=IFNULL(t10.ZaZlecenie,0),
		t.Przychod10A=IFNULL(t10A.ZaZlecenie,0),
		t.Dochod10=IFNULL(t10.ZaZlecenie,0)+IFNULL(t10A.ZaZlecenie,0) - IFNULL(t10.KosztyUzyskPrzy,0) - IFNULL(t10A.KosztyUzyskPrzy,0),
		t.KosztyUzyskPrzy10=IFNULL(t10.KosztyUzyskPrzy,0) + IFNULL(t10A.KosztyUzyskPrzy,0),
		t.Zaliczka10=IFNULL(t10.Zaliczka,0)+IFNULL(t10A.Zaliczka,0)

	WHERE 	t.pracGUID=t10.GUID_pracownika AND
		t.pracGUID=t10A.GUID_pracownika
	;













IF @Old_pit THEN

DROP TEMPORARY TABLE IF EXISTS ta_Pit_11_8B_old;
CREATE TEMPORARY TABLE  ta_Pit_11_8B_old
SELECT
SUM(Przychod1)Przychod1,
SUM(KosztyUzyskPrzy1)KosztyUzyskPrzy1,
SUM(Dochod1)Dochod1,
SUM(Zaliczka1)Zaliczka1,
SUM(Przychod1_2)Przychod1_2,
SUM(KosztyUzyskPrzy1_2)KosztyUzyskPrzy1_2,
SUM(Przychod2)Przychod2,
SUM(Dochod2)Dochod2,
SUM(Zaliczka2)Zaliczka2,
SUM(Przychod3)Przychod3,
SUM(Dochod3)Dochod3,
SUM(Zaliczka3)Zaliczka3,
SUM(Przychod4)Przychod4,
SUM(Dochod4)Dochod4,
SUM(Zaliczka4)Zaliczka4,
SUM(Przychod5)Przychod5,
SUM(Dochod5)Dochod5,
SUM(Zaliczka5)Zaliczka5,
SUM(Przychod6)Przychod6,
SUM(KosztyUzyskPrzy6)KosztyUzyskPrzy6,
SUM(Dochod6)Dochod6,
SUM(Zaliczka6)Zaliczka6,
SUM(Przychod7)Przychod7,
SUM(KosztyUzyskPrzy7)KosztyUzyskPrzy7,
SUM(Dochod7)Dochod7,
SUM(Zaliczka7)Zaliczka7,
SUM(Przychod8)Przychod8,
SUM(KosztyUzyskPrzy8)KosztyUzyskPrzy8,
SUM(Dochod8)Dochod8,
SUM(Zaliczka8)Zaliczka8,
SUM(Przychod9)Przychod9,
SUM(KosztyUzyskPrzy9)KosztyUzyskPrzy9,
SUM(Dochod9)Dochod9,
SUM(Zaliczka9)Zaliczka9,
SUM(Przychod10)Przychod10,
SUM(Dochod10)Dochod10,
SUM(Zaliczka10)Zaliczka10,
SUM(SklUbezpSpol)SklUbezpSpol,
SUM(SklUbezpZdrow)SklUbezpZdrow,
SUM(PrzychodyZZagranicy)PrzychodyZZagranicy,
SUM(PrzychodyBezzwrotnaPomoc)PrzychodyBezzwrotnaPomoc,
SUM(Przychod11)Przychod11,
SUM(Dochod11)Dochod11,
SUM(Zaliczka11)Zaliczka11,
SUM(KosztyUzyskPrzy10)KosztyUzyskPrzy10,
SUM(emeryt_doch_zwoln)emeryt_doch_zwoln,
SUM(inne_doch_zwoln)inne_doch_zwoln,
SUM(praca_doch_zwoln)praca_doch_zwoln,
SUM(skl_ubsp_zagr)skl_ubsp_zagr,
SUM(skl_ubzd_zagr)skl_ubzd_zagr,
SUM(Przychod10A)Przychod10A,
SUM(przychody_stypendium)przychody_stypendium,
SUM(f_wyn_zbiory)f_wyn_zbiory,
SUM(f_wyn2)f_wyn2,
SUM(f_wyn3)f_wyn3,
SUM(f_wyn4)f_wyn4,
SUM(f_wyn_razem)f_wyn_razem,
SUM(ppk)ppk,
SUM(Przychod2_2)Przychod2_2,
SUM(KosztyUzyskPrzy2)KosztyUzyskPrzy2,
SUM(KosztyUzyskPrzy2_2)KosztyUzyskPrzy2_2,
SUM(praca_doch_zwoln_2)praca_doch_zwoln_2,
SUM(KosztyUzyskPrzy11)KosztyUzyskPrzy11,
SUM(Przychody_art21u1)Przychody_art21u1,
SUM(Przychody_art21u1_1)Przychody_art21u1_1,
SUM(Przychody_art21u1_2)Przychody_art21u1_2,
SUM(KosztyUzyskPrzy4)KosztyUzyskPrzy4,
SUM(KosztyUzyskPrzy5)KosztyUzyskPrzy5,
SUM(SklUbezpSpol_2)SklUbezpSpol_2,
SUM(SklUbezpSpol_3)SklUbezpSpol_3,
SUM(SklUbezpZdrow_2)SklUbezpZdrow_2,
SUM(SklUbezpZdrow_3)SklUbezpZdrow_3,
SUM(ppk4)ppk4,
SUM(ppk5)ppk5,
SUM(ppk6)ppk6,
SUM(ppk7)ppk7,
SUM(ppk7UoD)ppk7UoD,
SUM(ppk8)ppk8,
SUM(ppk9)ppk9,
SUM(ppk10)ppk10,
SUM(ppk10A)ppk10A,
SUM(ppk11)ppk11,
SUM(ppk_art21u1_1)ppk_art21u1_1,
SUM(ppk_art21u1_2)ppk_art21u1_2,
SUM(Przychody_art21u1_3)Przychody_art21u1_3,
SUM(Przychody_art21u1_152)Przychody_art21u1_152,
SUM(Przychody_art21u1_152_1)Przychody_art21u1_152_1,
SUM(Przychody_art21u1_152_2)Przychody_art21u1_152_2,
SUM(Przychody_art21u1_152_3)Przychody_art21u1_152_3,
SUM(SklUbezpZdrow_Pobr)SklUbezpZdrow_Pobr,
SUM(Przychod12)Przychod12,
SUM(KosztyUzyskPrzy12)KosztyUzyskPrzy12,
SUM(Dochod12)Dochod12,
SUM(praca_doch_zwoln_12)praca_doch_zwoln_12,
SUM(Zaliczka12)Zaliczka12,
SUM(Przychod12_2)Przychod12_2,
SUM(KosztyUzyskPrzy12_2)KosztyUzyskPrzy12_2,
SUM(Przychod13)Przychod13,
SUM(KosztyUzyskPrzy13)KosztyUzyskPrzy13,
SUM(Dochod13)Dochod13,
SUM(Zaliczka13)Zaliczka13,
SUM(Przychod14)Przychod14,
SUM(Dochod14)Dochod14,
SUM(Zaliczka14)Zaliczka14,
SUM(Przychod15)Przychod15,
SUM(Dochod15)Dochod15,
SUM(Zaliczka15)Zaliczka15,
SUM(Przychod16)Przychod16,
SUM(Dochod16)Dochod16,
SUM(Zaliczka16)Zaliczka16 FROM `Pit_11_8B` WHERE readonly=0 AND deleted=0 AND rok=_ROK AND pracGUID=_RecGUID;





UPDATE ta_Pit_11_8B t, ta_Pit_11_8B_old o
SET
t.Przychod1=t.Przychod1 - o.Przychod1,
t.KosztyUzyskPrzy1=t.KosztyUzyskPrzy1-o.KosztyUzyskPrzy1,
t.Dochod1=t.Dochod1-o.Dochod1 ,
t.Zaliczka1=t.Zaliczka1-o.Zaliczka1 ,
t.Przychod1_2=t.Przychod1_2-o.Przychod1_2 ,
t.KosztyUzyskPrzy1_2=t.KosztyUzyskPrzy1_2-o.KosztyUzyskPrzy1_2 ,
t.Przychod2=t.Przychod2-o.Przychod2 ,
t.Dochod2=t.Dochod2-o.Dochod2 ,
t.Zaliczka2=t.Zaliczka2-o.Zaliczka2 ,
t.Przychod3=t.Przychod3-o.Przychod3 ,
t.Dochod3=t.Dochod3-o.Dochod3 ,
t.Zaliczka3=t.Zaliczka3-o.Zaliczka3 ,
t.Przychod4=t.Przychod4-o.Przychod4 ,
t.Dochod4=t.Dochod4-o.Dochod4 ,
t.Zaliczka4=t.Zaliczka4-o.Zaliczka4 ,
t.Przychod5=t.Przychod5-o.Przychod5 ,
t.Dochod5=t.Dochod5-o.Dochod5 ,
t.Zaliczka5=t.Zaliczka5-o.Zaliczka5 ,
t.Przychod6=t.Przychod6-o.Przychod6 ,
t.KosztyUzyskPrzy6=t.KosztyUzyskPrzy6-o.KosztyUzyskPrzy6 ,
t.Dochod6=t.Dochod6-o.Dochod6 ,
t.Zaliczka6=t.Zaliczka6-o.Zaliczka6 ,
t.Przychod7=t.Przychod7-o.Przychod7 ,
t.KosztyUzyskPrzy7=t.KosztyUzyskPrzy7-o.KosztyUzyskPrzy7 ,
t.Dochod7=t.Dochod7-o.Dochod7 ,
t.Zaliczka7=t.Zaliczka7-o.Zaliczka7 ,
t.Przychod8=t.Przychod8-o.Przychod8 ,
t.KosztyUzyskPrzy8=t.KosztyUzyskPrzy8-o.KosztyUzyskPrzy8 ,
t.Dochod8=t.Dochod8-o.Dochod8 ,
t.Zaliczka8=t.Zaliczka8-o.Zaliczka8 ,
t.Przychod9=t.Przychod9-o.Przychod9 ,
t.KosztyUzyskPrzy9=t.KosztyUzyskPrzy9-o.KosztyUzyskPrzy9 ,
t.Dochod9=t.Dochod9-o.Dochod9 ,
t.Zaliczka9=t.Zaliczka9-o.Zaliczka9 ,
t.Przychod10=t.Przychod10-o.Przychod10 ,
t.Dochod10=t.Dochod10-o.Dochod10 ,
t.Zaliczka10=t.Zaliczka10-o.Zaliczka10 ,
t.SklUbezpSpol=t.SklUbezpSpol-o.SklUbezpSpol ,
t.SklUbezpZdrow=t.SklUbezpZdrow-o.SklUbezpZdrow ,
t.PrzychodyZZagranicy=t.PrzychodyZZagranicy-o.PrzychodyZZagranicy ,
t.PrzychodyBezzwrotnaPomoc=t.PrzychodyBezzwrotnaPomoc-o.PrzychodyBezzwrotnaPomoc ,
t.Przychod11=t.Przychod11-o.Przychod11 ,
t.Dochod11=t.Dochod11-o.Dochod11 ,
t.Zaliczka11=t.Zaliczka11-o.Zaliczka11 ,
t.KosztyUzyskPrzy10=t.KosztyUzyskPrzy10-o.KosztyUzyskPrzy10 ,
t.emeryt_doch_zwoln=t.emeryt_doch_zwoln-o.emeryt_doch_zwoln ,
t.inne_doch_zwoln=t.inne_doch_zwoln-o.inne_doch_zwoln ,
t.praca_doch_zwoln=t.praca_doch_zwoln-o.praca_doch_zwoln ,
t.skl_ubsp_zagr=t.skl_ubsp_zagr-o.skl_ubsp_zagr ,
t.skl_ubzd_zagr=t.skl_ubzd_zagr-o.skl_ubzd_zagr ,
t.Przychod10A=t.Przychod10A-o.Przychod10A ,
t.przychody_stypendium=t.przychody_stypendium-o.przychody_stypendium ,
t.f_wyn_zbiory=t.f_wyn_zbiory-o.f_wyn_zbiory ,
t.f_wyn2=t.f_wyn2-o.f_wyn2,
t.f_wyn3=t.f_wyn3-o.f_wyn3 ,
t.f_wyn4=t.f_wyn4-o.f_wyn4 ,
t.f_wyn_razem=t.f_wyn_razem-o.f_wyn_razem ,
t.ppk=t.ppk-o.ppk ,
t.Przychod2_2=t.Przychod2_2-o.Przychod2_2 ,
t.KosztyUzyskPrzy2=t.KosztyUzyskPrzy2-o.KosztyUzyskPrzy2 ,
t.KosztyUzyskPrzy2_2=t.KosztyUzyskPrzy2_2-o.KosztyUzyskPrzy2_2 ,
t.praca_doch_zwoln_2=t.praca_doch_zwoln_2-o.praca_doch_zwoln_2 ,
t.KosztyUzyskPrzy11=t.KosztyUzyskPrzy11-o.KosztyUzyskPrzy11 ,
t.Przychody_art21u1=t.Przychody_art21u1-o.Przychody_art21u1 ,
t.Przychody_art21u1_1=t.Przychody_art21u1_1-o.Przychody_art21u1_1 ,
t.Przychody_art21u1_2=t.Przychody_art21u1_2-o.Przychody_art21u1_2 ,
t.KosztyUzyskPrzy4=t.KosztyUzyskPrzy4-o.KosztyUzyskPrzy4 ,
t.KosztyUzyskPrzy5=t.KosztyUzyskPrzy5-o.KosztyUzyskPrzy5 ,
t.SklUbezpSpol_2=t.SklUbezpSpol_2-o.SklUbezpSpol_2,
t.SklUbezpSpol_3=t.SklUbezpSpol_3-o.SklUbezpSpol_3,
t.SklUbezpZdrow_2=t.SklUbezpZdrow_2-o.SklUbezpZdrow_2 ,
t.SklUbezpZdrow_3=t.SklUbezpZdrow_3-o.SklUbezpZdrow_3 ,
t.ppk4=t.ppk4-o.ppk4 ,
t.ppk5=t.ppk5-o.ppk5 ,
t.ppk6=t.ppk6-o.ppk6 ,
t.ppk7=t.ppk7-o.ppk7 ,
t.ppk7UoD=t.ppk7UoD-o.ppk7UoD ,
t.ppk8=t.ppk8-o.ppk8 ,
t.ppk9=t.ppk9-o.ppk9 ,
t.ppk10=t.ppk10-o.ppk10 ,
t.ppk10A=t.ppk10A-o.ppk10A ,
t.ppk11=t.ppk11-o.ppk11 ,
t.ppk_art21u1_1=t.ppk_art21u1_1-o.ppk_art21u1_1 ,
t.ppk_art21u1_2=t.ppk_art21u1_2-o.ppk_art21u1_2 ,
t.Przychody_art21u1_3=t.Przychody_art21u1_3-o.Przychody_art21u1_3 ,
t.Przychody_art21u1_152=t.Przychody_art21u1_152-o.Przychody_art21u1_152 ,
t.Przychody_art21u1_152_1=t.Przychody_art21u1_152_1-o.Przychody_art21u1_152_1 ,
t.Przychody_art21u1_152_2=t.Przychody_art21u1_152_2-o.Przychody_art21u1_152_2 ,
t.Przychody_art21u1_152_3=t.Przychody_art21u1_152_3-o.Przychody_art21u1_152_3 ,
t.SklUbezpZdrow_Pobr=t.SklUbezpZdrow_Pobr-o.SklUbezpZdrow_Pobr ,
t.Przychod12=t.Przychod12-o.Przychod12 ,
t.KosztyUzyskPrzy12=t.KosztyUzyskPrzy12-o.KosztyUzyskPrzy12 ,
t.Dochod12=t.Dochod12-o.Dochod12 ,
t.praca_doch_zwoln_12=t.praca_doch_zwoln_12-o.praca_doch_zwoln_12 ,
t.Zaliczka12=t.Zaliczka12-o.Zaliczka12 ,
t.Przychod12_2=t.Przychod12_2-o.Przychod12_2 ,
t.KosztyUzyskPrzy12_2=t.KosztyUzyskPrzy12_2-o.KosztyUzyskPrzy12_2 ,
t.Przychod13=t.Przychod13-o.Przychod13,
t.KosztyUzyskPrzy13=t.KosztyUzyskPrzy13-o.KosztyUzyskPrzy13 ,
t.Dochod13=t.Dochod13-o.Dochod13 ,
t.Zaliczka13=t.Zaliczka13-o.Zaliczka13 ,
t.Przychod14=t.Przychod14-o.Przychod14 ,
t.Dochod14=t.Dochod14-o.Dochod14 ,
t.Zaliczka14=t.Zaliczka14-o.Zaliczka14 ,
t.Przychod15=t.Przychod15-o.Przychod15 ,
t.Dochod15=t.Dochod15-o.Dochod15 ,
t.Zaliczka15=t.Zaliczka15-o.Zaliczka15 ,
t.Przychod16=t.Przychod16-o.Przychod16 ,
t.Dochod16=t.Dochod16-o.Dochod16 ,
t.Zaliczka16=t.Zaliczka16-o.Zaliczka16;

END IF;



	IF _Param_D='TEST' THEN

		INSERT IGNORE  INTO t_Pit_11_8B_test_ALL SELECT * FROM ta_Pit_11_8B;

	ELSE
		INSERT IGNORE INTO `Pit_11_8B` SELECT * FROM ta_Pit_11_8B;

		INSERT INTO `log` (GUIDlink,useridn,czas,table_link,osobaguid,info)
		SELECT GUID,'',NOW(),'Pit_11_8B',@SYSTEM.Client.Session.GUID,'Tworzenie PIT ' FROM ta_Pit_11_8B;


	END IF;

	  IF _MODE LIKE '%end' THEN

		SET @one.GUID =(SELECT GUID FROM ta_Pit_11_8B);

	  END IF;



 END IF; -- KONIEC 2023


   IF _MODE LIKE 'pit.new.create.one.2022%' THEN



   SET @wystawiajacy_imie =(SELECT  imie1 FROM osoby WHERE guid=_Wystawiajacy);
   SET @wystawiajacy_nazwisko =(SELECT  nazwisko FROM osoby WHERE guid=_Wystawiajacy);

  --  SET @testRG2=CONCAT(_MODE,_RecGUID,_ODDnia,_DoDnia);

	DROP TEMPORARY TABLE IF EXISTS t_place_pit  ;
	DROP TEMPORARY TABLE IF EXISTS t_pit_place  ;
	DROP TEMPORARY TABLE IF EXISTS t_koszty_zakwaterowania ;
	DROP TEMPORARY TABLE IF EXISTS t_KosztyUPT;



	SET @KwotaDoLimitu26NarastPrZlecenia=0,@KwotaDoLimitu26NarastPrPlace=0;
	SET @NaliczUlgeNaPowrot=(SELECT IFNULL(UU.NaliczUlgeNaPowrot,0) FROM urlopy UU WHERE UU.GUIDPr = _RecGUID AND UU.rok = _ROK);
	SET @GUID_Prac=_RecGUID;
	SELECT Okres_od,Okres_do INTO @Okres_od,@Okres_do FROM  t_pit_list WHERE GUID_Pracownika=_RecGUID;
	SET @26lat_start='2019-08-01';
	SET @26lat_prac = (SELECT DATE_ADD(o.DataUrodzenia, INTERVAL 26 YEAR) FROM osoby o WHERE o.guid = _RecGUID);
	SET @wiek_emeryt =(SELECT DATE_ADD(o.DataUrodzenia, INTERVAL IF(o.plec=1,65,60) YEAR) FROM osoby o WHERE o.guid = _RecGUID);
    SET @limit_zakwaterowania = (SELECT ValueN FROM IReg WHERE IdKey='zwrotuKosztowZakwaterowaniaKwota' AND rok=_ROK);
	SET @ProcKosztUzyskPracTworcz= (SELECT Pr.ProcKosztUzyskPracTworcz/100 FROM Pracownicy Pr WHERE guid=_RecGUID);
	SET @Old_pit= (SELECT COUNT(*) FROM Pit_11_8B p WHERE p.readonly=0 AND p.deleted=0 AND p.rok=_ROK AND p.pracGUID=_RecGUID);

	
	SET @MaxDochodZw26 = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatek26lat' AND rok=_Rok);
	SET @KwDoLim26NarZlec =
        (SELECT IFNULL(SUM(KwotaDoLimitu26),0) AS KwDoLim26NarZlec
        FROM prace_zlecone
		WHERE GUID_Pracownika = _RecGUID AND  YEAR(datawyplaty) = _Rok AND deleted = 0 );

    SET @KwDoLim26NarPlac =
        (SELECT IFNULL(SUM(KwotaDoLimitu26),0) AS KwDoLim26NarPlac
        FROM place
		WHERE GUID_pracownika = _RecGUID AND YEAR(datawyplaty) = _Rok  AND deleted = 0 );
		
		
		
	/* TODO usunac jak sie zdecyduja Ponizsze parametry nie wykorzystywane AS wycofal sie z wyliczen - narazie maja pozostac */	

	SET @MaxDochodZwDR = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatekDR' AND rok=_Rok);
    SET @MaxDochodZwPE = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatekPE' AND rok=_Rok);
	SET @MaxDochodZwPEDR = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatekDR' AND rok=_Rok);
	IF IFNULL(@MaxDochodZwPEDR,0) =0 THEN
			SET @MaxDochodZwPEDR = (SELECT ValueN FROM IReg WHERE IdKey LIKE 'MaxDochodZwolnionyPodatekPE' AND rok=_Rok);
	END IF;
	SET @KwDoLimDRNarZlec =
        (SELECT IFNULL(SUM(KwotaDoLimituDR),0) AS KwDoLimDRNarZlec
		FROM prace_zlecone
		WHERE GUID_Pracownika = _RecGUID AND  YEAR(datawyplaty) = _Rok AND deleted = 0 );
    SET @KwDoLimDRNarPlac =
        (SELECT IFNULL(SUM(KwotaDoLimituDR),0) AS KwDoLimDRNarPlac
        FROM place
		WHERE GUID_pracownika = _RecGUID AND YEAR(datawyplaty) = _Rok  AND deleted = 0 );
	SET @KwDoLimPENarZlec =
        (SELECT IFNULL(SUM(KwotaDoLimituPE),0) AS KwDoLimPENarZlec
		FROM prace_zlecone
		WHERE GUID_Pracownika = _RecGUID AND  YEAR(datawyplaty) = _Rok AND deleted = 0 );
    SET @KwDoLimPENarPlac =
        (SELECT IFNULL(SUM(KwotaDoLimituPE),0) AS KwDoLimDRNarPlac
        FROM place
		WHERE GUID_pracownika = _RecGUID AND YEAR(datawyplaty) = _Rok  AND deleted = 0 );

	 /* Koniec nieuzywanych parametrow */  

	-- Naliczanie
	CREATE TEMPORARY TABLE t_place_pit
			SELECT p.*,
		IF(p.KwotaBrutto=SUM(ps.kwota),1,0) AS tylko_zasilki,
		
		
		IF(p.PodstawaPPD = round(SUM(ps.kwota)),1,0) AS PPDtoZas,
		SUM(ps.kwota) AS zasilki_all ,
		SUM(IF(ps.GUID_definicja_skladnika_placy IN ('C_9','C_11','ZCHZ'),ps.kwota,0)) AS zasilki ,
		SUM(IF(ps.GUID_definicja_skladnika_placy IN ('C_10'),ps.kwota,0)) AS z_macierzynski,
		'1.0000' AS prop_zasilki_all,
		'0.0000' AS zal_zasilki_all,
		'0.0000' AS zal_zasilki,
		'0.0000' AS zal_z_macierzynski,
		IF(p.datawyplaty >=@26lat_start AND datawyplaty < @26lat_prac,1,0) AS 26lat,
		IF(p.datawyplaty >= @wiek_emeryt,1,0) AS emeryt,
		IF(@NaliczUlgeNaPowrot OR p.NaliczUlgeDlaPE OR p.NaliczUlgeDlaDR,1,0) AS G_114,
		0 AS opodatkowany26lat, -- dodatkowy warunek z d 1 calosc zwolniona, 2- calosc opodatkowana - 3 czesciowo opodatkowana , 0 - wartosc nieustalona nie wchodzi do pit przy 26 lat
		0 AS opodatkowanyPE, -- dodatkowy warunek z d 1 calosc zwolniona, 2- calosc opodatkowana - 3 czesciowo opodatkowana , 0 - wartosc nieustalona nie wchodzi do pit przy pracujacym emerycie
		0 AS opodatkowanyDR, -- dodatkowy warunek z d 1 calosc zwolniona, 2- calosc opodatkowana - 3 czesciowo opodatkowana , 0 - wartosc nieustalona nie wchodzi do pit przy duzej rodzinie
		'0.0000' AS wart_nie_do_odlicz26lat,
		'0.0000' AS wart_nie_do_odliczPE,
		'0.0000' AS wart_nie_do_odliczDR,
		_rnd2(@KwDoLim26NarZlec+@KwDoLim26NarPlac - p.KwotaDoLimitu26) AS KwotaDoLimitu26NarastPr,
		_rnd2(@MaxDochodZw26 - (@KwDoLim26NarZlec+@KwDoLim26NarPlac - p.KwotaDoLimitu26)) AS PozostaloDoOdliczenia26,
		
		/* TODO usunac jak sie zdecyduja Ponizsze niewykorzystane */
		_rnd2(@KwDoLimPENarZlec+@KwDoLimPENarPlac - p.KwotaDoLimituPE) AS KwotaDoLimituPENarastPr,
		_rnd2(@MaxDochodZwPE - (@KwDoLimPENarZlec+@KwDoLimPENarPlac - p.KwotaDoLimituPE)) AS PozostaloDoOdliczeniaPE,
		_rnd2(@KwDoLimDRNarZlec+@KwDoLimDRNarPlac - p.KwotaDoLimituDR) AS KwotaDoLimituDRNarastPr,
		_rnd2(@MaxDochodZwDR - (@KwDoLimDRNarZlec+@KwDoLimDRNarPlac - p.KwotaDoLimituDR)) AS PozostaloDoOdliczeniaDR,
		_rnd2(@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (p.KwotaDoLimituPE + p.KwotaDoLimituDR)) AS KwotaDoLimituPEDRNarast,
		_rnd2(@MaxDochodZwPEDR - (@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (p.KwotaDoLimituPE +p.KwotaDoLimituDR))) AS PozostaloDoOdliczeniaPEDR
		/* Koniec niewykorzystanych  */

	FROM place p
	LEFT JOIN place_skladniki ps ON ps.GUID_zapisu_placowego = p.GUID AND ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ')
	WHERE
		GUID_pracownika=_RecGUID AND
		YEAR(p.datawyplaty)=_ROK AND
		deleted=0
	GROUP BY p.guid;
	
	
	
	ALTER TABLE t_place_pit ADD COLUMN NALICZ_KwotaDoLimitu26NarastPr DOUBLE (16,4);

	DROP TEMPORARY TABLE IF EXISTS t_narastajaca_do_limitu_26_one;
	DROP TEMPORARY TABLE IF EXISTS t_narastajaca_do_limitu_26_final;
	
	CREATE TEMPORARY TABLE t_narastajaca_do_limitu_26_one
	SELECT ta.guid,ta.datawyplaty,ta.KwotaDoLimitu26,miesiac, ta.KwotaDoLimitu26-IF(ta.datawyplaty<='2022-06-30',ta.zasilki_all,ta.zasilki) AS KwotaDoLimitu26_bez_zas FROM t_place_pit ta;
 
	CREATE TEMPORARY TABLE t_narastajaca_do_limitu_26_final
	SELECT p.guid,
	(SELECT SUM(t.KwotaDoLimitu26_bez_zas) FROM t_narastajaca_do_limitu_26_one t WHERE t.datawyplaty<= LAST_DAY(p.datawyplaty) AND t.guid<>p.guid) AS NALICZ_KwotaDoLimitu26NarastPr FROM t_place_pit p;
 
	UPDATE t_place_pit p,t_narastajaca_do_limitu_26_final t SET p.NALICZ_KwotaDoLimitu26NarastPr=IFNULL(t.NALICZ_KwotaDoLimitu26NarastPr,0) WHERE p.guid=t.guid;

/* procentowe proporcjonalne wyliczanie zaliczki do zailkow */

	UPDATE t_place_pit p SET p.prop_zasilki_all=p.zasilki/p.zasilki_all WHERE p.tylko_zasilki AND p.zasilki>0 AND p.z_macierzynski>0;
	UPDATE t_place_pit p SET p.zal_zasilki_all=p.Zaliczka WHERE tylko_zasilki ;
	UPDATE t_place_pit p SET p.zal_zasilki_all=IF(p.zasilki_all>0 AND p.Zaliczka>0,_Rnd(p.zasilki_all*(p.ProcentPodatku/100)-p.KwotaWolnaOdPodatku,0),0) WHERE NOT tylko_zasilki ;
	UPDATE t_place_pit p SET p.zal_zasilki_all=0 WHERE p.zal_zasilki_all<0;

	UPDATE t_place_pit p SET p.zal_zasilki = _Rnd(p.zal_zasilki_all * p.prop_zasilki_all,0) WHERE p.zasilki>0;
	UPDATE t_place_pit p SET p.zal_z_macierzynski = _Rnd(p.zal_zasilki_all - p.zal_zasilki,0);
	
	
/*   TODO cala sekcja pewnie do wywalenia (kiedys) uzywane tylko  do ustalania opodatkowania 26 latkow  */

-- opodatkowanie 26 lat	
--  BracCalyJakoZwolniony,
	UPDATE t_place_pit p SET p.opodatkowany26lat=1 
	WHERE
	(p.ZwolnienieOdPodatku26Lat AND ((p.PodstawaPPD + p.KosztyUzyskania) =0));
	
	
-- CalyOdrzucacJakoZwolniony
	UPDATE t_place_pit p SET p.opodatkowany26lat=2 
	WHERE 
	(p.ZwolnienieOdPodatku26Lat AND ( ( (p.RazemSkladkiPracownika>0) AND (p.SkladkiUbezpSpolDoOdliczenia=p.RazemSkladkiPracownika ) AND (p.PodstawaPPD + p.KosztyUzyskania >0)
                                  )  
                                 OR
                                  ( (p.PodstawaPPD + p.KosztyUzyskania >0) AND (p.RazemSkladkiPracownika=0) AND (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab =0) -- ma byc KwotaZasMacierz=0) -- czyli to zapis z zasiłkami innymi niż macierzynski lub czyms nie ozusowanym
                                  )                           
                                 )
                            OR (KwotaDoLimitu26NarastPr > @MaxDochodZw26)     
 );


-- CzesciowoZwolniony przekroczony
	UPDATE t_place_pit p SET p.opodatkowany26lat=3 WHERE
		(p.ZwolnienieOdPodatku26Lat AND ( ( (p.SkladkiUbezpSpolDoOdliczenia>0) AND (p.SkladkiUbezpSpolDoOdliczenia<>p.RazemSkladkiPracownika) )
                                    OR
                                  (  (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab >0)  -- zamiast DnMacierz ma byc kwota zas. maierzynskiego oraz dalsza częś warunku >>> and (ChoroboweZUS + ZasRehab + ZasOpiek >0)
                                   )
                                )   
                                
                    AND  ( p.KwotaDoLimitu26NarastPr < @MaxDochodZw26  )
                    AND (p.PodstawaPPD + p.KosztyUzyskania>0)				
);

-- CzesciowoZwolniony nieprzekroczony 
/* jednak nie bedzie podzialu
	UPDATE t_place_pit p SET p.opodatkowany26lat=4 WHERE
		(p.ZwolnienieOdPodatku26Lat AND ( ( (p.SkladkiUbezpSpolDoOdliczenia>0) AND (p.SkladkiUbezpSpolDoOdliczenia<>p.RazemSkladkiPracownika) )
                                    OR
                                  (  (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab >0)  -- zamiast DnMacierz ma byc kwota zas. maierzynskiego oraz dalsza częś warunku >>> and (ChoroboweZUS + ZasRehab + ZasOpiek >0)
                                   )
                                )   
                                
                    AND  ( p.KwotaDoLimitu26NarastPr +p.KwotaDoLimitu26 <= @MaxDochodZw26 )
                    AND (p.PodstawaPPD + p.KosztyUzyskania>0)				
);
*/	 

/* TODO do usuniecia sekcja nieuzywana do wywalenia jak bedzie decyzja */
-- opodatkowanie duzej rodziny 
--  BracCalyJakoZwolniony,
	UPDATE t_place_pit p SET p.opodatkowanyDR=1 
	WHERE
	(p.NaliczUlgeDlaDR AND ((p.PodstawaPPD + p.KosztyUzyskania) =0));
		
-- CalyOdrzucacJakoZwolniony
	UPDATE t_place_pit p SET p.opodatkowanyDR=2 
	WHERE 
	(p.NaliczUlgeDlaDR AND ( ( (p.RazemSkladkiPracownika>0) AND (p.SkladkiUbezpSpolDoOdliczenia=p.RazemSkladkiPracownika ) AND (p.PodstawaPPD + p.KosztyUzyskania >0)
                                  )  
                                 OR
                                  ( (p.PodstawaPPD + p.KosztyUzyskania >0) AND (p.RazemSkladkiPracownika=0) AND (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab  =0) -- ma byc KwotaZasMacierz=0) -- czyli to zapis z zasiłkami innymi niż macierzynski lub czyms nie ozusowanym
                                  )                           
                                 )
                            OR (KwotaDoLimituDRNarastPr > @MaxDochodZwDR));


-- CzesciowoZwolniony
	UPDATE t_place_pit p SET p.opodatkowanyDR=3 WHERE
		(p.NaliczUlgeDlaDR AND ( ( (p.SkladkiUbezpSpolDoOdliczenia>0) AND (p.SkladkiUbezpSpolDoOdliczenia<>p.RazemSkladkiPracownika) )
                                    OR
                                  (  (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab  >0)  -- zamiast DnMacierz ma byc kwota zas. maierzynskiego oraz dalsza częś warunku >>> and (ChoroboweZUS + ZasRehab + ZasOpiek >0)
                                   )
                                )   
                                
                 
					AND  ( p.KwotaDoLimituDRNarastPr < @MaxDochodZwDR  )
                    AND (p.PodstawaPPD + p.KosztyUzyskania>0));
					
-- CzesciowoZwolniony nieprzekroczony							
					
	-- opodatkowanie pracujacego emeryta
--  BracCalyJakoZwolniony,
	UPDATE t_place_pit p SET p.opodatkowanyPE=1 
	WHERE
	(p.NaliczUlgeDlaPE AND ((p.PodstawaPPD + p.KosztyUzyskania) =0));
		
-- CalyOdrzucacJakoZwolniony
	UPDATE t_place_pit p SET p.opodatkowanyPE=2 
	WHERE 
	(p.NaliczUlgeDlaPE AND ( ( (p.RazemSkladkiPracownika>0) AND (p.SkladkiUbezpSpolDoOdliczenia=p.RazemSkladkiPracownika ) AND (p.PodstawaPPD + p.KosztyUzyskania >0)
                                  )  
                                 OR
                                  ( (p.PodstawaPPD + p.KosztyUzyskania >0) AND (p.RazemSkladkiPracownika=0) AND (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab  =0) -- ma byc KwotaZasMacierz=0) -- czyli to zapis z zasiłkami innymi niż macierzynski lub czyms nie ozusowanym
                                  )                           
                                 )
                            OR (KwotaDoLimituPENarastPr > @MaxDochodZwPE));


-- CzesciowoZwolniony
	UPDATE t_place_pit p SET p.opodatkowanyPE=3 WHERE
		(p.NaliczUlgeDlaPE AND ( ( (p.SkladkiUbezpSpolDoOdliczenia>0) AND (p.SkladkiUbezpSpolDoOdliczenia<>p.RazemSkladkiPracownika) )
                                    OR
                                  (  (p.DniMacierz+p.DniChorZUS+p.DniOpieka+p.DniRehab  >0)  -- zamiast DnMacierz ma byc kwota zas. maierzynskiego oraz dalsza częś warunku >>> and (ChoroboweZUS + ZasRehab + ZasOpiek >0)
                                   )
                                )   
                                
					AND  (p.KwotaDoLimituPENarastPr < @MaxDochodZwPE )
                    AND (p.PodstawaPPD + p.KosztyUzyskania>0));		
			
/* odejscie od pomyslu 2023-01-26 12:15
UPDATE t_place_pit p
SET wart_nie_do_odlicz26lat= (p.KwotaBrutto+p.SkladkiUbezpSpolDoOdliczenia - IFNULL(SumaSkladnikowDlaKUPT,0)-p.Zasilki_all) - 
_rnd2(GREATEST(((p.KwotaBrutto+p.SkladkiUbezpSpolDoOdliczenia - IFNULL(SumaSkladnikowDlaKUPT,0)-p.Zasilki_all)-p.PozostaloDoOdliczenia26),0)) WHERE p.opodatkowany26lat=3;

UPDATE t_place_pit p
SET wart_nie_do_odliczPE= (p.KwotaBrutto+p.SkladkiUbezpSpolDoOdliczenia - IFNULL(SumaSkladnikowDlaKUPT,0)-p.Zasilki_all) - 
_rnd2(GREATEST(((p.KwotaBrutto+p.SkladkiUbezpSpolDoOdliczenia - IFNULL(SumaSkladnikowDlaKUPT,0)-p.Zasilki_all)-p.PozostaloDoOdliczeniaPE),0)) WHERE p.opodatkowanyPE=3;


UPDATE t_place_pit p
SET wart_nie_do_odliczDR= (p.KwotaBrutto+p.SkladkiUbezpSpolDoOdliczenia - IFNULL(SumaSkladnikowDlaKUPT,0)-p.Zasilki_all) - 
_rnd2(GREATEST(((p.KwotaBrutto+p.SkladkiUbezpSpolDoOdliczenia - IFNULL(SumaSkladnikowDlaKUPT,0)-p.Zasilki_all)-p.PozostaloDoOdliczeniaDR),0)) WHERE p.opodatkowanyDR=3;
 
*/	
/* KONIEC SEKCJI OZNACZANIA ZAPISOW jako opodatkowane */

	


	ALTER TABLE t_place_pit
		ADD COLUMN koszty_zakw DOUBLE (16,4) NOT NULL DEFAULT 0,
		ADD COLUMN koszty_UTP DOUBLE (16,4) NOT NULL DEFAULT 0  ;


	CREATE TEMPORARY TABLE t_koszty_zakwaterowania
	SELECT SUM(ps.kwota) AS kwota,p.guid FROM place_skladniki ps ,definicja_skladnika_placy dsp ,t_place_pit p
	WHERE dsp.GUID = ps.GUID_definicja_skladnika_placy AND ps.GUID_zapisu_placowego = p.GUID AND dsp.zwrotKosztowZakwaterowania = 1 ;

	UPDATE t_place_pit tp, t_koszty_zakwaterowania tz SET tp.koszty_zakw=IF(tz.kwota>@limit_zakwaterowania,@limit_zakwaterowania,tz.kwota) WHERE tp.guid=tz.guid;

	CREATE TEMPORARY TABLE t_KosztyUPT
	SELECT SUM(ps.kwota) AS kwota,p.guid FROM place_skladniki ps ,definicja_skladnika_placy dsp ,t_place_pit p
	WHERE dsp.GUID = ps.GUID_definicja_skladnika_placy AND ps.GUID_zapisu_placowego = p.GUID AND dsp.DoPodstKosztUPT = 1  ;

	UPDATE t_place_pit tp, t_KosztyUPT tk SET tp.koszty_UTP=tk.kwota WHERE tp.guid=tk.guid;


	CREATE TEMPORARY TABLE  t_pit_place
	SELECT
	_RecGUID AS GUID_pracownika,
	SUM(koszty_UTP * @ProcKosztUzyskPracTworcz)  AS Przychod1_2old,
	SUM(IFNULL(SumaSkladnikowDlaKUPT,0)) AS Przychod1_2,

	SUM(IF(NOT p.26lat AND NOT p.emeryt AND NOT p.G_114,
		p.KwotaBrutto+p.RazemSkladkiPracownika
		-IFNULL(SumaSkladnikowDlaKUPT,0)
		-IFNULL(p.zasilki_all,0)
		- p.koszty_zakw ,0))
	 AS Przychod1,

/*
	SUM(IF(NOT p.26lat AND NOT p.emeryt AND NOT p.G_114,
		p.KwotaBrutto + p.RazemSkladkiPracownika
		- p.KosztyUPT
		- p.KosztyUzyskania
		-IFNULL(p.zasilki_all,0),0))
	 AS Dochod1,
*/
	SUM(IF(NOT p.26lat AND NOT p.emeryt AND NOT p.G_114,
	p.ZaliczkaDoRocznegoPita
	+ p.Zaliczka
	- IF(p.RozliczenieKwotyDoZaplaty,p.KorektaNaPlus,0)+
	IF(p.RozliczenieNadplaty,p.KorektaNaMinus,0)-
	p.zal_zasilki_all,0))
	AS Zaliczka1 ,

	SUM(IF(NOT p.26lat AND NOT p.emeryt AND NOT p.G_114 AND p.KwotaBrutto > p.zasilki_all,IF((ABS(p.KosztyUzyskania)>ABS(p.KwotaBrutto)), (p.KwotaBrutto), (p.KosztyUzyskania)),
	IF(p.GUID_storno<>'',p.KosztyUzyskania ,0)))
	AS KosztyUzyskPrzy1,

-- 26 latek etat

-- 26 latek etat do kazdego rekordu dodany dodatkowy warunek opodatkowany26lat
/* bylo do 2023-01-25 17:46
	SUM( IF(p.26lat AND p.opodatkowany26lat IN (2,3) AND (NOT p.ZwolnienieOdPodatku26Lat OR (p.ZwolnienieOdPodatku26Lat AND  (p.Zaliczka>0)  AND NOT p.PPDtoZas AND p.opodatkowany26lat IN (2,3))),
	p.KwotaBrutto+p.RazemSkladkiPracownika
	-IFNULL(SumaSkladnikowDlaKUPT,0)
	- p.Zasilki_all
	- IF(p.opodatkowany26lat=3, p.PozostaloDoOdliczenia26,0)
	,0))  AS Przychod2,

	*/
	
	SUM(IF(p.26lat AND p.opodatkowany26lat IN (2,3) AND (NOT p.ZwolnienieOdPodatku26Lat OR (p.ZwolnienieOdPodatku26Lat AND  (p.Zaliczka>0)  AND NOT p.PPDtoZas AND p.opodatkowany26lat IN (2,3))),
	p.KwotaBrutto+p.RazemSkladkiPracownika
	-IFNULL(SumaSkladnikowDlaKUPT,0)
	- p.Zasilki_all
	- IF(p.opodatkowany26lat=3, p.PozostaloDoOdliczenia26,0)
	,0))  AS Przychod2,
	
	SUM(IF(p.26lat AND p.opodatkowany26lat IN (2,3) AND p.Zaliczka>0,
		p.ZaliczkaDoRocznegoPita
		+ p.Zaliczka
		- IF(p.RozliczenieKwotyDoZaplaty,p.KorektaNaPlus,0)+
		IF(p.RozliczenieNadplaty,p.KorektaNaMinus,0)-
		p.zal_zasilki_all ,0))
	AS Zaliczka2,

    SUM(IF(p.26lat AND p.opodatkowany26lat IN (2,3,4) AND (NOT p.ZwolnienieOdPodatku26Lat OR (p.ZwolnienieOdPodatku26Lat AND  (p.Zaliczka>0)  AND NOT p.PPDtoZas )),
	
	
    IF((ABS(p.KosztyUzyskania)>ABS(p.KwotaBrutto)), (p.KwotaBrutto), (p.KosztyUzyskania)),0))  AS KosztyUzyskPrzy2 ,

	 /* Przeniesiony do wyliczen w tabeli glownej Przychod - koszty 
	 SUM( IF(p.26lat AND p.opodatkowany26lat IN (2,3)  AND (NOT p.ZwolnienieOdPodatku26Lat OR (p.ZwolnienieOdPodatku26Lat AND  (p.Zaliczka>0)  AND NOT p.PPDtoZas)),
	(p.KwotaBrutto + p.RazemSkladkiPracownika - p.KosztyUPT - p.KosztyUzyskania - p.Zasilki_all
	- IF(p.opodatkowany26lat=3, p.PozostaloDoOdliczenia26,0)
	),0))  AS Dochod2,
	*/	

	 -- pracujacy emeryt 
	 /*
    SUM( IF(p.emeryt AND (NOT p.G_114 OR (p.G_114 AND  (p.Zaliczka>0)  AND NOT p.PPDtoZas)),
	if(p.opodatkowanyPE   =2,p.KwotaDoLimituPE,0)
	+ if(p.opodatkowanyPE =4, p.kwotaBrutto - p.KwotaDoLimituDR + p.SkladkiUbezpSpolDoOdliczenia,0)
	+ if(p.opodatkowanyPE =3, p.KwotaBrutto+p.RazemSkladkiPracownika-IFNULL(SumaSkladnikowDlaKUPT,0)- p.Zasilki_all- p.PozostaloDoOdliczeniaPE,0)
    ,0))  AS Przychod12,
	*/
	SUM( IF(p.emeryt AND (NOT p.G_114 OR (p.G_114 AND  (p.Zaliczka>0)  AND NOT p.PPDtoZas)) ,
	p.KwotaBrutto+p.RazemSkladkiPracownika-p.Zasilki_all,0))  AS Przychod12,
	
	 /* Przeniesiony do wyliczen w tabeli glownej Przychod - koszty 
	SUM( IF(p.emeryt AND (NOT p.G_114 OR (p.G_114 AND  (p.Zaliczka>0)  AND NOT p.PPDtoZas)),
	(p.KwotaBrutto + p.RazemSkladkiPracownika - p.KosztyUPT - p.KosztyUzyskania -p.Zasilki_all),0))  AS Dochod12,
     */

	SUM(IF(p.emeryt AND NOT p.G_114 AND  p.Zaliczka>0,
		p.ZaliczkaDoRocznegoPita
		+ p.Zaliczka
		- IF(p.RozliczenieKwotyDoZaplaty,p.KorektaNaPlus,0)+
		IF(p.RozliczenieNadplaty,p.KorektaNaMinus,0)-
		p.zal_zasilki_all ,0))
	AS Zaliczka12,

	SUM(IF(p.emeryt AND NOT p.G_114 ,
	IF(ABS(p.KosztyUzyskania)>ABS(p.KwotaBrutto), p.KwotaBrutto, p.KosztyUzyskania),0))  AS KosztyUzyskPrzy12 ,

    -- koniec pracujacy emeryt
	SUM(p.KosztyUzyskania) AS KosztyUzyskania,


	-- macierzynski pozostale

	SUM(IF(NOT p.26lat AND NOT p.emeryt AND NOT p.G_114 -- AND p.Zaliczka> 0   -- AS 18.01.2023 czasem zasilek jest na tyle maly ze kwota wolna go zeruje a brutto trzeba zebrac
	,p.z_macierzynski,0)) AS Przychod14,

	SUM(IF(NOT p.26lat AND NOT p.emeryt AND NOT p.G_114 -- AND p.Zaliczka> 0
	,p.zal_z_macierzynski,0)) AS Zaliczka14,

-- macierzynski 26 lat   do kazdego rekordu zostal dodany warunek 
/*    do 2023 - 01-24
	SUM(IF(p.26lat AND p.opodatkowany26lat IN (2,3) AND NOT p.G_114 AND p.Zaliczka> 0,p.z_macierzynski
	- IF(p.opodatkowany26lat=3, p.PozostaloDoOdliczenia26,0) 
	,0)) AS Przychod15,
		SUM(IF(p.26lat AND p.opodatkowany26lat IN (2,3) AND NOT p.G_114 AND p.Zaliczka> 0,p.z_macierzynski
	- IF(p.opodatkowany26lat=3, p.PozostaloDoOdliczenia26,0),0)) AS Dochod15,
	
	SUM(IF(p.26lat AND p.opodatkowany26lat IN (2,3) AND p.opodatkowany26lat IN (2,3) ,p.zal_z_macierzynski,0)) AS Zaliczka15,
	
*/	
	SUM(IF(p.26lat AND NOT p.G_114 AND p.Zaliczka > 0,p.z_macierzynski
	,0)) AS Przychod15,
	
	SUM(IF(p.26lat AND p.Zaliczka> 0 ,p.zal_z_macierzynski,0)) AS Zaliczka15,

-- macierzynski emeryt
	SUM(IF(p.emeryt AND NOT p.G_114 AND p.Zaliczka> 0,p.z_macierzynski,0)) AS Przychod16,

	SUM(IF(p.emeryt AND NOT p.G_114 AND p.Zaliczka> 0,p.zal_z_macierzynski,0)) AS Zaliczka16,
-- inne zrodla
	SUM(zasilki) AS innezrodla,
	SUM(zasilki) AS innezrodla_dochod,
	SUM(IF(p.zaliczka>0 AND  p.KwotaBrutto=zasilki, IF(ABS(p.KosztyUzyskania)>ABS(p.KwotaBrutto), p.KwotaBrutto, p.KosztyUzyskania),0)) AS innezrodla_KosztyUzysk,
	SUM(p.zal_zasilki) AS innezrodla_zaliczka ,

	SUM(IF(NOT p.26lat,  p.PPKskladkaPracod ,0)) AS PPK,
	SUM(p.KosztyUPT) AS KosztyUzyskPrzy1_2,
	SUM(IF(NOT p.26lat AND NOT p.emeryt,p.RazemSkladkiPracownika,0)) AS SklUbezpSpol,
	-- SUM(IF(NOT p.26lat,p.SklKasaChorOdlicz,0)) AS SklUbezpZdrow,
	SUM(IFNULL(p.SklKasaChorychPracowPobr,0)) AS SklUbezpZdrow,

	SUM(IF(p.emeryt OR (p.26lat AND ( NOT p.ZwolnienieOdPodatku26Lat OR ( p.ZwolnienieOdPodatku26Lat AND ( p.Zaliczka>0) AND p.PodstawaPPD <> ROUND(Zasilki)))),p.RazemSkladkiPracownika,0)) AS SklUbezpSpol_2 ,
	SUM(IF(p.26lat AND p.ZwolnienieOdPodatku26Lat ,p.RazemSkladkiPracownika - p.SkladkiUbezpSpolDoOdliczenia,0)) AS SklUbezpSpol_3 ,


	SUM(IF(p.26lat AND ( NOT p.ZwolnienieOdPodatku26Lat OR ( p.ZwolnienieOdPodatku26Lat AND ( p.Zaliczka>0) AND p.PodstawaPPD <> Zasilki)),p.SklKasaChorOdlicz,0)) AS SklUbezpZdrow_2,
	SUM(IF(p.26lat AND p.ZwolnienieOdPodatku26Lat ,p.SklKasaChorOdlicz,0)) AS SklUbezpZdrow_3,

-- 26 lat nieopodatkowane

 /*bylo do 2023-01-25 15:47
	SUM(IF(p.26lat AND  p.ZwolnienieOdPodatku26Lat AND p.opodatkowany26lat IN (1,3) AND  (p.Zaliczka= 0 OR (p.Zaliczka>0 AND p.PodstawaPPD = p.Zasilki_all)),
	p.KwotaBrutto+p.SkladkiUbezpSpolDoOdliczenia - IFNULL(SumaSkladnikowDlaKUPT,0)-p.Zasilki_all
    - greatest(if(p.opodatkowany26lat=3,
	(p.KwotaBrutto+p.SkladkiUbezpSpolDoOdliczenia - IFNULL(SumaSkladnikowDlaKUPT,0)-p.Zasilki_all)-	p.PozostaloDoOdliczenia26,0)
	,0),0))  AS Przychody_art21u1_1,
*/

	SUM(IF( p.Zaliczka= 0 OR (p.Zaliczka>0 AND p.PPDtoZas ) AND p.opodatkowany26lat IN (1),p.KwotaBrutto+p.SkladkiUbezpSpolDoOdliczenia -p.Zasilki_all,0)
    +   IF( p.opodatkowany26lat IN (3) AND
            (p.Zaliczka= 0 OR (p.Zaliczka>0 AND p.PPDtoZas ) OR (p.Zaliczka>0 AND (p.SkladkiUbezpSpolDoOdliczenia <> p.RazemSkladkiPracownika)) )    ,
            p.KwotaDoLimitu26-IF(p.datawyplaty<='2022-06-30',p.zasilki_all,p.zasilki)
            ,0))	 
	AS Przychody_art21u1_1,
	
	
	
	SUM(IF(p.26lat AND  p.ZwolnienieOdPodatku26Lat AND p.Zaliczka= 0 OR(p.Zaliczka>0 AND p.PodstawaPPD = p.Zasilki),
	p.z_macierzynski,0)) Przychody_art21u1_3,

	SUM(IF(p.26lat AND  p.ZwolnienieOdPodatku26Lat AND p.Zaliczka= 0, p.PPKskladkaPracod,0))AS ppk_art21u1_1  ,
	SUM(IF(NOT p.26lat AND p.G_114  AND p.Zaliczka= 0, p.PPKskladkaPracod,0))AS ppk_art21u1_152_1 ,
	
	/* bylo do 2023-01-25 14:58    + zamieniamy kwote wyliczana na KwotaDoLimituDR
	SUM(IF(NOT p.26lat AND p.G_114  AND p.Zaliczka= 0 OR (p.Zaliczka>0 AND p.PodstawaPPD = p.Zasilki),
	p.KwotaBrutto+p.SkladkiUbezpSpolDoOdliczenia - IFNULL(SumaSkladnikowDlaKUPT,0)-p.Zasilki_all,0))  AS Przychody_art21u1_152_1,
    */
/*	SUM(IF(p.Zaliczka= 0 OR (p.Zaliczka>0 AND p.PPDtoZas ),
	IF(p.opodatkowanyDR IN (4,1) OR p.opodatkowanyPE IN (4,1),p.KwotaDoLimituDR+p.KwotaDoLimituPE,0)
	+ IF(p.opodatkowanyDR IN (3) ,p.wart_nie_do_odliczDR,0)
	+ IF(p.opodatkowanyPE IN (3) ,p.wart_nie_do_odliczPE,0)
    ,0))
	AS Przychody_art21u1_152_1,*/
	
	SUM(IF(NOT p.26lat AND p.G_114  AND p.Zaliczka= 0 OR (p.Zaliczka>0 AND p.PodstawaPPD = p.Zasilki),
	p.KwotaBrutto+p.SkladkiUbezpSpolDoOdliczenia - IFNULL(SumaSkladnikowDlaKUPT,0)-p.Zasilki_all,0))  AS Przychody_art21u1_152_1,

	SUM(IF(NOT p.26lat AND p.G_114  AND p.Zaliczka= 0 OR (p.Zaliczka>0 AND p.PodstawaPPD = p.Zasilki),
	p.z_macierzynski,0))  AS Przychody_art21u1_152_3,
	@NaliczUlgeNaPowrot AS ulgaPW,
	SUM(p.NaliczUlgeDlaPE) AS ulgaPE,
	SUM(p.NaliczUlgeDlaDR) AS ulgaDR



FROM t_place_pit p ;






-- zlecenia

	DROP TEMPORARY TABLE IF EXISTS t_prace_zlecone_pit ;
	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec4 ;
	SET @Naliczac_podatek_od_zasilkow = (SELECT ValueI FROM IReg WHERE idkey = 'Naliczac_podatek_od_zasilkow');


	CREATE TEMPORARY TABLE t_prace_zlecone_pit
	SELECT pz.*,
	IF(pz.KwotaBrutto=SUM(ps.kwota),1,0) AS tylko_zasilki,
	SUM(ps.kwota) AS zasilki_all ,
	SUM(IF(ps.GUID_definicja_skladnika_placy IN ('Z_2','Z_4'),ps.kwota,0)) AS zasilki,
	SUM(IF(ps.GUID_definicja_skladnika_placy IN ('Z_3'),ps.kwota,0)) AS z_macierzynski,
	'1.0000' AS prop_zasilki_all,
	'0.0000' AS zal_zasilki_all,
	'0.0000' AS zal_zasilki,
	'0.0000' AS zal_z_macierzynski,
	IF(pz.datawyplaty >=@26lat_start AND datawyplaty <= @26lat_prac,1,0) AS 26lat,
	IF(pz.datawyplaty >= @wiek_emeryt,1,0) AS emeryt,
	IF(@NaliczUlgeNaPowrot OR pz.NaliczUlgeDlaPE OR pz.NaliczUlgeDlaDR,1,0) AS G_114,
	0 AS opodatkowany26lat, -- dodatkowy warunek z d 1 calosc zwolniona, 2- calosc opodatkowana - 3 czesciowo opodatkowana , 0 - wartosc nieustalona nie wchodzi do pit przy 26 lat
	0 AS opodatkowanyPE, -- dodatkowy warunek z d 1 calosc zwolniona, 2- calosc opodatkowana - 3 czesciowo opodatkowana , 0 - wartosc nieustalona nie wchodzi do pit przy pracujacym emerycie
	0 AS opodatkowanyDR, -- dodatkowy warunek z d 1 calosc zwolniona, 2- calosc opodatkowana - 3 czesciowo opodatkowana , 0 - wartosc nieustalona nie wchodzi do pit przy duzej rodzinie

	
	@KwDoLim26NarZlec + @KwDoLim26NarPlac - pz.KwotaDoLimitu26 AS KwotaDoLimitu26NarastPr,
	@MaxDochodZw26 - (@KwDoLim26NarZlec + @KwDoLim26NarPlac - pz.KwotaDoLimitu26) AS PozostaloDoOdliczenia26,
	
	@KwDoLimPENarZlec+@KwDoLimPENarPlac - pz.KwotaDoLimituPE AS KwotaDoLimituPENarastPr,
	@MaxDochodZwPE - (@KwDoLimPENarZlec+@KwDoLimPENarPlac - pz.KwotaDoLimituPE) AS PozostaloDoOdliczeniaPE,
		
	@KwDoLimDRNarZlec+@KwDoLimDRNarPlac - pz.KwotaDoLimituDR AS KwotaDoLimituDRNarastPr,
	@MaxDochodZwDR - (@KwDoLimDRNarZlec+@KwDoLimDRNarPlac - pz.KwotaDoLimituDR) AS PozostaloDoOdliczeniaDR,

	@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (pz.KwotaDoLimituPE + pz.KwotaDoLimituDR) AS KwotaDoLimituPEDRNarast,
	@MaxDochodZwPEDR - (@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (pz.KwotaDoLimituPE +pz.KwotaDoLimituDR)) AS PozostaloDoOdliczeniaPEDR
	
	
	
/*	
	@KwDoLimPENarZlec + @KwDoLimPENarPlac - pz.KwotaDoLimituPE AS KwotaDoLimituPENarastPr,
	@MaxDochodZwDRPE - (@KwDoLimPENarZlec + @KwDoLimPENarPlac - pz.KwotaDoLimituPE) AS PozostaloDoOdliczeniaPE,
	@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (pz.KwotaDoLimituPE + pz.KwotaDoLimituDR) AS KwotaDoLimituPEDRNarast,
	@MaxDochodZwPEDR - (@KwDoLimDRNarZlec + @KwDoLimPENarZlec + @KwDoLimPENarPlac + @KwDoLimDRNarPlac - (pz.KwotaDoLimituPE + pz.KwotaDoLimituDR)) AS PozostaloDoOdliczeniaPEDR
*/
	FROM prace_zlecone pz
	LEFT JOIN place_skladniki ps ON ps.GUID_zapisu_placowego = pz.GUID AND ps.GUID_definicja_skladnika_placy IN ("Z_2","Z_3","Z_4")
	WHERE
	GUID_pracownika=_RecGUID AND
	-- datawyplaty>=@Okres_od AND
	-- datawyplaty<=@Okres_do  AND
	YEAR(pz.datawyplaty)=_ROK AND
	deleted=0
	GROUP BY pz.guid;
	
	IF @Naliczac_podatek_od_zasilkow THEN
	
		UPDATE t_prace_zlecone_pit pz SET pz.prop_zasilki_all=pz.zasilki/pz.zasilki_all WHERE pz.tylko_zasilki AND pz.zasilki>0 AND pz.z_macierzynski>0;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_zasilki_all=pz.Zaliczka WHERE tylko_zasilki ;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_zasilki_all=IF(pz.zasilki_all>0 AND pz.Zaliczka>0,_Rnd(pz.zasilki_all*(pz.ProcentPodatku/100)-pz.KwotaWolnaOdPodatkuZlec,0),0) WHERE NOT tylko_zasilki ;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_zasilki_all=0 WHERE pz.zal_zasilki_all<0;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_zasilki = _Rnd(pz.zal_zasilki_all * pz.prop_zasilki_all,0) WHERE pz.zasilki>0;
		UPDATE t_prace_zlecone_pit pz SET pz.zal_z_macierzynski = _Rnd(pz.zal_zasilki_all - pz.zal_zasilki,0);
	
	END IF;
	
	/* Tak było  do 2023-01-24
	UPDATE t_prace_zlecone_pit  pz SET pz.zal_zasilki=IF(pz.zasilki>0,_Rnd(pz.Zasilki*(pz.ProcentPodatku/100),0),0);
	UPDATE t_prace_zlecone_pit  pz SET pz.zal_z_macierzynski=IF(pz.z_macierzynski>0,_Rnd(pz.z_macierzynski*(pz.ProcentPodatku/100),0),0);
	UPDATE t_prace_zlecone_pit  pz SET pz.zal_zasilki_all=IF(pz.zasilki_all>0,_Rnd(pz.zasilki_all*(pz.ProcentPodatku/100),0),0);
	
	*/
-- opodatkownaie 26 lat
--  BracCalyJakoZwolniony,
	UPDATE t_prace_zlecone_pit pz SET opodatkowany26lat=1 
	WHERE
	(pz.ZwolnienieOdPodatku26Lat AND ((pz.Dochod + pz.KosztyUzyskania) =0));
	
	
-- CalyOdrzucacJakoZwolniony
	UPDATE t_prace_zlecone_pit pz SET opodatkowany26lat=2 
	WHERE 
	(pz.ZwolnienieOdPodatku26Lat AND (pz.Dochod>0) AND 
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod < 1));


-- CzesciowoZwolniony
	UPDATE t_prace_zlecone_pit pz SET opodatkowany26lat=3 WHERE
	(pz.ZwolnienieOdPodatku26Lat AND (pz.Dochod>0) AND 
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod >= 1));
	
	
	-- opodatkownaie duza rodzina
	
	
	--  BracCalyJakoZwolniony,
	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyDR=1 
	WHERE
	(pz.NaliczUlgeDlaDR AND ((pz.Dochod + pz.KosztyUzyskania) =0));
	
	
-- CalyOdrzucacJakoZwolniony
	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyDR=2 
	WHERE 
	(pz.NaliczUlgeDlaDR AND (pz.Dochod>0) AND 
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod < 1));


-- CzesciowoZwolniony
	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyDR=3 WHERE
	(pz.NaliczUlgeDlaDR AND (pz.Dochod>0) AND 
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod >= 1));
	
	
	-- opodatkownaie  pracujacy emeryt
		
	--  BracCalyJakoZwolniony,
	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyPE=1 
	WHERE
	(pz.NaliczUlgeDlaPE AND ((pz.Dochod + pz.KosztyUzyskania) =0));
	
	
-- CalyOdrzucacJakoZwolniony
	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyPE=2 
	WHERE 
	(pz.NaliczUlgeDlaPE AND (pz.Dochod>0) AND 
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod < 1));


-- CzesciowoZwolniony
	UPDATE t_prace_zlecone_pit pz SET pz.opodatkowanyPE=3 WHERE
	(pz.NaliczUlgeDlaPE AND (pz.Dochod>0) AND 
	((pz.ZaZlecenie + pz.kwota_za_UW + pz.ZasChorRazem - pz.RazemSkladkiZleceniobiorcy - pz.KosztyUzyskania + pz.PPKskladkaPracod)- pz.Dochod >= 1));
	
	
	
	


	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec;
	CREATE TEMPORARY TABLE  t_pit_zlec
	SELECT _RecGUID AS GUID_pracownika,
	-- bylo do 20230125 SUM(IF((NOT pz.26lat OR  NOT pz.ZwolnienieOdPodatku26Lat ) AND  pz.RodzajRyczaltu IN ('2','7','8','9','10','11','12','13','14'), pz.RazemSkladkiZleceniobiorcy,0)) AS SklUbezpSpol,
	SUM(IF((NOT pz.26lat OR  NOT pz.ZwolnienieOdPodatku26Lat OR NOT pz.emeryt ) AND  pz.RodzajRyczaltu IN ('2','7','8','9','10','11','12','13','14'), pz.RazemSkladkiZleceniobiorcy,0)) AS SklUbezpSpol,
	-- bylo do 20230125 SUM(IF(pz.UmowaODzielo = 0 AND pz.26lat AND ( NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND ( pz.Zaliczka+pz.ZryczaltowanyPodatek>0))) , pz.RazemSkladkiZleceniobiorcy,0)) AS SklUbezpSpol_2,
	SUM(IF(pz.UmowaODzielo = 0 AND (pz.emeryt OR (pz.26lat AND ( NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND( pz.Zaliczka+pz.ZryczaltowanyPodatek>0))))) , pz.RazemSkladkiZleceniobiorcy,0)) AS SklUbezpSpol_2,
	
	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat  , pz.RazemSkladkiZleceniobiorcy - pz.RazemSklZleceniobiorcyDoOdlicz,0)) AS SklUbezpSpol_3,
	-- SUM(IF((NOT pz.26lat OR  NOT pz.ZwolnienieOdPodatku26Lat ) AND pz.RodzajRyczaltu IN ('7','8','9','10','11','12','13','14'), pz.SklKasaChorychZleceniobOdlicz,0)) AS SklUbezpZdrow,
	SUM(IFNULL(pz.SklKasaChorychZleceniobPobr,0)) AS SklUbezpZdrow,
	SUM(IF(pz.UmowaODzielo = 0 AND pz.26lat AND ( NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND ( pz.Zaliczka>0))) ,pz.SklKasaChorychZleceniobOdlicz,0)) AS SklUbezpZdrow_2,
	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat   AND pz.Zaliczka= 0 , pz.SklKasaChorychZleceniobOdlicz,0)) AS SklUbezpZdrow_3,


--  niepodatkowan 26 lat 
	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat AND pz.opodatkowany26lat IN (1,3) 
--	AND pz.Zaliczka= 0 
	, pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)- IF(pz.opodatkowany26lat=3, (pz.ZaZlecenie - pz.PozostaloDoOdliczenia26),0),0))
	--  + SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat   AND pz.Zaliczka > 0 ,pz.PozostaloDoOdliczenia26,0))
	- SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat   AND pz.opodatkowany26lat IN (1,3)   AND pz.Zaliczka= 0 AND ( ( (pz.ZasChorRazem+pz.ZasRehab+pz.ZasMacierz+pz.ZasOpiekun=0)
	AND NOT @Naliczac_podatek_od_zasilkow) OR @Naliczac_podatek_od_zasilkow) ,pz.zasilki_all,0))  AS Przychody_art21u1_2,

	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat   AND pz.Zaliczka= 0,pz.PPKskladkaPracod,0)) AS ppk_art21u1_2 ,

    SUM(IF(NOT pz.26lat AND pz.G_114   AND pz.Zaliczka= 0 , pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)  - pz.zasilki_all ,0)) AS Przychody_art21u1_152_2,
	SUM(IF(NOT pz.26lat AND pz.G_114   AND pz.Zaliczka= 0 ,z_macierzynski,0)) AS Przychody_art21u1_152_3,
	@NaliczUlgeNaPowrot AS ulgaPW,
	SUM(pz.NaliczUlgeDlaPE) AS ulgaPE,
	SUM(pz.NaliczUlgeDlaDR) AS ulgaDR
	FROM t_prace_zlecone_pit  pz  ;


	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec2;
	CREATE TEMPORARY TABLE  t_pit_zlec2
	SELECT  _RecGUID AS GUID_pracownika,SUM(pz.zaliczka),
		SUM(IF(NOT pz.26lat AND NOT pz.emeryt AND NOT  pz.G_114,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) AS ZaZlecenie1,
		SUM(IF(NOT pz.26lat AND NOT pz.emeryt AND NOT  pz.G_114,pz.PPKskladkaPracod,0)) AS PPK5,
		SUM(IF(NOT pz.26lat AND NOT pz.emeryt AND NOT  pz.G_114, pz.Zaliczka,0) 
		-IFNULL(pz.zal_zasilki_all,0)
	) AS Zaliczka1 ,
	
		SUM(IF(NOT pz.26lat AND NOT pz.emeryt AND NOT  pz.G_114, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),
		(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy1,


-- 26 lat opodatkowane
		SUM(IF(pz.26lat AND pz.opodatkowany26lat IN (2,3) AND (NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND (pz.Zaliczka>0))),pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0)
		- IF(pz.opodatkowany26lat=3, pz.PozostaloDoOdliczenia26,0)
		,0)) AS ZaZlecenie2,
		
		SUM(IF(pz.26lat AND pz.opodatkowany26lat IN (2,3) AND (NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND (pz.Zaliczka>0))),pz.PPKskladkaPracod,0)) AS PPK6,
		
		
		SUM(IF(pz.26lat AND pz.opodatkowany26lat IN (2,3) ,pz.Zaliczka,0)
	 -IFNULL(pz.zal_zasilki_all,0)
		) AS Zaliczka2 ,

		SUM(IF(pz.26lat AND pz.opodatkowany26lat IN (2,3) AND (NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND (pz.Zaliczka>0))),
		IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),
		(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy2,

		SUM(IF(pz.emeryt AND pz.Zaliczka>0,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) AS ZaZlecenie13,
		SUM(IF(pz.emeryt AND pz.Zaliczka>0,pz.PPKskladkaPracod,0)) AS PPK13,
		
		SUM(IF(pz.emeryt,pz.Zaliczka,0)
		 -IFNULL(pz.zal_zasilki_all,0)
		
		) AS Zaliczka13 ,
		
		SUM(IF(pz.emeryt AND (NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND (pz.Zaliczka>0))),
		 IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),
		 (pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy13,

-- WHY ?
		SUM(pz.zasilki_all)*0 AS innezrodla,
		SUM(pz.zasilki_all)*0 AS innezrodla_dochod,
		SUM(IF(pz.zasilki_all >0,pz.zasilki_all* pz.ProcentPodatku/100,0))*0 AS innezrodla_zaliczka

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN ('7') AND pz.UmowaODzielo = 0  ;



--   PRZYCHODY4 nowe 5  ZLECENIA' ''8'',''9'',''12'',''13'',''14'' ' I UMOWY O DZIELO 7

	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec4;
	CREATE TEMPORARY TABLE  t_pit_zlec4
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat OR pz.UmowaODzielo = 1,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) AS ZaZlecenie4,
		SUM(IF(NOT pz.26lat OR pz.UmowaODzielo = 1,pz.PPKskladkaPracod,0)) AS PPK4,
		SUM(IF(NOT pz.26lat OR pz.UmowaODzielo = 1,pz.Zaliczka,0))-
		SUM(pz.zal_zasilki_all) AS Zaliczka4,
		SUM(IF(NOT pz.26lat OR pz.UmowaODzielo = 1, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy4

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN ('8','9','12','13','14') OR (pz.RodzajRyczaltu IN (7) AND pz.UmowaODzielo = 1 ) ;

--   PRZYCHODY11  ZLECENIA I UMOWY O DZIELO 11


	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec_11;
	CREATE TEMPORARY TABLE  t_pit_zlec_11
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) AS ZaZlecenie,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(pz.zal_zasilki_all) AS Zaliczka,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN (11)  ;

 --      WyliczPraceSZlecone(aOd,aDo,aGUIDPrac,' ''10'' ',Pit11Rec.Przychod10A, Pit11Rec.KosztyUzyskPrzy10, aZaliczka10A, Pit11Rec.PPK10A, 1); pz.KosztyUzyskania = 0.00 '
 --      WyliczPraceSZlecone(aOd,aDo,aGUIDPrac,' ''10'' ',Pit11Rec.Przychod10, Pit11Rec.KosztyUzyskPrzy10, aZaliczka10, Pit11Rec.PPK10, 2); pz.KosztyUzyskania > 0.00 '

		DROP TEMPORARY TABLE IF EXISTS t_pit_zlec_10A;
	CREATE TEMPORARY TABLE  t_pit_zlec_10A
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) AS ZaZlecenie,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(pz.zal_zasilki_all) AS Zaliczka,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN (10)   AND pz.KosztyUzyskania=0;

	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec_10;
	CREATE TEMPORARY TABLE  t_pit_zlec_10
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) AS ZaZlecenie,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(pz.zal_zasilki_all) AS Zaliczka,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy

	FROM t_prace_zlecone_pit  pz WHERE pz.RodzajRyczaltu IN (10)   AND pz.KosztyUzyskania>0;


-- tworzenie pita wlaz calosci

	DROP TEMPORARY TABLE IF EXISTS   ta_Pit_11_8B;
	CREATE TEMPORARY TABLE ta_Pit_11_8B LIKE Pit_11_8B;
	ALTER TABLE ta_Pit_11_8B CHANGE `idn` `idn` INT(11) NOT NULL, DROP PRIMARY KEY;

   INSERT INTO `ta_Pit_11_8B`
	(idn,GUID,pracGUID,NIP,OkresOd,OkresDo,US,NazwaPlatnika,Kraj,Wojewodztwo,Powiat,Gmina,
	Ulica,
	Nrdomu,NrLokalu,Miejscowosc,KodPocztowy,Poczta, Nazwa1 , Nazwa2, Nazwa3,Nazwa4,
	Podatnik_Nazwisko,Podatnik_Imie,Podatnik_NIP,
	Podatnik_DataUrodzenia,Podatnik_Kraj,
	Podatnik_Wojewodztwo,Podatnik_Powiat,
	Podatnik_Gmina,Podatnik_Ulica,
	Podatnik_NrDomu,Podatnik_NrLokalu,
	Podatnik_Miejscowosc,Podatnik_KodPocztowy,Podatnik_Poczta,
	zagr_nrdok,zagr_rodzaj_ident,zagr_rodzaj_ident_str,rezydent,
	Imie,Nazwisko,
	f_wyn2,f_wyn2_opis,f_wyn3,f_wyn3_opis,f_wyn4,f_wyn4_opis,f_wyn_razem,PIT_PESEL_NIP,
	Info_o_kosztach)

  SELECT 0,UUID(), _RecGUID,
    @Platnik_NIP,
    t.Okres_od,LAST_DAY(t.Okres_do),t.US,@PelnaNazwa,
    @Platnik_Kraj,@Platnik_wojewodztwo,@Platnik_powiat,@Platnik_gmina,
    @Platnik_ulica,
    @Platnik_Nr_domu,@Platnik_Nr_lokalu,
    @Platnik_Miasto,@Platnik_Kod_poczt,@Platnik_poczta, @Nazwa1 , @Nazwa2, @Nazwa3,@Nazwa4,

    t.nazwisko,t.imie,Podatnik_NIP,Podatnik_DataUrodzenia,
    t.Podatnik_Kraj,
    t.Podatnik_Wojewodztwo,
    t.Podatnik_Powiat,
    t.Podatnik_Gmina,
    t.Podatnik_Ulica,
    t.Podatnik_NrDomu,
    t.Podatnik_NrLokalu,
    t.Podatnik_Miejscowosc,
    t.Podatnik_KodPocztowy,
    t.Podatnik_Poczta,
	t.zagr_nrdok,
    t.zagr_rodzaj_ident,
    t.zagr_rodzaj_ident_str,
    t.rezydent,
	@wystawiajacy_imie,
	@wystawiajacy_nazwisko,
	t.f_wyn2,
    t.f_wyn2_opis,
    t.f_wyn3,
    t.f_wyn3_opis,
    t.f_wyn4,
    t.f_wyn4_opis,
    t.f_wyn2+t.f_wyn3+t.f_wyn4,
	t.PIT_PESEL_NIP,
	t.Info_o_kosztach 

    FROM t_pit_list t WHERE t.GUID_Pracownika=_RecGUID;


    SET @testRGd=(SELECT COUNT(*)FROM t_pit_place);

    	UPDATE ta_Pit_11_8B t, t_pit_place TP,t_pit_zlec  TZ
	SET
		t.Przychod1=IFNULL(TP.Przychod1,0)+IFNULL(TP.PPK,0),
		t.KosztyUzyskPrzy1=IFNULL(TP.KosztyUzyskPrzy1,0),
	--	t.Dochod1=IFNULL(TP.Dochod1,0)+IFNULL(TP.PPK,0),
		t.Dochod1=IFNULL(TP.Przychod1,0)+IFNULL(TP.PPK,0)-IFNULL(TP.KosztyUzyskPrzy1,0),
		t.Zaliczka1=IFNULL(TP.Zaliczka1,0),
		t.Przychod1_2=IFNULL(TP.Przychod1_2,0),

		t.Przychod2=IFNULL(TP.Przychod2,0),
		t.Dochod2=IFNULL(TP.Przychod2,0) - IFNULL(TP.KosztyUzyskPrzy2,0),
		t.Zaliczka2=IFNULL(TP.Zaliczka2,0),
		t.KosztyUzyskPrzy2=IFNULL(TP.KosztyUzyskPrzy2,0),

		t.Przychod12=IFNULL(TP.Przychod12,0),
		t.Dochod12=IFNULL(TP.Przychod12,0)-IFNULL(TP.KosztyUzyskPrzy12,0),
		t.Zaliczka12=IFNULL(TP.Zaliczka12,0),
		t.KosztyUzyskPrzy12=IFNULL(TP.KosztyUzyskPrzy12,0),

-- maciezynski pozostale
		t.Przychod14=IFNULL(TP.Przychod14,0),
		t.Dochod14=IFNULL(TP.Przychod14,0),
		t.Zaliczka14=IFNULL(TP.Zaliczka14,0),

-- maciezynski 26 lat
		t.Przychod15=IFNULL(TP.Przychod15,0),
		t.Dochod15=IFNULL(TP.Przychod15,0),
		t.Zaliczka15=IFNULL(TP.Zaliczka15,0),
-- maciezynski emeryt
		t.Przychod16=IFNULL(TP.Przychod16,0),
		t.Dochod16=IFNULL(TP.Przychod16,0),
		t.Zaliczka16=IFNULL(TP.Zaliczka16,0),

		t.Przychod11=IFNULL(TP.innezrodla,0),
		t.Dochod11=IFNULL(TP.innezrodla_dochod,0)-IFNULL(TP.innezrodla_KosztyUzysk,0),
		t.Zaliczka11=IFNULL(TP.innezrodla_zaliczka,0),
		t.KosztyUzyskPrzy11=IFNULL(TP.innezrodla_KosztyUzysk,0),

		t.SklUbezpSpol=IFNULL(TP.SklUbezpSpol,0)+IFNULL(TZ.SklUbezpSpol,0),
		t.PPK=IFNULL(TP.PPK,0),

		t.SklUbezpSpol_2=IFNULL(TP.SklUbezpSpol_2,0)+IFNULL(TZ.SklUbezpSpol_2,0),
		t.SklUbezpSpol_3=IFNULL(TP.SklUbezpSpol_3,0)+IFNULL(TZ.SklUbezpSpol_3,0),
		t.SklUbezpZdrow_Pobr=IFNULL(TP.SklUbezpZdrow,0) + IFNULL(TZ.SklUbezpZdrow,0),
	--	t.SklUbezpZdrow_2=IFNULL(TP.SklUbezpZdrow_2,0) + IFNULL(TZ.SklUbezpZdrow_2,0),
	--	t.SklUbezpZdrow_3=IFNULL(TP.SklUbezpZdrow_3,0) + IFNULL(TZ.SklUbezpZdrow_3,0),

		t.Przychody_art21u1=IFNULL(TP.Przychody_art21u1_3,0)+IFNULL(TP.Przychody_art21u1_1,0)+IFNULL(TP.ppk_art21u1_1,0) + IFNULL(TZ.Przychody_art21u1_2,0) + IFNULL(TZ.ppk_art21u1_2,0),
		t.Przychody_art21u1_1=IFNULL(TP.Przychody_art21u1_1,0)+IFNULL(TP.ppk_art21u1_1,0),
		t.Przychody_art21u1_2= IFNULL(TZ.Przychody_art21u1_2,0) + IFNULL(TZ.ppk_art21u1_2,0),
		t.Przychody_art21u1_3= IFNULL(TP.Przychody_art21u1_3,0),

		t.Przychody_art21u1_152=IFNULL(TP.Przychody_art21u1_152_1,0)+IFNULL(TP.Przychody_art21u1_152_3,0)+IFNULL(TZ.Przychody_art21u1_152_2,0)+IFNULL(TP.ppk_art21u1_152_1,0)+IFNULL(TZ.Przychody_art21u1_152_3,0),
		t.Przychody_art21u1_152_1=IFNULL(TP.Przychody_art21u1_152_1,0)+IFNULL(TP.ppk_art21u1_152_1,0),
		t.Przychody_art21u1_152_2=IFNULL(TZ.Przychody_art21u1_152_2,0),
		t.Przychody_art21u1_152_3=IFNULL(TP.Przychody_art21u1_152_3,0)+IFNULL(TZ.Przychody_art21u1_152_3,0)


	WHERE 	t.pracGUID=TP.GUID_pracownika AND t.pracGUID=TZ.GUID_pracownika;

	UPDATE ta_Pit_11_8B t, t_pit_place TP
		SET
		t.podst_zwol_21_1_152=IF(TP.ulgaPW>0,1,0),
		t.podst_zwol_21_1_153=IF(TP.ulgaDR>0,1,0),
		t.podst_zwol_21_1_154=IF(TP.ulgaPE>0,1,0)
	WHERE t.pracGUID=TP.GUID_pracownika AND (t.Przychody_art21u1_152_1>0 OR t.Przychody_art21u1_152_3>0);

	UPDATE ta_Pit_11_8B t, t_pit_zlec TZ
		SET
		t.podst_zwol_21_1_152=IF(TZ.ulgaPW>0,1,0),
		t.podst_zwol_21_1_153=IF(TZ.ulgaDR>0,1,0),
		t.podst_zwol_21_1_154=IF(TZ.ulgaPE>0,1,0)
	WHERE t.pracGUID=TZ.GUID_pracownika AND (t.Przychody_art21u1_152_2>0);



	UPDATE ta_Pit_11_8B t, t_pit_zlec2 t2
	SET
		t.PPK5=t2.PPK5,
		t.Przychod5=t2.PPK5 + t2.ZaZlecenie1,
		t.KosztyUzyskPrzy5=t2.KosztyUzyskPrzy1,
		t.Dochod5=t2.PPK5 + t2.ZaZlecenie1 - t2.KosztyUzyskPrzy1,
		t.Zaliczka5=t2.Zaliczka1,

		t.PPK6=t2.PPK6,
		t.Przychod6=t2.PPK6 + t2.ZaZlecenie2,
		t.KosztyUzyskPrzy6=t2.KosztyUzyskPrzy2,
		t.Dochod6=t2.PPK6 + t2.ZaZlecenie2-t2.KosztyUzyskPrzy2,
		t.Zaliczka6=t2.Zaliczka2,


		t.Przychod13=t2.PPK13 + t2.ZaZlecenie13,
		t.KosztyUzyskPrzy13=t2.KosztyUzyskPrzy13,
		t.Dochod13=t2.PPK13 + t2.ZaZlecenie13-t2.KosztyUzyskPrzy13,
		t.Zaliczka13=t2.Zaliczka13

		-- czemu w exe nie odejmuje tego co bylo
	--	t.innezrodla=t2.innezrodla,
	--	t.innezrodla_zaliczka=t2.innezrodla_zaliczka,
	--	t.innezrodla_dochod=t2.innezrodla_dochod

	WHERE 	t.pracGUID=t2.GUID_pracownika;

	SET @paramD=_Param_D;




		UPDATE ta_Pit_11_8B t, t_pit_zlec4 t4, t_pit_zlec_11 t11
			SET
				t.PPK4=IFNULL(t4.PPK4,0)+IFNULL(t11.PPK,0),
				t.Przychod4=IFNULL(t4.PPK4,0) + IFNULL(t4.ZaZlecenie4,0) + IFNULL(t11.PPK,0) + IFNULL(t11.ZaZlecenie,0),
				t.KosztyUzyskPrzy4=IFNULL(t4.KosztyUzyskPrzy4,0) + IFNULL(t11.KosztyUzyskPrzy,0),
				t.Dochod4=IFNULL(t4.PPK4,0) + IFNULL(t4.ZaZlecenie4,0) - IFNULL(t4.KosztyUzyskPrzy4,0) + 
				IFNULL(t11.PPK,0) + IFNULL(t11.ZaZlecenie,0) - IFNULL(t11.KosztyUzyskPrzy,0),
				t.Zaliczka4=IFNULL(t4.Zaliczka4,0) + IFNULL(t11.Zaliczka,0)
			WHERE 	t.pracGUID=t4.GUID_pracownika AND
					t.pracGUID=t11.GUID_pracownika ;



		UPDATE ta_Pit_11_8B t, t_pit_zlec_10 t10 ,t_pit_zlec_10A t10A
	SET


		t.Przychod10=IFNULL(t10.ZaZlecenie,0),
		t.Przychod10A=IFNULL(t10A.ZaZlecenie,0),
		t.Dochod10=IFNULL(t10.ZaZlecenie,0)+IFNULL(t10A.ZaZlecenie,0) - IFNULL(t10.KosztyUzyskPrzy,0) - IFNULL(t10A.KosztyUzyskPrzy,0),
		t.KosztyUzyskPrzy10=IFNULL(t10.KosztyUzyskPrzy,0) + IFNULL(t10A.KosztyUzyskPrzy,0),
		t.Zaliczka10=IFNULL(t10.Zaliczka,0)+IFNULL(t10A.Zaliczka,0)

	WHERE 	t.pracGUID=t10.GUID_pracownika AND
		t.pracGUID=t10A.GUID_pracownika
	;

/*        WyliczPraceSZlecone(aOd,aDo,aGUIDPrac,' ''10'' ',Pit11Rec.Przychod10A, Pit11Rec.KosztyUzyskPrzy10, aZaliczka10A, Pit11Rec.PPK10A, 1);
        WyliczPraceSZlecone(aOd,aDo,aGUIDPrac,' ''10'' ',Pit11Rec.Przychod10, Pit11Rec.KosztyUzyskPrzy10, aZaliczka10, Pit11Rec.PPK10, 2);
   *     Pit11Rec.Dochod10 := Pit11Rec.Przychod10 - Pit11Rec.KosztyUzyskPrzy10 + Pit11Rec.Przychod10A;
        Pit11Rec.Przychod10 := Pit11Rec.Przychod10 - aDSOLDPITs11.FieldByName('Przychod10').asCurrency - aDSOLDPITs11.FieldByName('PPK10').asCurrency - aDSOLDPITs11.FieldByName('PPK10A').asCurrency;
      *  Pit11Rec.KosztyUzyskPrzy10 := Pit11Rec.KosztyUzyskPrzy10 - aDSOLDPITs11.FieldByName('KosztyUzyskPrzy10').asCurrency;
     *  Pit11Rec.Zaliczka10 := aZaliczka10A + aZaliczka10 - aDSOLDPITs11.FieldByName('Zaliczka10').asCurrency;
        Pit11Rec.Dochod10 := Pit11Rec.Dochod10 - aDSOLDPITs11.FieldByName('Dochod10').asCurrency;

        if Pit11Rec.Przychod10A < 0 then  Pit11Rec.Przychod10A := 0;
        if Pit11Rec.Przychod10 < 0 then  Pit11Rec.Przychod10 := 0;
        if Pit11Rec.KosztyUzyskPrzy10 <0 then  Pit11Rec.KosztyUzyskPrzy10 := 0;
        if Pit11Rec.Zaliczka10 <0 then Pit11Rec.Zaliczka10:= 0;
        if Pit11Rec.Dochod10 < 0 then Pit11Rec.Dochod10 := 0;

        */



--		UPDATE ta_Pit_11_8B t, t_pit_zlec_11 t11
--	SET
--		t.PPK11=t.PPK11+t11.PPK,
--		t.KosztyUzyskPrzy11=t.KosztyUzyskPrzy11+t11.KosztyUzyskPrzy,
--		t.Dochod11=t.Dochod11+t11.PPK + t11.ZaZlecenie - t11.KosztyUzyskPrzy,
--		t.Zaliczka11=t.Zaliczka11+t11.Zaliczka
--	WHERE 	t.pracGUID=t11.GUID_pracownika;

IF @Old_pit THEN

DROP TEMPORARY TABLE IF EXISTS ta_Pit_11_8B_old;
CREATE TEMPORARY TABLE  ta_Pit_11_8B_old
SELECT
SUM(Przychod1)Przychod1,
SUM(KosztyUzyskPrzy1)KosztyUzyskPrzy1,
SUM(Dochod1)Dochod1,
SUM(Zaliczka1)Zaliczka1,
SUM(Przychod1_2)Przychod1_2,
SUM(KosztyUzyskPrzy1_2)KosztyUzyskPrzy1_2,
SUM(Przychod2)Przychod2,
SUM(Dochod2)Dochod2,
SUM(Zaliczka2)Zaliczka2,
SUM(Przychod3)Przychod3,
SUM(Dochod3)Dochod3,
SUM(Zaliczka3)Zaliczka3,
SUM(Przychod4)Przychod4,
SUM(Dochod4)Dochod4,
SUM(Zaliczka4)Zaliczka4,
SUM(Przychod5)Przychod5,
SUM(Dochod5)Dochod5,
SUM(Zaliczka5)Zaliczka5,
SUM(Przychod6)Przychod6,
SUM(KosztyUzyskPrzy6)KosztyUzyskPrzy6,
SUM(Dochod6)Dochod6,
SUM(Zaliczka6)Zaliczka6,
SUM(Przychod7)Przychod7,
SUM(KosztyUzyskPrzy7)KosztyUzyskPrzy7,
SUM(Dochod7)Dochod7,
SUM(Zaliczka7)Zaliczka7,
SUM(Przychod8)Przychod8,
SUM(KosztyUzyskPrzy8)KosztyUzyskPrzy8,
SUM(Dochod8)Dochod8,
SUM(Zaliczka8)Zaliczka8,
SUM(Przychod9)Przychod9,
SUM(KosztyUzyskPrzy9)KosztyUzyskPrzy9,
SUM(Dochod9)Dochod9,
SUM(Zaliczka9)Zaliczka9,
SUM(Przychod10)Przychod10,
SUM(Dochod10)Dochod10,
SUM(Zaliczka10)Zaliczka10,
SUM(SklUbezpSpol)SklUbezpSpol,
SUM(SklUbezpZdrow)SklUbezpZdrow,
SUM(PrzychodyZZagranicy)PrzychodyZZagranicy,
SUM(PrzychodyBezzwrotnaPomoc)PrzychodyBezzwrotnaPomoc,
SUM(Przychod11)Przychod11,
SUM(Dochod11)Dochod11,
SUM(Zaliczka11)Zaliczka11,
SUM(KosztyUzyskPrzy10)KosztyUzyskPrzy10,
SUM(emeryt_doch_zwoln)emeryt_doch_zwoln,
SUM(inne_doch_zwoln)inne_doch_zwoln,
SUM(praca_doch_zwoln)praca_doch_zwoln,
SUM(skl_ubsp_zagr)skl_ubsp_zagr,
SUM(skl_ubzd_zagr)skl_ubzd_zagr,
SUM(Przychod10A)Przychod10A,
SUM(przychody_stypendium)przychody_stypendium,
SUM(f_wyn_zbiory)f_wyn_zbiory,
SUM(f_wyn2)f_wyn2,
SUM(f_wyn3)f_wyn3,
SUM(f_wyn4)f_wyn4,
SUM(f_wyn_razem)f_wyn_razem,
SUM(ppk)ppk,
SUM(Przychod2_2)Przychod2_2,
SUM(KosztyUzyskPrzy2)KosztyUzyskPrzy2,
SUM(KosztyUzyskPrzy2_2)KosztyUzyskPrzy2_2,
SUM(praca_doch_zwoln_2)praca_doch_zwoln_2,
SUM(KosztyUzyskPrzy11)KosztyUzyskPrzy11,
SUM(Przychody_art21u1)Przychody_art21u1,
SUM(Przychody_art21u1_1)Przychody_art21u1_1,
SUM(Przychody_art21u1_2)Przychody_art21u1_2,
SUM(KosztyUzyskPrzy4)KosztyUzyskPrzy4,
SUM(KosztyUzyskPrzy5)KosztyUzyskPrzy5,
SUM(SklUbezpSpol_2)SklUbezpSpol_2,
SUM(SklUbezpSpol_3)SklUbezpSpol_3,
SUM(SklUbezpZdrow_2)SklUbezpZdrow_2,
SUM(SklUbezpZdrow_3)SklUbezpZdrow_3,
SUM(ppk4)ppk4,
SUM(ppk5)ppk5,
SUM(ppk6)ppk6,
SUM(ppk7)ppk7,
SUM(ppk7UoD)ppk7UoD,
SUM(ppk8)ppk8,
SUM(ppk9)ppk9,
SUM(ppk10)ppk10,
SUM(ppk10A)ppk10A,
SUM(ppk11)ppk11,
SUM(ppk_art21u1_1)ppk_art21u1_1,
SUM(ppk_art21u1_2)ppk_art21u1_2,
SUM(Przychody_art21u1_3)Przychody_art21u1_3,
SUM(Przychody_art21u1_152)Przychody_art21u1_152,
SUM(Przychody_art21u1_152_1)Przychody_art21u1_152_1,
SUM(Przychody_art21u1_152_2)Przychody_art21u1_152_2,
SUM(Przychody_art21u1_152_3)Przychody_art21u1_152_3,
SUM(SklUbezpZdrow_Pobr)SklUbezpZdrow_Pobr,
SUM(Przychod12)Przychod12,
SUM(KosztyUzyskPrzy12)KosztyUzyskPrzy12,
SUM(Dochod12)Dochod12,
SUM(praca_doch_zwoln_12)praca_doch_zwoln_12,
SUM(Zaliczka12)Zaliczka12,
SUM(Przychod12_2)Przychod12_2,
SUM(KosztyUzyskPrzy12_2)KosztyUzyskPrzy12_2,
SUM(Przychod13)Przychod13,
SUM(KosztyUzyskPrzy13)KosztyUzyskPrzy13,
SUM(Dochod13)Dochod13,
SUM(Zaliczka13)Zaliczka13,
SUM(Przychod14)Przychod14,
SUM(Dochod14)Dochod14,
SUM(Zaliczka14)Zaliczka14,
SUM(Przychod15)Przychod15,
SUM(Dochod15)Dochod15,
SUM(Zaliczka15)Zaliczka15,
SUM(Przychod16)Przychod16,
SUM(Dochod16)Dochod16,
SUM(Zaliczka16)Zaliczka16 FROM `Pit_11_8B` WHERE readonly=0 AND deleted=0 AND rok=_ROK AND pracGUID=_RecGUID;





UPDATE ta_Pit_11_8B t, ta_Pit_11_8B_old o
SET
t.Przychod1=t.Przychod1 - o.Przychod1,
t.KosztyUzyskPrzy1=t.KosztyUzyskPrzy1-o.KosztyUzyskPrzy1,
t.Dochod1=t.Dochod1-o.Dochod1 ,
t.Zaliczka1=t.Zaliczka1-o.Zaliczka1 ,
t.Przychod1_2=t.Przychod1_2-o.Przychod1_2 ,
t.KosztyUzyskPrzy1_2=t.KosztyUzyskPrzy1_2-o.KosztyUzyskPrzy1_2 ,
t.Przychod2=t.Przychod2-o.Przychod2 ,
t.Dochod2=t.Dochod2-o.Dochod2 ,
t.Zaliczka2=t.Zaliczka2-o.Zaliczka2 ,
t.Przychod3=t.Przychod3-o.Przychod3 ,
t.Dochod3=t.Dochod3-o.Dochod3 ,
t.Zaliczka3=t.Zaliczka3-o.Zaliczka3 ,
t.Przychod4=t.Przychod4-o.Przychod4 ,
t.Dochod4=t.Dochod4-o.Dochod4 ,
t.Zaliczka4=t.Zaliczka4-o.Zaliczka4 ,
t.Przychod5=t.Przychod5-o.Przychod5 ,
t.Dochod5=t.Dochod5-o.Dochod5 ,
t.Zaliczka5=t.Zaliczka5-o.Zaliczka5 ,
t.Przychod6=t.Przychod6-o.Przychod6 ,
t.KosztyUzyskPrzy6=t.KosztyUzyskPrzy6-o.KosztyUzyskPrzy6 ,
t.Dochod6=t.Dochod6-o.Dochod6 ,
t.Zaliczka6=t.Zaliczka6-o.Zaliczka6 ,
t.Przychod7=t.Przychod7-o.Przychod7 ,
t.KosztyUzyskPrzy7=t.KosztyUzyskPrzy7-o.KosztyUzyskPrzy7 ,
t.Dochod7=t.Dochod7-o.Dochod7 ,
t.Zaliczka7=t.Zaliczka7-o.Zaliczka7 ,
t.Przychod8=t.Przychod8-o.Przychod8 ,
t.KosztyUzyskPrzy8=t.KosztyUzyskPrzy8-o.KosztyUzyskPrzy8 ,
t.Dochod8=t.Dochod8-o.Dochod8 ,
t.Zaliczka8=t.Zaliczka8-o.Zaliczka8 ,
t.Przychod9=t.Przychod9-o.Przychod9 ,
t.KosztyUzyskPrzy9=t.KosztyUzyskPrzy9-o.KosztyUzyskPrzy9 ,
t.Dochod9=t.Dochod9-o.Dochod9 ,
t.Zaliczka9=t.Zaliczka9-o.Zaliczka9 ,
t.Przychod10=t.Przychod10-o.Przychod10 ,
t.Dochod10=t.Dochod10-o.Dochod10 ,
t.Zaliczka10=t.Zaliczka10-o.Zaliczka10 ,
t.SklUbezpSpol=t.SklUbezpSpol-o.SklUbezpSpol ,
t.SklUbezpZdrow=t.SklUbezpZdrow-o.SklUbezpZdrow ,
t.PrzychodyZZagranicy=t.PrzychodyZZagranicy-o.PrzychodyZZagranicy ,
t.PrzychodyBezzwrotnaPomoc=t.PrzychodyBezzwrotnaPomoc-o.PrzychodyBezzwrotnaPomoc ,
t.Przychod11=t.Przychod11-o.Przychod11 ,
t.Dochod11=t.Dochod11-o.Dochod11 ,
t.Zaliczka11=t.Zaliczka11-o.Zaliczka11 ,
t.KosztyUzyskPrzy10=t.KosztyUzyskPrzy10-o.KosztyUzyskPrzy10 ,
t.emeryt_doch_zwoln=t.emeryt_doch_zwoln-o.emeryt_doch_zwoln ,
t.inne_doch_zwoln=t.inne_doch_zwoln-o.inne_doch_zwoln ,
t.praca_doch_zwoln=t.praca_doch_zwoln-o.praca_doch_zwoln ,
t.skl_ubsp_zagr=t.skl_ubsp_zagr-o.skl_ubsp_zagr ,
t.skl_ubzd_zagr=t.skl_ubzd_zagr-o.skl_ubzd_zagr ,
t.Przychod10A=t.Przychod10A-o.Przychod10A ,
t.przychody_stypendium=t.przychody_stypendium-o.przychody_stypendium ,
t.f_wyn_zbiory=t.f_wyn_zbiory-o.f_wyn_zbiory ,
t.f_wyn2=t.f_wyn2-o.f_wyn2,
t.f_wyn3=t.f_wyn3-o.f_wyn3 ,
t.f_wyn4=t.f_wyn4-o.f_wyn4 ,
t.f_wyn_razem=t.f_wyn_razem-o.f_wyn_razem ,
t.ppk=t.ppk-o.ppk ,
t.Przychod2_2=t.Przychod2_2-o.Przychod2_2 ,
t.KosztyUzyskPrzy2=t.KosztyUzyskPrzy2-o.KosztyUzyskPrzy2 ,
t.KosztyUzyskPrzy2_2=t.KosztyUzyskPrzy2_2-o.KosztyUzyskPrzy2_2 ,
t.praca_doch_zwoln_2=t.praca_doch_zwoln_2-o.praca_doch_zwoln_2 ,
t.KosztyUzyskPrzy11=t.KosztyUzyskPrzy11-o.KosztyUzyskPrzy11 ,
t.Przychody_art21u1=t.Przychody_art21u1-o.Przychody_art21u1 ,
t.Przychody_art21u1_1=t.Przychody_art21u1_1-o.Przychody_art21u1_1 ,
t.Przychody_art21u1_2=t.Przychody_art21u1_2-o.Przychody_art21u1_2 ,
t.KosztyUzyskPrzy4=t.KosztyUzyskPrzy4-o.KosztyUzyskPrzy4 ,
t.KosztyUzyskPrzy5=t.KosztyUzyskPrzy5-o.KosztyUzyskPrzy5 ,
t.SklUbezpSpol_2=t.SklUbezpSpol_2-o.SklUbezpSpol_2,
t.SklUbezpSpol_3=t.SklUbezpSpol_3-o.SklUbezpSpol_3,
t.SklUbezpZdrow_2=t.SklUbezpZdrow_2-o.SklUbezpZdrow_2 ,
t.SklUbezpZdrow_3=t.SklUbezpZdrow_3-o.SklUbezpZdrow_3 ,
t.ppk4=t.ppk4-o.ppk4 ,
t.ppk5=t.ppk5-o.ppk5 ,
t.ppk6=t.ppk6-o.ppk6 ,
t.ppk7=t.ppk7-o.ppk7 ,
t.ppk7UoD=t.ppk7UoD-o.ppk7UoD ,
t.ppk8=t.ppk8-o.ppk8 ,
t.ppk9=t.ppk9-o.ppk9 ,
t.ppk10=t.ppk10-o.ppk10 ,
t.ppk10A=t.ppk10A-o.ppk10A ,
t.ppk11=t.ppk11-o.ppk11 ,
t.ppk_art21u1_1=t.ppk_art21u1_1-o.ppk_art21u1_1 ,
t.ppk_art21u1_2=t.ppk_art21u1_2-o.ppk_art21u1_2 ,
t.Przychody_art21u1_3=t.Przychody_art21u1_3-o.Przychody_art21u1_3 ,
t.Przychody_art21u1_152=t.Przychody_art21u1_152-o.Przychody_art21u1_152 ,
t.Przychody_art21u1_152_1=t.Przychody_art21u1_152_1-o.Przychody_art21u1_152_1 ,
t.Przychody_art21u1_152_2=t.Przychody_art21u1_152_2-o.Przychody_art21u1_152_2 ,
t.Przychody_art21u1_152_3=t.Przychody_art21u1_152_3-o.Przychody_art21u1_152_3 ,
t.SklUbezpZdrow_Pobr=t.SklUbezpZdrow_Pobr-o.SklUbezpZdrow_Pobr ,
t.Przychod12=t.Przychod12-o.Przychod12 ,
t.KosztyUzyskPrzy12=t.KosztyUzyskPrzy12-o.KosztyUzyskPrzy12 ,
t.Dochod12=t.Dochod12-o.Dochod12 ,
t.praca_doch_zwoln_12=t.praca_doch_zwoln_12-o.praca_doch_zwoln_12 ,
t.Zaliczka12=t.Zaliczka12-o.Zaliczka12 ,
t.Przychod12_2=t.Przychod12_2-o.Przychod12_2 ,
t.KosztyUzyskPrzy12_2=t.KosztyUzyskPrzy12_2-o.KosztyUzyskPrzy12_2 ,
t.Przychod13=t.Przychod13-o.Przychod13,
t.KosztyUzyskPrzy13=t.KosztyUzyskPrzy13-o.KosztyUzyskPrzy13 ,
t.Dochod13=t.Dochod13-o.Dochod13 ,
t.Zaliczka13=t.Zaliczka13-o.Zaliczka13 ,
t.Przychod14=t.Przychod14-o.Przychod14 ,
t.Dochod14=t.Dochod14-o.Dochod14 ,
t.Zaliczka14=t.Zaliczka14-o.Zaliczka14 ,
t.Przychod15=t.Przychod15-o.Przychod15 ,
t.Dochod15=t.Dochod15-o.Dochod15 ,
t.Zaliczka15=t.Zaliczka15-o.Zaliczka15 ,
t.Przychod16=t.Przychod16-o.Przychod16 ,
t.Dochod16=t.Dochod16-o.Dochod16 ,
t.Zaliczka16=t.Zaliczka16-o.Zaliczka16;

END IF;



	IF _Param_D='TEST' THEN

		INSERT IGNORE  INTO t_Pit_11_8B_test_ALL SELECT * FROM ta_Pit_11_8B;

	ELSE
		INSERT IGNORE INTO `Pit_11_8B` SELECT * FROM ta_Pit_11_8B;

		INSERT INTO `log` (GUIDlink,useridn,czas,table_link,osobaguid,info)
		SELECT GUID,'',NOW(),'Pit_11_8B',@SYSTEM.Client.Session.GUID,'Tworzenie PIT ' FROM ta_Pit_11_8B;


	END IF;

	  IF _MODE LIKE '%end' THEN

		SET @one.GUID =(SELECT GUID FROM ta_Pit_11_8B);

	  END IF;



   END IF;


   IF _MODE LIKE 'pit.new.create.one.2021%' THEN



   SET @wystawiajacy_imie =(SELECT  imie1 FROM osoby WHERE guid=_Wystawiajacy);
   SET @wystawiajacy_nazwisko =(SELECT  nazwisko FROM osoby WHERE guid=_Wystawiajacy);

  --  SET @testRG2=CONCAT(_MODE,_RecGUID,_ODDnia,_DoDnia);

	DROP TEMPORARY TABLE IF EXISTS t_place_pit  ;
	DROP TEMPORARY TABLE IF EXISTS t_pit_place  ;
	DROP TEMPORARY TABLE IF EXISTS t_koszty_zakwaterowania ;
	DROP TEMPORARY TABLE IF EXISTS t_KosztyUPT;

	SET @GUID_Prac=_RecGUID;
	SELECT Okres_od,Okres_do INTO @Okres_od,@Okres_do FROM  t_pit_list WHERE GUID_Pracownika=_RecGUID;
	SET @26lat_start='2019-08-01';
	SET @26lat_prac = (SELECT DATE_ADD(o.DataUrodzenia, INTERVAL 26 YEAR) FROM osoby o WHERE o.guid = _RecGUID);
	SET @Zasilki = "'C_9','C_10','C_11','ZCHZ'";  -- nazwa  zmienic na parametr
	-- SET @Okres_od = "2021-01-01";
	-- SET @Okres_do = "2021-12-31";
	SET @limit_zakwaterowania = (SELECT ValueN FROM IReg WHERE IdKey='zwrotuKosztowZakwaterowaniaKwota' AND rok=_ROK);
	SET @ProcKosztUzyskPracTworcz= (SELECT Pr.ProcKosztUzyskPracTworcz/100 FROM Pracownicy Pr WHERE guid=_RecGUID);

	-- Naliczanie plac sql 3+4
	CREATE TEMPORARY TABLE t_place_pit
		SELECT p.*,
		SUM(ps.kwota) AS Zasilki
	FROM place p
	LEFT JOIN place_skladniki ps ON ps.GUID_zapisu_placowego = p.GUID AND ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ')
	WHERE
		GUID_pracownika=_RecGUID AND
	--	datawyplaty>=@Okres_od AND
	--	datawyplaty<=@Okres_do  AND
		YEAR(p.datawyplaty)=_ROK AND
		deleted=0
	GROUP BY p.guid;

	ALTER TABLE t_place_pit ADD COLUMN 26lat INT NOT NULL DEFAULT 0, ADD COLUMN koszty_zakw DOUBLE (16,4) NOT NULL DEFAULT 0,
	ADD COLUMN koszty_UTP DOUBLE (16,4) NOT NULL DEFAULT 0  ;
	UPDATE t_place_pit SET 26lat=1 WHERE (datawyplaty >=@26lat_start AND datawyplaty <= @26lat_prac);



	CREATE TEMPORARY TABLE t_koszty_zakwaterowania
	SELECT SUM(ps.kwota) AS kwota,p.guid FROM place_skladniki ps ,definicja_skladnika_placy dsp ,t_place_pit p
	WHERE dsp.GUID = ps.GUID_definicja_skladnika_placy AND ps.GUID_zapisu_placowego = p.GUID AND dsp.zwrotKosztowZakwaterowania = 1 ;

	UPDATE t_place_pit tp, t_koszty_zakwaterowania tz SET tp.koszty_zakw=IF(tz.kwota>@limit_zakwaterowania,@limit_zakwaterowania,tz.kwota) WHERE tp.guid=tz.guid;


	CREATE TEMPORARY TABLE t_KosztyUPT
	SELECT SUM(ps.kwota) AS kwota,p.guid FROM place_skladniki ps ,definicja_skladnika_placy dsp ,t_place_pit p
	WHERE dsp.GUID = ps.GUID_definicja_skladnika_placy AND ps.GUID_zapisu_placowego = p.GUID AND dsp.DoPodstKosztUPT = 1  ;

	UPDATE t_place_pit tp, t_KosztyUPT tk SET tp.koszty_UTP=tk.kwota WHERE tp.guid=tk.guid;


	CREATE TEMPORARY TABLE  t_pit_place
	SELECT
	_RecGUID AS GUID_pracownika,
	SUM(koszty_UTP * @ProcKosztUzyskPracTworcz)  AS Przychod1_2old,
	SUM(IFNULL(SumaSkladnikowDlaKUPT,0)) AS Przychod1_2,
	SUM(IF(NOT p.26lat,p.KwotaBrutto+p.RazemSkladkiPracownika-IFNULL(SumaSkladnikowDlaKUPT,0),0)
	- IF(NOT p.26lat,p.Zasilki,0) - p.koszty_zakw ) AS Przychod1,

	-- DOPYTAC GP czemu w dochodzie nie uwzglednia guid_storno_
	-- SUM(IF(NOT p.26lat,p.KwotaBrutto + p.RazemSkladkiPracownika - p.KosztyUPT - p.KosztyUzyskania- p.Zasilki,0))
	-- AS Dochod1 ,
	 SUM(IF(NOT p.26lat,p.KwotaBrutto + p.RazemSkladkiPracownika - p.KosztyUPT - p.Zasilki,0))
	AS Dochod1 ,

	SUM(IF(NOT p.26lat,p.ZaliczkaDoRocznegoPita + p.Zaliczka  - IF(p.RozliczenieKwotyDoZaplaty,p.KorektaNaPlus,0)++ IF(p.RozliczenieNadplaty,p.KorektaNaMinus,0) ,0))
	 - SUM(IF(p.GUID_storno='',IF(_Rnd( ( SELECT SUM(ps.kwota) FROM place_skladniki ps
                                       WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ')
                                              AND  ps.GUID_zapisu_placowego = p.GUID
                                    ),0) >0 OR p.GUID_storno <>'',
                               IF(_Rnd(_Rnd( ( SELECT SUM(ps.kwota) FROM place_skladniki ps
                                                WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ') AND   ps.GUID_zapisu_placowego = p.GUID
                                                       AND  ( (p.datawyplaty <= '2019-07-31') OR (p.datawyplaty >='2019-08-01'
                                                                                                   AND p.datawyplaty >= ( SELECT DATE_ADD(o.DataUrodzenia, INTERVAL 26 YEAR)  FROM osoby o
                                                                                                                           WHERE o.guid = p.GUID_pracownika
                                                                                                                        )
                                                                                                 )
                                                            )
                                             ),0)  *p.ProcentPodatku/100-p.KwotaWolnaOdPodatku, 0) >0 OR  p.GUID_storno <>'' ,

                                         LEAST(_Rnd(_Rnd(( SELECT SUM(ps.kwota) FROM place_skladniki ps
                                                            WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ') AND   ps.GUID_zapisu_placowego = p.GUID
                                                                   AND  ((p.datawyplaty <= '2019-07-31') OR (p.datawyplaty >='2019-08-01' AND
                                                                                                             p.datawyplaty >= ( SELECT DATE_ADD(o.DataUrodzenia, INTERVAL 26 YEAR)  FROM osoby o
                                                                                                                                WHERE o.guid = p.GUID_pracownika)
                                                                                                             )
                                                                        )
                                                         ),0)  *p.ProcentPodatku/100-p.KwotaWolnaOdPodatku, 0
                                                   ),
                                                p.ZaliczkaDoRocznegoPita + p.Zaliczka
                                              ),
                                          0
                                 ),0
                             ),0
         )
      )
	AS Zaliczka1 ,


	 SUM(IF(NOT p.26lat AND p.KwotaBrutto > Zasilki,IF((ABS(p.KosztyUzyskania)>ABS(p.KwotaBrutto)), (p.KwotaBrutto), (p.KosztyUzyskania)),
	 IF(p.GUID_storno<>'',p.KosztyUzyskania ,0))) AS KosztyUzyskPrzy1,
	SUM( IF(p.26lat AND (NOT p.ZwolnienieOdPodatku26Lat OR (p.ZwolnienieOdPodatku26Lat AND  (p.Zaliczka>0)  AND NOT p.PodstawaPPD = Zasilki)),
	p.KwotaBrutto+p.RazemSkladkiPracownika-IFNULL(SumaSkladnikowDlaKUPT,0)-p.Zasilki,0))  AS Przychod2,

	SUM( IF(p.26lat AND (NOT p.ZwolnienieOdPodatku26Lat OR (p.ZwolnienieOdPodatku26Lat AND  (p.Zaliczka>0)  AND NOT p.PodstawaPPD = Zasilki)),
	(p.KwotaBrutto + p.RazemSkladkiPracownika - p.KosztyUPT - p.KosztyUzyskania -p.Zasilki),0))  AS Dochod2,

 SUM( (IF( ((p.datawyplaty >='2019-08-01' AND (p.Zaliczka>0)   AND NOT p.PodstawaPPD = IFNULL(( SELECT SUM(ps.kwota)
                                                                                                 FROM place_skladniki ps
                                                                                                 WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ')
                                                                                                       AND ps.GUID_zapisu_placowego = p.GUID ),0)
                                                                                                       AND p.datawyplaty < ( SELECT DATE_ADD(o.DataUrodzenia, INTERVAL 26 YEAR)
                                                                                                                              FROM osoby o WHERE o.guid = p.GUID_pracownika))
           ),
          p.ZaliczkaDoRocznegoPita + p.Zaliczka  - IF(p.RozliczenieKwotyDoZaplaty,p.KorektaNaPlus,0) + IF(p.RozliczenieNadplaty,p.KorektaNaMinus,0),
          0
         )
      )
    )

 - SUM( IF( _Rnd(( SELECT SUM(ps.kwota) FROM place_skladniki ps
                  WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ') AND  ps.GUID_zapisu_placowego = p.GUID
                ),0) >0 OR p.GUID_storno <>'',
            IF(_Rnd(_Rnd(( SELECT SUM(ps.kwota) FROM place_skladniki ps
                            WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ') AND   ps.GUID_zapisu_placowego = p.GUID  AND(p.Zaliczka>0)
                                   AND NOT p.PodstawaPPD = IFNULL(( SELECT SUM(ps.kwota)  FROM place_skladniki ps
                                                                     WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ') AND ps.GUID_zapisu_placowego = p.GUID
                                                                  ),0)
                                   AND ((p.datawyplaty >='2019-08-01'  AND p.datawyplaty < (SELECT DATE_ADD(o.DataUrodzenia, INTERVAL 26 YEAR)
                                                                                             FROM osoby o WHERE o.guid = p.GUID_pracownika))
                                       )
                         ),0
                        )   *p.ProcentPodatku/100-p.KwotaWolnaOdPodatku, 0
                   )>0 OR p.GUID_storno <>'',
                _Rnd(_Rnd(( SELECT SUM(ps.kwota) FROM place_skladniki ps
                             WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ') AND   ps.GUID_zapisu_placowego = p.GUID
                                    AND(p.Zaliczka>0)  AND NOT p.PodstawaPPD = IFNULL(( SELECT SUM(ps.kwota)
                                                                                         FROM place_skladniki ps
                                                                                         WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ')
                                                                                                AND ps.GUID_zapisu_placowego = p.GUID ),0)
                                                                                                AND ((p.datawyplaty >='2019-08-01'
                                                                                                AND p.datawyplaty < ( SELECT DATE_ADD(o.DataUrodzenia, INTERVAL 26 YEAR)
                                                                                                                       FROM osoby o
                                                                                                                       WHERE o.guid = p.GUID_pracownika)))),0
                         ) *p.ProcentPodatku/100-p.KwotaWolnaOdPodatku, 0
                    ),0
              ),0
          )
      ) AS Zaliczka2,

    SUM(IF(p.26lat AND (NOT p.ZwolnienieOdPodatku26Lat OR (p.ZwolnienieOdPodatku26Lat AND  (p.Zaliczka>0)  AND NOT p.PodstawaPPD = Zasilki)),
    IF((ABS(p.KosztyUzyskania)>ABS(p.KwotaBrutto)), (p.KwotaBrutto), (p.KosztyUzyskania)),0))  AS KosztyUzyskPrzy2 ,
	SUM(p.KosztyUzyskania) AS KosztyUzyskania,
SUM(Zasilki) AS innezrodla,
SUM(Zasilki) AS innezrodla_dochod,
SUM(IF(p.zaliczka>0 AND  p.KwotaBrutto=Zasilki, IF(ABS(p.KosztyUzyskania)>ABS(p.KwotaBrutto), p.KwotaBrutto, p.KosztyUzyskania),0)) AS innezrodla_KosztyUzysk,
SUM( IF( ((_Rnd(( SELECT SUM(ps.kwota) FROM place_skladniki ps
                  WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ') AND  ps.GUID_zapisu_placowego = p.GUID  ),0
               ) >0 AND p.Zaliczka>0) OR p.GUID_storno <>''
         ),
         IF(_Rnd(_Rnd(( SELECT SUM(ps.kwota) FROM place_skladniki ps
                         WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ') AND ps.GUID_zapisu_placowego = p.GUID  ),0)*  p.ProcentPodatku/100-p.KwotaWolnaOdPodatku, 0
                )>0 OR p.GUID_storno <>'',
            IF( ABS(_Rnd(_Rnd(( SELECT SUM(ps.kwota) FROM place_skladniki ps
                                 WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ')
                                        AND  ps.GUID_zapisu_placowego = p.GUID ),0
                             )* p.ProcentPodatku/100-p.KwotaWolnaOdPodatku, 0)) <= p.Zaliczka,
               _Rnd(_Rnd(( SELECT SUM(ps.kwota) FROM place_skladniki ps
                           WHERE ps.GUID_definicja_skladnika_placy IN ('C_9','C_10','C_11','ZCHZ')
                                 AND  ps.GUID_zapisu_placowego = p.GUID  ),0)* p.ProcentPodatku/100-p.KwotaWolnaOdPodatku, 0
                   ),
                p.Zaliczka), 0
           ),
         0
       )
   )  AS innezrodla_zaliczka ,

	SUM(IF(NOT p.26lat,  p.PPKskladkaPracod ,0)) AS PPK,
	SUM(p.KosztyUPT) AS KosztyUzyskPrzy1_2,
	SUM(IF(NOT p.26lat,p.RazemSkladkiPracownika,0)) AS SklUbezpSpol,
	SUM(IF(NOT p.26lat,p.SklKasaChorOdlicz,0)) AS SklUbezpZdrow,

	SUM(IF(p.26lat AND ( NOT p.ZwolnienieOdPodatku26Lat OR ( p.ZwolnienieOdPodatku26Lat AND ( p.Zaliczka>0) AND p.PodstawaPPD <> Zasilki)),p.RazemSkladkiPracownika,0)) AS SklUbezpSpol_2 ,
	SUM(IF(p.26lat AND p.ZwolnienieOdPodatku26Lat ,p.RazemSkladkiPracownika - p.SkladkiUbezpSpolDoOdliczenia,0)) AS SklUbezpSpol_3 ,


	SUM(IF(p.26lat AND ( NOT p.ZwolnienieOdPodatku26Lat OR ( p.ZwolnienieOdPodatku26Lat AND ( p.Zaliczka>0) AND p.PodstawaPPD <> Zasilki)),p.SklKasaChorOdlicz,0)) AS SklUbezpZdrow_2,
	SUM(IF(p.26lat AND p.ZwolnienieOdPodatku26Lat ,p.SklKasaChorOdlicz,0)) AS SklUbezpZdrow_3,
	SUM(IF(p.26lat AND  p.ZwolnienieOdPodatku26Lat AND p.Zaliczka= 0 OR(p.Zaliczka>0 AND p.PodstawaPPD = p.Zasilki),
	p.KwotaBrutto+p.SkladkiUbezpSpolDoOdliczenia - IFNULL(SumaSkladnikowDlaKUPT,0)-p.Zasilki,0))  AS Przychody_art21u1_1,
	SUM(IF(p.26lat AND  p.ZwolnienieOdPodatku26Lat AND p.Zaliczka= 0, p.PPKskladkaPracod,0))AS ppk_art21u1_1



FROM t_place_pit p ;






-- zlecenia

	DROP TEMPORARY TABLE IF EXISTS t_prace_zlecone_pit ;
	DROP TEMPORARY TABLE IF EXISTS t_prace_zlecone2_pit ;
	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec4 ;
	SET @Naliczac_podatek_od_zasilkow = (SELECT ValueI FROM IReg WHERE idkey = 'Naliczac_podatek_od_zasilkow');


	CREATE TEMPORARY TABLE t_prace_zlecone_pit
	SELECT pz.*,
	SUM(ps.kwota) AS Sklaniki_zlec_1
	FROM prace_zlecone pz
	LEFT JOIN place_skladniki ps ON ps.GUID_zapisu_placowego = pz.GUID AND ps.GUID_definicja_skladnika_placy IN ("Z_2","Z_3","Z_4")
	WHERE
	GUID_pracownika=_RecGUID AND
	-- datawyplaty>=@Okres_od AND
	-- datawyplaty<=@Okres_do  AND
	YEAR(pz.datawyplaty)=_ROK AND
	deleted=0
	GROUP BY pz.guid;


	ALTER TABLE t_prace_zlecone_pit  ADD COLUMN 26lat INT NOT NULL DEFAULT 0;
	UPDATE t_prace_zlecone_pit  SET 26lat=1 WHERE (datawyplaty >=@26lat_start AND datawyplaty <= @26lat_prac );

	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec;
	CREATE TEMPORARY TABLE  t_pit_zlec
	SELECT _RecGUID AS GUID_pracownika,
	SUM(IF((NOT pz.26lat OR  NOT pz.ZwolnienieOdPodatku26Lat ) AND  pz.RodzajRyczaltu IN ('2','7','8','9','10','11','12','13','14'), pz.RazemSkladkiZleceniobiorcy,0)) AS SklUbezpSpol,
	SUM(IF(pz.UmowaODzielo = 0 AND pz.26lat AND ( NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND ( pz.Zaliczka+pz.ZryczaltowanyPodatek>0))) , pz.RazemSkladkiZleceniobiorcy,0)) AS SklUbezpSpol_2,
	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat  , pz.RazemSkladkiZleceniobiorcy - pz.RazemSklZleceniobiorcyDoOdlicz,0)) AS SklUbezpSpol_3,
	SUM(IF((NOT pz.26lat OR  NOT pz.ZwolnienieOdPodatku26Lat ) AND pz.RodzajRyczaltu IN ('7','8','9','10','11','12','13','14'), pz.SklKasaChorychZleceniobOdlicz,0)) AS SklUbezpZdrow,
	SUM(IF(pz.UmowaODzielo = 0 AND pz.26lat AND ( NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND ( pz.Zaliczka>0))) ,pz.SklKasaChorychZleceniobOdlicz,0)) AS SklUbezpZdrow_2,
	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat   AND pz.Zaliczka= 0 , pz.SklKasaChorychZleceniobOdlicz,0)) AS SklUbezpZdrow_3,
	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat   AND pz.Zaliczka= 0 , pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) -
	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat   AND pz.Zaliczka= 0 AND ( ( (pz.ZasChorRazem+pz.ZasRehab+pz.ZasMacierz+pz.ZasOpiekun=0) AND NOT @Naliczac_podatek_od_zasilkow) OR @Naliczac_podatek_od_zasilkow) ,pz.Sklaniki_zlec_1,0))  AS Przychody_art21u1_2,
	SUM(IF(pz.26lat AND pz.ZwolnienieOdPodatku26Lat   AND pz.Zaliczka= 0,pz.PPKskladkaPracod,0)) AS ppk_art21u1_2
	FROM t_prace_zlecone_pit  pz  ;



	CREATE TEMPORARY TABLE t_prace_zlecone2_pit
	SELECT pz.*,
	SUM(ps.kwota) AS Sklaniki_zlec_1
	FROM prace_zlecone pz
	LEFT JOIN place_skladniki ps ON ps.GUID_zapisu_placowego = pz.GUID AND ps.GUID_definicja_skladnika_placy IN ("Z_2","Z_3","Z_4")
	WHERE
	GUID_pracownika=_RecGUID AND
	YEAR(pz.datawyplaty)=_ROK AND

	deleted=0

	GROUP BY pz.guid;



	ALTER TABLE t_prace_zlecone2_pit  ADD COLUMN 26lat INT NOT NULL DEFAULT 0;
	UPDATE t_prace_zlecone2_pit  pz SET 26lat=1 WHERE (datawyplaty >=@26lat_start AND datawyplaty <= @26lat_prac );


	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec2;
	CREATE TEMPORARY TABLE  t_pit_zlec2
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) AS ZaZlecenie1,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK5,
		SUM( (IF( ((pz.DataWyplaty <= '2019-07-31') OR ( pz.DataWyplaty >='2019-08-01'
                                               AND pz.DataWyplaty >= (SELECT DATE_ADD(o.DataUrodzenia, INTERVAL 26 YEAR) FROM osoby o WHERE o.guid = pz.GUID_pracownika)
                                              )
         ), pz.Zaliczka,0)
     )
    )
 - SUM( IF( _Rnd ( IFNULL( (SELECT SUM(ps.kwota) FROM place_skladniki ps
                                                 WHERE ps.GUID_definicja_skladnika_placy IN ("Z_2","Z_3","Z_4") AND ps.kwota <> 0
                                                       AND ps.GUID_zapisu_placowego=pz.GUID
                         ),0
                      ),0
                 ) >0,

             GREATEST(_Rnd(_Rnd ( IFNULL( (SELECT SUM(ps.kwota) FROM place_skladniki ps
                                                             WHERE ps.GUID_definicja_skladnika_placy IN ("Z_2","Z_3","Z_4") AND ps.kwota <> 0
                                                                   AND   ps.GUID_zapisu_placowego = pz.GUID
                                                                   AND ( (pz.DataWyplaty <= '2019-07-31') OR (pz.DataWyplaty >='2019-08-01' AND pz.DataWyplaty >= (SELECT DATE_ADD(o.DataUrodzenia, INTERVAL 26 YEAR)  FROM osoby o WHERE o.guid = pz.GUID_pracownika))
                                                                       )
                                        ),0
                                      ),0)*pz.ProcentPodatku/100, 0),0),0
           )
      )*0  AS Zaliczka1 ,



		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy1,

		SUM(IF(pz.26lat AND (NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND (pz.Zaliczka>0))),pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) AS ZaZlecenie2,
		SUM(IF(pz.26lat AND (NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND (pz.Zaliczka>0))),pz.PPKskladkaPracod,0)) AS PPK6,
		SUM(IF(pz.26lat,pz.Zaliczka,0))-
		SUM(IF(pz.Sklaniki_zlec_1 >0 AND pz.Zaliczka>0,Sklaniki_zlec_1*pz.ProcentPodatku/100,0))  AS Zaliczka2 ,
		SUM(IF(pz.26lat AND (NOT pz.ZwolnienieOdPodatku26Lat OR (pz.ZwolnienieOdPodatku26Lat AND (pz.Zaliczka>0))), IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy2,

-- WHY ?
		SUM(pz.Sklaniki_zlec_1)*0 AS innezrodla,
		SUM(pz.Sklaniki_zlec_1)*0 AS innezrodla_dochod,
		SUM(IF(pz.Sklaniki_zlec_1 >0,pz.Sklaniki_zlec_1 * pz.ProcentPodatku/100,0))*0 AS innezrodla_zaliczka

	FROM t_prace_zlecone2_pit  pz WHERE pz.RodzajRyczaltu IN ('7') AND pz.UmowaODzielo = 0  ;



--   PRZYCHODY4  ZLECENIA' ''8'',''9'',''12'',''13'',''14'' ' I UMOWY O DZIELO 7

	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec4;
	CREATE TEMPORARY TABLE  t_pit_zlec4
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) AS ZaZlecenie4,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK4,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(IF(pz.Sklaniki_zlec_1 >0 ,Sklaniki_zlec_1 * pz.ProcentPodatku/100,0)) AS Zaliczka4,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy4

	FROM t_prace_zlecone2_pit  pz WHERE pz.RodzajRyczaltu IN ('8','9','12','13','14') OR (pz.RodzajRyczaltu IN (7) AND pz.UmowaODzielo = 1 ) ;

--   PRZYCHODY11  ZLECENIA I UMOWY O DZIELO 11


	DROP TEMPORARY TABLE IF EXISTS t_pit_zlec_11;
	CREATE TEMPORARY TABLE  t_pit_zlec_11
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) AS ZaZlecenie,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(IF(pz.Sklaniki_zlec_1 >0 ,Sklaniki_zlec_1 * pz.ProcentPodatku/100,0)) AS Zaliczka,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy

	FROM t_prace_zlecone2_pit  pz WHERE pz.RodzajRyczaltu IN (11)  ;

 --      WyliczPraceSZlecone(aOd,aDo,aGUIDPrac,' ''10'' ',Pit11Rec.Przychod10A, Pit11Rec.KosztyUzyskPrzy10, aZaliczka10A, Pit11Rec.PPK10A, 1); pz.KosztyUzyskania = 0.00 '
 --      WyliczPraceSZlecone(aOd,aDo,aGUIDPrac,' ''10'' ',Pit11Rec.Przychod10, Pit11Rec.KosztyUzyskPrzy10, aZaliczka10, Pit11Rec.PPK10, 2); pz.KosztyUzyskania > 0.00 '

		DROP TEMPORARY TABLE IF EXISTS t_pit_zlec_10A;
	CREATE TEMPORARY TABLE  t_pit_zlec_10A
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) AS ZaZlecenie,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(IF(pz.Sklaniki_zlec_1 >0 ,Sklaniki_zlec_1 * pz.ProcentPodatku/100,0)) AS Zaliczka,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy

	FROM t_prace_zlecone2_pit  pz WHERE pz.RodzajRyczaltu IN (10)   AND pz.KosztyUzyskania=0;

		DROP TEMPORARY TABLE IF EXISTS t_pit_zlec_10;
	CREATE TEMPORARY TABLE  t_pit_zlec_10
	SELECT  _RecGUID AS GUID_pracownika,
		SUM(IF(NOT pz.26lat,pz.ZaZlecenie +IFNULL(pz.kwota_za_UW,0),0)) AS ZaZlecenie,
		SUM(IF(NOT pz.26lat,pz.PPKskladkaPracod,0)) AS PPK,
		SUM(IF(NOT pz.26lat,pz.Zaliczka,0))-
		SUM(IF(pz.Sklaniki_zlec_1 >0 ,Sklaniki_zlec_1 * pz.ProcentPodatku/100,0)) AS Zaliczka,
		SUM(IF(NOT pz.26lat, IF((ABS(pz.KosztyUzyskania)>ABS(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0))),(pz.ZaZlecenie+IFNULL(pz.kwota_za_UW,0)),(pz.KosztyUzyskania) )  ,0)) AS KosztyUzyskPrzy

	FROM t_prace_zlecone2_pit  pz WHERE pz.RodzajRyczaltu IN (10)   AND pz.KosztyUzyskania>0;


-- tworzenie pita wlaz calosci

	DROP TEMPORARY TABLE IF EXISTS   ta_Pit_11_8B;
	CREATE TEMPORARY TABLE ta_Pit_11_8B LIKE Pit_11_8B;
	ALTER TABLE ta_Pit_11_8B CHANGE `idn` `idn` INT(11) NOT NULL, DROP PRIMARY KEY;

   INSERT INTO `ta_Pit_11_8B`
	(idn,GUID,pracGUID,NIP,OkresOd,OkresDo,US,NazwaPlatnika,Kraj,Wojewodztwo,Powiat,Gmina,
	Ulica,
	Nrdomu,NrLokalu,Miejscowosc,KodPocztowy,Poczta, Nazwa1 , Nazwa2, Nazwa3,Nazwa4,
	Podatnik_Nazwisko,Podatnik_Imie,Podatnik_NIP,
	Podatnik_DataUrodzenia,Podatnik_Kraj,
	Podatnik_Wojewodztwo,Podatnik_Powiat,
	Podatnik_Gmina,Podatnik_Ulica,
	Podatnik_NrDomu,Podatnik_NrLokalu,
	Podatnik_Miejscowosc,Podatnik_KodPocztowy,Podatnik_Poczta,Imie,Nazwisko,
	f_wyn2,f_wyn2_opis,f_wyn3,f_wyn3_opis,f_wyn4,f_wyn4_opis,f_wyn_razem)

  SELECT 0,UUID(), _RecGUID,
    @Platnik_NIP,
    t.Okres_od,LAST_DAY(t.Okres_do),t.US,@PelnaNazwa,
    @Platnik_Kraj,@Platnik_wojewodztwo,@Platnik_powiat,@Platnik_gmina,
    @Platnik_ulica,
    @Platnik_Nr_domu,@Platnik_Nr_lokalu,
    @Platnik_Miasto,@Platnik_Kod_poczt,@Platnik_poczta, @Nazwa1 , @Nazwa2, @Nazwa3,@Nazwa4,

    t.nazwisko,t.imie,Podatnik_NIP,Podatnik_DataUrodzenia,
    t.Podatnik_Kraj,
    t.Podatnik_Wojewodztwo,
    t.Podatnik_Powiat,
    t.Podatnik_Gmina,
    t.Podatnik_Ulica,
    t.Podatnik_NrDomu,
    t.Podatnik_NrLokalu,
    t.Podatnik_Miejscowosc,
    t.Podatnik_KodPocztowy,
    t.Podatnik_Poczta,
	@wystawiajacy_imie,
	@wystawiajacy_nazwisko,
	t.f_wyn2,
    t.f_wyn2_opis,
    t.f_wyn3,
    t.f_wyn3_opis,
    t.f_wyn4,
    t.f_wyn4_opis,
    t.f_wyn2+t.f_wyn3+t.f_wyn4

    FROM t_pit_list t WHERE t.GUID_Pracownika=_RecGUID;


    SET @testRGd=(SELECT COUNT(*)FROM t_pit_place);

    	UPDATE ta_Pit_11_8B t, t_pit_place TP,t_pit_zlec  TZ
	SET
		t.Przychod1=IFNULL(TP.Przychod1,0)+IFNULL(TP.PPK,0),
		t.KosztyUzyskPrzy1=IFNULL(TP.KosztyUzyskPrzy1,0),
		t.Dochod1=IFNULL(TP.Dochod1,0)+IFNULL(TP.PPK,0)- IFNULL(TP.KosztyUzyskPrzy1,0),
		t.Zaliczka1=IFNULL(TP.Zaliczka1,0),
		t.Przychod1_2=IFNULL(TP.Przychod1_2,0),

		t.Przychod2=IFNULL(TP.Przychod2,0),
		t.Dochod2=IFNULL(TP.Dochod2,0),
		t.Zaliczka2=IFNULL(TP.Zaliczka2,0),
		t.KosztyUzyskPrzy2=IFNULL(TP.KosztyUzyskPrzy2,0),

		t.Przychod11=IFNULL(TP.innezrodla,0),
		t.Dochod11=IFNULL(TP.innezrodla_dochod,0)-IFNULL(TP.innezrodla_KosztyUzysk,0),
		t.Zaliczka11=IFNULL(TP.innezrodla_zaliczka,0),
		t.KosztyUzyskPrzy11=IFNULL(TP.innezrodla_KosztyUzysk,0),


		t.SklUbezpSpol=IFNULL(TP.SklUbezpSpol,0)+IFNULL(TZ.SklUbezpSpol,0),
		t.PPK=IFNULL(TP.PPK,0),

		t.SklUbezpSpol_2=IFNULL(TP.SklUbezpSpol_2,0)+IFNULL(TZ.SklUbezpSpol_2,0),
		t.SklUbezpSpol_3=IFNULL(TP.SklUbezpSpol_3,0)+IFNULL(TZ.SklUbezpSpol_3,0),
		t.SklUbezpZdrow=IFNULL(TP.SklUbezpZdrow,0) + IFNULL(TZ.SklUbezpZdrow,0),
		t.SklUbezpZdrow_2=IFNULL(TP.SklUbezpZdrow_2,0) + IFNULL(TZ.SklUbezpZdrow_2,0),
		t.SklUbezpZdrow_3=IFNULL(TP.SklUbezpZdrow_3,0) + IFNULL(TZ.SklUbezpZdrow_3,0),
		t.Przychody_art21u1=IFNULL(TP.Przychody_art21u1_1,0)+IFNULL(TP.ppk_art21u1_1,0) + IFNULL(TZ.Przychody_art21u1_2,0) + IFNULL(TZ.ppk_art21u1_2,0)	,
		t.Przychody_art21u1_1=IFNULL(TP.Przychody_art21u1_1,0)+IFNULL(TP.ppk_art21u1_1,0),
		t.Przychody_art21u1_2= IFNULL(TZ.Przychody_art21u1_2,0) + IFNULL(TZ.ppk_art21u1_2,0)

	WHERE 	t.pracGUID=TP.GUID_pracownika AND t.pracGUID=TZ.GUID_pracownika;







	UPDATE ta_Pit_11_8B t, t_pit_zlec2 t2
	SET
		t.PPK5=t2.PPK5,
		t.Przychod5=t2.PPK5 + t2.ZaZlecenie1,
		t.KosztyUzyskPrzy5=t2.KosztyUzyskPrzy1,
		t.Dochod5=t2.PPK5 + t2.ZaZlecenie1 - t2.KosztyUzyskPrzy1,
		t.Zaliczka5=t2.Zaliczka1,

		t.PPK6=t2.PPK6,
		t.Przychod6=t2.PPK6 + t2.ZaZlecenie2,
		t.KosztyUzyskPrzy6=t2.KosztyUzyskPrzy2,
		t.Dochod6=t2.PPK6 + t2.ZaZlecenie2-t.KosztyUzyskPrzy2,
		t.Zaliczka6=t2.Zaliczka2

		-- czemu w exe nie odejmuje tego co bylo
	--	t.innezrodla=t2.innezrodla,
	--	t.innezrodla_zaliczka=t2.innezrodla_zaliczka,
	--	t.innezrodla_dochod=t2.innezrodla_dochod

	WHERE 	t.pracGUID=t2.GUID_pracownika;

	SET @paramD=_Param_D;




	UPDATE ta_Pit_11_8B t, t_pit_zlec4 t4
	SET
		t.PPK4=t4.PPK4,
		t.Przychod4=t4.PPK4 + t4.ZaZlecenie4,
		t.KosztyUzyskPrzy4=t4.KosztyUzyskPrzy4,
		t.Dochod4=t4.PPK4 + t4.ZaZlecenie4 - t4.KosztyUzyskPrzy4,
		t.Zaliczka4=t4.Zaliczka4
	WHERE 	t.pracGUID=t4.GUID_pracownika;



		UPDATE ta_Pit_11_8B t, t_pit_zlec_10 t10 ,t_pit_zlec_10A t10A
	SET


		t.Przychod10=IFNULL(t10.ZaZlecenie,0),
		t.Przychod10A=IFNULL(t10A.ZaZlecenie,0),
		t.Dochod10=IFNULL(t10.ZaZlecenie,0)+IFNULL(t10A.ZaZlecenie,0) - IFNULL(t10.KosztyUzyskPrzy,0) - IFNULL(t10A.KosztyUzyskPrzy,0),
		t.KosztyUzyskPrzy10=IFNULL(t10.KosztyUzyskPrzy,0) + IFNULL(t10A.KosztyUzyskPrzy,0),
		t.Zaliczka10=IFNULL(t10.Zaliczka,0)+IFNULL(t10A.Zaliczka,0)

	WHERE 	t.pracGUID=t10.GUID_pracownika AND
		t.pracGUID=t10A.GUID_pracownika
	;

/*        WyliczPraceSZlecone(aOd,aDo,aGUIDPrac,' ''10'' ',Pit11Rec.Przychod10A, Pit11Rec.KosztyUzyskPrzy10, aZaliczka10A, Pit11Rec.PPK10A, 1);
        WyliczPraceSZlecone(aOd,aDo,aGUIDPrac,' ''10'' ',Pit11Rec.Przychod10, Pit11Rec.KosztyUzyskPrzy10, aZaliczka10, Pit11Rec.PPK10, 2);
   *     Pit11Rec.Dochod10 := Pit11Rec.Przychod10 - Pit11Rec.KosztyUzyskPrzy10 + Pit11Rec.Przychod10A;
        Pit11Rec.Przychod10 := Pit11Rec.Przychod10 - aDSOLDPITs11.FieldByName('Przychod10').asCurrency - aDSOLDPITs11.FieldByName('PPK10').asCurrency - aDSOLDPITs11.FieldByName('PPK10A').asCurrency;
      *  Pit11Rec.KosztyUzyskPrzy10 := Pit11Rec.KosztyUzyskPrzy10 - aDSOLDPITs11.FieldByName('KosztyUzyskPrzy10').asCurrency;
     *  Pit11Rec.Zaliczka10 := aZaliczka10A + aZaliczka10 - aDSOLDPITs11.FieldByName('Zaliczka10').asCurrency;
        Pit11Rec.Dochod10 := Pit11Rec.Dochod10 - aDSOLDPITs11.FieldByName('Dochod10').asCurrency;

        if Pit11Rec.Przychod10A < 0 then  Pit11Rec.Przychod10A := 0;
        if Pit11Rec.Przychod10 < 0 then  Pit11Rec.Przychod10 := 0;
        if Pit11Rec.KosztyUzyskPrzy10 <0 then  Pit11Rec.KosztyUzyskPrzy10 := 0;
        if Pit11Rec.Zaliczka10 <0 then Pit11Rec.Zaliczka10:= 0;
        if Pit11Rec.Dochod10 < 0 then Pit11Rec.Dochod10 := 0;

        */



--		UPDATE ta_Pit_11_8B t, t_pit_zlec_11 t11
--	SET
--		t.PPK11=t.PPK11+t11.PPK,
--		t.KosztyUzyskPrzy11=t.KosztyUzyskPrzy11+t11.KosztyUzyskPrzy,
--		t.Dochod11=t.Dochod11+t11.PPK + t11.ZaZlecenie - t11.KosztyUzyskPrzy,
--		t.Zaliczka11=t.Zaliczka11+t11.Zaliczka
--	WHERE 	t.pracGUID=t11.GUID_pracownika;


	IF _Param_D='TEST' THEN

		INSERT IGNORE  INTO t_Pit_11_8B_test_ALL SELECT * FROM ta_Pit_11_8B;

	ELSE
		INSERT IGNORE INTO `Pit_11_8B` SELECT * FROM ta_Pit_11_8B;

	END IF;

	  IF _MODE LIKE '%end' THEN

		SET @one.GUID =(SELECT GUID FROM ta_Pit_11_8B);

	  END IF;



   END IF;


IF _MODE ='porownanie' THEN


	DROP TEMPORARY TABLE IF EXISTS t_pit_porownanie;
	DROP TEMPORARY TABLE IF EXISTS pit_porownanie;
	CREATE TEMPORARY TABLE pit_porownanie
	SELECT 'call' AS zrodlo , 1 AS z_int,t.* FROM `t_Pit_11_8B_test_ALL` t UNION
	SELECT 'exe',0,p.* FROM `Pit_11_8B` p WHERE p.rok=2021 AND deleted=0
	ORDER BY pracGUID,zrodlo ;

	CREATE TEMPORARY TABLE t_pit_porownanie


	SELECT COUNT(p.pracGUID) AS ile ,p.pracGUID ,p.Podatnik_Imie,Podatnik_Nazwisko,
	SUM(IF(p.z_int,Przychod1,-Przychod1)) AS  Przychod1,
	SUM(IF(p.z_int,KosztyUzyskPrzy1,-KosztyUzyskPrzy1)) AS  KosztyUzyskPrzy1,
	SUM(IF(p.z_int,Dochod1,-Dochod1)) AS  Dochod1,
	SUM(IF(p.z_int,Zaliczka1,-Zaliczka1)) AS  Zaliczka1,
	SUM(IF(p.z_int,Przychod1_2,-Przychod1_2)) AS  Przychod1_2,
	SUM(IF(p.z_int,KosztyUzyskPrzy1_2,-KosztyUzyskPrzy1_2)) AS  KosztyUzyskPrzy1_2,
	SUM(IF(p.z_int,Przychod2,-Przychod2)) AS  Przychod2,
	SUM(IF(p.z_int,Dochod2,-Dochod2)) AS  Dochod2,
	SUM(IF(p.z_int,Zaliczka2,-Zaliczka2)) AS  Zaliczka2,
	SUM(IF(p.z_int,Przychod3,-Przychod3)) AS  Przychod3,
	SUM(IF(p.z_int,Dochod3,-Dochod3)) AS  Dochod3,
	SUM(IF(p.z_int,Zaliczka3,-Zaliczka3)) AS  Zaliczka3,
	SUM(IF(p.z_int,Przychod4,-Przychod4)) AS  Przychod4,
	SUM(IF(p.z_int,Dochod4,-Dochod4)) AS Dochod4,
	SUM(IF(p.z_int,Zaliczka4,-Zaliczka4)) AS  Zaliczka4,
	SUM(IF(p.z_int,Przychod5,-Przychod5)) AS  Przychod5,
	SUM(IF(p.z_int,Dochod5,-Dochod5)) AS  Dochod5,
	SUM(IF(p.z_int,Zaliczka5,-Zaliczka5)) AS  Zaliczka5,
	SUM(IF(p.z_int,Przychod6,-Przychod6)) AS  Przychod6,
	SUM(IF(p.z_int,KosztyUzyskPrzy6,-KosztyUzyskPrzy6)) AS  KosztyUzyskPrzy6,
	SUM(IF(p.z_int,Dochod6,-Dochod6)) AS  Dochod6,
	SUM(IF(p.z_int,Zaliczka6,-Zaliczka6)) AS  Zaliczka6,
	SUM(IF(p.z_int,Przychod7,-Przychod7)) AS  Przychod7,
	SUM(IF(p.z_int,KosztyUzyskPrzy7,-KosztyUzyskPrzy7)) AS  KosztyUzyskPrzy7,
	SUM(IF(p.z_int,Dochod7,-Dochod7)) AS  Dochod7,
	SUM(IF(p.z_int,Zaliczka7,-Zaliczka7)) AS  Zaliczka7,
	SUM(IF(p.z_int,Przychod8,-Przychod8)) AS  Przychod8,
	SUM(IF(p.z_int,KosztyUzyskPrzy8,-KosztyUzyskPrzy8)) AS  KosztyUzyskPrzy8,
	SUM(IF(p.z_int,Dochod8,-Dochod8)) AS  Dochod8,
	SUM(IF(p.z_int,Zaliczka8,-Zaliczka8)) AS  Zaliczka8,
	SUM(IF(p.z_int,Przychod9,-Przychod9)) AS  Przychod9,
	SUM(IF(p.z_int,KosztyUzyskPrzy9,-KosztyUzyskPrzy9)) AS  KosztyUzyskPrzy9,
	SUM(IF(p.z_int,Dochod9,-Dochod9)) AS  Dochod9,
	SUM(IF(p.z_int,Zaliczka9,-Zaliczka9)) AS  Zaliczka9,
	SUM(IF(p.z_int,Przychod10,-Przychod10)) AS  Przychod10,
	SUM(IF(p.z_int,Dochod10,-Dochod10)) AS Dochod10,
	SUM(IF(p.z_int,Zaliczka10,-Zaliczka10)) AS  Zaliczka10,
	SUM(IF(p.z_int,SklUbezpSpol,-SklUbezpSpol)) AS  SklUbezpSpol,
	SUM(IF(p.z_int,SklUbezpZdrow,-SklUbezpZdrow)) AS  SklUbezpZdrow,
	SUM(IF(p.z_int,PrzychodyZZagranicy,-PrzychodyZZagranicy)) AS  PrzychodyZZagranicy,
	SUM(IF(p.z_int,PrzychodyBezzwrotnaPomoc,-PrzychodyBezzwrotnaPomoc)) AS  PrzychodyBezzwrotnaPomoc,
	SUM(IF(p.z_int,Przychod11,-Przychod11)) AS  Przychod11,
	SUM(IF(p.z_int,Dochod11,-Dochod11)) AS  Dochod11,
	SUM(IF(p.z_int,Zaliczka11,-Zaliczka11)) AS  Zaliczka11,
	SUM(IF(p.z_int,KosztyUzyskPrzy10,-KosztyUzyskPrzy10)) AS  KosztyUzyskPrzy10,
	SUM(IF(p.z_int,emeryt_doch_zwoln,-emeryt_doch_zwoln)) AS  emeryt_doch_zwoln,
	SUM(IF(p.z_int,inne_doch_zwoln,-inne_doch_zwoln)) AS  inne_doch_zwoln,
	SUM(IF(p.z_int,praca_doch_zwoln,-praca_doch_zwoln)) AS  praca_doch_zwoln,
	SUM(IF(p.z_int,skl_ubsp_zagr,-skl_ubsp_zagr)) AS  skl_ubsp_zagr,
	SUM(IF(p.z_int,skl_ubzd_zagr,-skl_ubzd_zagr)) AS  skl_ubzd_zagr,
	SUM(IF(p.z_int,Przychod10A,-Przychod10A)) AS  Przychod10A,
	SUM(IF(p.z_int,przychody_stypendium,-przychody_stypendium)) AS  przychody_stypendium,
	SUM(IF(p.z_int,f_wyn_zbiory,-f_wyn_zbiory)) AS  f_wyn_zbiory,
	SUM(IF(p.z_int,f_wyn2,-f_wyn2)) AS  f_wyn2,
	SUM(IF(p.z_int,f_wyn3,-f_wyn3)) AS  f_wyn3,
	SUM(IF(p.z_int,f_wyn4,-f_wyn4)) AS  f_wyn4,
	SUM(IF(p.z_int,f_wyn_razem,-f_wyn_razem)) AS  f_wyn_razem,
	SUM(IF(p.z_int,ppk,-ppk)) AS  ppk,
	SUM(IF(p.z_int,Przychod2_2,-Przychod2_2)) AS  Przychod2_2,
	SUM(IF(p.z_int,KosztyUzyskPrzy2,-KosztyUzyskPrzy2)) AS KosztyUzyskPrzy2,
	SUM(IF(p.z_int,KosztyUzyskPrzy2_2,-KosztyUzyskPrzy2_2)) AS  KosztyUzyskPrzy2_2,
	SUM(IF(p.z_int,praca_doch_zwoln_2,-praca_doch_zwoln_2)) AS praca_doch_zwoln_2,
	SUM(IF(p.z_int,KosztyUzyskPrzy11,-KosztyUzyskPrzy11)) AS  KosztyUzyskPrzy11,

	SUM(IF(p.z_int,Przychody_art21u1,-Przychody_art21u1)) AS  Przychody_art21u1,
	SUM(IF(p.z_int,Przychody_art21u1_1,-Przychody_art21u1_1)) AS  Przychody_art21u1_1,
	SUM(IF(p.z_int,Przychody_art21u1_2,-Przychody_art21u1_2)) AS  Przychody_art21u1_2,
	SUM(IF(p.z_int,KosztyUzyskPrzy4,-KosztyUzyskPrzy4)) AS  KosztyUzyskPrzy4,
	SUM(IF(p.z_int,KosztyUzyskPrzy5,-KosztyUzyskPrzy5)) AS  KosztyUzyskPrzy5,
	SUM(IF(p.z_int,SklUbezpSpol_2,-SklUbezpSpol_2)) AS  SklUbezpSpol_2,
	SUM(IF(p.z_int,SklUbezpSpol_3,-SklUbezpSpol_3)) AS SklUbezpSpol_3,
	SUM(IF(p.z_int,SklUbezpZdrow_2,-SklUbezpZdrow_2)) AS  SklUbezpZdrow_2,
	SUM(IF(p.z_int,SklUbezpZdrow_3,-SklUbezpZdrow_3)) AS  SklUbezpZdrow_3,
	SUM(IF(p.z_int,ppk4,-ppk4)) AS  ppk4,
	SUM(IF(p.z_int,ppk5,-ppk5)) AS ppk5,
	SUM(IF(p.z_int,ppk6,-ppk6)) AS ppk6,
	SUM(IF(p.z_int,ppk7,-ppk7)) AS ppk7,
	SUM(IF(p.z_int,ppk7UoD,-ppk7UoD)) AS ppk7UoD,
	SUM(IF(p.z_int,ppk8,-ppk8)) AS ppk8,
	SUM(IF(p.z_int,ppk9,-ppk9)) AS ppk9,
	SUM(IF(p.z_int,ppk10,-ppk10)) AS ppk10,
	SUM(IF(p.z_int,ppk10A,-ppk10A)) AS ppk10A,
	SUM(IF(p.z_int,ppk11,-ppk11)) AS ppk11,
	SUM(IF(p.z_int,ppk_art21u1_1,-ppk_art21u1_1)) AS ppk_art21u1_1,
	SUM(IF(p.z_int,ppk_art21u1_2,-ppk_art21u1_2)) AS ppk_art21u1_2,
	(SUM(IF(p.z_int,Dochod8,-Dochod8)) +
	SUM(IF(p.z_int,Zaliczka8,-Zaliczka8)) +
	SUM(IF(p.z_int,Przychod9,-Przychod9)) +
	SUM(IF(p.z_int,KosztyUzyskPrzy9,-KosztyUzyskPrzy9)) +
	SUM(IF(p.z_int,Dochod9,-Dochod9)) +
	SUM(IF(p.z_int,Zaliczka9,-Zaliczka9)) +
	SUM(IF(p.z_int,Przychod10,-Przychod10))+
	SUM(IF(p.z_int,Dochod10,-Dochod10)) +
	SUM(IF(p.z_int,Zaliczka10,-Zaliczka10)) +
	SUM(IF(p.z_int,SklUbezpSpol,-SklUbezpSpol)) +
	SUM(IF(p.z_int,SklUbezpZdrow,-SklUbezpZdrow)) +
	SUM(IF(p.z_int,PrzychodyZZagranicy,-PrzychodyZZagranicy)) +
	SUM(IF(p.z_int,PrzychodyBezzwrotnaPomoc,-PrzychodyBezzwrotnaPomoc)) +
	SUM(IF(p.z_int,Przychod11,-Przychod11)) +
	SUM(IF(p.z_int,Dochod11,-Dochod11)) +
	SUM(IF(p.z_int,Zaliczka11,-Zaliczka11)) +
	SUM(IF(p.z_int,KosztyUzyskPrzy10,-KosztyUzyskPrzy10)) +
	SUM(IF(p.z_int,emeryt_doch_zwoln,-emeryt_doch_zwoln)) +
	SUM(IF(p.z_int,inne_doch_zwoln,-inne_doch_zwoln)) +
	SUM(IF(p.z_int,praca_doch_zwoln,-praca_doch_zwoln)) +
	SUM(IF(p.z_int,skl_ubsp_zagr,-skl_ubsp_zagr)) +
	SUM(IF(p.z_int,skl_ubzd_zagr,-skl_ubzd_zagr)) +
	SUM(IF(p.z_int,Przychod10A,-Przychod10A)) +
	SUM(IF(p.z_int,przychody_stypendium,-przychody_stypendium)) +
	SUM(IF(p.z_int,f_wyn_zbiory,-f_wyn_zbiory)) +
	SUM(IF(p.z_int,f_wyn2,-f_wyn2)) +
	SUM(IF(p.z_int,f_wyn3,-f_wyn3)) +
	SUM(IF(p.z_int,f_wyn4,-f_wyn4)) +
	SUM(IF(p.z_int,f_wyn_razem,-f_wyn_razem)) +
	SUM(IF(p.z_int,ppk,-ppk)) +
	SUM(IF(p.z_int,Przychod2_2,-Przychod2_2)) +
	SUM(IF(p.z_int,KosztyUzyskPrzy2,-KosztyUzyskPrzy2)) +
	SUM(IF(p.z_int,KosztyUzyskPrzy2_2,-KosztyUzyskPrzy2_2)) +
	SUM(IF(p.z_int,praca_doch_zwoln_2,-praca_doch_zwoln_2)) +
	SUM(IF(p.z_int,KosztyUzyskPrzy11,-KosztyUzyskPrzy11)) +

	SUM(IF(p.z_int,Przychody_art21u1,-Przychody_art21u1))+
	SUM(IF(p.z_int,Przychody_art21u1_1,-Przychody_art21u1_1)) +
	SUM(IF(p.z_int,Przychody_art21u1_2,-Przychody_art21u1_2)) +
	SUM(IF(p.z_int,KosztyUzyskPrzy4,-KosztyUzyskPrzy4)) +
	SUM(IF(p.z_int,KosztyUzyskPrzy5,-KosztyUzyskPrzy5))+
	SUM(IF(p.z_int,SklUbezpSpol_2,-SklUbezpSpol_2)) +
	SUM(IF(p.z_int,SklUbezpSpol_3,-SklUbezpSpol_3)) +
	SUM(IF(p.z_int,SklUbezpZdrow_2,-SklUbezpZdrow_2))+
	SUM(IF(p.z_int,SklUbezpZdrow_3,-SklUbezpZdrow_3)) +
	SUM(IF(p.z_int,ppk4,-ppk4))+
	SUM(IF(p.z_int,ppk5,-ppk5))+
	SUM(IF(p.z_int,ppk6,-ppk6))+
	SUM(IF(p.z_int,ppk7,-ppk7)) +
	SUM(IF(p.z_int,ppk7UoD,-ppk7UoD)) +
	SUM(IF(p.z_int,ppk8,-ppk8)) +
	SUM(IF(p.z_int,ppk9,-ppk9))+
	SUM(IF(p.z_int,ppk10,-ppk10)) +
	SUM(IF(p.z_int,ppk10A,-ppk10A)) +
	SUM(IF(p.z_int,ppk11,-ppk11)) +
	SUM(IF(p.z_int,ppk_art21u1_1,-ppk_art21u1_1)) +
	SUM(IF(p.z_int,ppk_art21u1_2,-ppk_art21u1_2))) AS razem

	FROM pit_porownanie p
	WHERE IF(_RecGUID='FOR_ALL',TRUE,pracGUID=@pracguid) GROUP BY pracGUID HAVING IF(_Param_D=1,razem<>0,TRUE);


END IF;



END$$

DELIMITER ;
