 DELIMITER $$


DROP PROCEDURE IF EXISTS `srodki_trwale_tools`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `srodki_trwale_tools`(
	IN _MODE VARCHAR(150),	
	IN _GUID_IDN VARCHAR(38),
	IN _OsobaGUID VARCHAR(38),
	IN _KontrGUID VARCHAR(38),	
	IN _Idn VARCHAR(250),	
	IN _Param_A VARCHAR(50),	
	IN _Param_B VARCHAR(50),
	IN _Param_C VARCHAR(50),	
	IN _Param_D VARCHAR(50)
)
S_srodki_trwale_tools: BEGIN
	IF _MODE LIKE 'ST.%' THEN
	
		    
		
		/* *************************************************************************************************************************************************************
			zwraca  srodek trwaly
			_GUID_IDN - GUID	 
			CALL srodki_trwale_tools('ST.GET.ONE', '_GUID_IDN, '', '', '', '', '', '', '');
		**************************************************************************************************************************************************************/
	 /*   IF _MODE = 'ST.GET.ONE' THEN  -- zastapione przez view
		
	   
		SELECT
			CONCAT(OS.Nazwisko," ",OS.Imiona) AS osobaNazwa, OS.GUID AS osoba, ST.st_grupa,
			 S.nazwa AS status_srodka, ST.data_zalozenia, 
			 ST.st_datalikwidacji, ST.uzytkownikNazwa,
			 ST.st_opis_miejsca, ST.st_klasyfikacja, ST.NumerOT,
			 ST.NumerSeryjny, ST.idn, ST.GUID, ST.st_lp, ST.symbol, ST.nazwa,
			 ST.sww, ST.opis, K.nazwa AS dostawcaNazwa, K.GUID AS dostawca, ST.st_numer_faktury AS faktura_nr,
			 M.idn AS miejsce, M.nazwa AS miejsceNazwa,  R.idn AS rodzaj, R.nazwa AS rodzajNazwa, ST.st_ilosc, ST.st_cena, ST.st_datanabycia, ST.st_datawdrozenia
		FROM
			TowrNg ST 
		LEFT JOIN kontrah K ON K.GUID = ST.uzytkownikGUID  
		LEFT JOIN st_miejsca M ON ST.st_miejsce = M.idn 
		LEFT JOIN st_rodzaje R ON ST.st_rodzaj = R.idn 
		LEFT JOIN st_status S ON ST.st_sprzedany = S.idn 
		LEFT JOIN osoby OS ON OS.GUID=ST.osobaGUID 
		WHERE
			ST.usluga = 5 
		 AND 
			ST.GUID = _GUID_IDN
		ORDER BY
		 ST.symbol
		;	  
	    END IF;	-- IF _MODE = 'ST.GET.ONE'  */
	    
	    IF _MODE = 'ST.TOWR.ALL' THEN
		/* *************************************************************************************************************************************************************
			zwraca towary majace srodek trwaly
			CALL srodki_trwale_tools('ST.TOWR.ALL', '', '', '', '', '', '', '', '');
		**************************************************************************************************************************************************************/
	   
		SELECT			
			 ST.data_zalozenia, ST.st_opis_miejsca, ST.NumerSeryjny, ST.idn, ST.GUID, ST.st_lp, ST.symbol, ST.Nazwa,
			 ST.sww, ST.opis, K.nazwa AS dostawca_nazwa, ST.st_numer_faktury AS faktura_nr,
			 M.nazwa AS miejsce, R.nazwa AS rodzaj
		FROM
			TowrNg ST 
		LEFT JOIN kontrah K ON K.GUID = ST.uzytkownikGUID  
		LEFT JOIN st_miejsca M ON ST.st_miejsce = M.idn 
		LEFT JOIN st_rodzaje R ON ST.st_rodzaj = R.idn 
		WHERE
			ST.usluga = 5 
		GROUP BY
		 ST.GUID 
		ORDER BY
		 ST.symbol
		;	  
	    END IF;	-- IF _MODE = 'ST.TOWR.ALL' 
	    
	    IF _MODE = 'ST.SEARCH.KONTRAH' THEN
		/* *************************************************************************************************************************************************************
			zwraca kontrahentow 	
			_Param_A - query
			_Param_B- czy dostawca		
			CALL srodki_trwale_tools('ST.SEARCH.KONTRAH', ', '', '', '', '_Param_A', '_Param_B', '', '');
		**************************************************************************************************************************************************************/
	   
		SELECT 
			guid,
			nazwa,
			symbol
		FROM 
			kontrah 
		WHERE
			TRIM(nazwa) LIKE TRIM(CONCAT('%', _Param_A, '%')) OR TRIM(symbol)  LIKE TRIM(CONCAT('%', _Param_A, '%'))
		AND 
			dostawca LIKE IF(_Param_B = '1', '1', '%')
		LIMIT 100
		;	  
	    END IF;	-- IF _MODE = 'ST.SEARCH.KONTRAH'  
	    
	     IF _MODE = 'ST.GET.OSOBY' THEN
		/* *************************************************************************************************************************************************************
			zwraca osoby wystepujace przy srodkach trwalych			
			CALL srodki_trwale_tools('ST.GET.OSOBY', ', '', '', '', '', '', '', '');
		**************************************************************************************************************************************************************/
	   /*
		SELECT DISTINCT ST.osobaGUID AS `value`,  CONCAT(OS.Nazwisko," ",OS.Imiona) AS label	 
		FROM
			TowrNg ST 		
		LEFT JOIN osoby OS ON OS.GUID=ST.osobaGUID 
		WHERE ST.osobaGUID IS NOT NULL
		ORDER BY
			OS.Nazwisko
		*/
		SELECT 
			o.GUID AS `value`,  CONCAT(o.Nazwisko," ",o.Imiona) AS label	 
		FROM 
			osoby o, Pracownicy p
		WHERE o.guid = p.guid AND (p.CzyObecniePracuje=1)
		/*FROM
			osoby o  				
		WHERE o.pracownik=1  */
		ORDER BY o.Nazwisko, o.imiona
		;	  
	    END IF;	-- IF _MODE = 'ST.GET.OSOBY'  
	    
	    IF _MODE = 'ST.GET.MIEJSCA' THEN
		/* *************************************************************************************************************************************************************
			zwraca slownik miejsc			
			CALL srodki_trwale_tools('ST.GET.MIEJSCA', ', '', '', '', '', '', '', '');
		**************************************************************************************************************************************************************/
	   
		SELECT 	
			`GUID` AS `value`, 
			`Nazwa`	 AS label
		FROM 
			`erp_area_nodes`
		WHERE GUID LIKE 'S_Trw%'	
		ORDER BY
			lp
		;	  
	    END IF;	-- IF _MODE = 'ST.GET.MIEJSCA'  
	    
	     IF _MODE = 'ST.GET.RODZAJE' THEN
		/* *************************************************************************************************************************************************************
			zwraca slownik miejsc			
			CALL srodki_trwale_tools('ST.GET.RODZAJE', ', '', '', '', '', '', '', '');
		**************************************************************************************************************************************************************/
	   
		SELECT 	
			`idn` AS `value`,
			`nazwa` AS label, 
			`symbol`
			 
		FROM 
			`st_rodzaje` 
		ORDER BY 
			idn
		;		
	    END IF;	-- IF _MODE = 'ST.GET.RODZAJE'  
	    
	    IF _MODE = 'ST.GET.STATUSY' THEN
		/* *************************************************************************************************************************************************************
			zwraca slownik miejsc			
			CALL srodki_trwale_tools('ST.GET.STATUSY', ', '', '', '', '', '', '', '');
		**************************************************************************************************************************************************************/
	   
		
		SELECT 	
			`idn` AS `value`, 
			`nazwa` AS label
				 
		FROM 
			`st_status` 
		ORDER BY 
			idn
		;	
	    END IF;	-- IF _MODE = 'ST.GET.STATUSY'
	    
	END IF;	--	IF _MODE = 'ST.%'
END$$

DELIMITER ;