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

DROP PROCEDURE IF EXISTS `fr_ht_ZM2`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `fr_ht_ZM2`(
	IN _MODE VARCHAR(150),
	IN _GUID VARCHAR(38),
	IN _scenario VARCHAR(150),
	IN _translate VARCHAR(50),
	IN _rok INT,
	IN _Param_A VARCHAR(250),
	IN _Param_B VARCHAR(250),
	IN _Param_C VARCHAR(250),
	IN _Param_D VARCHAR(250)
)
SPROC: BEGIN
	DECLARE _SQLText TEXT;
	DECLARE _SQLText2 TEXT;
	DECLARE _lp2 TEXT; -- potrzebne do ustawienia sortowania pozycji wg wyroznikow, dla Izohanu
	DECLARE _zaliczka TEXT; -- potrzebne do usuwania pozucji towarowych (zaliczek), dla PBUCH-u
	DECLARE _dorealizacji TEXT; -- tylko pozycje do realizacji, AXIS, zalezy od scenariusza - _Param_A
	DECLARE _group_by TEXT; -- grupowanie pozycji, inne dla Hydr-omegi
	DECLARE _podpisy TEXT; -- podpisy na umowach dla Baltimy
	DECLARE _user TEXT; -- zmiana zlaczenia do uzytkownika dla Comexu
	DECLARE _cp INT; -- ceny precision z klucza CenyPrecision

	DECLARE _PlatnikGUID VARCHAR(38);
	DECLARE _kontrGUID, _zamowienieGUID VARCHAR(38);
	DECLARE _waluta INT(11);
	DECLARE _PlatnikIDN INT(11);
	DECLARE _rodzaj INT(11);
	DECLARE _status_obieg INT(11);
	DECLARE _nrdok, _nr_pow, _nr_pow2, _nrzamw_pop VARCHAR(100); -- dane z poprzednich zamowien/zp/oo/ dla za
	DECLARE _nazwadoc, _wystawil VARCHAR(100); -- nazwa dokumentu z operdoc lub kombinowana
	DECLARE _lang_id VARCHAR(5);
	DECLARE _SposobPlatnosci TEXT;

	DECLARE _BankNazwa VARCHAR(200); -- nazwa banku dla kont dynamicznych
	DECLARE _BankPrefix VARCHAR(12); -- prefix numeru konta dla kont dynamicznych
	DECLARE _Dynamiczne VARCHAR(1); -- czy konta sa dynamiczne
	DECLARE _DomyslnyBank INT(11); -- czy kontrahent ma domyslny bank
	DECLARE _KontoBankowe TEXT; -- konto na wydruku faktury
	DECLARE _BankOpisDodatkowy TEXT; -- dodatkowy opis do rachunków bankowych
	DECLARE _suma DOUBLE(16,2); -- suma w spec2
	
	SET _SQLText = '', _SQLText2 = '', _lp2 = '', _zaliczka = '', _dorealizacji = '' , _group_by = '', _wystawil = '';
	
	set group_concat_max_len = 1024*1024;
	
/*
druga wersja procedury dla zamowien, bez czesci dla Konkola i Jarzebinskich (pakowacz, paski, krojczy itp), podpieta pod procedure fr_ht_OP
nowe parametry, zgodne z procedura wywolujaca

uwaga!!! - transze oraz inne sortowanie (parametry B, D) do uruchomienia - to na razie nie ma prawa dzialac

CALL fr_ht_ZM2('ZM_NG_DEFAULT', 'BIED2019-02-12_0_126314WP', 'STZTMGZM_ZAMOWIENIE_WZ','',0,'','','','');
*/

/*
	IF @session.globals.Owner IN ('KONKOL') AND _scenario IN ('STZTMGZM_ZAMOWIENIE_WZ') THEN
		CALL C_HT_TE_Proc('CREATE', 'CREATE.WZ.In.blanco.do.ZM', 'OP', NULL, _GUID, '', '', '', '' , NULL);
	END IF;

SET @session.globals.Owner = 'BALTIMA';
SET @rodzaj=27;
CALL fr_ht_ZM2('ZM_NG_DEFAULT', '{1D69C84E-AF27-405A-BB4F-6593018C9246}', 'STZTMGZM_ZAMOWIENIE','',0,'','','','');
CALL fr_ht_ZM2('ZM_NG_DEFAULT', '{1D69C84E-AF27-405A-BB4F-6593018C9246}', 'STZTMGZM_ZAMOWIENIE','',0,'','','','');
CALL fr_ht_OP('ZM_NG_VAT','{1D69C84E-AF27-405A-BB4F-6593018C9246}','STZTMGZM_PROFORMA','',0,'','','','') ;
CALL fr_ht_ZM2('ZM_PO_DEFAULT', @GUID, 'STZTMGZM_ZAMOWIENIE','',0,'','','','');
*/

-- nowa wersja naglowka, z nowa adresacja
	IF _MODE = 'ZM_NG_DEFAULT' THEN

	CALL geo_int_adr_link_NED_SELECT('DOC.SELECT.Prepare', _GUID, 'zmng', '', '', '', '', '');

			SET _SQLText =				
			'SELECT
				"fr_ht_ZM2__ZM_NG_DEFAULT" as fr_ht_ZM2__ZM_NG_DEFAULT,
				"#scenario#" AS scenariusz,
					_VarStr(spier.DisplayValue) as TranszaStr,  K.FVnaAdresSpedycyjny, K.krs,  
					if(N.BruttoWal=0,_Rnd2(N.Brutto/N.kurs),N.BruttoWal) AS BruttoWal, 
					hki.druk_KP_z_WZ_FV, 
					IFNULL((select rb.NazwaKonta from rachbankowe rb where rb.kontrguid=K.GUID order by rb.NrRachunku limit 1),"") as kontr_bank_nazwa,
					IFNULL((select rb.NrRachunku from rachbankowe rb where rb.kontrguid=K.GUID order by rb.NrRachunku limit 1),"") as kontr_bank_numer,
					IFNULL((select Concat(OSO.Imiona," ",OSO.Nazwisko,  
					IFNULL((select concat(" - fax: ",KKo.adres) from kontakty KKo WHERE KKo.typ_medium=1 AND KKo.osobaGUID = OSO.GUID ORDER BY KKo.kontrGUID DESC LIMIT 1),"")
					) FROM osoby OSO WHERE OSO.GUID = N.ogk_GUID),".") as osoba_przypisana,

					IFNULL((select adres from kontakty WHERE typ_medium=3 AND osobaGUID = N.ogk_GUID LIMIT 1),"") as osoba_przypisana_email,

					IFNULL((select adres from kontakty WHERE typ_medium=2 AND osobaGUID = N.ogk_GUID LIMIT 1),"") as osoba_przypisana_tel,

					IFNULL((select adres from kontakty WHERE typ_medium=0 AND osobaGUID = N.ogk_GUID LIMIT 1),"") as osoba_przypisana_tel_stac,

					IFNULL((select stanowisko from osoby WHERE GUID = N.ogk_GUID),"") as osoba_przypisana_stanowisko,

					K.analityka,K.reprezentant, K.UwagiNaFV, K.uwagi as uwagikontrah, K.W_ulica, K.W_zipcode, K.W_nazwamiasta, K.odbierajacy as kontrodbierajacy, K.w_TelKontaktowy, 
					kr.Nazwa as kontrPanstwo, N.info1, N.info2,  N.info3, N.info4,  N.info5, N.info6, K.EDI_Seller_CodeByBuyer, 
					_VarStr(nd.Nazwa) AS AreaNazwa,
					IFNULL(a.AdrDescr,"") as Dodatkowy_opis_lokal,
					(select nazwa from kontrah where GUID=N.AkwizytorGUID ) as AkwizytorNazwa, 
					IF(IFNULL(K.odbierajacy,"") <> "", K.odbierajacy, K.nazwa) AS kontrnazwa2,
					k_p.nazwa as platnik_nazwa, 
					IF(k_p.GUID<>N.kontrGUID, k_p.symbol, K.symbol) AS platnik_symbol,
					k_p.NazwaMiasta as platnik_NazwaMiasta, k_p.ulica as platnik_ulica, k_p.zipcode as platnik_zipcode,  
					if(k_p.podzialnip<2, if(k_p.podzialnip=0,insert(insert(insert(k_p.nip,4,0,"-"),8,0,"-"),11,0,"-"),insert(insert(insert(k_p.nip,4,0,"-"),7,0,"-"),10,0,"-")),k_p.nip) as platnik_nip,
					k_p.nip AS platnik_nip2,
					IFNULL((SELECT adrdescr FROM geo_int_adr_link WHERE objguid = N.kontrguid AND adrtyp LIKE "%F%" LIMIT 1),"") AS kontr_opis_adresu,
					"" AS lista_nr_zamowien_kontrah,
					K.GLN, N.GUID, 
					IFNULL((select ZZ.nr_zlecenia from zlec ZZ WHERE ZZ.GUID=N.zlecenieGUID),"") as nr_zlecenia, 
					"." as zakres_dat_wz, 
					"" AS lista_wz,
					edev.nazwa as oddzial_nazwa, 
					edev.symbol as oddzial_symbol, 
					edev.dane_adresowe as oddzial_dane_adresowe, 
					edev.dane_kontaktowe as oddzial_dane_kontaktowe, 
					K.regon as kontrREGON , K.nr_umowy, K.data_waznosci_umowy,
					K.uzgodnienia_dodatkowe, 
					if(K.podzialnip<2, if(K.podzialnip=0,insert(insert(insert(K.nip,4,0,"-"),8,0,"-"),11,0,"-"),insert(insert(insert(K.nip,4,0,"-"),7,0,"-"),10,0,"-")),K.nip) as kontrnip_podzial, 
					PL.rodzaj as rodzaj_platnosci, 
					N.idn, K.min_ord_quant, 
					W.Symbol AS WalutaStr, 
					K.numer_na_trasie, week(N.terminrealizacji,1) as tydzienrealizacji,
					week(N.terminrealizacji_plan,1) as tydzienrealizacji_plan,
					"0" as usluga_ciagla, 
					N.GUID, N.idnmagazyn, N.MagazynWys, N.warunki_dostawy, 
					N.warunki_dostawy_2, K.odp_za_zam, 
					N.rodzaj2 as rodzaj,
					N.rodzaj2 as rozrachunek, 
					N.rodzaj2 as fvrudowz, 
					"." as nrdokmag, 
					N.nrzamw as nrdokfin, 
					"." as nrwewn, 
					N.rodzaj2 as nrkasy, 
					N.MagazynWys as zmagazynu, 
					N.idnmagazyn as domagazynu,
					(select opis from Magazyny where idnmagazynu=N.MagazynWys) as zmagazynu_str,

					(select opis from Magazyny where idnmagazynu=N.MagazynWys) as magdo, -- magazyn docelowy
					(select opis from Magazyny where idnmagazynu=N.idnmagazyn) as magzr, -- magazyn zrodlowy

					krp.Nazwa as platnik_kraj, 
					N.datawystaw as datasprzed, 
					N.datawystaw as datawystaw, "." as tabela_kursow, 
					N.datawplywu, 
					IFNULL(N.DataZakonczUmowy,"") AS DataZakonczUmowy,
					N.symboper, 
					N.grupaoper, 
					N.rodzaj2 as akorektaidn, 
					"." as korektanrdokfin, 
					N.uwagi, 
					"" as uwagi2,
					N.zamawiajacy as odbierajacy, 
					N.idnuser, 
					N.datawplywu as korektadata, 
					"." as korektatytulem, 
					N.idn_kontrah as kontridn, 
					N.kontrsymbol as kontrsymbol, 
					N.rodzaj2 as zaplacono, 
					_VarINT(N.waluta) as waluta, 
					N.idn_kontrah as platnik, 
					SUM(P.wartnet) as netto, 
					SUM(P.wartvat) as vat, 
					SUM(wartbrt) as brutto, 
					(select zerod from zero) as ewidenc, 
					N.dataplatnosci as dataplatnosci, N.datawplywu, 
					N.kurs, 
					N.lang_id, 
					N.sposobplatn, 
					K.nazwa as kontrnazwa, 
					K.nip as kontrnip, 
					K.klasacenowa as kontrklasacenowa, 
					K.rabat as kontrrabat, 
					K.zipcode, K.NazwaMiasta, K.ulica, 
					CONCAT(K.ulica," ",K.zipcode," ",K.NazwaMiasta) as kontradres,
					mi.wojew as kontrwojewodztwo,
					K.upowaznienie as kontrupowaznienie, 
					K.GUID as kontrGUID, 
					K.podzialnip as kontrpodzialnip,
					K.wysylacFVviaMail,
					N.`localtime`, N.remotetime, N.ilepoz,  N.GUID,    N.status, 
					(select zerod from zero) as akcyza, 
					"." as idnattach, 
					(select zerod from zero) as tabwartnetto1,
					N.katcol0,    N.katcol1,    N.katcol2,    N.katcol3,   N.katcol4, 
										
					(SELECT valuex FROM v_kkn0 WHERE rok in (0, #rok#) AND klucz=N.katcol0) as katcol0Str, 
					(SELECT valuex FROM v_kkn1 WHERE rok in (0, #rok#) AND klucz=N.katcol1) as katcol1Str, 
					(SELECT valuex FROM v_kkn2 WHERE rok in (0, #rok#) AND klucz=N.katcol2) as katcol2Str, 
					(SELECT valuex FROM v_kkn3 WHERE rok in (0, #rok#) AND klucz=N.katcol3) as katcol3Str, 
					(SELECT valuex FROM v_kkn4 WHERE rok in (0, #rok#) AND klucz=N.katcol4) as katcol4Str, 

					(SELECT valuex FROM v_kkn0 WHERE rok in (0, #rok#) AND klucz=K.katcol0) as Kontrkatcol0Str, 
					(SELECT valuex FROM v_kkn1 WHERE rok in (0, #rok#) AND klucz=K.katcol1) as Kontrkatcol1Str, 
					(SELECT valuex FROM v_kkn2 WHERE rok in (0, #rok#) AND klucz=K.katcol2) as Kontrkatcol2Str, 
					(SELECT valuex FROM v_kkn3 WHERE rok in (0, #rok#) AND klucz=K.katcol3) as Kontrkatcol3Str, 
					(SELECT valuex FROM v_kkn4 WHERE rok in (0, #rok#) AND klucz=K.katcol4) as Kontrkatcol4Str, 

					(select zerod from zero) as tabwartnetto2, 
					(select zerod from zero) as tabwartnetto3, 
					(select zerod from zero) as tabwartnetto4, 
					(select zerod from zero) as tabwartnetto5, 
					(select zerod from zero) as tabwartnetto6, 
					(select zerod from zero) as tabwartvat1, 
					(select zerod from zero) as tabwartvat2, 
					(select zerod from zero) as tabwartvat3, 
					(select zerod from zero) as tabwartvat4, 
					(select zerod from zero) as tabwartbrutto1, 
					(select zerod from zero) as tabwartbrutto2, 
					(select zerod from zero) as tabwartbrutto3, 
					(select zerod from zero) as tabwartbrutto4,
					N.rodzaj2 as tag,    N.deleted,  N.terminrealizacji,    N.nrzamwkontr, 
					N.terminrealizacji_plan, N.terminrealizacji_gotowosc,
					
					"#SposobPlatnosci#" AS SposobPlatnosci,
					
					Replace(PL.Nazwa,"%d",PL.dni) as SposobPlatnosciSimple,
					(select zerod from zero) as bezodliczen, 
					(select zerod from zero) as tabwartnetto7, 
					(select zerod from zero) as tabwartvat7, 
					(select zerod from zero) as tabwartbrutto7, 
					(select zerod from zero) as tabwartnetto8, 
					(select zerod from zero) as tabwartvat8, 
					(select zerod from zero) as tabwartbrutto8, 
					(select zerod from zero) as tabwartnetto9, 
					(select zerod from zero) as tabwartvat9, 
					(select zerod from zero) as tabwartbrutto9, 
					-- (select zerod from zero) as nettowal, 
					N.nettowal as nettowal,
					N.rodzaj2 as rozliczone, 
					N.rodzaj2 as dzial, 
					N.waga, 
					N.rodzaj2 as tymczasowa, 
					N.uwagi as dotyczy, 
					-- N.datawystaw as datawaluty,
					N.datawplywu as datawaluty,
					N.rodzaj2 as niekrajowa, 
					N.rodzaj as rodzaj2, 
					N.lockflag, 
					k_p.GUID as platnikGUID, 
					"." AS opis,
					N.rodzaj2 as gruparozrach, 
					"." as korektaGUID, 
					"." as rozliczenia, 
					(select zerod from zero) as CRozliczone, 
					(select zerod from zero) as CKwota, 
					if(N.BruttoWal=0,_Rnd2(N.Brutto/N.kurs),N.BruttoWal) as CKwotaWal, 
					N.rodzaj2 as CWN, 
					N.rodzaj2 as pozycjawyciagu, 
					N.rodzaj2 as podpozycja, 
					"." as wzordekr, 
					N.datawplywu as datarozliczenia, 
					(select zerod from zero) as sr_opoznienie, 
					N.rodzaj2 as spedytor, 
					N.rodzaj2 as rokkorekty, 
					N.rodzaj2 as spedycja, 
					(select concat(sp1.DisplayValue,", ",sp2.DisplayValue) as SpedycjaStr from spedycje s 
					left join slowniki_pierwotne sp1 on sp1.Slownik_GUID="RODZ_SPED" and sp1.value=s.rodzajspedycji 
					left join slowniki_pierwotne sp2 on sp2.Slownik_GUID="TYP_TRANSPORT" and sp2.value=s.typtransportu 
					where s.idn=N.spedycja) as SpedycjaStr,
					"." as akwizytorGUID, 
					"" AS datazaladunku,
					N.rabat,  
					SUM(P.rabat) AS rabat_poz,
					N.rodzaj2 as paragon_printed, 
					NULL as korekta_data_potw, 
					NULL as data_vat, 
					N.rodzaj2 as nierozliczony, 
					(select zerod from zero) as odsetki, 
					(select zerod from zero) as wartclo, 
					(select zerod from zero) as koszt_nabycia, 
					"." as symbol_produktu, 
					N.rodzaj2 as BlokadaDatyRozlicz, 
					(select zerod from zero) as odsetki_kredyt, 
					(select zerod from zero) as zapl_gotowka, 
					(select zerod from zero) as zapl_karta, 
					(select zerod from zero) as zapl_przelew, 
					(select zerod from zero) as zapl_inna, 
					N.rodzaj2 as zapl_inna_rodzaj, 
					"." as zlecenieGUID, 
					N.rodzaj2 as gruparozrach_wymus, 
					N.rodzaj2 as pfron, 
					NOW() as data_nast_kontaktu, 
					N.rodzaj2 as vat_bez_odliczenia_paliwo, 
					N.rodzaj2 as vat_bez_odliczenia_pojazd, 
					N.transza_zamow, 
				ifnull((select Left(Group_Concat(DISTINCT adres SEPARATOR ", "),150) from kontakty where  typ_medium = 3 and nieaktywny = 0 and osobaGUID = O.GUID and kontrGUID<>"" order by priorytet DESC), "") as User_Mail, 
				ifnull((select Left(Group_Concat(DISTINCT adres SEPARATOR ", "),150) from kontakty where  typ_medium in (0) and nieaktywny = 0 and osobaGUID = O.GUID and kontrGUID<>"" order by priorytet DESC), "") as User_Telefon, 
				ifnull((select Left(Group_Concat(DISTINCT adres SEPARATOR ", "),150) from kontakty where  typ_medium in (2) and nieaktywny = 0 and osobaGUID = O.GUID and kontrGUID<>"" order by priorytet DESC), "") as User_Komorka, 
				ifnull((select Left(Group_Concat(DISTINCT adres SEPARATOR ", "),150) from kontakty where  typ_medium in (1) and nieaktywny = 0 and osobaGUID = O.GUID and kontrGUID<>"" order by priorytet DESC), "") as User_Fax, 
				ifnull(ht_Translate_Word(O.stanowisko,N.lang_id),O.stanowisko) as User_Stanowisko, 

				ifnull((select Left(Group_Concat(DISTINCT fr_telformat(adres,typ_medium) SEPARATOR ", "),150) from kontakty where  typ_medium in (0) and nieaktywny = 0 and osobaGUID = O.GUID and kontrGUID<>"" order by priorytet DESC), "") as User_Telefon2, 
				ifnull((select Left(Group_Concat(DISTINCT fr_telformat(adres,typ_medium) SEPARATOR ", "),150) from kontakty where  typ_medium in (2) and nieaktywny = 0 and osobaGUID = O.GUID and kontrGUID<>"" order by priorytet DESC), "") as User_Komorka2, 

				ifnull((select opis from dzialy where idn = O.dzial),"") as User_Dzial,
    O.nazwa_dzialu as User_Nazwa_Dzialu, -- wersja angielska stanowiska w Comexie
    ifnull((select nazwa from erp_area_nodes where guid = O.nodeGUID),"") as User_Lokalizacja,
    ifnull((select adres from geo_int_adr_link where objGUID = O.nodeGUID limit 1),"") as User_Lokalizacja_Adres,
    ifnull((select SUBSTRING_INDEX(SUBSTRING_INDEX(adr_MASKS,"<M>=",-1), "&",1) from geo_int_adr_link where objGUID = O.nodeGUID limit 1),"")  AS User_Lokalizacja_Miejscowosc,
    ifnull((select SUBSTRING_INDEX(SUBSTRING_INDEX(adr_MASKS,"<UM N>=",-1), "&",1) from geo_int_adr_link where objGUID = O.nodeGUID limit 1),"") AS User_Lokalizacja_Ulica,
    ifnull((select zipcode from geo_int_adr_link where objGUID = O.nodeGUID limit 1),"") AS User_Lokalizacja_Kod,

				IFNULL((SELECT LEFT(GROUP_CONCAT(distinct adres),150) FROM kontakty WHERE typ_medium IN (1) AND nieaktywny = 0 AND kontrGUID=N.kontrGUID ORDER BY priorytet DESC LIMIT 1), "") AS kontrah_Fax,
				
				IFNULL((SELECT LEFT(GROUP_CONCAT(distinct adres),150) FROM kontakty WHERE typ_medium IN (0) AND nieaktywny = 0 AND kontrGUID=N.kontrGUID ORDER BY priorytet DESC LIMIT 1), "") AS kontrah_tel,

				#_VarStr(_ConcatStr(nd.Nazwa, IFNULL(a.Adres, "") , " - ")) AS AreaOpis, 
				#_VarStr(IFNULL(a.Adres, IFNULL(nd.Nazwa, ""))) AS AreaOpis,
				_VarStr(IF(IFNULL(a.Adres,"") = "", IFNULL(nd.Nazwa, ""), a.Adres)) AS AreaOpis,

				#_VarStr(IFNULL(a.Adres, IFNULL(a.ulica_not_GUS,IFNULL(nd.Nazwa, "")))) AS AreaOpis2,
                _VarStr(IF(IFNULL(a.Adres,"") = "", IFNULL(a.ulica_not_GUS,IFNULL(nd.Nazwa, "")), a.Adres)) AS AreaOpis2,

				#_VarStr(IFNULL(a.Adres, N.kontradres)) AS lokalizacja,
				"" as lokalizacja,
					PL.Rodzaj AS RodzajPlatnosci, 
				IF(O2.Nazwisko IS NULL, CONCAT(O.Imie1," ",O.Nazwisko), CONCAT(O2.Imie1," ",O2.Nazwisko)) AS UserName,
				CONCAT(o2.Imie1," ",o2.Nazwisko) as Osoba2,
				_VarStr(N.zamawiajacy) AS lista_zamawiajacych,
				GROUP_CONCAT(DISTINCT(SELECT valuex FROM v_kkn2 WHERE rok in (0, #rok#) AND klucz=P.kat2)) as zleceniaw,
				IFNULL((SELECT adres FROM kontakty WHERE typ_medium=3 AND nieaktywny=0 AND kontrGUID = K.guid ORDER BY priorytet LIMIT 1),"") AS kontr_email,

				"" as nr_list_przewozowy,
				(select p1.idn from zmpo p1, TowrNg t1 where t1.guid=p1.idntowr and p1.idnng=N.GUID and p1.magtyp=0 and t1.wyroznik="W" and p1.recepturaGUID<>"" limit 1) as kod_partii,
				ifnull((SELECT Valuex FROM IReg WHERE IdKey = "Tekst_RODO" limit 1),"") as Tekst_RODO,
				ifnull((SELECT ValueA FROM IReg WHERE IdKey = "BDO" limit 1),"") as BDO,
				"" AS duplikat,
				"" AS zaplaty,
				"#DomyslnyBank#" AS DomyslnyBank,
				"#nazwadoc#" AS NazwaDoc,
				ifnull((SELECT Valuex FROM IReg WHERE IdKey = "Dodatkowe uwagi na fakturze" limit 1),"") as uwagi_dodatkowe,
				0 AS split_payment,
				"" as split_paymentStr,
				stat.DisplayValue AS status_umowy,
				(SELECT GROUP_CONCAT(DISTINCT CONCAT(o.imie1," ",o.nazwisko)) 
					FROM log l,osoby o 
					WHERE o.guid=l.osobaguid AND l.guidlink = N.guid AND l.info LIKE "Zmiana statusu obiegu%zatw%") AS podpisy,
				"#podpisy#" AS podpisy2,
				"" AS jpkflags,
				"" AS jpkgtu,
				adr.*,
				IF((@session.globals.Owner="PROBIER" AND N.datawplywu>="2018-01-02" AND (SELECT DATABASE())="probier"),"Probier Leasing spółka z ograniczona odpowiedzialnością spółka komandytowa",(SELECT ValueA  FROM IReg WHERE  IdKey LIKE "%Pelna_nazwa%" and IdPath not like "%Place2003%" limit 1)) AS Nazwa_firmy,
				(SELECT IFNULL(valuex,"") FROM IReg WHERE IdKey LIKE "Uwagi stale PROF_ZM 1" LIMIT 1) as uwagi_1_prof,
				(SELECT IFNULL(valuex,"") FROM IReg WHERE IdKey LIKE "Uwagi stale PROF_ZM 2" LIMIT 1) as uwagi_2_prof,
				(SELECT IFNULL(valuex,"") FROM IReg WHERE IdKey LIKE "Uwagi stale PROF_ZM 3" LIMIT 1) as uwagi_3_prof,
				(SELECT IFNULL(valuex,"") FROM IReg WHERE IdKey LIKE "Uwagi stale PROF_ZM 4" LIMIT 1) as uwagi_4_prof,
				(SELECT IFNULL(valuex,"") FROM IReg WHERE IdKey LIKE "Uwagi stale PROF_ZM 5" LIMIT 1) as uwagi_5_prof,
				(SELECT IFNULL(valuex,"") FROM IReg WHERE IdKey LIKE "Uwagi stale PROF_ZM 6" LIMIT 1) as uwagi_6_prof,
				(SELECT IFNULL(valuex,"") FROM IReg WHERE IdKey LIKE "Uwagi stale ZM 1" LIMIT 1) as uwagi_1_zm,
				(SELECT IFNULL(valuex,"") FROM IReg WHERE IdKey LIKE "Uwagi stale ZM 2" LIMIT 1) as uwagi_2_zm,
				(SELECT IFNULL(valuex,"") FROM IReg WHERE IdKey LIKE "Uwagi stale ZM 3" LIMIT 1) as uwagi_3_zm,
				(SELECT IFNULL(valuex,"") FROM IReg WHERE IdKey LIKE "Uwagi stale ZM 4" LIMIT 1) as uwagi_4_zm,
				(SELECT IFNULL(nrzamw,"") FROM zmng WHERE guid = N.createdfrom_GUID) as nrzamw_zrodla,
				N.ugrpGUID,
				-- (select concat(imie1," ", nazwisko) from osoby where guid = @session.CurrOsobaGUID) as wystawil
				"#wystawil#" as wystawil,
				"#nr_pow_OO#" AS nr_pow_OO,
				"#nr_pow_OO2#" AS nr_pow_OO2,
				"#nrzamw_pop#" AS nrzamw_pop

		FROM zmpo P 
		LEFT JOIN zmng N ON N.GUID = P.idnNG 
		LEFT JOIN kontrah K ON K.GUID = N.kontrGUID 
		LEFT JOIN kontrah k_p ON k_p.GUID = N.platnikGUID 
		LEFT JOIN platnosc PL ON PL.Idn = N.sposobplatn 
		LEFT JOIN slowniki_pierwotne spier ON spier.Slownik_GUID="ZM_TRANSZE" AND spier.Value=N.transza_zamow 

		-- LEFT JOIN _user_accounts U ON N.idnuser = U.login
		#user#
		LEFT JOIN osoby O ON U.osobaGUID = O.GUID
		LEFT JOIN osoby O2 ON N.CreatorGUID = O2.GUID

		LEFT JOIN erp_area_nodes nd ON nd.GUID = N.areaGUID 
		LEFT JOIN geo_int_adr_link a ON a.ObjGUID = nd.GUID AND a.objTable = "erp_area_nodes" 
		LEFT JOIN waluty W ON W.idn = N.waluta 
		LEFT JOIN Miasta mi ON mi.NazwaMiasta = K.NazwaMiasta 
		LEFT JOIN Kraje kr ON kr.idn_kraju = mi.IDNKraju  
		LEFT JOIN Miasta mip ON mip.NazwaMiasta = k_p.NazwaMiasta 
		LEFT JOIN Kraje krp ON krp.idn_kraju = mip.IDNKraju  
		LEFT JOIN ht_kontrah_info hki ON hki.KontrGUID = K.GUID
		left join erp_division_schema edev on N.ugrpGUID = edev.GUID 
		LEFT JOIN osoby o2 ON N.osobaGUID = o2.guid
		LEFT JOIN t_doc_adr_1_one adr ON TRUE
		LEFT JOIN v_statusy_obiegu_zm stat ON stat.Value = N.status_obieg
		WHERE 
			N.GUID= "#GUID#" 
			and N.wersja=P.Wersja 
		GROUP BY  
			N.idn 
		#ORDER# 
		';


		SET @_test =	_SQLText;
		-- wywolanie badania rachunku bankowego
		CALL fr_ht_konto('ZM', _GUID, _scenario, '',0,'','','','');

		
		select rodzaj, IFNULL(nrdokmag,nrzamw), status_obieg, lang_id
		INTO _rodzaj, _nrdok, _status_obieg, _lang_id
		from zmng where GUID = _GUID;

		IF @session.globals.Owner IN ('KONKOL') AND _scenario IN ('STZTMGZM_ZAMOWIENIE_WZ') THEN
			SET _nazwadoc = CONCAT('WZ Nr: ',IFNULL(_nrdok,''));
		ELSEIF @session.globals.Owner IN ('PLISZKA','JARZEBINSCY','SECURITY') AND _scenario IN ('STZTMGZM_PROFORMA') THEN
			SET _nazwadoc = CONCAT('Faktura proforma');
		ELSEIF @session.globals.Owner IN ('WEGA') AND _scenario IN ('STZTMGZM_PROFORMA') THEN
			SET _nazwadoc = 'Faktura / Invoice Proforma';	
		ELSE
			SET _nazwadoc = (SELECT opis FROM operdoc WHERE rodzaj = _rodzaj);
		END IF;

		set @test2 = _nazwadoc;
		set @test3 = _rodzaj;
		set @test4 = _nrdok;
		set @test4 = _status_obieg;

		SET _podpisy = '';

		IF @session.globals.Owner IN ('BALTIMA') AND _rodzaj IN (27,28) AND _status_obieg = 3 THEN
			SET @liczba = (select count(DISTINCT l.osobaguid) from `log` l,osoby o WHERE o.guid=l.osobaguid AND l.guidlink = _GUID AND l.info LIKE "Zmiana statusu obiegu%zatw%");

			CASE 
			WHEN @liczba = 0 THEN 
				IF _lang_id = 'pl' THEN 
					SET _podpisy = 'Maria Jasińska - Prezes Zarządu';
				ELSE 
					SET _podpisy = 'Maria Jasińska - Managing Director';
				END IF;
			WHEN @liczba = 1 THEN 
				IF _lang_id = 'pl' THEN
					SET _podpisy = (SELECT GROUP_CONCAT(DISTINCT CONCAT(o.imie1," ",o.nazwisko," - ",o.stanowisko)) FROM `log` l,osoby o 
						WHERE o.guid=l.osobaguid AND l.guidlink = _GUID AND l.info LIKE "Zmiana statusu obiegu%zatw%");
				ELSE
					SET _podpisy = (SELECT GROUP_CONCAT(DISTINCT CONCAT(o.imie1," ",o.nazwisko," - ",IFNULL(lt.tostr,o.stanowisko))) FROM `log` l
						INNER JOIN osoby o ON o.guid=l.osobaguid
						LEFT JOIN lang_translations lt ON lt.to_lang = _lang_id AND lt.from_lang = 'pl' AND o.stanowisko = lt.fromstr
						WHERE l.guidlink = _GUID AND l.info LIKE "Zmiana statusu obiegu%zatw%");
				END IF;
						
			WHEN @liczba = 2 THEN 
				IF _lang_id = 'pl' THEN
				 SET _podpisy = (SELECT GROUP_CONCAT(DISTINCT CONCAT(o.imie1," ",o.nazwisko,IF(o.nazwisko="Jasińska",CONCAT(" - ",o. stanowisko)," - Prokurent"))) FROM `log` l,osoby o 
						WHERE o.guid=l.osobaguid AND l.guidlink = _GUID AND l.info LIKE "Zmiana statusu obiegu%zatw%");
				ELSE
					SET _podpisy = (SELECT GROUP_CONCAT(DISTINCT CONCAT(o.imie1," ",o.nazwisko," - Proxy")) FROM `log` l,osoby o 
						WHERE o.guid=l.osobaguid AND l.guidlink = _GUID AND l.info LIKE "Zmiana statusu obiegu%zatw%");
				END IF;
			-- ELSE SET _podpisy = ''; 
			END CASE;
		END IF;

		
		-- IFNULL((SELECT tostr FROM lang_translations WHERE fromstr = o.stanowisko AND from_lang="pl" AND to_lang=N.lang_id LIMIT 1)
		IF @session.globals.Owner IN ('BALTIMA') AND _rodzaj IN (27,28) AND _status_obieg <> 3 THEN
			SET _podpisy = 'UMOWA NIEZATWIERDZONA!';
		END IF;

		-- wg nowych ustalen od 2024-05-28, to dane kolumny podpisy2 (czyli reprezentacja firmy)
		IF @session.globals.Owner IN ('BALTIMA') AND _rodzaj IN (27,28) AND _lang_id = 'pl' THEN
			SET _podpisy = 'Prezes Zarządu- Maria Jasińska, Wiceprezes Zarządu- Lucyna Skuczyńska';
		END IF;

		IF @session.globals.Owner IN ('BALTIMA') AND _rodzaj IN (27,28) AND _lang_id <> 'pl' THEN
			SET _podpisy = 'Chairman of the Board- Maria Jasińska, Vice-Chairman of the Board- Lucyna Skuczyńska';
		END IF;



		SET _SposobPlatnosci =
		(SELECT CASE 
			WHEN _lang_id <> "pl" AND PL.dni > 1 THEN
			IFNULL((SELECT tostr FROM lang_translations WHERE fromstr = CONCAT(PL.nazwa," ",PL.dni," dni") AND from_lang="pl" AND to_lang= _lang_id LIMIT 1),
				IF(PL.dni > 1, CONCAT(REPLACE(PL.Nazwa,"%d",PL.dni), " ", PL.dni, "dni"), IF(PL.dni > 0, CONCAT(REPLACE(PL.Nazwa,"%d",PL.dni), " ", "dzień"), PL.Nazwa)))
			WHEN _lang_id <> "pl" AND PL.dni = 1 THEN
			IFNULL((SELECT tostr FROM lang_translations WHERE fromstr = CONCAT(PL.nazwa," ",PL.dni," dzień") AND from_lang="pl" AND to_lang= _lang_id LIMIT 1),
					IF(PL.dni > 1, CONCAT(REPLACE(PL.Nazwa,"%d",PL.dni), " ", PL.dni, "dni"), IF(PL.dni > 0, CONCAT(REPLACE(PL.Nazwa,"%d",PL.dni), " ", "dzień"), PL.Nazwa)))
			WHEN _lang_id <> "pl" AND PL.dni = 0 THEN
			IFNULL((SELECT tostr FROM lang_translations WHERE fromstr = PL.nazwa AND from_lang="pl" AND to_lang= _lang_id LIMIT 1),
					IF(PL.dni > 1, CONCAT(REPLACE(PL.Nazwa,"%d",PL.dni), " ", PL.dni, "dni"), 
					IF(PL.dni > 0, CONCAT(REPLACE(PL.Nazwa,"%d",PL.dni), " ", "dzień"), PL.Nazwa)))
			ELSE
			IF(PL.dni > 1, CONCAT(REPLACE(PL.Nazwa,"%d",PL.dni), " ", PL.dni, " dni"), IF(PL.dni > 0, CONCAT(REPLACE(PL.Nazwa,"%d",PL.dni), " ", " dzień"), 
			IF(@session.globals.Owner = "RELACOM" AND PL.idn=61,CONCAT(PL.Nazwa," DN. ",N.dataplatnosci),PL.Nazwa)))
		END
		FROM zmng N 
		LEFT JOIN platnosc PL ON PL.Idn = N.sposobplatn 
		WHERE N.GUID = _GUID
		);
		
		IF @session.globals.Owner IN ('BALTIMA') AND _scenario = 'STZTMGZM_PROFORMA3' THEN
			SET @a = 0;
			DROP TABLE IF EXISTS t_sp;
			CREATE TEMPORARY TABLE t_sp
				(SELECT @a := @a+1 AS lp, terminrealizacji FROM zmpo p WHERE p.idnng = _GUID ORDER BY p.terminrealizacji);
			IF _lang_id = 'pl' THEN
				SET _SposobPlatnosci =
					(SELECT GROUP_CONCAT(CONCAT('Termin płatności ',lp,'. transzy ',terminrealizacji) SEPARATOR '\n') FROM t_sp);
				ELSE
				SET _SposobPlatnosci =
					(SELECT GROUP_CONCAT(CONCAT('The payment date of ',lp,'. tranche ',terminrealizacji) SEPARATOR '\n') FROM t_sp);
			END IF;
		END IF;
		
		-- _VarStr jest dla likwidacji mix collaction!!!
		SET _wystawil = IFNULL((select concat(imie1," ", nazwisko) from osoby where guid = _VarStr(IFNULL(@session.CurrOsobaGUID,""))),"");


				-- sekcja skopiowana z porcedury fr_ht_ZM, druga na tej podstawie zmodyfikowana
		IF @session.globals.Owner = 'HYDROMEGA' then

				SET _nr_pow = (SELECT CONCAT(zo.terminrealizacji," / ",zo.idn) FROM zmng zo, zmng N WHERE zo.katcol2=N.katcol2 AND zo.rodzaj IN (27,52) and N.GUID = _GUID ORDER BY zo.idn DESC LIMIT 1);

				SET _nr_pow2 =	(SELECT zo.nrzamw FROM zmng zo, zmng N WHERE zo.katcol2=N.katcol2 AND zo.rodzaj IN (27,52) and N.GUID = _GUID ORDER BY zo.idn DESC LIMIT 1);

				-- sqlka podajaca nr ZP z ktorego powstalo ZA, ale to samo zapewnia, zamiast pola analityka, bo to sie nie sprawdza zawsze
				-- ogolnie podaje nr poprzedniego dokumentu ale wg rodzaju
				SET _nrzamw_pop = (select distinct n.nrzamw from zmpo p, zmng n where n.guid = p.idnng and n.rodzaj = 73
				and p.guid in (select distinct zamowienieGUID from zmpo where idnng = _GUID) limit 1);

		ELSE
				SET _nr_pow = '', _nr_pow2 = '', _nrzamw_pop = '';
		END IF;

		-- zmiana zlaczenia tak, zeby brac osobe zalogowana a nie wystawce zamowienia
		IF @session.globals.Owner = 'COMEX' then
   SET _user = CONCAT('LEFT JOIN _user_accounts U ON U.osobaGUID = "', _VarStr(IFNULL(@session.CurrOsobaGUID,"")), '"' );
		ELSE
		 SET _user = 'LEFT JOIN _user_accounts U ON N.idnuser = U.login';
  END IF;

		SET _SQLText =	REPLACE(_SQLText, '#GUID#', _GUID);
		SET _SQLText =	REPLACE(_SQLText, '#scenario#', IFNULL(_scenario,''));
		SET _SQLText =	REPLACE(_SQLText, '#DomyslnyBank#', @_KontoBankowe);
		SET _SQLText =	REPLACE(_SQLText, '#nazwadoc#', _nazwadoc);
		SET _SQLText =	REPLACE(_SQLText, '#ORDER#', IF(@session.globals.Owner = 'DOMAX' ,'ORDER BY towrsymb', '')) ;
		SET _SQLText =	REPLACE(_SQLText, '#rok#', ifnull(@session.FK.AktRokObrach, year(current_date)));
		SET _SQLText =	REPLACE(_SQLText, '#podpisy#', _podpisy);
		SET _SQLText =	REPLACE(_SQLText, '#SposobPlatnosci#', IFNULL(_SposobPlatnosci,''));
		SET _SQLText =	REPLACE(_SQLText, '#wystawil#', IFNULL(_wystawil,''));
		SET _SQLText =	REPLACE(_SQLText, '#user#', IFNULL(_user,''));

		SET _SQLText =	REPLACE(_SQLText, '#nr_pow_OO#', IFNULL(_nr_pow,''));
		SET _SQLText =	REPLACE(_SQLText, '#nr_pow_OO2#', IFNULL(_nr_pow2,''));
		SET _SQLText =	REPLACE(_SQLText, '#nrzamw_pop#', IFNULL(_nrzamw_pop,''));

		SET @_SQLText =	_SQLText;
 		CALL _ExecuteCmd(_SQLText, @Error);
		-- select _SQLText, @session.FK.AktRokObrach;
					

/*
		PREPARE stmt from @_SQLText;
		EXECUTE stmt;
		DEALLOCATE PREPARE stmt;
*/

	END IF; -- _MODE = 'ZM_NG_DEFAULT'
		
	IF _MODE = 'ZM_PO_DEFAULT' THEN

		SET @rodzaj = (SELECT rodzaj FROM zmng where GUID = _GUID);

		--  sprawdzenie czy grupowac czy nie
		IF @session.globals.Owner IN ('JARZEBINSCY') AND @rodzaj=27 THEN 
			SET @session.grupowanie.pozycji = '0';
		-- ELSEIF @session.globals.Owner IN ('BALTIMA') AND @rodzaj=27 AND _scenario = 'STZTMGZM_ZAMOWIENIE_GR' THEN
			-- SET @session.grupowanie.pozycji = '1';
		ELSE
			CALL _IReg_Get('OPNGINFOPATH', 'Dok. drukować grupując towary', 0, 'INT', @session.grupowanie.pozycji, '0');
		END IF;
		
		
		IF (SELECT COUNT(*) FROM zmpo WHERE idnng = _GUID  AND grp_GUID <> '') > 0 THEN
			SET @session.grupowanie.pozycji = '10';
		END IF;
		
		IF @session.grupowanie.pozycji = '10' THEN
			CALL fr_ht_OPZM('GRUPOWANIE_INTERNALNE_ZM', _GUID, _scenario, _translate, _Param_A, _Param_B, _Param_C, _Param_D);
		END IF;
		
		/* 
		Byc moze bedzie zmiana, grupowanie moze zalezec od nowego klucza, albo w ogole byc podpiete pod rodzaj dokumentu.
		W skrajnym przypadku moze to byc zalezne od scenariusza 
		
		-- if @session.globals.Owner IN ('HYDROMEGA')
		CALL fr_ht_ZM2('ZM_PO_DEFAULT', '{F6332489-8242-46A6-88D6-B3455BE8B6D3}', 'STZTMGZM_ZAMOWIENIE','','',0,'','','');
		*/
		
		IF @session.grupowanie.pozycji = '0' THEN
		SET _SQLText =	
			'SELECT 
				"fr_ht_ZM2__ZM_PO_gr0" as fr_ht_ZM2__ZM_PO_gr0,
				"." as nrdokmag_zwrotu, "0" as Ilosc_Przelicznik, P.idn, P.GUID, "." as tabela_kursow, T.min_ord_quant, P.transza_zamow,
				P.ilosc*T.objetosc as objetosc, T.objetosc as objetosc_jedn, T.lokalizacja1, T.lokalizacja2, T.lokalizacja3, T.lokalizacja4,
				P.info,P.info2, P.info3, P.info4,P.kat0, P.kat1, P.kat2, P.kat3, P.kat4, P.kat5, P.kat6, P.kat7, P.kat8, P.kat9, 
								
				IF(P.kat0 > 0, (select kc.valuex from v_kkn0 kc where kc.klucz=P.kat0 and rok in (0, #rok#) ), "" ) as katcol0Str, 
				IF(P.kat1 > 0, (select kc.valuex from v_kkn1 kc where kc.klucz=P.kat1 and rok in (0, #rok#) ), "" ) as katcol1Str, 
				IF(P.kat2 > 0, (select kc.valuex from v_kkn2 kc where kc.klucz=P.kat2 and rok in (0, #rok#) ), "" ) as katcol2Str, 
				IF(P.kat3 > 0, (select kc.valuex from v_kkn3 kc where kc.klucz=P.kat3 and rok in (0, #rok#) ), "" ) as katcol3Str, 
				IF(P.kat4 > 0, (select kc.valuex from v_kkn4 kc where kc.klucz=P.kat4 and rok in (0, #rok#) ), "" ) as katcol4Str, 
				
				IF(P.kat5 > 0, (select kc.valuex from katcols kc where kc.klucz=P.kat5 and kc.typ=1 and kc.colnr=1 and rok in (0, #rok#)), "" ) as katcol5Str, 
				IF(P.kat6 > 0, (select kc.valuex from katcols kc where kc.klucz=P.kat6 and kc.typ=1 and kc.colnr=2 and rok in (0, #rok#)), "" ) as katcol6Str, 
				IF(P.kat7 > 0, (select kc.valuex from katcols kc where kc.klucz=P.kat7 and kc.typ=1 and kc.colnr=3 and rok in (0, #rok#)), "" ) as katcol7Str, 
				IF(P.kat8 > 0, (select kc.valuex from katcols kc where kc.klucz=P.kat8 and kc.typ=1 and kc.colnr=4 and rok in (0, #rok#)), "" ) as katcol8Str, 
				IF(P.kat9 > 0, (select kc.valuex from katcols kc where kc.klucz=P.kat9 and kc.typ=1 and kc.colnr=5 and rok in (0, #rok#)), "" ) as katcol9Str, 
				(select symbol_edi from oferty WHERE N.kontrGUID=oferty.kontrguid and P.idntowr=oferty.idntowr) as oferty_symbol_edi,
				(select symbol from oferty WHERE N.kontrGUID=oferty.kontrguid and P.idntowr=oferty.idntowr) as oferty_symbol,
				(select nazwa from oferty WHERE N.kontrGUID=oferty.kontrguid and P.idntowr=oferty.idntowr) as oferty_nazwa,
				(select zerod from zero) + P.magTyp as magTyp, 
				-- (select zerod from zero) as CenaNetWalzRab,
				_Rnd(P.wartnetwal/P.ilosc, #cp#) as CenaNetWalzRab,
				IF(@session.globals.Owner = "ASTE", ROUND(cenanet*(1-P.rabat/100),4), _Rnd2(P.wartnetwal/P.ilosc)) AS cenanetwal, 
				concat(P.ilosc div T.opakowanie,"+",P.ilosc mod T.opakowanie) as opakowan, 
				"." as nrdokmag,
				_VarINT(N.waluta) as waluta, _varDOUBLE(0.0) as inwnbo,
				_varSTR(P.nrseryjny_lista) as nrseryjny,  
				P.uwagi, P.uwagi2 as uwagi2, 
				P.towrnazwa2 as towrnazwa2,
				P.terminrealizacji, 
				P.osobaGUID as osobaGUID, 
				
				N.datawystaw as datawystaw_pozycji, -- np. data wystawienia wz <> od daty wyst. FV
				CONCAT(O.Imiona," ",O.Nazwisko) as osobaNazwiskoImie, CAST(N.datawystaw  as char) as datazamowienia, 
				W.Symbol AS WalutaStr, 
				IFNULL(concat(P.lp," "),"1") as zplp, 
				P.Lp, 
				P.cenanet as cenamag, 
				P.wartnet as wartmag, 
				P.wartnet,  P.wartvat, P.wartbrt,
				P.wartnetwal, _Rnd2(P.wartvat/P.kurs) as wartvatwal, _Rnd2(P.wartbrtwal) as wartbrtwal,
				P.wartBrtWal as BruttoWal,
				-- if(P.wartvat=0,P.wartnetwal,P.wartbrt/P.kurs) as wartbrtwal, 
				-- if(P.wartvat=0,P.wartnet,P.wartbrt/P.kurs) as wartbrt, --  < kontynuacja zniesmaczonego Apro ;) <- wartvatwal dodano kurs aby podawalo w walucie
								
				-- (P.cenabrt) as cenabrt_przed_rab, uwaga,cenabrt jest po rabacie, a cenanet jest przed rabatem...
				_Rnd(P.cenanet*(1+vat.value), #cp#) as cenabrt_przed_rab,

				(P.wartbrt/P.ilosc) as cenabrt, 
				(P.wartnet/P.kurs) as wartnetpln, 
				P.usluga, 
				P.kurs, 
				T.NazwaUProducenta, 
				T.kod_kreskowy,  T.kod_kreskowy1, T.kod_kreskowy2,
				T.Opis, 
				T.waga as wagatowaru, 
				T.info as Tinfo, T.info2 as Tinfo2, T.info3 as Tinfo3, T.info4 as Tinfo4, 
				IF(T.katcol2 > 0, (SELECT kc.valuex FROM katcols kc WHERE kc.klucz=T.katcol2 AND kc.typ=1 AND kc.colnr=3 AND rok IN (0, #rok#)), "" ) AS katcol2TStr,
				(P.Ilosc/P.ilewopakowaniu) AS ileopakowan, 

				(((P.ilosc-1) div T.opakowanie_zbiorcze)+1)+(select zerod from zero) as ilosc_palet, 
				(P.waga+(((P.ilosc-1) div T.opakowanie_zbiorcze)+1) * 20)+(select zerod from zero) as wagabrt, 
			
				P.oplata_produktowa,  -- maks #12347
				P.ilewopakowaniu, 
				J.EDI_index, -- // maks
				T.akcyza, T.pcn, T.podlega_akcyzie, 
				T.symboludost, T.SymbolProducenta, T.dataprodukcji, T.nazwa_segment3, T.wyroznik, T.idn as towr_idn,
				P.towrsymb, 
				IF(T.nazwa=P.towrnazwa, IFNULL(( SELECT tostr from lang_translations where to_lang="#LANG#" and object_name="TowrNg" and object_key=P.IdnTowr LIMIT 1), P.towrnazwa), P.towrnazwa) AS towrnazwaTranslate, 
				IF(N.lang_id<>"pl", IF(T.nazwa=P.towrnazwa, IFNULL(( SELECT tostr from lang_translations where to_lang="#LANG#" and object_name="TowrNg" and object_key=P.IdnTowr LIMIT 1), P.towrnazwa), P.towrnazwa),
				P.towrnazwa) AS towrnazwa,
				P.towrnazwa AS towrnazwa_org,
				P.cenanet, P.cenanet as CenaJednostkowa, -- dla zamowien to sa ceny przed rabatem
				P.idntowr, 
				P.wspolplatnosc, 
				P.rabat, 
				P.waga,
				P.waga AS waga_pozycji,
				P.ilosc As Ilosc, P.iloscdo As IloscDo, P.zrealizowano,
				P.ilosc_pierwotna AS ilosc_pierwotnaZam,
				#ilosc# AS Ilosc2, 
				-- IF((J.Nazwa#nr# ="" or isnull(J.Nazwa#nr#)), J.Nazwa, J.Nazwa#nr#) As Jednostka, 
				case when N.lang_id <> "pl" then
					IF((J.Nazwa1 = "" or isnull(J.Nazwa1)), J.Nazwa, J.Nazwa1) 
					else J.Nazwa END As Jednostka, 
				J.precyzja as JednostkaPrecyzja, 
				IFNULL(IF((JP.Nazwa ='''' or isnull(JP.Nazwa)), JP.Nazwa, JP.Nazwa),"") As JednostkaPom, JP.precyzja as JednostkaPomPrecyzja, 
				--  _varDOUBLE(_Rnd2(P.ilosc * T.przelicznik_l / T.przelicznik_m)) as iloscPom, 
				_varDOUBLE(_Rnd(P.ilosc * T.przelicznik_l / T.przelicznik_m, JP.precyzja)) as iloscPom,
				_varDOUBLE(_Rnd2(P.wartnetwal/(_Rnd(P.ilosc * T.przelicznik_l / T.przelicznik_m, JP.precyzja)))) as cenaPom,
				P.idnvat, vat.shortname AS idnVatStr,
				P.Rodzaj_przeliczenia, N.nrzamw, N.nrzamwkontr, 
				P.Lp as grupuj,
				_VarInt(#lp2#) as lp2,
				P.data_dod_1, P.data_dod_2,
				-- P.data_dod_3,
				P.cena_dod_1, P.cena_dod_2,
				LEFT(".",38) as GUIDKorPO, 
				Concat(os.Imiona," ",os.Nazwisko) as Osoba_ImieNazwisko, 
				os.info1 as Osoba_Info1, 
				os.info2 as Osoba_Info2, 
				T.treenode, T.symbol, T.pkwiu, T.sww,
				IF(rn.nazwa is null,"",concat("Receptura: ",rn.nazwa)) as nazwa_receptury,
				P.CzasOczekiwania,  
				CZ.DisplayValue as CzasOczekiwaniaStr,
				J.idn as JednostkaIdn,
				_VarStr(nd.Nazwa) AS AreaNazwa,
				IF(@session.globals.Owner = "ASTE", IF(J.Nazwa = "", "", J.Nazwa), IF(J.Nazwa = "", "", Concat("/",J.Nazwa))) As Jednostka2, 
				IF(@session.globals.Owner = "ASTE", IF(J.Nazwa = "", "", J.Nazwa), IF(J.Nazwa = "", "", Concat("/",J.Nazwa))) As JednostkaStr2,
				kon.symbol AS Nazwa_Dostawcy, 
				-- T.idn as Towr_IDN,
				T.producent as producentT,
				T.jpkgtu,
				ifnull(P.komentarz,"") as komentarz 
			FROM zmpo P 
			LEFT JOIN zmng N ON N.GUID = P.idnNG 
			LEFT JOIN osoby O ON O.GUID=P.osobaGUID 
			LEFT JOIN TowrNg T ON T.GUID = P.idntowr 
			LEFT JOIN Jednostki J ON J.idn = P.jednostka 
			LEFT JOIN Jednostki JP ON JP.idn = T.jednostka_pom 
			LEFT JOIN waluty W ON W.idn = N.waluta 
			LEFT JOIN osoby os ON os.GUID = P.osobaGUID
			LEFT JOIN rcng rn ON rn.GUID = P.recepturaGUID
			LEFT JOIN v_erp_vat vat ON vat.ID = P.idnvat
			LEFT JOIN erp_area_nodes nd ON nd.GUID = P.areaGUID AND nd.deleted = 0
			LEFT JOIN slowniki_pierwotne CZ on CZ.Slownik_GUID = "CZAS_OCZEK_ZAM" and CZ.Value=P.CzasOczekiwania
			LEFT JOIN kontrah kon ON kon.GUID=T.dostawcaGUID 
			WHERE 
				P.idnNg="#GUID#"  and N.wersja=P.Wersja AND (N.transza_zamow #transza#) 
				and IF(N.rodzaj in (28) or (@session.globals.Owner IN ("JARZEBINSCY") AND N.rodzaj=27), true, T.opakowanie_zwrotne=0) 
				and #zaliczka#
				and #dorealizacji#
				#transza_zamow#
			#ORDER#
			';	

			END IF;
			
		IF @session.grupowanie.pozycji in ('1','2') THEN
		SET _SQLText =	
			'SELECT 
				"fr_ht_ZM2__ZM_PO_gr12" as fr_ht_ZM2__ZM_PO_gr12,
				"." as nrdokmag_zwrotu, "0" as Ilosc_Przelicznik, P.idn, P.GUID, "." as tabela_kursow, T.min_ord_quant, P.transza_zamow,
				P.ilosc*T.objetosc as objetosc, T.objetosc as objetosc_jedn, T.lokalizacja1, T.lokalizacja2, T.lokalizacja3, T.lokalizacja4,
				P.info,P.info2, P.info3, P.info4,P.kat0, P.kat1, P.kat2, P.kat3, P.kat4, P.kat5, P.kat6, P.kat7, P.kat8, P.kat9, 
								
				IF(P.kat0 > 0, (select kc.valuex from v_kkn0 kc where kc.klucz=P.kat0 and rok in (0, #rok#) ), "" ) as katcol0Str, 
				IF(P.kat1 > 0, (select kc.valuex from v_kkn1 kc where kc.klucz=P.kat1 and rok in (0, #rok#) ), "" ) as katcol1Str, 
				IF(P.kat2 > 0, (select kc.valuex from v_kkn2 kc where kc.klucz=P.kat2 and rok in (0, #rok#) ), "" ) as katcol2Str, 
				IF(P.kat3 > 0, (select kc.valuex from v_kkn3 kc where kc.klucz=P.kat3 and rok in (0, #rok#) ), "" ) as katcol3Str, 
				IF(P.kat4 > 0, (select kc.valuex from v_kkn4 kc where kc.klucz=P.kat4 and rok in (0, #rok#) ), "" ) as katcol4Str, 
				
				IF(P.kat5 > 0, (select kc.valuex from katcols kc where kc.klucz=P.kat5 and kc.typ=1 and kc.colnr=1 and rok in (0, #rok#)), "" ) as katcol5Str, 
				IF(P.kat6 > 0, (select kc.valuex from katcols kc where kc.klucz=P.kat6 and kc.typ=1 and kc.colnr=2 and rok in (0, #rok#)), "" ) as katcol6Str, 
				IF(P.kat7 > 0, (select kc.valuex from katcols kc where kc.klucz=P.kat7 and kc.typ=1 and kc.colnr=3 and rok in (0, #rok#)), "" ) as katcol7Str, 
				IF(P.kat8 > 0, (select kc.valuex from katcols kc where kc.klucz=P.kat8 and kc.typ=1 and kc.colnr=4 and rok in (0, #rok#)), "" ) as katcol8Str, 
				IF(P.kat9 > 0, (select kc.valuex from katcols kc where kc.klucz=P.kat9 and kc.typ=1 and kc.colnr=5 and rok in (0, #rok#)), "" ) as katcol9Str, 
				(select symbol_edi from oferty WHERE N.kontrGUID=oferty.kontrguid and P.idntowr=oferty.idntowr) as oferty_symbol_edi,
				(select symbol from oferty WHERE N.kontrGUID=oferty.kontrguid and P.idntowr=oferty.idntowr) as oferty_symbol,
				(select nazwa from oferty WHERE N.kontrGUID=oferty.kontrguid and P.idntowr=oferty.idntowr) as oferty_nazwa,
				(select zerod from zero) + P.magTyp as magTyp, 
				-- (select zerod from zero) as CenaNetWalzRab, 
				_Rnd(sum(P.wartnetwal)/sum(P.ilosc), #cp#) as CenaNetWalzRab,
				IF(@session.globals.Owner = "ASTE", ROUND(cenanet*(1-P.rabat/100),4), _Rnd2(sum(P.wartnetwal)/sum(P.ilosc))) AS cenanetwal, 
				concat(P.ilosc div T.opakowanie,"+",P.ilosc mod T.opakowanie) as opakowan, 
				"." as nrdokmag,
				_VarINT(N.waluta) as waluta, _varDOUBLE(0.0) as inwnbo,
				_varSTR(P.nrseryjny_lista) as nrseryjny, 
				P.uwagi, P.uwagi2 as uwagi2, 
				P.towrnazwa2 as towrnazwa2,
				P.terminrealizacji, 
				P.osobaGUID as osobaGUID, 
				
				N.datawystaw as datawystaw_pozycji, -- np. data wystawienia wz <> od daty wyst. FV
				CONCAT(O.Imiona," ",O.Nazwisko) as osobaNazwiskoImie, CAST(N.datawystaw  as char) as datazamowienia, 
				W.Symbol AS WalutaStr, 
				IFNULL(concat(P.lp," "),"1") as zplp, 
				P.Lp,
				P.cenanet as cenamag, 
				SUM(P.wartnet) as wartmag, 
				SUM(P.wartnet) as wartnet,  SUM(P.wartvat) as wartvat, SUM(P.wartbrt) as wartbrt,
				SUM(P.wartnetwal) as wartnetwal, _RND2(SUM(P.wartvat/P.kurs)) as wartvatwal, _Rnd2(SUM(P.wartbrtwal)) as wartbrtwal,
				SUM(P.wartBrtWal) as BruttoWal,
				-- SUM(if(P.wartvat=0,P.wartnetwal,P.wartbrt/P.kurs)) as wartbrtwal, 
				-- SUM(if(P.wartvat=0,P.wartnetwal,P.wartbrt/P.kurs)) as wartbrt, --  < kontynuacja zniesmaczonego Apro ;) <- wartvatwal dodano kurs aby podawalo w walucie
				-- (P.cenabrt) as cenabrt_przed_rab,
				_Rnd(P.cenanet*(1+vat.value), #cp#) as cenabrt_przed_rab,

				ROUND((P.wartbrt/P.ilosc), 4) as cenabrt, 
				(P.wartnet/P.kurs) as wartnetpln, 
				P.usluga, 
				P.kurs, 
				T.NazwaUProducenta, 
				T.kod_kreskowy,  T.kod_kreskowy1, T.kod_kreskowy2,
				T.Opis, 
				T.waga as wagatowaru, 
				T.info as Tinfo, T.info2 as Tinfo2, T.info3 as Tinfo3, T.info4 as Tinfo4, 
				IF(T.katcol2 > 0, (SELECT kc.valuex FROM katcols kc WHERE kc.klucz=T.katcol2 AND kc.typ=1 AND kc.colnr=3 AND rok IN (0, #rok#)), "" ) AS katcol2TStr,
				SUM(P.Ilosc/P.ilewopakowaniu) AS ileopakowan, 

				SUM(((P.ilosc-1) div T.opakowanie_zbiorcze)+1) + _varDOUBLE(0.0) as ilosc_palet, 
				SUM(P.waga+(((P.ilosc-1) div T.opakowanie_zbiorcze)+1) * 20) + _varDOUBLE(0.0) as wagabrt, 
			
				P.oplata_produktowa,  -- maks #12347
				P.ilewopakowaniu, 
				J.EDI_index, -- // maks
				T.akcyza, T.pcn, T.podlega_akcyzie, 
				T.symboludost, T.SymbolProducenta, T.dataprodukcji, T.nazwa_segment3, T.wyroznik, T.idn as towr_idn,
				P.towrsymb, 
				IF(T.nazwa=P.towrnazwa, IFNULL(( SELECT tostr from lang_translations where to_lang="#LANG#" and object_name="TowrNg" and object_key=P.IdnTowr LIMIT 1), P.towrnazwa), P.towrnazwa) AS towrnazwaTranslate, 
				IF(N.lang_id<>"pl", IF(T.nazwa=P.towrnazwa, IFNULL(( SELECT tostr from lang_translations where to_lang="#LANG#" and object_name="TowrNg" and object_key=P.IdnTowr LIMIT 1), P.towrnazwa), P.towrnazwa),
				P.towrnazwa) AS towrnazwa,
				P.towrnazwa AS towrnazwa_org,
				P.cenanet, P.cenanet as CenaJednostkowa, 
				P.idntowr, 
				P.wspolplatnosc, 
				P.rabat, 
				SUM(P.waga) as waga,
				SUM(P.waga) AS waga_pozycji,
				SUM(P.ilosc) As Ilosc, SUM(P.iloscdo) As IloscDo, SUM(P.zrealizowano) AS zrealizowano,
				SUM(P.ilosc_pierwotna) AS ilosc_pierwotnaZam,
				SUM(#ilosc#) AS Ilosc2, 
				-- IF((J.Nazwa#nr# ="" or isnull(J.Nazwa#nr#)), J.Nazwa, J.Nazwa#nr#) As Jednostka, 
				case when N.lang_id <> "pl" then
					IF((J.Nazwa1 = "" or isnull(J.Nazwa1)), J.Nazwa, J.Nazwa1) 
					else J.Nazwa END As Jednostka, 

				J.precyzja as JednostkaPrecyzja, 
				IFNULL(IF((JP.Nazwa ='''' or isnull(JP.Nazwa)), JP.Nazwa, JP.Nazwa),"") As JednostkaPom, JP.precyzja as JednostkaPomPrecyzja, 
				-- _varDOUBLE(_Rnd2(SUM(P.ilosc * T.przelicznik_l / T.przelicznik_m))) as iloscPom,
				_varDOUBLE(_Rnd(SUM(P.ilosc * T.przelicznik_l / T.przelicznik_m),JP.precyzja)) as iloscPom,
				_varDOUBLE(_Rnd2(SUM(P.wartnetwal)/(_Rnd(SUM(P.ilosc * T.przelicznik_l / T.przelicznik_m), JP.precyzja)))) as cenaPom,

				P.idnvat, vat.shortname AS idnVatStr,
				P.Rodzaj_przeliczenia, N.nrzamw, N.nrzamwkontr, 
				P.Lp as grupuj,
				_VarInt(#lp2#) as lp2,
				P.data_dod_1, P.data_dod_2,
				-- P.data_dod_3,
				P.cena_dod_1, P.cena_dod_2,
				LEFT(".",38) as GUIDKorPO, 
				Concat(os.Imiona," ",os.Nazwisko) as Osoba_ImieNazwisko, 
				os.info1 as Osoba_Info1, 
				os.info2 as Osoba_Info2, 
				T.treenode, T.symbol, T.pkwiu, T.sww,
				IF(rn.nazwa is null,"",concat("Receptura: ",rn.nazwa)) as nazwa_receptury,
				P.CzasOczekiwania, 
				CZ.DisplayValue as CzasOczekiwaniaStr,
				J.idn as JednostkaIdn,
				_VarStr(nd.Nazwa) AS AreaNazwa,
				IF(@session.globals.Owner = "ASTE", IF(J.Nazwa = "", "", J.Nazwa), IF(J.Nazwa = "", "", Concat("/",J.Nazwa))) As Jednostka2, 
				IF(@session.globals.Owner = "ASTE", IF(J.Nazwa = "", "", J.Nazwa), IF(J.Nazwa = "", "", Concat("/",J.Nazwa))) As JednostkaStr2,
				kon.symbol AS Nazwa_Dostawcy, 
				-- T.idn as Towr_IDN,
				T.producent as producentT,
				ifnull(P.komentarz,"") as komentarz 
			FROM zmpo P 
			LEFT JOIN zmng N ON N.GUID = P.idnNG 
			LEFT JOIN osoby O ON O.GUID=P.osobaGUID 
			LEFT JOIN TowrNg T ON T.GUID = P.idntowr 
			LEFT JOIN Jednostki J ON J.idn = P.jednostka 
			LEFT JOIN Jednostki JP ON JP.idn = T.jednostka_pom 
			LEFT JOIN waluty W ON W.idn = N.waluta 
			LEFT JOIN osoby os ON os.GUID = P.osobaGUID
			LEFT JOIN rcng rn ON rn.GUID = P.recepturaGUID
			LEFT JOIN v_erp_vat vat ON vat.ID = P.idnvat
			LEFT JOIN erp_area_nodes nd ON nd.GUID = P.areaGUID AND nd.deleted = 0
			LEFT JOIN slowniki_pierwotne CZ on CZ.Slownik_GUID = "CZAS_OCZEK_ZAM" and CZ.Value=P.CzasOczekiwania
			LEFT JOIN kontrah kon ON kon.GUID=T.dostawcaGUID 
			WHERE 
				P.idnNg="#GUID#"  and N.wersja=P.Wersja AND (N.transza_zamow #transza#) 
				and IF(N.rodzaj in (28), true, T.opakowanie_zwrotne=0) 
				and #zaliczka# 
				and #dorealizacji#
				#transza_zamow#
			#GROUP_BY#
			#ORDER#
			';	

			END IF;
			
		  SET _lp2 = 	
		  CASE WHEN @session.globals.Owner IN ('IZOHAN') 
			 THEN 'CASE WHEN wyroznik = "W" THEN 1 
							WHEN wyroznik LIKE "%SUR%" THEN 2 
							WHEN wyroznik LIKE "PP" THEN 3 
							WHEN wyroznik LIKE "%OPA%" THEN 18 
							WHEN wyroznik LIKE "M" THEN 19 
							WHEN wyroznik LIKE "R" THEN 20 
							ELSE 10 END'
		  ELSE '0' END;

-- 		  SET @rodzaj = (SELECT rodzaj FROM zmng where GUID = _GUID);
		  
		  SET _zaliczka = 
				CASE WHEN @session.globals.Owner IN ('PBUCH') AND @rodzaj IN (27,52) THEN 'T.wyroznik <> "ZAL"'
						 WHEN @session.globals.Owner IN ('PLISZKA') AND @rodzaj IN (27,52) AND _scenario = 'STZTMGZM_PROFORMA' THEN '(T.usluga <> 8)' 
						 WHEN @session.globals.Owner IN ('HYDROMEGA') AND @rodzaj IN (27) AND _scenario = 'STZTMGZM_PROFORMA_ZALICZKOWA1' THEN '(T.usluga = 8 and P.wartnet > 0)'

						 WHEN @session.globals.Owner IN ('HYDROMEGA') AND @rodzaj IN (27) AND _scenario = 'STZTMGZM_PROFORMA' THEN '(NOT (T.usluga = 8 and P.zrealizowano = P.ilosc))'

						 WHEN @session.globals.Owner IN ('MAXFORM') AND @rodzaj IN (27) AND _scenario IN ('STZTMGZM_PROFORMA_ZALICZKOWA1','STZTMGZM_PROFORMA_ZALICZKOWA2') 
									THEN '(T.usluga = 8 and P.wartnet > 0)'
						 WHEN @session.globals.Owner IN ('HYDROMEGA') AND @rodzaj IN (27) AND _scenario IN 
							('STZTMGZM_ZAMOWIENIEMI','STZTMGZM_ZAMOWIENIEMI_EN', 'STZTMGZM_ZAMOWIENIE', 'STZTMGZM_ZAMOWIENIE_ZLEC') THEN '(T.usluga not in (8,9))'
						WHEN @session.globals.Owner IN ('HYDROMEGA') AND @rodzaj IN (27) AND _scenario IN 
							('STZTMGZM_PROFORMA_ZALICZKOWA2') THEN '(T.usluga not in (8,9) AND NOT (T.usluga=1 AND T.wyroznik = "CER") )'
						WHEN @session.globals.Owner IN ('KONKOL') AND _scenario IN ('STZTMGZM_ZAMOWIENIE_WZ','STZTMGZM_ZAMOWIENIE_ZM') THEN 'P.ilosc > 0'

						WHEN @session.globals.Owner IN ('SIMEX') AND _scenario IN ('FAKTURA_ZALICZKOWA') THEN '(T.usluga not in (8,9))'

						ELSE TRUE END;
/*		  
		  SET _zaliczka = IF(@session.globals.Owner IN ('PBUCH') AND @rodzaj IN (27,52),'T.wyroznik <> "ZAL"',TRUE);
		  SET _zaliczka = IF(@session.globals.Owner IN ('HYDROMEGA') AND @rodzaj IN (27) AND _Param_A ='STZTMGZM_ZAMOWIENIE_ZLEC' ,'T.symbol NOT LIKE "%zaliczka%"',TRUE);
*/		  
		  SET _dorealizacji = IF(@session.globals.Owner IN ('AXIS','IZOHAN') AND @rodzaj IN (27,52) AND _scenario ='STZTMGZM_ZAMOWIENIE_DZR' ,'NOT (P.zrealizowano = P.ilosc)',TRUE);
		  
		  SET _group_by = 
				CASE WHEN @session.globals.Owner IN ('HYDROMEGA') THEN 'GROUP BY  P.idntowr, P.cenanet, P.rabat , P.idnvat, P.terminrealizacji'
					ELSE 'GROUP BY P.idntowr, P.cenanet, P.rabat , P.idnvat' 
				END;
		  
		  SET _cp = (SELECT ValueI FROM IReg WHERE idkey='CenyPrecision' LIMIT 1);
		  SET @test = _cp;

			SET _SQLText =	REPLACE(_SQLText, '#GUID#', _GUID);
			SET _SQLText =	REPLACE(_SQLText, '#nr#', '');
			SET _SQLText =	REPLACE(_SQLText, '#LANG#', IFNULL((SELECT lang_id FROM zmng WHERE guid=_GUID limit 1),'pl'));

			IF _scenario IN ('STZTMGZM_ZAMOWIENIE_WZ','STZTMGZM_ZAMOWIENIE_ZM') THEN
				SET _SQLText =	REPLACE(_SQLText, '#transza#', ' >= 0');
			ELSE
				SET _SQLText =	REPLACE(_SQLText, '#transza#', ' = 0');
			END IF;
			-- warunek dla scenariusza - chodzi o to, zeby wydruk wyszedl niezaleznie od transzy, 
			-- ktora tutaj jest na sztywno podawana w wywolaniu procedury diabli wiedza czemu
			SET _SQLText =	REPLACE(_SQLText, '#transza_zamow#', IF(IFNULL(_Param_B,'')<>'' AND _scenario NOT IN ('STZTMGZM_ZAMOWIENIE_WZ','STZTMGZM_ZAMOWIENIE_ZM')
																,concat(' and P.transza_zamow = ',IFNULL(_Param_B,0)),''));
			SET _SQLText =	REPLACE(_SQLText, '#lp2#', _lp2);
			SET _SQLText =	REPLACE(_SQLText, '#zaliczka#', _zaliczka);
			SET _SQLText =	REPLACE(_SQLText, '#dorealizacji#', _dorealizacji);
			SET _SQLText =	REPLACE(_SQLText, '#rok#', ifnull(@session.FK.AktRokObrach, year(current_date)));
			SET _SQLText =	REPLACE(_SQLText, '#GROUP_BY#', _group_by);
			SET _SQLText =	REPLACE(_SQLText, '#cp#', _cp);
			
			
			-- ilosc do realizacji na zamowieniu
			SET _SQLText =	REPLACE(_SQLText, '#ilosc#', 
				  CASE WHEN @session.globals.Owner IN ('AXIS','IZOHAN') AND @rodzaj IN (27,52) AND _scenario ='STZTMGZM_ZAMOWIENIE_DZR' THEN 'P.ilosc - P.zrealizowano'
						 ELSE 'P.ilosc' END
			);		

			-- sortowanie i limity (limit dla Maxformu)
			SET _SQLText = REPLACE(_SQLText, '#ORDER#', 
				CASE WHEN @session.globals.Owner = 'KONKOL' AND _scenario IN ('STZTMGZM_ZAMOWIENIE_WZ','STZTMGZM_ZAMOWIENIE_ZM') THEN 'ORDER BY towrsymb'
						 WHEN @session.globals.Owner IN ('IZOHAN') THEN 'ORDER BY transza_zamow, lp2, P.Lp'
						 
						 WHEN @session.globals.Owner IN ('MAXFORM') AND @rodzaj IN (27) AND _scenario = 'STZTMGZM_PROFORMA_ZALICZKOWA2' THEN 'ORDER BY P.Lp LIMIT 1'
						 
						 WHEN @session.globals.Owner IN ('BYSEWO') AND _scenario IN ('STZTMGZM_PROFORMA') THEN 'ORDER BY P.idn'

						 WHEN _Param_D <> '' THEN CONCAT('ORDER BY ',_Param_D)
						 WHEN _Param_D = '' THEN 'ORDER BY P.transza_zamow, P.Lp'
                END
			);		
			
			
			set @nowy_naglowek = 'nie';
			IF _zaliczka <> true or _dorealizacji <> true then
				drop table if exists temp_poz01;
				set _SQLText2 = concat('create temporary table temp_poz01 ', _SQLText);
				CALL _ExecuteCmd(_SQLText2, @Error);
				set @nowy_naglowek = 'tak';
				SET @_SQLText2 =	_SQLText2;
			end if;
			
			SET @_SQLText =	_SQLText;
 			CALL _ExecuteCmd(_SQLText, @Error);

/*
		PREPARE stmt from @_SQLText;
		EXECUTE stmt;
		DEALLOCATE PREPARE stmt;
*/		
			
		END IF; -- _MODE = 'ZM_PO_DEFAULT'
		
	
	
	-- to ma być tabelka vat
IF _MODE = 'ZM_NG_VAT' THEN 

	if IFNULL(@nowy_naglowek,'') = 'tak' then

		select t.idnvat as idvat, _Rnd2(sum(wartnet)) as netto, _Rnd2(sum(wartvat)) as vat, _Rnd2(sum(wartbrt)) as brutto, 
			_Rnd2(sum(wartnetwal)) as nettowal, _Rnd2(sum(bruttowal)-sum(wartnetwal)) as vatwal, _Rnd2(sum(bruttowal)) as bruttowal,
			v.name as name, v.shortname as idnVatStr, v.value as stawka
		from temp_poz01 t 
		inner join v_erp_vat v ON v.id = t.idnvat
		group by t.idnvat;

	else
		SELECT n.IdVat, n.Netto, n.Vat, n.Brutto, n.NettoWal, n.VatWal, n.BruttoWal, 
					v.name as name, v.shortname as idnVatStr, v.value as stawka
		FROM zmng_vat n
		INNER JOIN v_erp_vat v ON v.id = n.idvat WHERE n.idnoper = _GUID
		HAVING 
			CASE WHEN @session.globals.Owner IN ('BALTIMA') AND @rodzaj IN (27,52) 
				THEN IdVat <> 2 -- wylaczenie pozycji zerowych na proformie
			ELSE TRUE END;
	end if;

END IF;


-- to ma być dekretka
IF _MODE = 'ZM_NG_DEKRETKA' THEN 

select 'dekretka' as dekretka;

END IF;

-- zaleglosci kontrahenta
IF _MODE = 'ZM_NG_ZALEGLOSCI' THEN 

select 'zaleglosci' as zaleglosci;


END IF;


-- specyfikacja 1
-- SET @session.globals.Owner = 'SECURITY';
-- CALL fr_ht_ZM2('ZM_NG_SPEC1', '{199E95E4-06F2-41DA-B33E-3060F5CC7493}', 'STZTMGZM_UMOWY','',0,'','','','');
IF _MODE = 'ZM_NG_SPEC1' THEN 

	SET @rodzaj = (SELECT rodzaj FROM zmng where GUID = _GUID);

	IF @session.globals.Owner IN ('HYDROMEGA') AND @rodzaj IN (27) AND _scenario ='STZTMGZM_ZAMOWIENIE_ZLEC' THEN
		SELECT
		0 AS lp,
		o.towrsymb, o.towrnazwa, o.wartnetWal, o.terminrealizacji,
		LEFT(GROUP_CONCAT(n2.nrdokfin),50) AS nrdokfin, 
		LEFT(GROUP_CONCAT(n2.datawystaw),50) AS datawystaw
		FROM zmpo o
		INNER JOIN TowrNg t ON t.GUID = o.idntowr
		INNER JOIN zmng n ON n.GUID = o.idnng
		LEFT JOIN Jednostki j ON j.idn=o.jednostka
		LEFT JOIN oppo o2 ON o2.guidzm = o.guid
		LEFT JOIN opng n2 ON n2.guid = o2.idnoper OR n2.guid = o2.idnoperfin
		WHERE o.idnng = _GUID and t.usluga in (8,9) and o.wartnet > 0
		GROUP BY o.guid

		UNION 
		
		SELECT 
		1 AS lp,
		'Płatność końcowa' AS towrsymb,
		'Płatność końcowa' AS towrnazwa,
		(SELECT SUM(IF(usluga NOT IN (8,9),wartnetwal,0))-SUM(IF(usluga IN (8,9) AND wartnetwal>0 ,wartnetwal,0)) FROM zmpo WHERE idnng = _GUID) AS wartnetWal,
		n.terminrealizacji_plan,
		LEFT(GROUP_CONCAT(DISTINCT n2.nrdokfin),50) AS nrdokfin, 
		LEFT(GROUP_CONCAT(DISTINCT IF(n2.rodzaj<>10,n2.datawystaw,NULL)),50) AS datawystaw
		FROM zmpo o
		INNER JOIN TowrNg t ON t.GUID = o.idntowr
		INNER JOIN zmng n ON n.GUID = o.idnng
		LEFT JOIN Jednostki j ON j.idn=o.jednostka
		LEFT JOIN oppo o2 ON o2.guidzm = o.guid
		LEFT JOIN opng n2 ON n2.guid = o2.idnoper OR n2.guid = o2.idnoperfin
		WHERE o.idnng = _GUID AND t.usluga IN (0,1) AND o.wartnet > 0
		GROUP BY o.guid
		ORDER BY lp, terminrealizacji;  

		-- opakowania na wydruku WZ z zamowienia
	ELSEIF @session.globals.Owner IN ('KONKOL') AND @rodzaj IN (27) AND _scenario ='STZTMGZM_ZAMOWIENIE_WZ' THEN
		SELECT t.nazwa,o.ilosc 
			FROM zmpo o,TowrNg t 
			WHERE o.ilosc>0 AND o.idntowr=t.guid AND t.wyroznik='O' AND o.wartnet=0
			AND o.idnng = _GUID;

	ELSEIF @session.globals.Owner IN ('SECURITY') AND @rodzaj IN (27) AND _scenario ='STZTMGZM_UMOWY2' THEN
		SET _kontrGUID = (SELECT kontrGUID FROM zmng where GUID = _GUID);

		SELECT 'ZM_NG_SPEC1' AS ZM_NG_SPEC1,
			n.nrzamw, k.nazwa as kontrah_nazwa,
			ean.symbol as obiekt_symbol,
			ean.nazwa as obiekt_nazwa,
			p.towrnazwa as rodzaj_uslugi,
			n.datawystaw as DataUmowy, n.DataZakonczUmowy,
			n.datawplywu AS DataRozpoczecia,
			n.terminrealizacji
			FROM zmpo p
			inner join zmng n on p.idnng = n.guid
			inner join kontrah k ON k.guid = n.kontrGUID
			left join erp_area_nodes ean on ean.guid = p.areaGUID
			WHERE
			n.kontrGUID = _kontrGUID
			order by right(n.nrzamw,4), left(n.nrzamw,6), n.datawystaw;


	ELSE
		select 'spec1' as spec1;
	END IF;


END IF;

/*
specyfikacja 2
SET @session.globals.Owner = 'HYDROMEGA';
CALL fr_ht_ZM2('ZM_NG_SPEC2', '{D27C2D86-A8E2-423F-9CB9-92181655BEF6}', 'STZTMGZM_ZP4','',0,'','','','');
CALL fr_ht_ZM2('ZM_NG_SPEC2', '{0961CEAA-1A8B-4E30-ABCA-8683DF8BC652}', 'STZTMGZM_ZP3','',0,'','','','');
*/
IF _MODE = 'ZM_NG_SPEC2' THEN 

	SELECT rodzaj, katcol4, lang_id INTO @rodzaj, @katcol4, @lang_id FROM zmng WHERE GUID = _GUID;
	
	IF @session.globals.Owner IN ('HYDROMEGA') AND @rodzaj IN (27) AND _scenario ='STZTMGZM_ZAMOWIENIE_ZLEC' THEN
		SELECT 
			SUM(IF(usluga NOT IN (8,9),wartnetwal,0))-SUM(IF(usluga IN (8,9) and wartnetwal>0 ,wartnetwal,0)) AS platnosc_koncowa
		FROM zmpo WHERE idnng = _GUID;
		
	ELSEIF @session.globals.Owner IN ('HYDROMEGA') AND @rodzaj IN (108) AND _scenario ='STZTMGZM_ZAP' THEN
		SELECT 
			ifnull(ht_Translate_Word(param1,@lang_id),param1) as stanowisko, 
			-- param1 as stanowisko, 
			param2 as email, param3 as mobile, param4 as telefon
		FROM katcols WHERE klucz = @katcol4 AND colnr = 5 AND typ = 0;

		-- specyfikacja warsztatowa
	ELSEIF @session.globals.Owner IN ('HYDROMEGA') AND @rodzaj IN (73) AND _scenario  IN ('STZTMGZM_ZP3') THEN

		drop temporary table if exists tt_zp11;
		CREATE TEMPORARY TABLE tt_zp11 (
			`rcngguid` varchar(38) NOT NULL DEFAULT '',
			`lp` int(11) DEFAULT NULL,
			lp2 int(11) default null,
			key rcngguid(rcngguid)
			);

		insert into tt_zp11 (rcngguid, lp)
		select p.rcngguid, min(p.lp)
		from zmng n
		INNER JOIN zmpo p ON n.guid = p.idnng
		where n.guid = _GUID
		and p.status <> -1 and p.ilosc <> 0
		group by p.rcngguid
		order by p.lp, p.info+0
		;

		set @a = 0;
		update tt_zp11 set lp2 = @a := @a+1;


		drop table if exists tt_zp10;
		create temporary table tt_zp10

		select p.guid, -- p.towrnazwa, p.magtyp,
		p2.ilosc,
        _Rnd2(sum(if(p2.jednostka=8,p2.ilosc,0))) AS suma_tw
		from zmng n
		INNER JOIN zmpo p ON n.guid = p.idnng
		left join rcpo r on r.guid = p.rcpoGUID
		left join rcpo rp on rp.idnng = r.idnng
        left join zmpo p2 on p2.rcpoGUID = rp.guid AND p2.idnng = n.guid
		where n.guid = _GUID
        and p.magtyp = 0
        and p.status <> -1 and p.ilosc <> 0
		group by p.guid
		;

		SELECT SUM(IFNULL(suma_tw,0)) INTO _suma FROM tt_zp10;

		select
		concat('KT ',tt2.lp2) as kt,
		_suma AS suma_kt_tw,
		p.lp as p_lp, p.info+0 as p_info,
		rp.lp as rp_lp,
		p.rcngguid, p.rcpoguid, rp.idnng, p.magtyp,
		p.ilosc, p.towrnazwa, p.towrsymb,
		tt.suma_tw,
		t.symbol, t.nazwa,
		j.nazwa as jednostkaStr,
		p.jednostka,
		if(p.jednostka=8, rp.tpz, j.nazwa) as tpz2,
		if(p.jednostka=8, rp.ilosc, p.ilosc) as tj,
		-- if(p.jednostka=8, p.ilosc, '') as tw,
		p.ilosc AS tw,
		-- if(p.jednostka=8, 'tpz', 'jm') as tpz2_opis,
		-- if(p.jednostka=8, 'tj', 'ilość') as tj_opis,
		-- if(p.jednostka=8, 'tw', '') as tw_opis,
		rp.*
		-- p.*
		from zmng n
		INNER JOIN zmpo p ON n.guid = p.idnng
		INNER join tt_zp11 tt2 ON tt2.rcngguid = p.rcngguid
		LEFT join tt_zp10 tt ON tt.guid = p.guid
		left join rcpo rp on rp.guid = p.rcpoGUID
		inner join TowrNg t on t.guid = rp.idntowr
		inner join Jednostki j ON j.idn = rp.jednostka
		where n.guid = _GUID
		and p.status <> -1 and p.ilosc <> 0
		order by tt2.lp2, p.magtyp, if(tt2.lp2=1, rp.typ_zasobu, rp.lp), p.info+0
		;

		UPDATE zmpo p, tt_zp11 tt2
		SET p.idnfazy = tt2.lp2
		WHERE p.idnng = _GUID AND tt2.rcngguid = p.rcngguid;

		-- drop table if exists tt_zp10;
		-- drop table if exists tt_zp11;

			-- karta technologiczna
	ELSEIF @session.globals.Owner IN ('HYDROMEGA') AND @rodzaj IN (73) AND _scenario  IN ('STZTMGZM_ZP4') THEN

		drop temporary table if exists tt_zp11;
		CREATE TEMPORARY TABLE tt_zp11 (
			`rcngguid` varchar(38) NOT NULL DEFAULT '',
			`lp` int(11) DEFAULT NULL,
			lp2 int(11) default null,
			key rcngguid(rcngguid)
			);

		insert into tt_zp11 (rcngguid, lp)
		select p.rcngguid, min(p.lp)
		from zmng n
		INNER JOIN zmpo p ON n.guid = p.idnng
		where n.guid = _GUID
		and p.status <> -1 and p.ilosc <> 0
		group by p.rcngguid
		order by p.lp
		;

		set @a = 0;
		update tt_zp11 set lp2 = @a := @a+1;


		select
		concat('KT ',tt2.lp2) as kt,
		p.lp as p_lp, p.info+0 as p_info,
		rp.lp as rp_lp,
		p.guid,
		rp.idnng, p.magtyp, p.usluga, p.jednostka, p.info, p.info2, p.info3, p.info4, p.uwagi,
		p.ilosc, p.towrnazwa, p.towrsymb,
		if(IFNULL(t.opis,'') <> '', t.opis, p.towrsymb) as rysunek,
		t.symbol, t.nazwa,
		j.nazwa as jednostkaStr,
		if(p.jednostka=8, rp.tpz, j.nazwa) as tpz2,
		-- if(p.jednostka=8, rp.ilosc, p.ilosc) as tj,
		rp.ilosc as tj,
		-- if(p.jednostka=8, p.ilosc, '') as tw,
		p.ilosc as tw,
		if(p.jednostka=8, p.ilosc, 0) as tw2,
		-- if(p.jednostka=8, 'tpz', 'jm') as tpz2_opis,
		-- if(p.jednostka=8, 'tj', 'ilość') as tj_opis,
		-- if(p.jednostka=8, 'tw', '') as tw_opis,
		rp.*
		-- p.*
		from zmng n
		INNER JOIN zmpo p ON n.guid = p.idnng
		INNER join tt_zp11 tt2 ON tt2.rcngguid = p.rcngguid
		-- LEFT join tt_zp10 tt ON tt.guid = p.guid
		left join rcpo rp on rp.guid = p.rcpoGUID
		inner join TowrNg t on t.guid = rp.idntowr
		inner join Jednostki j ON j.idn = rp.jednostka
		where n.guid = _GUID
		and p.status <> -1 and p.ilosc <> 0
		order by tt2.lp2, if(tt2.lp2=1, rp.typ_zasobu, rp.lp), p.info+0
		;


		UPDATE zmpo p, tt_zp11 tt2
		SET p.idnfazy = tt2.lp2
		WHERE p.idnng = _GUID AND tt2.rcngguid = p.rcngguid;


		-- drop table if exists tt_zp11;

	ELSE
		select 'spec2' as spec2;
	END IF;



END IF;


-- specyfikacja 3  test RG+DB
IF _MODE = 'ZM_NG_SPEC3' THEN 

	SELECT _Get_GUID_xxx('IdnOper<-IdnNg', _GUID, '', '', '', '', '') INTO @GUID_OPER;

	CASE
	WHEN @session.globals.Owner IN ('KONKOL') AND _scenario ='STZTMGZM_ZAMOWIENIE_WZ' THEN
		SELECT idn, datawystaw FROM opng WHERE GUID = @GUID_OPER;
	ELSE
		select 'spec3' as spec3;
	END CASE;

END IF;


	
	
END$$

DELIMITER ;
