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

DROP PROCEDURE IF EXISTS `fr_ht_ZM_Tool`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `fr_ht_ZM_Tool`(
	IN _MODE VARCHAR(150),		-- INT,
	IN _GUID VARCHAR(38),
	IN _CheckGUID VARCHAR(38),
	IN _CheckValue INTEGER,	
	IN _TerminRealizacjiOd DATE,
	IN _TerminRealizacjiDo DATE,
	IN _Param_A VARCHAR(50),
	IN _Param_B VARCHAR(50),
	IN _Param_C VARCHAR(50),
	IN _Param_D VARCHAR(50)
)
BEGIN
	/*	
		
		_MODE oznacza
		0	- 	Kreuj inicjalne tabele
				
		10	- 	Zwroc select z akwizytorami
		11	- 	Zaznacz akwizytora
		12	- 	Zwroc select z akwizytorami zaznaczonymi

		20	- 	Zwroc select jako - wybor sposrod wszystkich zamowien 	
		21	- 	Zaznacz zamowienie
		
		30	-	Zwroc select jako - wybor tylko sposrod zamowien dla zaznaczonych akwizytorow	
		31	- 	Zaznacz zamowienie
		32	- 	Select zamowien zaznaczonych
		33	- 	Select zamowien dla konkretnego Akwizytora _Param_B !!!!!!!!!!!!!!!!!!!!!!!
		
	--	Dotyczy paskow ze zlecen oraz krojczego	
		50	-	Zwroc select jako - wybor KatColi
		51	- 	Zaznacz KatCole
		52	- 	Usun z t_prn_zmpo te pozycje ktore nie spelniaja KatCol-i
		53	- 	Ustaw status w zmpo na 32 czyli wydrukowane
		
	--	Dotyczy transzy
		60	-	Zwroc select jako - transze
		
		
	--	Dotyczy Planu Prodiukcji np. Karty zaladunkowe
		200	-	Kreuj inicjalne tabele
		210	-	Zwroc select z Transzami pole `wyroznik_zlecenia`
		211	-	Zaznacz Transze `wyroznik_zlecenia`
		230	-	Przygotuj do wydruku (pole Delete)
		240	-	Zwroc select z akwizytorami MAGAZYNY
		241	-	Zaznacz akwizytora MAGAZYN
		242	-	Pokaz akwizytora MAGAZYN tylko zaczekowane

		_Symbol oznacza
		KROJ	- 	dla krojczego
		
	*/
	IF _MODE = '0' THEN
	--	Przygotowanie tabeli zamowien `t_prn_zmpo`
		DROP TEMPORARY TABLE IF EXISTS `t_prn_zmpo`;
		CREATE TEMPORARY TABLE `t_prn_zmpo` LIKE `zmpo`
		;
		/* jmam 23 V 2026 (juz jest pole w zmpo i oppo) ALTER TABLE `t_prn_zmpo`
			ADD COLUMN Deleted INT DEFAULT 0
		;*/
		SET @._Param_A := _Param_A;
		IF _Param_A = '' THEN
                        SET @._Param_A := CONCAT_WS('/', @._Param_A, '0.etap');
			IF _GUID != '' THEN
                        SET @._Param_A := CONCAT_WS('/', @._Param_A, '1.a');
				INSERT IGNORE INTO `t_prn_zmpo`
					SELECT
						p.* -- , _VarINT(0)
					FROM `zmpo` p
					INNER JOIN `zmng` n ON n.GUID = p.IdnNG
					WHERE
						(n.GUID = _GUID)   
						AND p.opakowanie_zwrotne = 0						
				;	
			ELSE
                        SET @._Param_A := CONCAT_WS('/', @._Param_A, '1.b');
				INSERT IGNORE INTO `t_prn_zmpo`
					SELECT
						p.* -- , _VarINT(0)
					FROM `zmpo` p
					INNER JOIN `zmng` n ON n.GUID = p.IdnNG
					WHERE
						(p.TerminRealizacji between _TerminRealizacjiOd and _TerminRealizacjiDo)
						-- AND (n.terminrealizacji = _TerminRealizacjiOd)
						AND p.Rodzaj = 27 
						AND p.opakowanie_zwrotne = 0						
						AND IF(_Param_C = '', TRUE, p.Ilosc > p.zrealizowano) 
						AND IF(_Param_A = '', TRUE, n.akwizytorGUID = _Param_A)   
						AND IF(_Param_B = '', TRUE, n.transza_zamow = _Param_B) 	
				;	
			END IF;
                        SET @._Param_A := CONCAT_WS('/', @._Param_A, '2');
			
			DROP TEMPORARY TABLE IF EXISTS `t_prn_zmng`;
			CREATE TEMPORARY TABLE `t_prn_zmng` 
				SELECT
					DISTINCT _VarINT(1) AS Checked, n.*
				FROM `t_prn_zmpo` p
				INNER JOIN `zmng` n ON n.GUID = p.IdnNG
				WHERE	
					p.Deleted = 0
			;
			ALTER TABLE t_prn_zmng ADD UNIQUE (GUID),ADD INDEX (akwizytorguid),ADD INDEX (kontrguid);
			
			DROP TEMPORARY TABLE IF EXISTS `t_prn_zmng_akwizytor`;
			CREATE TEMPORARY TABLE `t_prn_zmng_akwizytor` 
				SELECT
					_VarINT(1) AS Checked, 
					k.GUID, k.Symbol, k.Nazwa, 
					COUNT(*) AS Zamowien
				FROM `t_prn_zmng` n
				LEFT JOIN kontrah k ON k.GUID = n.akwizytorGUID
				GROUP BY k.GUID
			;
			ALTER TABLE t_prn_zmng_akwizytor ADD INDEX (GUID);
			
			DROP TEMPORARY TABLE IF EXISTS `t_prn_zmng_TowrNg`;
			
			UPDATE `t_prn_zmng` n
			SET
				n.akwizytorGUID = '0'
			WHERE	
				IFNULL(n.akwizytorGUID, '') = ''
			;
			UPDATE `t_prn_zmng_akwizytor` zma
			SET
				zma.GUID = '0',
				zma.Symbol = ' n/n',
				zma.Nazwa = 'Nie okreslony'
			WHERE	
				zma.GUID IS NULL 
			;
		END IF; 	-- _Param_A = ''
        SET @._Param_A := CONCAT_WS('/', @._Param_A, '2.etap');
		
		IF _Param_A != '' THEN
			IF _Param_A = 'PASKI' THEN
				INSERT IGNORE INTO `t_prn_zmpo`
					SELECT
						p.* -- , _VarINT(0)
					FROM `zmpo` p
					WHERE 
						p.TerminRealizacji = _TerminRealizacjiOd
						AND p.rodzaj = 73 
						AND p.status = 0
						AND IFNULL(p.zamowienieGUID, '') != ''
				;	
		
			END IF; 	-- _Param_A = 'PASKI'
		END IF; 	-- _Param_A != ''
        SET @._Param_A := CONCAT_WS('/', @._Param_A, '3.etap');
		
	END IF; 	-- _MODE = 0	

	IF _MODE = '2' THEN
		UPDATE `t_prn_zmpo` zl 
		SET
			zl.Deleted = IF(zl.transza_zamow = _CheckValue, 0, 1)
		;	
	END IF; 	-- _MODE = 2	
	
	IF _MODE = '10' THEN
		SELECT
			zma.*
		FROM `t_prn_zmng_akwizytor` zma
		ORDER BY zma.Symbol
		;
	END IF; 	-- _MODE = 10	
	
	IF _MODE = '11' THEN
		UPDATE `t_prn_zmng_akwizytor` 
		SET
			Checked = _CheckValue
		WHERE
			GUID = _CheckGUID
		;	
	END IF; 	-- _MODE = 11		
	
	IF _MODE = '12' THEN
		SELECT
			zma.*
		FROM `t_prn_zmng_akwizytor` zma
		WHERE 
			zma.Checked = 1
		ORDER BY zma.Symbol
		;
	END IF; 	-- _MODE = 12	
	
	IF _MODE IN ('20','30') THEN
		IF _MODE = '30' THEN
		--	wybor tylko sposrod zamowien dla zaznaczonych akwizytorow	
			UPDATE `t_prn_zmng` ng 
			SET
				ng.Checked = 1
			;
				
			UPDATE `t_prn_zmng` ng 
			SET
				ng.Checked = 0
			WHERE
				NOT ng.akwizytorGUID IN (SELECT GUID FROM `t_prn_zmng_akwizytor` za WHERE za.Checked = 1)
			;	
			SELECT
				n.Checked, n.GUID,
				n.NrZamw, n.KontrGUID, 
				k.Symbol AS KontrSymbol, k.Nazwa AS KontrNazwa
			FROM `t_prn_zmng` n
			INNER JOIN `kontrah` k ON k.GUID = n.KontrGUID
			INNER JOIN `t_prn_zmng_akwizytor` za ON za.GUID = n.akwizytorGUID and (za.checked = 1) 
			WHERE 
				n.Checked = 1
			ORDER BY n.NrZamw
			;
		ELSE	
		--	wybor sposrod wszystkich zamowien 	
			SELECT
				n.Checked, n.GUID,
				n.NrZamw, n.KontrGUID, 
				k.Symbol AS KontrSymbol, k.Nazwa AS KontrNazwa
			FROM `t_prn_zmng` n
			INNER JOIN `kontrah` k ON k.GUID = n.KontrGUID
			ORDER BY n.NrZamw
			;
		END IF;
		
	END IF; 	-- _MODE IN (20,30)

	IF _MODE IN ('21','31') THEN
		UPDATE `t_prn_zmng` 
		SET
			Checked = _CheckValue
		WHERE
			GUID = _CheckGUID
		;	
	END IF; 	-- _MODE IN (21,31)

	IF _MODE = '32' THEN
		SELECT
			n.Checked, n.GUID,
			n.NrZamw, n.KontrGUID, 
			k.Symbol AS KontrSymbol, k.Nazwa AS KontrNazwa
		FROM `t_prn_zmng` n
		INNER JOIN `kontrah` k ON k.GUID = n.KontrGUID
		WHERE
			n.Checked = 1
		ORDER BY n.NrZamw
		;
	END IF; 	-- _MODE = 32	
	
	IF _MODE = '33' THEN
	--	Select zamowien dla konkretnego Akwizytora _Param_B !!!!!!!!!!!!!!!!!!!!!!!
		SELECT
			n.Checked, n.GUID,
			n.NrZamw, n.KontrGUID, 
			k.Symbol AS KontrSymbol, k.Nazwa AS KontrNazwa
		FROM `t_prn_zmng` n
		INNER JOIN `kontrah` k ON k.GUID = n.KontrGUID
		WHERE
			n.akwizytorGUID = _Param_B
		ORDER BY n.NrZamw
		;
	END IF; 	-- _MODE = 33	
	
	IF _MODE = '50' THEN
	--	Zwroc select jako - wybor KatColi
		DROP TEMPORARY TABLE IF EXISTS t_prn_zlec_katcols;
		CREATE TEMPORARY TABLE t_prn_zlec_katcols 
		SELECT	_VarINT(0) AS Checked, klucz, Valuex FROM v_ktw0;
-- nadmiarowo, dla modów nie używających katcoli towarów
		DROP TEMPORARY TABLE IF EXISTS t_prn_tow_katcols;
		CREATE TEMPORARY TABLE t_prn_tow_katcols 
		SELECT	_VarINT(0) AS Checked, klucz, Valuex FROM v_ktw3;

		SELECT * FROM t_prn_zlec_katcols;
	END IF; 	-- _MODE = 50	

	IF _MODE = '51' THEN
		UPDATE t_prn_zlec_katcols SET Checked = _CheckValue WHERE klucz = _CheckGUID;	
	END IF; 	-- _MODE = 51	

	IF _MODE = '50tw' THEN
		-- DROP TEMPORARY TABLE IF EXISTS t_prn_tow_katcols;
		-- CREATE TEMPORARY TABLE t_prn_tow_katcols 
		-- SELECT	_VarINT(0) AS Checked, klucz, Valuex FROM v_ktw3;
		SELECT * FROM t_prn_tow_katcols;
	END IF; 	-- _MODE = 50tw	

	IF _MODE = '51tw' THEN
		UPDATE t_prn_tow_katcols SET Checked = _CheckValue WHERE klucz = _CheckGUID;	
	END IF; 	-- _MODE = 51tw	

	IF _MODE = '52tw' THEN
	--	Usun z t_prn_zmpo te pozycje ktore nie spelniaja KatCol-i
	-- TODO: - efektem ubocznym jest koniecznośc cofnięcia się do transzy i ponownego wygenerowania zest. danych
/*
to nie działa dobrze przy cofaniu
		UPDATE t_prn_zmpo SET Deleted=1
		WHERE kat8 NOT IN (SELECT klucz FROM t_prn_tow_katcols WHERE Checked=1);
*/

		DELETE zl FROM t_prn_zmpo zl WHERE zl.kat8 NOT IN (SELECT klucz FROM t_prn_tow_katcols WHERE Checked=1);
	END IF; 	-- _MODE = 52tw	


	IF _MODE = '52' THEN
	--	Usun z t_prn_zmpo te pozycje ktore nie spelniaja KatCol-i
		DROP TEMPORARY TABLE IF EXISTS t_prn_zlec_zmpo_katcols;
		CREATE TEMPORARY TABLE t_prn_zlec_zmpo_katcols 
			SELECT
				GUID
			FROM t_prn_zmpo zl
			INNER JOIN t_prn_zlec_katcols kc ON kc.Klucz = zl.kat5 AND kc.Checked = 1	
		;
	
		UPDATE t_prn_zmpo zl 
		LEFT JOIN t_prn_zlec_katcols kc ON kc.Klucz = zl.kat5 AND kc.Checked = 1	
		SET
		--	zl.Deleted = IF(kc.klucz IS NULL, 1, zl.Deleted)
			zl.Deleted = IF(kc.klucz IS NULL, 1, 0)
		;	
		DROP TEMPORARY TABLE IF EXISTS t_prn_zlec_zmpo_katcols;
			
	END IF; 	-- _MODE = 52	


	IF _MODE = '53' THEN
	-- 	Ustaw status w zmpo na 32 czyli wydrukowane
		UPDATE `zmpo` z, `t_prn_zmpo` z2
		SET
			z.Status = 32
		WHERE
			z.GUID = z2.GUID
		;	
	END IF; 	-- _MODE = 53	

	IF _MODE = '60' THEN
	-- 	Zwroc select jako - transze
		SELECT
			_VarINT(0) AS Checked, 
			tr.*
		FROM slowniki_pierwotne tr
		WHERE
			tr.Slownik_GUID = 'ZM_TRANSZE'
		;	
	END IF; 	-- _MODE = 60	

	
	IF _MODE = '200' THEN
	--	Dotyczy Planu Prodiukcji np. Karty zaladunkowe
		DROP TEMPORARY TABLE IF EXISTS `t_prn_planprodpo`;
		CREATE TEMPORARY TABLE `t_prn_planprodpo` 
			SELECT  
				plPo.katcol as katcol, 
				kc.valuex as Grupa_towaru,  
				M.Opis As Magazyn,  
				plPo.domagazynu,
				plPo.wyroznik_zlecenia,
				plPo.terminrealizacji, plNg.datawystaw, plPo.towrsymb, 
				Concat(plPo.towrsymb, '' '', plPo.towrnazwa) AS Symbol_Nazwa,  
				plPo.ilosc, plPo.Drugi_Rzut, plPo.ilosc_pre, 
				plPo.RecepturaGUID,
				-- J.Nazwa as JednostkaStr,  
				-- JJ.Nazwa as JednostkaPomStr, 
				-- T.przelicznik_l, T.przelicznik_m, 
				plPo.towrnazwa, 
				plPo.idnTowr, plPo.jednostka, plPo.osobaguid, 
				CONCAT(wyroznik_zlecenia, ' ', IFNULL(tr.DisplayValue, '')) AS Transza, 	
				_VarINT(0) AS Deleted	 
			FROM  `planprodng` plNg 
			INNER JOIN `planprodpo`  plPo ON plPo.idnNG = plNg.GUID 
			LEFT JOIN `katcols` kc ON kc.typ = 1 and kc.colnr = 1 and kc.klucz = plPo.katcol  
			LEFT JOIN `Magazyny` M ON M.idnmagazynu = plPo.domagazynu
			LEFT JOIN `slowniki_pierwotne` tr ON tr.Value = plPo.wyroznik_zlecenia AND tr.Slownik_GUID = 'ZM_TRANSZE'
			WHERE
				plNg.GUID = _GUID
		;
	END IF; 	-- _MODE = 200	
	
	IF _MODE = '210' THEN
	--	Zwroc select z Transzami pole `wyroznik_zlecenia`
		DROP TEMPORARY TABLE IF EXISTS `t_prn_planprod_Transze`;
		CREATE TEMPORARY TABLE `t_prn_planprod_Transze` 
			SELECT  
				DISTINCT plPo.wyroznik_zlecenia,
				_VarINT(0) AS Checked,
				CONCAT(wyroznik_zlecenia, ' ', IFNULL(tr.DisplayValue, '')) AS DisplayValue 	
			FROM  t_prn_planprodpo  plPo
			LEFT JOIN slowniki_pierwotne tr ON tr.Value = plPo.wyroznik_zlecenia AND tr.Slownik_GUID = 'ZM_TRANSZE'
			ORDER BY plPo.domagazynu
		;	
		SELECT
			*
		FROM `t_prn_planprod_Transze`
		;
	END IF; 	-- _MODE = 210	

	IF _MODE = '211' THEN
	--	Zaznacz Transze `wyroznik_zlecenia`
		UPDATE `t_prn_planprod_Transze` 
		SET
			Checked = _CheckValue
		WHERE
			wyroznik_zlecenia = _CheckGUID
		;	
	END IF; 	-- _MODE = 211	
	
	IF _MODE = '230' THEN
	--	Przygotuj do wydruku (pole Delete)
		UPDATE `t_prn_planprodpo` plPo
		SET
			plPo.Deleted = 0
		;	
		UPDATE `t_prn_planprodpo` plPo 
		LEFT JOIN `t_prn_zlec_katcols` kc ON kc.klucz = plPo.katcol AND kc.Checked = 1		
		SET
			plPo.Deleted = IF(kc.klucz IS NULL, 1, plPo.Deleted)
		;	
		
		UPDATE `t_prn_planprodpo` plPo 
		LEFT JOIN `t_prn_planprod_Transze` tr ON tr.wyroznik_zlecenia = plPo.wyroznik_zlecenia AND tr.Checked = 1		
		SET
			plPo.Deleted = IF(tr.wyroznik_zlecenia IS NULL, 1, plPo.Deleted)
		;	
		
		/*
		WHERE
			NOT (plPo.katcol IN
				(
				SELECT
					kc.klucz
				WHERE	
					kc.klucz = plPo.katcol AND kc.Checked = 1
				)	
			)
		;	
		LEFT JOIN `t_prn_zlec_katcols` kc ON kc.klucz = plPo.katcol AND kc.Checked = 1
		;
		*/	
	END IF; 	-- _MODE = 230	
		
	IF _MODE = '240' THEN
	--	Zwroc select z akwizytorami MAGAZYNY
		DROP TEMPORARY TABLE IF EXISTS `t_prn_planprod_Magazyn`;
		CREATE TEMPORARY TABLE `t_prn_planprod_Magazyn` 
			SELECT  
				DISTINCT plPo.domagazynu AS idnmagazynu,
				plPo.Magazyn,
				_VarINT(1) AS Checked,	 
				_VarINT(0) AS LP,	 
				M.Opis
			FROM  t_prn_planprodpo  plPo
			LEFT JOIN Magazyny M ON plPo.domagazynu = M.IdnMagazynu
			WHERE
				plPo.Deleted = 0
			ORDER BY plPo.domagazynu
		;	
		SELECT
			*
		FROM `t_prn_planprod_Magazyn`
		;
	END IF; 	-- _MODE = 240	

	IF _MODE = '241' THEN
	--	Zaznacz akwizytora MAGAZYN
		UPDATE `t_prn_planprod_Magazyn` 
		SET
			Checked = _CheckValue
		WHERE
			idnmagazynu = _CheckGUID
		;	
	END IF; 	-- _MODE = 241	
	
	IF _MODE = '242' THEN
	--	Pokaz akwizytora MAGAZYN tylko zaczekowane
		SELECT
			*
		FROM `t_prn_planprod_Magazyn`
		WHERE
			Checked = 1
		;	
	END IF; 	-- _MODE = 242	
	
	IF _MODE  = 'ZM.GetListZamowien' THEN
		SELECT 
			*
		FROM t_prn_zmng Ng
		INNER JOIN t_prn_zmpo ZP on ZP.idnNG = Ng.GUID 
		INNER JOIN TowrNg T on T.GUID = ZP.idnTowr 		
		WHERE
			(Ng.akwizytorGUID  in (SELECT GUID FROM `t_prn_zmng_akwizytor` za WHERE za.Checked = 1)) AND
			(T.katcol0 = _Param_B) AND 
			(Ng.transza_zamow = _Param_A) AND
			(Ng.TerminRealizacji between _TerminRealizacjiOd and _TerminRealizacjiDo)
		GROUP BY Ng.GUID	
		;
	END IF; 	-- _MODE  = ZM.GetListZamowien
	IF _MODE  = 'ZM.GetListZamowienKontrah' THEN
		SELECT 
			*
		FROM t_prn_zmng Ng
		INNER JOIN t_prn_zmpo ZP on ZP.idnNG = Ng.GUID 
		INNER JOIN TowrNg T on T.GUID = ZP.idnTowr 		
		WHERE
			-- (Ng.akwizytorGUID  in (SELECT GUID FROM `t_prn_zmng_akwizytor` za WHERE za.Checked = 1)) AND
			(Ng.akwizytorGUID = _Param_B) AND 
			(Ng.transza_zamow = _Param_A) AND
			(Ng.TerminRealizacji between _TerminRealizacjiOd and _TerminRealizacjiDo) 
			AND (T.katcol0  in (select kc1.klucz from `t_prn_zlec_katcols` kc1 WHERE kc1.Checked = 1))
		GROUP BY Ng.GUID	
		;
	END IF; 	-- _MODE  = ZM.GetListZamowien
	IF _MODE = 'ZM.GetTowaryZZamowien' THEN
		SELECT DISTINCT T.GUID, T.Nazwa, T.symbol 
		FROM `t_prn_zmng` N
		INNER JOIN `t_prn_zmpo` P on P.idnNG = N.GUID
		INNER JOIN `TowrNg` T on T.GUID = idntowr 
		group by T.GUID	
		;
	END IF;		-- _MODE = ZM.GetTowaryZZamowien
	IF _MODE = 'ZM.GetTowaryZZamowienChk' THEN
		DROP TEMPORARY TABLE IF EXISTS `t_prn_zmng_TowrNg`;
		CREATE TEMPORARY TABLE t_prn_zmng_TowrNg	
		SELECT DISTINCT _VarINT(0) AS Checked, T.GUID, T.Nazwa, T.symbol 
		FROM `t_prn_zmng` N
		INNER JOIN `t_prn_zmpo` P on P.idnNG = N.GUID
		INNER JOIN `TowrNg` T on T.GUID = idntowr 
		group by T.GUID	
		;
		select * from t_prn_zmng_TowrNg;
	END IF;		-- _MODE = ZM.GetTowaryZZamowienChk
	IF _MODE = 'UpdateTowrNg' THEN
		UPDATE `t_prn_zmng_TowrNg` 
		SET
			Checked = _CheckValue
		WHERE
			GUID = _CheckGUID
		;	
	END IF; 	-- _MODE = UpdateTowrNg			
	
	
END$$

DELIMITER ;

/*
====================================================================================================================================================================================
	NOTATNIK
====================================================================================================================================================================================
I	-	Wolanie
	Istotny jest zakre dat
CALL fr_ht_ZM_Tool(0, '', '', 0, '2009-05-05', '2009-05-05', '', '0', '1', '');
II	-	Wolanie - Akwizytorzy
CALL fr_ht_ZM_Tool(10, '', '', 0, '', '', '', '0', '1', '');
III	-	Wolanie - Zaznacz pojedynczego akwizytora
CALL fr_ht_ZM_Tool(11, '', '??GUID AKWIZ???', 0 LUB 1, '', '', '', '0', '1', '');

IV	-	Wolanie	Zwroc select jako - wybor tylko sposrod zamowien dla zaznaczonych akwizytorow	
CALL fr_ht_ZM_Tool(30, '', '', 0, '', '', '', '0', '1', '');
V	-	Wolanie	Zaznacz zamowienie
CALL fr_ht_ZM_Tool(31, '', '??GUID ZAM???', 0 LUB 1, '', '', '', '0', '1', '');

POTEM WOLANIE innego Call-a do Wydruku (SEBA)  np.
CALL fr_ht_ZM(0, 'ZM_KROJCZY', '', '', '', '', '');
	lub
CALL fr_ht_ZM(0, 'ZM_PAKOWACZ', '', '', '', '', '');
	lub dla zamowienia GUID = '{E8140993-B744-4B98-9720-2C00C50D19A2}' ...
CALL fr_ht_ZM(0, 'ZM_AKWIZYTOR', '{E8140993-B744-4B98-9720-2C00C50D19A2}', '', '', '', '');

SCENARIUSZE
A) 	Wydruk KROJCZY
	I + II + III + IV + V
	Wydruk CALL fr_ht_ZM(0, 'ZM_KROJCZY', ...)
	
B) 	Wydruk PAKOWACZ
	I + II + III + IV + V
	Wydruk CALL fr_ht_ZM(0, 'ZM_PAKOWACZ', ...)
	
C) 	Wydruk dla kierowc�w (ten dotychczasowy)
	I + II + III
	N x 
		Wydruk CALL fr_ht_ZM(0, 'ZM_AKWIZYTOR', GUID, ...)
	
D) 	Wydruk dla kierowc�w jako wskazany dokument GUID
	CALL fr_ht_ZM(-1, '', GUID, ...)
	Wydruk CALL fr_ht_ZM(0, 'ZM_AKWIZYTOR', GUID, ...)

E)	Paski Zlecen
	CALL fr_ht_ZM_Tool(0, '', '', 0, '2009-05-23', '2009-05-23', 'PASKI', '0', '1', '');
	CALL fr_ht_ZM_Tool(50, '', '', 0, '2009-05-05', '2009-05-05', 'PASKI', '0', '1', '');
	Seria 
		CALL fr_ht_ZM_Tool(51, '', '17', 1, '2009-05-05', '2009-05-05', 'PASKI', '0', '1', '');

	CALL fr_ht_ZM_Tool(52, '', '12', 1, '2009-05-05', '2009-05-05', 'PASKI', '0', '1', '');
	

	

	
CALL fr_ht_ZM_Tool(0, '', '', 0, '2009-05-05', '2009-05-05', '', '0', '1', '');
CALL fr_ht_ZM_Tool(0, '', '', 0, '2009-07-11', '2009-08-21', '', '', '', '');

-- Akwizytorzy
CALL fr_ht_ZM_Tool(1, '', '2009-07-11', '2009-08-21', '', '', '', '');
CALL fr_ht_ZM_Tool(2, '', '2009-07-11', '2009-08-21', '{48A706CF-90AE-4C8C-A82E-F6F6A6916228}', '', '', '');

			SELECT
				DISTINCT n.*
			FROM `t_zm_Krojenie_Pakowanie_ZM` p
			INNER JOIN `zmng` n ON n.GUID = p.IdnNG
		;


select * from t_prn_zmng;


		SELECT
			z.IdnTowr, z.Jednostka, z.ID_Przelicznika, 
			COUNT(*) AS Ile, 
			CONCAT(COUNT(*), ' x') AS IleC, 
			_VarStr(ht_przeliczniki_GetText(3, P.Opis, J.Nazwa, 
				z.ilosc_L_do_przeliczen, z.ilosc_M_do_przeliczen, SUM(z.Ilosc), COUNT(*))) As Ilosc3,
			SUM(z.Ilosc) As IloscS, 	
			z.ilosc_L_do_przeliczen, z.ilosc_M_do_przeliczen, 
			z.*
		FROM `t_zm_Krojenie_Pakowanie_ZM` z
		LEFT JOIN `Jednostki` J ON J.IDN = z.Jednostka 
		LEFT JOIN `przeliczniki` P ON P.GUID = z.ID_Przelicznika 
		WHERE
			z.Ilosc > 0
		GROUP BY z.IdnTowr, z.ID_Przelicznika, z.Jednostka, z.ilosc_L_do_przeliczen, z.ilosc_M_do_przeliczen
		ORDER BY z.IdnTowr, z.ID_Przelicznika, z.Jednostka, z.ilosc_L_do_przeliczen, z.ilosc_M_do_przeliczen
		LIMIT 400
		;
	
*/




/*
'SELECT '+
  ' P.GUID, ' +
  ' P.idn, P.Ilosc, N.idn as idnng, '+
  ' M.Opis As MagazynWysylkowy, '+
  ' J.Nazwa As Jednostka, '+
  ' PP.Idn AS KodKreskowy, '+
  ' K.Nazwa, K.Symbol, '+
  ' P.localtime as datapozycji, '+
  ' CONCAT(O.Imiona," ",O.Nazwisko) as osoba, '+
  ' P.TerminRealizacji, '+
  ' P.towrsymb, P.idntowr, '+
  ' CONCAT(IFNULL(P.komentarz,""),"\n", IFNULL(P.uwagi,"")) as komentarz, '+
  ' PP.ilosc_L_do_przeliczen, PP.ilosc_M_do_przeliczen, PRZ.opis as przelicznikOpis, '+
  ' _VarStr(ht_przeliczniki_GetText(3, PRZ.Opis, J2.Nazwa, P.ilosc_L_do_przeliczen, P.ilosc_M_do_przeliczen, (P.Ilosc), 1)) As IloscLicznik, '+
  ' P.uwagi, P.towrnazwa '+
  ' FROM zmpo P '+
  ' INNER JOIN zmpo PP ON PP.GUID = P.zamowienieGUID '+
  ' LEFT JOIN zmng N ON N.GUID = PP.IdnNG '+
  ' LEFT JOIN Jednostki J ON J.idn = P.jednostka '+
  ' LEFT JOIN Jednostki J2 ON J2.idn = PP.jednostka '+
  ' LEFT JOIN Magazyny M ON M.IdnMagazynu = PP.MagazynWys '+
  ' LEFT JOIN kontrah K ON K.GUID = N.KontrGUID '+
  ' LEFT JOIN osoby O on O.idnuser= N.idnuser '+
  ' LEFT JOIN przeliczniki PRZ on PRZ.GUID = PP.id_przelicznika '+
  ' WHERE '+
  ' P.rodzaj = 73 and P.status = 0 '+
  ' and P.TerminRealizacji = %s '+
  ' and P.kat5 in (%s)'; 

 10:29:02CLWydrukZaladunku_KatCols =
 'SELECT ' +
 ' ''1'' AS Checked, klucz, Valuex ' +
 'FROM katcols ' +
 'WHERE ' +
 'colnr=1 and typ=1 ' +
 ' '; 

*/
