 DELIMITER $$

DROP PROCEDURE IF EXISTS `pl_pres_zaswiadcz`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `pl_pres_zaswiadcz`(
    IN _MODE VARCHAR(150), -- INT
    IN _GUID VARCHAR(38),
    IN _Param_A VARCHAR(50),
    IN _Param_B VARCHAR(50),
    IN _Param_C VARCHAR(50),
    IN _Param_D VARCHAR(50)
)
BEGIN
    DECLARE _SQLText TEXT;
    DECLARE _baza VARCHAR(100); -- baza danych w ktorej jestesmy
    DECLARE _owner VARCHAR(100); -- owner z dbglobals
    DECLARE _nowe_adresy INT(11);
    DECLARE _GUIDprac VARCHAR(38);

    SET _SQLText = '';
    SET _owner = @session.globals.Owner;
    SELECT DATABASE() INTO _baza;

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

/*
wydruki umow o prace, swiadectw pracy aktywowane kluczami PL_UMOWYOPRACE_CALL, PL_SWIADECTWOPRACY_CALL
info do umow i info do swiadectw (to juz dziala bez kluczy)
zaswiadczenie o zatrudnieniu i zarobkach
aneksy do umow o prace
wydruk FEP
umowy zlecenia (w sensie umow, nie rachunkow)

  CALL pl_pres_zaswiadcz('GetZaswiadczenieZatrIWysSkl','{900F473E-25E5-49F4-8154-1B0BC5574D96}','2014','','',''); 
  CALL pl_pres_zaswiadcz('GetZaswiadczenieZatrIWysSkl','Prac7','2014','','','')
*/
IF _MODE = 'GetZaswiadczenieZatrIWysSkl' THEN

    -- SET @Rok=_Param_A;
    SELECT 
        o.Nazwisko, o.Imiona,
        o.AMEL_Adres as Adres,
        (SELECT valuea FROM IReg WHERE idkey = 'Pelna_nazwa' LIMIT 1) AS FirmaNazwa,
        (SELECT valuea FROM IReg WHERE idkey = 'Address Info' LIMIT 1) AS FirmaAdres,
        -- P.DataRozpoczAktUmowy AS OdDaty,
        P.DataZatrudnieniaWzakl AS OdDaty,
        IFNULL(CASE P.TypOkresuUmowy WHEN 2 THEN 'do nadal' WHEN 3 THEN P.OkrProbnyDo ELSE DataZwolnienia END, P.UmowaDo) AS DoDaty,
        _Param_A AS Rok,
        _Rnd2(
            IFNULL((SELECT SUM(x.SklKasaChorychPracowPobr) FROM place x WHERE x.deleted=0 and YEAR(x.datawyplaty)=_Param_A AND x.GUID_pracownika=o.GUID),0)
            +
            IFNULL((SELECT SUM(x.SklKasaChorychZleceniobPobr) FROM prace_zlecone x WHERE x.deleted=0 and YEAR(x.datawyplaty)=_Param_A AND x.GUID_pracownika=o.GUID),0)
        ) AS kwota
    FROM osoby o 
    LEFT JOIN Pracownicy P ON P.GUID=o.GUID
    WHERE o.GUID = _GUID;

END IF;     -- _MODE = 'GetZaswiadczenieZatrIWysSkl'

-- CALL pl_pres_zaswiadcz('SWIADECTWOPRACY','guid_swiadectwa_pracy','','','','')

IF _MODE = 'SWIADECTWOPRACY' THEN

    SELECT
        'pl_pres_zaswiadcz_SWIADECTWOPRACY' AS pl_pres_zaswiadcz_SWPRACY,
        _Param_A AS aktywny_rok,
        _Param_D AS scenariusz,
        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,
        IF(o.plec = 0,'była','był') AS byl,
        o.Nazwisko, o.Imiona,
        o.DataUrodzenia,
        (SELECT valuea FROM IReg WHERE idkey = 'Pelna_nazwa' LIMIT 1) AS FirmaNazwa,
        (SELECT valuea FROM IReg WHERE idkey = 'Address Info' LIMIT 1) AS FirmaAdres,
        (SELECT valuea FROM IReg WHERE idkey = 'NIP' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaNIP,
        (SELECT valuea FROM IReg WHERE idkey = 'Miasto' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaMiasto,
        CONCAT((SELECT valuea FROM IReg WHERE idkey = 'Regon' LIMIT 1),' - ',(SELECT valuea FROM IReg WHERE idkey = 'EKD' LIMIT 1)) AS FirmaRegonEkd,
        (SELECT valuea FROM IReg WHERE idkey = 'Miasto_Sadu' LIMIT 1) AS Miasto_Sadu,
        P.DodInfoSwiadPracy,
        CONCAT_WS('\n',sp.PorozumienieStron, sp.PunktB, sp.Wygasniecie) as ustanie,
        sp.*
    FROM SwiadectwaPracy sp
    INNER JOIN osoby o ON o.GUID = sp.pracGUID
    INNER JOIN Pracownicy P ON P.GUID=o.GUID
    WHERE sp.GUID = _GUID;

END IF;
    
/*
Mode ktory podaje dane do wydruku "informacje do swiadectwa pracy"
Wydruk jest wywolywany dodatkowo, obok swiadectwa pracy, w kartotece dokumentow pracownikow
Mowi o okresie przechowywania akt osobowych i zasadach przechowywania oraz niszczenia tych akt

CALL pl_pres_zaswiadcz('INFO_DO_SWIAD_PRACY','guid_swiadectwa_pracy','','','','')
*/

IF _MODE = 'INFO_DO_SWIAD_PRACY' THEN

    SELECT
    'pl_pres_zaswiadcz_INFOSP' AS pl_pres_zaswiadcz_INFOSP,
    _Param_A AS aktywny_rok,
    _Param_D AS scenariusz,
    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.AMEL_Adres as Adres, 
    (SELECT valuea FROM IReg WHERE idkey = 'Pelna_nazwa' LIMIT 1) AS FirmaNazwa,
    (SELECT valuea FROM IReg WHERE idkey = 'Address Info' LIMIT 1) AS FirmaAdres,
    (SELECT valuea FROM IReg WHERE idkey = 'NIP' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaNIP,
    (SELECT valuea FROM IReg WHERE idkey = 'Miasto' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaMiasto,
    CONCAT((SELECT valuea FROM IReg WHERE idkey = 'Regon' LIMIT 1),' - ',(SELECT valuea FROM IReg WHERE idkey = 'EKD' LIMIT 1)) AS FirmaRegonEkd,
    -- P.DataRozpoczAktUmowy AS OdDaty,
    P.DataZatrudnieniaWzakl AS OdDaty,
    IFNULL(CASE P.TypOkresuUmowy WHEN 2 THEN 'do nadal' WHEN 3 THEN P.OkrProbnyDo ELSE DataZwolnienia END, P.UmowaDo) AS DoDaty,
    Akta_osob_liczba_lat,
    DATE(Akta_osob_data_do) AS Akta_osob_data_do,
    DATE_ADD(DATE(Akta_osob_data_do), INTERVAL 1 DAY) AS Akta_osob_data_od2,
    DATE_ADD(DATE(Akta_osob_data_do), INTERVAL 1 MONTH) AS Akta_osob_data_do2,
    sp.data_wydruku
    FROM SwiadectwaPracy sp
    INNER JOIN osoby o ON o.GUID = sp.pracGUID
    INNER JOIN Pracownicy P ON P.GUID=o.GUID
    WHERE sp.GUID = _GUID;

END IF;

/*
Mode ktory podaje dane do wydruku umowy o prace
Wydruk jest wywolywany w kartotece dokumentow pracownikow

CALL pl_pres_zaswiadcz('UMOWYOPRACE', '{97FEDD03-78AC-11D8-9B26-0000212D2D49}', '', '', '', 'PL_UMOWYOPRACE');

Miejscem świadczenia pracy jest siedziba Spółki, a także każde inne miejsce w kraju i za granicą wskazane przez Pracodawcę, jeżeli wymagać tego będzie prawidłowe wykonanie obowiązków pracowniczych, w szczególności u klientów Pracodawcy. 

*/
IF _MODE = 'UMOWYOPRACE' THEN

    SELECT 
        'pl_pres_zaswiadcz_UMOWYOPRACE' AS pl_pres_zaswiadcz_UMOWYOPRACE,
        _Param_A AS aktywny_rok,
        _Param_D AS scenariusz,
        _owner AS owner,
        _baza AS baza,
        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,
        (SELECT valuea FROM IReg WHERE idkey = 'Pelna_nazwa' LIMIT 1) AS FirmaNazwa,
        (SELECT valuea FROM IReg WHERE idkey = 'Address Info' LIMIT 1) AS FirmaAdres,
        (SELECT valuea FROM IReg WHERE idkey = 'NIP' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaNIP,
        (SELECT valuea FROM IReg WHERE idkey = 'Miasto' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaMiasto,
        CONCAT((SELECT valuea FROM IReg WHERE idkey = 'Regon' LIMIT 1),' - ',(SELECT valuea FROM IReg WHERE idkey = 'EKD' LIMIT 1)) AS FirmaRegonEkd,
        (SELECT 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(up.ReprezentantFirmy='',(SELECT valuea FROM IReg WHERE idkey = 'Reprezentant_firmy_sprawy_kadrowe' LIMIT 1), up.ReprezentantFirmy) AS FirmaReprezentant,

        o.NrSeriaDowoduOsobistego,

        case when ifnull(o.NrSeriaDowoduOsobistego, '') <> ''
        then concat('dowodem nr ', o.NrSeriaDowoduOsobistego)
        when ifnull(o.NrSeriaDowoduOsobistego, '') = '' and ifnull(o.NrPaszportu, '') <> ''
        then concat('paszportem nr ', o.NrPaszportu)
        when ifnull(o.NrSeriaDowoduOsobistego, '') = '' and ifnull(o.NrPaszportu, '') = ''
        then concat('numerem PESEL ', o.NrPesel)
        end as dokument_tozsamosci,

        P.NrEwidencyjny,

        -- P.PelenWymiarUrlopu AS WymiarUrlopu,
        (SELECT PelenWymiarUrlopu from urlopy where GUIDpr = up.pracGUID AND rok = year(up.OdDaty)) AS WymiarUrlopu,

        Akta_osob_liczba_lat,
        DATE(Akta_osob_data_do) AS Akta_osob_data_do,
        DATE_ADD(DATE(Akta_osob_data_do), INTERVAL 1 MONTH) AS Akta_osob_data_do2,
        -- _Rnd2(REPLACE(LEFT(wynagrodzenie, INSTR(wynagrodzenie,',')+2),',','.')) AS wynagrodzenie_kwota,
        IFNULL((SELECT _Rnd2(PlacaZasadnicza) FROM historia_pracy WHERE guidpr = P.GUID AND OdDnia = up.OdDaty),0) AS wynagrodzenie_kwota,
        -- REGEXP_REPLACE(wynagrodzenie, '[a-z]', '')
        -- IFNULL(up.DoDaty, 'czas nieokreślony') AS DoDaty,
        IF(up.DoDaty IS NOT NULL,CONCAT('do dnia ',DoDaty),'') AS DoDaty,

        IF(up.TypOkresuUmowy = 3, CzasUmowyOdDaty,'nie dotyczy') AS CzasUmowyOdDaty_probny,
        IF(up.TypOkresuUmowy = 1, DoDaty,'nie dotyczy') AS DoDaty_okreslony,

        IFNULL(up.przycz_zawarcia, 'BRAK PRZYCZYNY') AS przycz_zawarcia2,
        case when WymiarCzasuPracy = '3/4 etatu' then '30:00'
            when WymiarCzasuPracy = '1/8 etatu' then '5:00'
            when WymiarCzasuPracy = '1/2 etatu' then '20:00'
            when WymiarCzasuPracy = '1/4 etatu' then '10:00'
            when WymiarCzasuPracy = '1 etat' then '40:00'
            else '40:00'
            end AS wymiar_godziny,
        case when WymiarCzasuPracy = '3/4 etatu' then '6:00'
            when WymiarCzasuPracy = '1/8 etatu' then '1:00'
            when WymiarCzasuPracy = '1/2 etatu' then '4:00'
            when WymiarCzasuPracy = '1/4 etatu' then '2:00'
            when WymiarCzasuPracy = '1 etat' then '8:00'
            else '8:00'
            end AS wymiar_godziny_doba,
        up.*
    FROM UmowyOPrace up
    INNER JOIN osoby o ON o.GUID = up.pracGUID
    INNER JOIN Pracownicy P ON P.GUID=o.GUID
    WHERE up.GUID = _GUID;
    
END IF;

/*
Mode ktory podaje dane do wydruku "informacje do umowy o prace" (generalnie warunki zatrudnienia, ale bardziej ogolnie)
Wydruk jest wywolywany dodatkowo, obok umow o prace, w kartotece dokumentow pracownikow

CALL pl_pres_zaswiadcz('INFO_DO_UMOWYOPRACE','guid_umowy_o_prace','','','','')
*/
IF _MODE = 'INFO_DO_UMOWYOPRACE' THEN

    SELECT 
    'pl_pres_zaswiadcz_INFO_DO_UMOWYOPRACE' AS pl_pres_zaswiadcz_INFO,
    _Param_A AS aktywny_rok,
    _Param_D AS scenariusz,
    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,'Panią','Pana') AS plec4,
    IF(o.plec = 0,'a','y') AS ay,
    o.Nazwisko, o.Imiona,
    (SELECT valuea FROM IReg WHERE idkey = 'Pelna_nazwa' LIMIT 1) AS FirmaNazwa,
    (SELECT valuea FROM IReg WHERE idkey = 'Address Info' LIMIT 1) AS FirmaAdres,
    (SELECT valuea FROM IReg WHERE idkey = 'NIP' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaNIP,
    (SELECT valuea FROM IReg WHERE idkey = 'Miasto' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaMiasto,
    CONCAT((SELECT valuea FROM IReg WHERE idkey = 'Regon' LIMIT 1),' - ',(SELECT valuea FROM IReg WHERE idkey = 'EKD' LIMIT 1)) AS FirmaRegonEkd,
    up.RodzajPracy,
    up.DataWydruku,
    IF(up.DoDaty IS NOT NULL,CONCAT('do dnia ',DoDaty),'') AS DoDaty,
    IF(up.TypOkresuUmowy = 3, CzasUmowyOdDaty,'nie dotyczy') AS CzasUmowyOdDaty_probny,
    IF(up.TypOkresuUmowy = 1, DoDaty,'nie dotyczy') AS DoDaty_okreslony,
    IFNULL(up.przycz_zawarcia, 'BRAK PRZYCZYNY') AS przycz_zawarcia2,

    case when P.TypNiepelnospr = 0 THEN ''
    when P.TypNiepelnospr = 1 THEN 'I'
    when P.TypNiepelnospr = 2 THEN 'II'
    when P.TypNiepelnospr = 3 THEN 'III'
    end as TypNiepelnospr_grupa,

    CASE WHEN (up.TypOkresuUmowy)=1 THEN "na czas określony"
        WHEN (up.TypOkresuUmowy)=2 THEN "na czas nieokreślony"
        WHEN (up.TypOkresuUmowy)=3 THEN "na okres próbny"
        WHEN (up.TypOkresuUmowy)=4 THEN "na okres zastępstwa"
    END AS TypOkresuUmowy_str,

        -- P.PelenWymiarUrlopu AS WymiarUrlopu,
    (SELECT PelenWymiarUrlopu from urlopy where GUIDpr = up.pracGUID AND rok = year(up.OdDaty)) AS WymiarUrlopu,
    (SELECT WymiarUrlopuExtraDni from urlopy where GUIDpr = up.pracGUID AND rok = year(up.OdDaty)) AS WymiarUrlopuExtraDni,

    (SELECT PelenWymiarUrlopu+WymiarUrlopuExtraDni from urlopy where GUIDpr = up.pracGUID AND rok = year(up.OdDaty)) AS WymiarUrlopu_suma,

    (SELECT WymiarUrlopuDni from urlopy where GUIDpr = up.pracGUID AND rok = year(up.OdDaty)) AS WymiarUrlopuDni,

    P.PelenWymiarUrlopu,
    P.DataZatrudnieniaWzakl AS OdDaty,
    up.DzienZawarciaUmowy,

    case
    when DATE_ADD(P.DataZatrudnieniaWzakl, interval 6 month) > up.DzienZawarciaUmowy
    then '2 tygodnie'
    when DATE_ADD(P.DataZatrudnieniaWzakl, interval 6 month) <= up.DzienZawarciaUmowy and
    DATE_ADD(P.DataZatrudnieniaWzakl, interval 3 year) > up.DzienZawarciaUmowy
    then '1 miesiąc'
    when DATE_ADD(P.DataZatrudnieniaWzakl, interval 3 year) <= up.DzienZawarciaUmowy
    then '3 miesiące'
    end as okres_wypowiedzenia,

    IFNULL(CASE P.TypOkresuUmowy WHEN 2 THEN 'do nadal' WHEN 3 THEN P.OkrProbnyDo ELSE DataZwolnienia END, P.UmowaDo) AS DoDaty,
    Akta_osob_liczba_lat,
    DATE(Akta_osob_data_do) AS Akta_osob_data_do,
    DATE_ADD(DATE(Akta_osob_data_do), INTERVAL 1 MONTH) AS Akta_osob_data_do2,
    WymiarCzasuPracy,
    case when WymiarCzasuPracy = '3/4 etatu' then '30:00'
        when WymiarCzasuPracy = '1/8 etatu' then '5:00'
        when WymiarCzasuPracy = '1/2 etatu' then '20:00'
        when WymiarCzasuPracy = '1/4 etatu' then '10:00'
        when WymiarCzasuPracy = '1 etat' then '40:00'
        else '40:00'
        end AS wymiar_godziny,
    case when WymiarCzasuPracy = '3/4 etatu' then '6:00'
        when WymiarCzasuPracy = '1/8 etatu' then '1:00'
        when WymiarCzasuPracy = '1/2 etatu' then '4:00'
        when WymiarCzasuPracy = '1/4 etatu' then '2:00'
        when WymiarCzasuPracy = '1 etat' then '8:00'
        else '8:00'
        end AS wymiar_godziny_doba

    FROM UmowyOPrace up
    INNER JOIN osoby o ON o.GUID = up.pracGUID
    INNER JOIN Pracownicy P ON P.GUID=o.GUID
    WHERE up.GUID = _GUID;

END IF;

/*
Mode ktory podaje dane do wydruku aneksu do uowy 
SET @session.globals.Owner = 'CRIST';
CALL pl_pres_zaswiadcz('ANEKS_DO_UMOWYOPRACE','guid_aneksu','','','','')
CALL pl_pres_zaswiadcz('ANEKS_DO_UMOWYOPRACE','{DC8719D3-8013-4AD4-B85C-FAE1BD6A3D80}','','','','PL_ANSEKS_DO_UMOWYOPRACE')
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%'
*/
IF _MODE = 'ANEKS_DO_UMOWYOPRACE' THEN
-- siegamy do najsluszeniej metody ustalania adresu pracownika (byla sekcja ustalenia adresu, ale wywalilem bo jest wywolanie adresy_prac)
    SELECT pracGUID INTO _GUIDprac FROM aneksy_umow_o_prace WHERE guid = _GUID;
    CALL pl_pres_zlecenia('ADRESY_PRAC',_GUIDprac,'','','','','scenariusz');

    set @zm_stanowisko = '';
    set @zm_brutto = '';
    set @zm_etat = '';

    SELECT
    IF(IFNULL(s.GUID,'') <> NoweStanowisko, CONCAT('- rodzaj umówionej pracy: ',IFNULL(s2.stanowisko,'')), ''),
    -- format de_DE daje przecinek jako separator dziesietny i kropke jako seprator tysiaca; pl_PL daje tylko przecinek
    IF(kwota_brutto <> NowaPlaca, CONCAT('- wynagrodzenie brutto: ',_VarStr(FORMAT(NowaPlaca, 2, 'de_DE')),' zł (słownie: ',Get_Slownie(NowaPlaca, '', 2, NULL),')'), ''),
    IF(wymiarEtatu <> NowyWymiarCzasuPracy, CONCAT('- wymiar czasu pracy: ',NowyWymiarCzasuPracy), '')
    INTO @zm_stanowisko, @zm_brutto, @zm_etat
    FROM aneksy_umow_o_prace ap
    LEFT JOIN stanowiska s ON s.stanowisko = ap.stare_stanowisko
    LEFT JOIN stanowiska s2 ON s2.GUID = ap.NoweStanowisko
    WHERE ap.GUID = _GUID;

    SELECT 
        'pl_pres_zaswiadcz_ANEKS_DO_UMOWYOPRACE' AS pl_pres_zaswiadcz_ANEKS,
        _Param_A AS aktywny_rok,
        _Param_D 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 = 'Reprezentant_firmy_sprawy_kadrowe' LIMIT 1) AS FirmaReprezentant,
        (SELECT valuea FROM IReg WHERE idkey = 'NIP' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaNIP,
        (SELECT valuea FROM IReg WHERE idkey = 'Miasto' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaMiasto,
        CONCAT((SELECT valuea FROM IReg WHERE idkey = 'Regon' LIMIT 1),' - ',(SELECT valuea FROM IReg WHERE idkey = 'EKD' LIMIT 1)) AS FirmaRegonEkd,
        IF(o.plec = 0,'Pani','Pan') AS plecStr,
        CONCAT(t.MIEJSCOWOSC,', ',ifnull(t.ULICA,''),' ',t.NR_DOMU, IF(t.NR_MIESZKANIA<>'',CONCAT('/',t.NR_MIESZKANIA),'')) AS osoba_adres,
        o.Nazwisko, o.Imiona,
        P.DataRozpoczAktUmowy AS data_umowy,
        _VarStr(FORMAT(ap.kwota_brutto, 2, 'pl_PL')) AS kwota_bruttoStr,
        ap.`data` AS DataZawarciaAneksu,

        CONCAT_WS(', ',IF(@zm_stanowisko<>'','rodzaju umówionej pracy',NULL),IF(@zm_brutto<>'','wynagrodzenia',NULL),IF(@zm_etat<>'','wymiaru czasu pracy',NULL)) AS zmiany1,

        CONCAT_WS('\n',
        IF(@zm_stanowisko<>'',@zm_stanowisko,NULL),
        -- IF(@zm_brutto<>'',_VarStr(FORMAT(@zm_brutto, 2, 'pl_PL')),NULL),
        IF(@zm_brutto<>'',@zm_brutto,NULL),
        IF(@zm_etat<>'',@zm_etat,NULL)
        ) AS zmiany2,

        -- Get_Slownie(NowaPlaca, '*', 2, NULL) AS Brutto_Slownie,
        ap.*,
        t.*
    FROM aneksy_umow_o_prace ap
    INNER JOIN osoby o ON o.GUID = ap.pracGUID
    INNER JOIN Pracownicy P ON P.GUID=o.GUID
    -- INNER JOIN t_pracownicy t ON t.GUID= ap.pracGUID
    left JOIN temp_osoba_adres t ON t.GUID_pracownika = o.GUID
    WHERE ap.GUID = _GUID;

END IF;


-- call pl_pres_zaswiadcz('WYDRUK_FEP','{D1D4AF20-998C-44F1-AF49-120B6DDF4FC9}','','','','PL_FEP');
IF (_MODE = 'WYDRUK_FEP') THEN

    SELECT pracGUID INTO _GUIDprac FROM SwiadectwaPracy WHERE GUID = _GUID;

    CALL fr_pl_zest('OKRESY_FEP',_GUIDprac,'','','','','');

    SELECT
        'pl_pres_zaswiadcz_FEP' AS pl_pres_zaswiadcz_FEP,
        _Param_A AS aktywny_rok,
        _Param_D AS scenariusz,
        IF(o.plec = 0,'Pani','Pan') AS plec,
        o.Nazwisko, o.Imiona,
        -- o.AMEL_Adres as Adres,
        (SELECT valuea FROM IReg WHERE idkey = 'Pelna_nazwa' LIMIT 1) AS FirmaNazwa,
        (SELECT valuea FROM IReg WHERE idkey = 'Address Info' LIMIT 1) AS FirmaAdres,
        (SELECT valuea FROM IReg WHERE idkey = 'NIP' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaNIP,
        (SELECT valuea FROM IReg WHERE idkey = 'Miasto' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaMiasto,
        CONCAT((SELECT valuea FROM IReg WHERE idkey = 'Regon' LIMIT 1),' - ',(SELECT valuea FROM IReg WHERE idkey = 'EKD' LIMIT 1)) AS FirmaRegonEkd,
        -- P.DataRozpoczAktUmowy AS OdDaty,
        P.DataZatrudnieniaWzakl AS OdDaty,
        IFNULL(CASE P.TypOkresuUmowy WHEN 2 THEN 'do nadal' WHEN 3 THEN P.OkrProbnyDo ELSE DataZwolnienia END, P.UmowaDo) AS DoDaty,
        sp.data_wydruku,
        t.*
    FROM SwiadectwaPracy sp
    INNER JOIN osoby o ON o.GUID = sp.pracGUID
    INNER JOIN Pracownicy P ON P.GUID=o.GUID
    LEFT JOIN t_okresy t ON t.guid = o.GUID
    WHERE sp.GUID = _GUID;


END IF;
/*
dane do wydruku pracy zleconej, drukowanej z kartoteki prac zleconych (a nie jak umowy dlugoterminowe!)
CALL pl_pres_zaswiadcz('UMOWAZLEC', 'guid pracy zleconej', '', '', '', 'scenariusz');
scenariusz PL_UMOWAZLEC
wlaczanie na klucz WydrukUmowZlecenNEW  ma wartości 0,1,2  0-stary, 1-nowy, 2 - stary i nowy do testów
informacje o polach sa w kodzie programu R_UmowaZlecenie.pas
*/
IF _MODE = 'UMOWAZLEC' THEN

    select
        'pl_pres_zaswiadcz_UMOWAZLEC' AS pl_pres_zaswiadcz_UMOWAZLEC,
        _Param_A AS aktywny_rok,
        _Param_D AS scenariusz,
        _owner AS owner,
        _baza AS baza,
        date(now()) as DataWydruku,
        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,
        IF(o.NrPesel = '', o.NrPaszportu , o.NrPesel) AS NrPesel,
        (SELECT valuea FROM IReg WHERE idkey = 'Pelna_nazwa' LIMIT 1) AS FirmaNazwa,
        (SELECT valuea FROM IReg WHERE idkey = 'Address Info' LIMIT 1) AS FirmaAdres,
        (SELECT valuea FROM IReg WHERE idkey = 'NIP' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaNIP,
        (SELECT valuea FROM IReg WHERE idkey = 'Miasto' AND IdPath= 'INT\\SYSTEM\\MOTLAWA\\DaneFirmy' LIMIT 1) AS FirmaMiasto,
        CONCAT((SELECT valuea FROM IReg WHERE idkey = 'Regon' LIMIT 1),' - ',(SELECT valuea FROM IReg WHERE idkey = 'EKD' LIMIT 1)) AS FirmaRegonEkd,
        (SELECT valuex FROM IReg WHERE idkey = 'Contact' LIMIT 1) AS FirmaKontakt,
        -- (SELECT valuea FROM IReg WHERE idkey = 'Reprezentant_firmy_sprawy_kadrowe' LIMIT 1) AS FirmaReprezentant,

        (SELECT valuea FROM IReg WHERE idkey = 'Reprezentant_firmy_sprawy_kadrowe' LIMIT 1) AS FirmaReprezentant,
        concat(if(pz.RazemSkladkiZleceniobiorcy > 0,'podlega ','nie podlega '), 'obowiązkowi ubezpieczenia społeczenego') as podlegazus,
        concat(if(pz.SklKasaChorychZleceniobOdlicz + pz.SklKasaChorychZleceniobPobr > 0,'podlega ','nie podlega '), 'obowiązkowi ubezpieczenia zdrowotnego') as podlegazdrowotne,
        if(pz.WyplataPrzelewem > 1,'przelewem na konto Zleceniobiorcy','w kasie Zleceniodawcy') as miejsce_zaplaty,
        concat(' w terminie do ',pz.datawyplaty) as dni_do_wyplaty,

        (SELECT valueI FROM IReg WHERE idkey = 'Ilosc_egzemplarzy_umowy' LIMIT 1) AS ile_egzemplarzy,
        (SELECT valueI FROM IReg WHERE idkey = 'Ilosc_egzemplarzy_dla_stron' LIMIT 1) AS ile_kopii,

        pz.*
    from prace_zlecone pz
    INNER JOIN osoby o ON o.GUID = pz.GUID_pracownika
    where pz.guid = _GUID;

END IF;

END$$

DELIMITER ;
