 DELIMITER $$

DROP PROCEDURE IF EXISTS `pl_pres_zlecenia`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `pl_pres_zlecenia`(
	IN _MODE VARCHAR(150),
	IN _GUID VARCHAR(38),
	IN _Param_A VARCHAR(50),
	IN _Param_B VARCHAR(50),
	IN _Param_C VARCHAR(50),
	IN _Param_D VARCHAR(50),
	IN _scenariusz VARCHAR(80)
)
BEGIN

DECLARE _GUID_pracownika VARCHAR(38);
DECLARE _KodJezyka VARCHAR(3);
DECLARE _obywatelstwo VARCHAR(20);
DECLARE _LAZAM, _LAMEL, _LAKOR TINYINT;
DECLARE _nowe_adresy, _grupowane, _grafiki, _rok, _miesiac, _grupuj INT;
DECLARE _od, _do VARCHAR(10);
DECLARE _sklepy TEXT;

/*
Procedura podajaca dane do wydrukow do 
umow-zlecen/dzielo (w przyszlosci?)
rachunków - o nie wlasnie chodzi, w roznych wersjach jezykowych
oswiadczen (w przyszlosci)

_Param_A - wersja jezykowa, pusta oznacza PL (pierwsze wejscie zawsze PL, drugie (o ile jest) w wersji jezykowej obywatelstwa

CALL pl_pres_zlecenia('JEZYK_DO_ZLECENIA','GUID','','','','','scenariusz')
CALL pl_pres_zlecenia('OBYWATELSTWO_DO_ZLECENIA','GUID','','','','','scenariusz')
SET @_GUID = '{DC8719D3-8013-4AD4-B85C-FAE1BD6A3D80}';

SELECT * FROM IReg WHERE valuea LIKE '%zapor%';
SELECT * FROM IReg WHERE idkey LIKE '%info%';
SELECT * FROM IReg WHERE idpath LIKE '%danefirmy%'
*/

-- przygotowanie tabeli tymczasowej dla programu, do wydruku rachunków po kolei, ale automatycznie zbiorczych, jeżeli takie są
-- dla racchunków zwykłych nie ma żadnych zmian, pamiętać o kluczu NowyWydrukRachunekDoUmowy
-- CALL pl_pres_zlecenia('LISTA_RACH_DO_ZLEC','','','','','scenariusz')
-- CALL pl_pres_zlecenia('RACHUNEK_DO_ZLECENIA','guid_zlecenia','','','','scenariusz')

IF _MODE = 'LISTA_RACH_DO_ZLEC' THEN

  drop table if exists tb_druk;
  create temporary table tb_druk (
  GUID varchar(38),
  KEY GUID(GUID)
  ) DEFAULT CHARSET=cp1250
  ;

  insert into tb_druk
  select pz.guid
  from prace_zlecone pz
  inner join tb_prace_zlecone t on t.guid = pz.guid
  where ifnull(pz.areaguid, '') = '';

  insert into tb_druk
  select pz.guid
  from prace_zlecone pz
  inner join tb_prace_zlecone t on t.guid = pz.guid
  where ifnull(pz.areaguid, '') <> ''
  group by rok, miesiac, GUID_pracownika;

END IF; -- koniec mode LISTA_RACH_DO_ZLEC


IF _MODE = 'JEZYK_DO_ZLECENIA' THEN

	SELECT IFNULL(
	CASE WHEN Obywatelstwo = 'wietnamskie' THEN 'VN'
	WHEN Obywatelstwo='białoruskie' THEN 'BY'
	WHEN Obywatelstwo IN ('indonezyjskie','nepalskie','kolumbijskie','indyjskie') THEN 'GB'
	WHEN Obywatelstwo = 'ukraińskie' THEN 'UA'
	END,'') AS KodJezyka 
	FROM osoby where guid = _GUID;

END IF; 
	
	
IF _MODE = 'OBYWATELSTWO_DO_ZLECENIA' THEN

	SELECT IFNULL(Obywatelstwo, '') AS Obywatelstwo FROM osoby where guid = _GUID;

END IF;
	
-- mod do nowych wydrukow rachunkow do zlecen i o dzielo, uruchamianych kluczem NowyWydrukRachunekDoUmowy
-- uzywane w crist (bez grupowania) i w konkolu (z grupowaniem i bez)
-- CALL pl_pres_zlecenia('RACHUNEK_DO_ZLECENIA','{39CC825E-CBDA-4CC6-9466-7CBA3E87A168}','','','','','scenariusz')
IF _MODE = 'RACHUNEK_DO_ZLECENIA' THEN

	SELECT GUID_pracownika, if(areaGUID is null, 0, 1), rok, miesiac
	INTO _GUID_pracownika, _grupowane, _rok, _miesiac
	FROM prace_zlecone WHERE GUID = _GUID;

	SELECT Obywatelstwo INTO _obywatelstwo
	FROM osoby WHERE GUID = _GUID_pracownika;

	CALL pl_pres_zlecenia('ADRESY_PRAC',_GUID_pracownika,'','','','','scenariusz');

	select `value` into _grafiki from _db_globals where `key` = 'pl.naliczanie.z.grafikow';
	set _grupuj = if(_grafiki = 1 and _grupowane = 1, 1, 0);

	SET _od = CONCAT(_rok,'-',LPAD(_miesiac,2,'0'),'-01');
	SET _do = LAST_DAY(_od);

	-- dodatkowa tabela z sumami kwot (albo z kwotami z jednego zlecenia, zalezy od tego, zlecenie jest grupowane)
	drop table if exists tt_pz_suma;
	create temporary table tt_pz_suma (
	GUID varchar(38) NOT NULL DEFAULT '',
	godziny double(16,4) NOT NULL DEFAULT 0.0000,
	DataOd varchar(10),
	DataDo varchar(10),
	ZaZlecenie double(16,4) NOT NULL DEFAULT 0.0000,
	KosztyUzyskania double(16,4) NOT NULL DEFAULT 0.0000,
	RazemSkladkiZleceniobiorcy double(16,4) NOT NULL DEFAULT 0.0000,
	ZaliczkaPrzedSklUbezp double(16,4) NOT NULL DEFAULT 0.0000,
	SklKasaChorychZleceniobPobr double(16,4) NOT NULL DEFAULT 0.0000,
	SklKasaChorychZleceniobOdlicz double(16,4) NOT NULL DEFAULT 0.0000,
	Zaliczka double(16,4) NOT NULL DEFAULT 0.0000,
	RazemSkladkiZleceniodawcy double(16,4) NOT NULL DEFAULT 0.0000,
	Dochod double(16,4) NOT NULL DEFAULT 0.0000,
	InnePotr double(16,4) NOT NULL DEFAULT 0.0000,
	ZryczaltowanyPodatek double(16,4) NOT NULL DEFAULT 0.0000,
	ZryczPodatekPrzedSklUbezp double(16,4) NOT NULL DEFAULT 0.0000,
	PPKskladkaPracow double(16,4) NOT NULL DEFAULT 0.0000,
	PPKskladkaPracod double(16,4) NOT NULL DEFAULT 0.0000,
	ZaliczkaOdroczona double(16,4) NOT NULL DEFAULT 0.0000,
	DoWyplaty double(16,4) NOT NULL DEFAULT 0.0000,
	WyplataPrzelewem double(16,4) NOT NULL DEFAULT 0.0000,
	ZasMacierz double(16,4) NOT NULL DEFAULT 0.0000,
	ZasRehab double(16,4) NOT NULL DEFAULT 0.0000,
	ZasOpiekun double(16,4) NOT NULL DEFAULT 0.0000,
	KEY guid (GUID)
	) DEFAULT CHARSET=cp1250;

	drop table if exists tt_sklepy_suma;
	create temporary table tt_sklepy_suma (
		areaGUID varchar(38) NOT NULL DEFAULT '',
		sklep varchar(150) NOT NULL DEFAULT '',
		ZaZlecenie double(16,2) NOT NULL DEFAULT 0.0000,
		KEY areaGUID (areaGUID)
	) DEFAULT CHARSET=cp1250;

	if _grupuj = 1 then
		insert into tt_pz_suma
		select
		_GUID,
		ifnull(sum(pl.godziny),0),
		_od, _do,
		sum(pl.ZaZlecenie), sum(pl.KosztyUzyskania), sum(pl.RazemSkladkiZleceniobiorcy), sum(pl.ZaliczkaPrzedSklUbezp),
		sum(pl.SklKasaChorychZleceniobPobr), sum(pl.SklKasaChorychZleceniobOdlicz), sum(pl.Zaliczka),
		sum(pl.RazemSkladkiZleceniodawcy + pl.SklFundPracy + pl.SklFGSP),
		sum(pl.Dochod), sum(pl.InnePotr), sum(pl.ZryczaltowanyPodatek),
		sum(pl.ZryczPodatekPrzedSklUbezp),
		sum(pl.PPKskladkaPracow), sum(pl.PPKskladkaPracod), sum(pl.ZaliczkaOdroczona),
		sum(pl.DoWyplaty), sum(pl.WyplataPrzelewem),
		sum(pl.ZasMacierz), sum(pl.ZasRehab), sum(pl.ZasOpiekun)
		from prace_zlecone pl
		-- left join prace_zlecone_detal d on d.zlecGUID = pl.GUID
		where pl.deleted=0 and ifnull(pl.areaGUID,'') <> ''
		and pl.rok = _rok and pl.miesiac = _miesiac and pl.GUID_pracownika = _GUID_pracownika
		group by pl.GUID_pracownika
		;

		insert into tt_sklepy_suma
		SELECT pl.areaGUID, ean.nazwa, _Rnd2(sum(pl.ZaZlecenie))
		FROM prace_zlecone pl
		JOIN erp_area_nodes ean ON ean.guid = pl.areaguid
		where pl.deleted=0 and ifnull(pl.areaGUID,'') <> ''
		and pl.rok = _rok and pl.miesiac = _miesiac and pl.GUID_pracownika = _GUID_pracownika
		group by pl.areaGUID
		;
	ELSE
		insert into tt_pz_suma
		select
		_GUID,
		-- pl.godziny/60, wersja chyab sluszna dla Konkola, ale to dziwne jednak, wylaczylem dla crist, ale jak w konkolu bedzie źle, to do zmiany na if owner
		pl.godziny,
		pl.DataOd, pl.DataDo,
		pl.ZaZlecenie, pl.KosztyUzyskania, pl.RazemSkladkiZleceniobiorcy, pl.ZaliczkaPrzedSklUbezp,
		pl.SklKasaChorychZleceniobPobr, pl.SklKasaChorychZleceniobOdlicz, pl.Zaliczka,
		pl.RazemSkladkiZleceniodawcy + pl.SklFundPracy + pl.SklFGSP,
		pl.Dochod, pl.InnePotr, pl.ZryczaltowanyPodatek,
		pl.ZryczPodatekPrzedSklUbezp,
		pl.PPKskladkaPracow, pl.PPKskladkaPracod, pl.ZaliczkaOdroczona,
		pl.DoWyplaty, pl.WyplataPrzelewem,
		pl.ZasMacierz, pl.ZasRehab, pl.ZasOpiekun
		from prace_zlecone pl
		where pl.GUID = _GUID
		;

		insert into tt_sklepy_suma
		SELECT pl.areaGUID, ean.nazwa, _Rnd2(pl.ZaZlecenie)
		FROM prace_zlecone pl
		JOIN erp_area_nodes ean ON ean.guid = pl.areaguid
		where pl.GUID = _GUID
		;

	END IF; -- grupuj

	-- ta czesc jest uzywana tylko w criscie, wstawić ownera?
	IF _Param_A = '' THEN -- pierwszy przebieg, w wersji po polsku wymuszonej
    	SET _KodJezyka = 'PL';
	ELSE
      SET _KodJezyka =
          CASE WHEN _obywatelstwo = 'wietnamskie' THEN 'VN'
              WHEN _obywatelstwo = 'białoruskie' THEN 'BY'
              WHEN _obywatelstwo IN ('indonezyjskie','nepalskie','kolumbijskie','indyjskie') THEN 'EN'
              WHEN _obywatelstwo = 'ukraińskie' THEN 'UA'
              WHEN _obywatelstwo = 'polskie' THEN 'PL'
              ELSE 'PL'
          END;
	END IF;

	SELECT 
	'pl_pres_zlecenia_RACHUNEK_DO_ZLECENIA' AS pl_pres_zlecenia_RACHUNEK,
	_scenariusz AS scenariusz,
	_grupuj AS grupuj,
	(SELECT valuea FROM IReg WHERE idkey = 'Pelna_nazwa' LIMIT 1) AS FirmaNazwa,
	(SELECT valuea FROM IReg WHERE idkey = 'Address Info' LIMIT 1) AS FirmaAdres,
	(SELECT valuex FROM IReg WHERE idkey = 'Contact' LIMIT 1) AS FirmaKontakt,
	(SELECT valuea FROM IReg WHERE idkey = 'Reprezentant_firmy_sprawy_kadrowe' LIMIT 1) AS FirmaReprezentant,
	IF(o.plec = 0,'Pani','Pan') AS plecStr,
	o.Nazwisko AS OSOBA_NAZWISKO,
	o.Imie1 AS OSOBA_IMIE_1,
	o.Imie2 AS OSOBA_IMIE_2,
	o.ImieOjca AS OSOBA_IMIE_OJCA,
	o.ImieMatki AS OSOBA_IMIE_MATKI,
	o.MiejsceUrodzenia AS OSOBA_MIEJSCE_URODZENIA,
	o.DataUrodzenia AS OSOBA_DATA_URODZENIA,
	o.NrPesel AS OSOBA_PESEL,
	o.NrNIP AS OSOBA_NIP,
	_nowe_adresy AS nowe_adresy,
	t.*,

	IF(pl.UmowaODzielo=1,'UMOWA O DZIEŁO','UMOWA ZLECENIE') AS rodzaj_umowy,
	IF(pl.UmowaODzielo=1,'WYKONAWCA','ZLECENIOBIORCA') AS rodzaj_pracownika,

	p.DataRozpoczAktUmowy AS data_umowy,
	-- _VarStr(FORMAT(ap.kwota_brutto, 2, 'pl_PL')) AS kwota_bruttoStr,
	_KodJezyka AS KodJezyka,
	_Rnd2(tt.godziny /60) AS godziny60,
	_Rnd2(tt.godziny) AS godziny,
	tt.ZaZlecenie, tt.KosztyUzyskania, tt.RazemSkladkiZleceniobiorcy, tt.ZaliczkaPrzedSklUbezp,
	tt.SklKasaChorychZleceniobPobr, tt.SklKasaChorychZleceniobOdlicz, tt.Zaliczka,
	tt.RazemSkladkiZleceniodawcy, tt.Dochod, tt.InnePotr, tt.ZryczaltowanyPodatek,
	tt.ZryczPodatekPrzedSklUbezp,
	tt.PPKskladkaPracow, tt.PPKskladkaPracod, tt.ZaliczkaOdroczona,
	tt.ZasMacierz, tt.ZasRehab, tt.ZasOpiekun,

	CONCAT(monthname(pl.DataDo),' ',year(pl.DataDo)) AS okres_pracy,
	CONCAT(sp.DisplayValue,' ',year(pl.DataDo)) AS okres_pracy_pl,
	pl.NrZlecenia, pl.DataZawarcia, pl.PracaStr,

   -- pl.DataOd, pl.DataDo,
	tt.DataOd, tt.DataDo,

	case when _grupuj = 1 then
	CONCAT(sp.DisplayValue,' ',year(pl.DataDo))
	else CONCAT('w czasie od ',tt.DataOd, ' do ' , tt.DataDo)
	end okres_pracy_pl2,
   -- _od as DataOd2, _do as DataDo2,
   tt.WyplataPrzelewem, tt.DoWyplaty, pl.DataWyplaty,
   CASE
       WHEN tt.WyplataPrzelewem = 0
       THEN CONCAT(CONVERT('wypłata gotówką: ' USING cp1250),CONVERT(_Rnd2(tt.DoWyplaty) USING cp1250), CONVERT(' zł' USING cp1250))

       /* tutaj wersja bedzie dla Konkola - kilka linijek
       WHEN (pl.DoWyplaty <> pl.WyplataPrzelewem) AND pl.WyplataPrzelewem > 0
       THEN CONCAT(CONVERT('wypłata gotówką: ' USING cp1250),CONVERT(_Rnd2(pl.DoWyplaty - pl.WyplataPrzelewem) USING cp1250),CONVERT(' zł\n' USING cp1250),CONVERT('przelew na konto bankowe ' USING cp1250))
       */
       WHEN (tt.DoWyplaty <> tt.WyplataPrzelewem) AND tt.WyplataPrzelewem > 0
       THEN CONCAT(CONVERT('wypłata gotówką: ' USING cp1250),CONVERT(_Rnd2(tt.DoWyplaty - tt.WyplataPrzelewem) USING cp1250),CONVERT(' zł' USING cp1250))

       WHEN tt.WyplataPrzelewem = tt.DoWyplaty
       THEN 'przelew na konto bankowe '

    ELSE ''
    END AS KWITUJE,
	CASE WHEN tt.WyplataPrzelewem > 0
       THEN CONCAT('(',p.NrRachunku,')')
       ELSE ''
	END AS KONTO,
	(SELECT GROUP_CONCAT(CONCAT(sklep, ' - ',ZaZlecenie, ' zł') SEPARATOR '\n') FROM tt_sklepy_suma) AS sklepy
	-- pl.*
	FROM prace_zlecone pl
	INNER JOIN tt_pz_suma tt ON tt.GUID = pl.GUID
	INNER JOIN osoby o ON o.GUID = pl.GUID_pracownika
	INNER JOIN Pracownicy p ON p.GUID=o.GUID
	INNER JOIN temp_osoba_adres t ON t.GUID_pracownika = o.GUID
	LEFT JOIN slowniki_pierwotne sp ON sp.slownik_GUID = 'MIESIACE' AND MONTH(pl.DataDo) = sp.value
	WHERE pl.GUID = _GUID;

	-- DROP TABLE IF EXISTS temp_osoba_adres;
END IF;
	


-- CALL pl_pres_zlecenia('UMOWY_DLUGOTERM_DO_ZLEC','','','','','scenariusz')
IF _MODE = 'UMOWY_DLUGOTERM_DO_ZLEC' THEN

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

	SELECT
	'pl_pres_zlecenia_UMOWY_DLUGOTERM_DO_ZLEC' AS pl_pres_zlecenia_UDD_ZLEC,
	_scenariusz AS scenariusz,
	(SELECT valuea FROM IReg WHERE idkey = 'Pelna_nazwa' LIMIT 1) AS FirmaNazwa,
	(SELECT valuea FROM IReg WHERE idkey = 'Address Info' LIMIT 1) AS FirmaAdres,
	(SELECT valuex FROM IReg WHERE idkey = 'Contact' LIMIT 1) AS FirmaKontakt,
	(SELECT valuea FROM IReg WHERE idkey = 'NIP' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaNIP,
	(SELECT valuea FROM IReg WHERE idkey = 'Miasto' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaMiasto,
	(SELECT valuea FROM IReg WHERE idkey = 'Reprezentant_firmy_sprawy_kadrowe' LIMIT 1) AS FirmaReprezentant,
	IF(o.plec = 0,'Pani','Pan') AS plecStr,

	IF(o.plec = 0,'Pani','Pan') AS plec,
	IF(o.plec = 0,'Panią','Panem') AS plec2,
	IF(o.plec = 0,'Pani','Pana') AS plec3,
	IF(o.plec = 0,'a','y') AS ay,
	o.Nazwisko, o.Imiona,
	o.Imie1 AS Imie1,
	o.Imie2 AS Imie2,
	o.MiejsceUrodzenia AS MiejsceUrodzenia,
	o.DataUrodzenia AS DataUrodzenia,
	IF(o.NrPesel = '', o.NrPaszportu , o.NrPesel) AS NrPesel,
	o.info2 AS autoid,
	p.NrEwidencyjny,
	o.Obywatelstwo,
	CASE WHEN o.Obywatelstwo = 'wietnamskie' THEN 'VI'
	WHEN o.Obywatelstwo = 'białoruskie' THEN 'BE'
	WHEN o.Obywatelstwo IN ('nepalskie','indyjskie','bangladeskie') THEN 'EN'
	WHEN o.Obywatelstwo = 'indonezyjskie' THEN 'ID'
	WHEN o.Obywatelstwo = 'ukraińskie' THEN 'UA'
	WHEN o.Obywatelstwo IN ('azerbejdżańskie','kazachskie','uzbeckie') THEN 'RU'
	WHEN o.Obywatelstwo = 'kolumbijskie' THEN 'ES'
	WHEN o.Obywatelstwo = 'polskie' THEN 'PL'
	ELSE 'PL'
	END AS KodJezyka,
	CONCAT(_Rnd2(u.ZaZlecenie),' PLN') AS Kwota,
	u.DataZawarcia as DataOd,

	if(u.ZatrPozaFirma=1,'brutto za każdą godzinę wykonania zlecenia / za każdą dobę wykonania zlecenia,','') as kwota_opis,

	if(u.PodlUbezpZdrowot=1,'podlega','nie podlega') as zdrowot_str,

	/*
	IF(kwota_brutto <> NowaPlaca, CONCAT('- wynagrodzenie brutto: ',_VarStr(FORMAT(NowaPlaca, 2, 'de_DE')),' zł (słownie: ',Get_Slownie(NowaPlaca, '', 2, NULL),')'), ''),
	*/
	Get_Slownie(u.ZaZlecenie, '', 2, NULL) AS slownie,

	_nowe_adresy AS nowe_adresy,
	t.*,
	u.*
	FROM umowa_zlecenie u
	-- INNER JOIN t_KadryUmZlec t ON u.GUID = t.GUID
	INNER JOIN osoby o ON o.GUID = u.GUID_pracownika
	INNER JOIN Pracownicy p ON p.GUID = o.GUID
	left JOIN temp_osoba_adres t ON t.GUID_pracownika = o.GUID
	WHERE u.GUID = _GUID
	;

END IF;

-- aneks umowy dlugoterminowej
IF _MODE = 'ANEKS_DO_ZLEC' THEN

	SELECT 'pl_pres_zlecenia_ANEKS_DO_ZLEC' AS pl_pres_zlecenia_ANEKS_DO_ZLEC,
	_scenariusz AS scenariusz,
	(SELECT valuea FROM IReg WHERE idkey = 'Pelna_nazwa' LIMIT 1) AS FirmaNazwa,
	(SELECT valuea FROM IReg WHERE idkey = 'Address Info' LIMIT 1) AS FirmaAdres,
	(SELECT valuex FROM IReg WHERE idkey = 'Contact' LIMIT 1) AS FirmaKontakt,
	(SELECT valuea FROM IReg WHERE idkey = 'NIP' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaNIP,
	(SELECT valuea FROM IReg WHERE idkey = 'Miasto' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaMiasto,
	(SELECT valuea FROM IReg WHERE idkey = 'Reprezentant_firmy_sprawy_kadrowe' LIMIT 1) AS FirmaReprezentant,
	IF(o.plec = 0,'Pani','Pan') AS plecStr,
	o.Nazwisko AS Nazwisko,
	o.Imie1 AS Imie1,
	o.Imie2 AS Imie2,
	o.MiejsceUrodzenia AS MiejsceUrodzenia,
	o.DataUrodzenia AS DataUrodzenia,
	IF(o.NrPesel = '', o.NrPaszportu , o.NrPesel) AS NrPesel,
	o.info2 AS autoid,
	p.NrEwidencyjny,
	o.Obywatelstwo,
	CASE WHEN o.Obywatelstwo = 'wietnamskie' THEN 'VI'
	WHEN o.Obywatelstwo = 'białoruskie' THEN 'BE'
	WHEN o.Obywatelstwo IN ('nepalskie','indyjskie','bangladeskie') THEN 'EN'
	WHEN o.Obywatelstwo = 'indonezyjskie' THEN 'EN'
	WHEN o.Obywatelstwo = 'ukraińskie' THEN 'UA'
	WHEN o.Obywatelstwo IN ('azerbejdżańskie','kazachskie','uzbeckie') THEN 'RU'
	WHEN o.Obywatelstwo = 'kolumbijskie' THEN 'ES'
	WHEN o.Obywatelstwo = 'polskie' THEN 'PL'
	ELSE 'PL'
	END AS KodJezyka,
	CONCAT(_Rnd2(u.ZaZlecenie),' PLN') AS Kwota,
	u.*
	FROM umowa_zlecenie u
	-- INNER JOIN t_KadryUmZlec t ON u.GUID = t.GUID
	INNER JOIN osoby o ON o.GUID = u.GUID_pracownika
	INNER JOIN Pracownicy p ON p.GUID = o.GUID
	WHERE u.GUID = _GUID
	;

END IF;
	
-- adresy pracownika, w dwoch wariantach (stare i nowe), zrobione dla umow dlugoterminowych
-- trzeba to przeniesc takze do rachunkow do zlecenia - stamtad jest pobrany algorytm
IF _MODE = 'ADRESY_PRAC' THEN

	IF @session.globals.Owner IN ('CRIST', 'SHIPYARD', 'OFFSHORE') THEN
		SET _nowe_adresy = 1;
	ELSE
		SET _nowe_adresy = 0;
	END IF;

	DROP TABLE IF EXISTS temp_osoba_adres;
	CREATE TEMPORARY TABLE temp_osoba_adres (
		GUID_pracownika VARCHAR(38),
		MIASTO_ZAMIESZKANIA VARCHAR(40),
		POWIAT VARCHAR(40),
		GMINA VARCHAR(40),
		ULICA VARCHAR(100),
		NR_DOMU VARCHAR(10),
		NR_MIESZKANIA VARCHAR(5),
		KOD_POCZTOWY VARCHAR(10),
		MIEJSCOWOSC VARCHAR(40),
		PANSTWO VARCHAR(38),
		KEY GUID_pracownika (GUID_pracownika)
	) DEFAULT CHARSET=cp1250;

	SET _GUID_pracownika = _GUID;

	SELECT LENGTH(AZAM_Miejscowosc), LENGTH(AMEL_Miejscowosc), LENGTH(AKOR_Miejscowosc), Obywatelstwo
		INTO _LAZAM, _LAMEL, _LAKOR, _obywatelstwo
	FROM osoby WHERE GUID = _GUID_pracownika;


	IF _nowe_adresy = 0 THEN

		IF _LAZAM > 2 THEN
			INSERT INTO temp_osoba_adres
			SELECT
				o.GUID,
				o.AZAM_Miejscowosc,
				p.powiat,
				g.gmina,
				o.AZAM_Ulica,
				o.AZAM_NrDomu,
				o.AZAM_NrMieszkania,
				o.AZAM_KodPocztowy,
				o.AZAM_Miejscowosc,
				''
			FROM osoby o
			LEFT JOIN powiaty p ON o.AZAM_Powiat = p.idn
			LEFT JOIN gminy g ON o.AZAM_GminaDzielnica = g.idn
			WHERE o.guid = _GUID_pracownika
			;
		ELSEIF _LAMEL > 2 THEN
			INSERT INTO temp_osoba_adres
			SELECT
				o.GUID,
				o.AMEL_Miejscowosc,
				p.powiat,
				g.gmina,
				o.AMEL_Ulica,
				o.AMEL_NrDomu,
				o.AMEL_NrMieszkania,
				o.AMEL_KodPocztowy,
				o.AMEL_Miejscowosc,
				''
			FROM osoby o
			LEFT JOIN powiaty p ON o.AMEL_Powiat = p.idn
			LEFT JOIN gminy g ON o.AMEL_GminaDzielnica = g.idn
			WHERE o.guid = _GUID_pracownika
			;
		ELSE
			INSERT INTO temp_osoba_adres
			SELECT
				o.GUID,
				o.AKOR_Miejscowosc,
				p.powiat,
				g.gmina,
				o.AKOR_Ulica,
				o.AKOR_NrDomu,
				o.AKOR_NrMieszkania,
				o.AKOR_KodPocztowy,
				o.AKOR_Miejscowosc,
				''
			FROM osoby o
			LEFT JOIN powiaty p ON o.AKOR_Powiat = p.idn
			LEFT JOIN gminy g ON o.AKOR_GminaDzielnica = g.idn
			WHERE o.guid = _GUID_pracownika
			;
		END IF;
	END IF; -- nowe adresy = 0


	IF _nowe_adresy = 1 THEN

		INSERT INTO temp_osoba_adres (GUID_pracownika) VALUES (_GUID_pracownika);
		-- adres zamieszkania jako najwazniejszy
		UPDATE temp_osoba_adres t,
		geo_int_adr_link A, geo_int_miejsca A_M, geo_int_adm A_P, geo_int_adresy A_U
		SET
		t.PANSTWO = IFNULL(A_M.IDcountry,''),
		t.KOD_POCZTOWY = IFNULL(A.ZipCode,''),
		-- t.ADR_ZAM_POCZ = IFNULL(A_P.nazwa,''),
		t.MIEJSCOWOSC = IFNULL(A_M.nazwa,''),
		t.MIASTO_ZAMIESZKANIA = IFNULL(A_M.nazwa,''),
		t.ULICA = IFNULL(A_U.nazwa_1,''),
		t.NR_DOMU = IFNULL(A.NrPos,'') ,
		t.NR_MIESZKANIA = IFNULL(A.NrLoc,'')
		WHERE A.objguid = t.GUID_pracownika AND A.status = 0 AND adrtyp LIKE '%ZAM%' AND A.objtable = 'osoby'
		AND A_M.ID = A.geo_int_miejsca_ID
		AND A_M.ID_Adm = A_P.ID
		AND A_U.ID = A.geo_int_adresy_ID
		;

		-- dla adresow nie gusowskich
		UPDATE temp_osoba_adres t,
		geo_int_adr_link A, geo_int_miejsca A_M, geo_int_adm A_P
		SET
		t.PANSTWO = IFNULL(A_M.IDcountry,''),
		t.KOD_POCZTOWY = IFNULL(A.ZipCode,''),
		-- t.ADR_ZAM_POCZ = IFNULL(A_P.nazwa,''),
		t.MIEJSCOWOSC = IF(IFNULL(A.ulica_not_gus,'') = '', A_M.nazwa, A.ulica_not_gus),
		t.MIASTO_ZAMIESZKANIA = IF(IFNULL(A.ulica_not_gus,'') = '', A_M.nazwa, A.ulica_not_gus),
		-- t.ADR_ZAM_ULICA = IFNULL(A_U.nazwa_1,''),
		t.ULICA = '',
		t.NR_DOMU = IFNULL(A.NrPos,'') ,
		t.NR_MIESZKANIA = IFNULL(A.NrLoc,'')
		WHERE A.objguid = t.GUID_pracownika AND A.status = 0 AND adrtyp LIKE '%ZAM%' AND A.objtable = 'osoby'
		AND A_M.ID = A.geo_int_miejsca_ID
		AND A_M.ID_Adm = A_P.ID
		AND A.geo_int_adresy_ID = '';

		-- jezeli nie bylo adresu zamieszkania, to zamledowania
		UPDATE temp_osoba_adres t,
		geo_int_adr_link A, geo_int_miejsca A_M, geo_int_adm A_P, geo_int_adresy A_U
		SET
		t.PANSTWO = IFNULL(A_M.IDcountry,''),
		t.KOD_POCZTOWY = IFNULL(A.ZipCode,''),
		-- t.ADR_ZAM_POCZ = IFNULL(A_P.nazwa,''),
		t.MIEJSCOWOSC = IFNULL(A_M.nazwa,''),
		t.MIASTO_ZAMIESZKANIA = IFNULL(A_M.nazwa,''),
		t.ULICA = IFNULL(A_U.nazwa_1,''),
		t.NR_DOMU = IFNULL(A.NrPos,'') ,
		t.NR_MIESZKANIA = IFNULL(A.NrLoc,'')
		WHERE A.objguid = t.GUID_pracownika AND A.status = 0 AND adrtyp LIKE '%MEL%' AND A.objtable = 'osoby'
		AND A_M.ID = A.geo_int_miejsca_ID
		AND A_M.ID_Adm = A_P.ID
		AND A_U.ID = A.geo_int_adresy_ID
		AND t.PANSTWO = '';

		-- dla adresow nie gusowskich
		UPDATE temp_osoba_adres t,
		geo_int_adr_link A, geo_int_miejsca A_M, geo_int_adm A_P
		SET
		t.PANSTWO = IFNULL(A_M.IDcountry,''),
		t.KOD_POCZTOWY = IFNULL(A.ZipCode,''),
		-- t.ADR_ZAM_POCZ = IFNULL(A_P.nazwa,''),
		t.MIEJSCOWOSC = IF(IFNULL(A.ulica_not_gus,'') = '', A_M.nazwa, A.ulica_not_gus),
		t.MIASTO_ZAMIESZKANIA = IF(IFNULL(A.ulica_not_gus,'') = '', A_M.nazwa, A.ulica_not_gus),
		-- t.ADR_ZAM_ULICA = IFNULL(A_U.nazwa_1,''),
		t.ULICA = '',
		t.NR_DOMU = IFNULL(A.NrPos,'') ,
		t.NR_MIESZKANIA = IFNULL(A.NrLoc,'')
		WHERE A.objguid = t.GUID_pracownika AND A.status = 0 AND adrtyp LIKE '%MEL%' AND A.objtable = 'osoby'
		AND A_M.ID = A.geo_int_miejsca_ID
		AND A_M.ID_Adm = A_P.ID
		AND A.geo_int_adresy_ID = ''
		AND t.PANSTWO = ''
		;

	/*
	-- adres do korespondencji tylko jezeli jest osobny
	UPDATE t_pracownicy t,
		geo_int_adr_link A, geo_int_miejsca A_M, geo_int_adm A_P, geo_int_adresy A_U
	SET
		t.PANSTWO = IFNULL(A_M.IDcountry,''),
		t.KOD_POCZTOWY = IFNULL(A.ZipCode,''),
		-- t.ADR_ZAM_POCZ = IFNULL(A_P.nazwa,''),
		t.MIEJSCOWOSC = IFNULL(A_M.nazwa,''),
		t.ULICA = IFNULL(A_U.nazwa_1,''),
		t.NR_DOMU = IFNULL(A.NrPos,'') ,
		t.NR_MIESZKANIA = IFNULL(A.NrLoc,'')
	WHERE A.objguid = t.guid AND A.status = 0 AND adrtyp LIKE '%KOR%' AND A.objtable = 'osoby'
		AND A_M.ID = A.geo_int_miejsca_ID
		AND A_M.ID_Adm = A_P.ID
		AND A_U.ID = A.geo_int_adresy_ID;
	*/
	END IF; -- nowe adresy = 1

END IF; -- koniec mode ADRESY_PRAC

	
END$$

DELIMITER ;
