DELIMITER $$


DROP PROCEDURE IF EXISTS `ht_mh2crm`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `ht_mh2crm`(
	IN _MODE VARCHAR(150),
	IN _GUID VARCHAR(38),
	IN _PARAM_A VARCHAR(250),
	IN _PARAM_B VARCHAR(250),
	IN _PARAM_C VARCHAR(250)
)

-- CALL ht_mh2crm('r2r','','testowy klient','guid jmama do testow','spadek');
-- CALL ht_mh2crm('r2r','','%ADAMSKA%','cf23fedf8f020ff365c0e164a6251d76','40');
-- CALL ht_mh2crm('r2r','','%ADAMSKA%','','40');
-- CALL ht_mh2crm('gasdroid_one','{0BC3F3EA-5EB6-44CC-B91C-5EDF1ADEA33F}','','','DEBUG,TESTbezINSERT');	 
-- CALL ht_mh2crm('gasdroid_one','{0BC3F3EA-5EB6-44CC-B91C-5EDF1ADEA33F}','','','DEBUG');	 
-- CALL ht_mh2crm('gasdroid_all','','','','DEBUG');	 
-- CALL ht_mh2crm('r2r_one','{B17A89C7-7889-4125-8677-462E11BD03B2}','','','DEBUG,TESTbezINSERT');
-- CALL ht_mh2crm('czestotliwosc_all','','','','DEBUG,TESTbezINSERT');	 
-- CALL ht_mh2crm('czestotliwosc_one','IM_ac24f640d3c3a3cbc6b0f1ced20247ae','','','DEBUG,TESTbezINSERT');	 


S_ht_mh2crm: BEGIN
	DECLARE _crmGUID VARCHAR(38);
	DECLARE _KontrGUID VARCHAR(38);
	DECLARE _TerminRealizacji DATE;
	DECLARE _LIMIT INT;
	DECLARE _SQLText MEDIUMTEXT;
	SET @ht_mh2crm_result := -1;
  
  -- SET _ALOCALTIME=IF(IFNULL(_ALOCALTIME,'')='','1900-01-01 00:00:00',_ALOCALTIME);
	SET @sprzed_header:='rok_: __sty,__luty,__mar,_kwie,__maj,__czer,___lip,_sier,__wrz,_pazdz,_list,__gru'; 
	IF _MODE = 'r2r_one' THEN

-- TODO !!!!!
		SET @rok=2015;

		SET @ht_mhdroid_result := 0;
		SELECT t.oddzial,t.trasa,t.kontrahent,t.klasyfikacja,t.handlowiec,t.rodzajkl,t.status,k.kategoria as multibrand,
		concat('2014:',
		lpad(t.sprzedaz_2014_01,6,' '),',',lpad(t.sprzedaz_2014_02,6,' '),',',lpad(t.sprzedaz_2014_03,6,' '),',',lpad(t.sprzedaz_2014_04,6,' '),',',lpad(t.sprzedaz_2014_05,6,' '),',',lpad(t.sprzedaz_2014_06,6,' '),',',
		lpad(t.sprzedaz_2014_07,6,' '),',',lpad(t.sprzedaz_2014_08,6,' '),',',lpad(t.sprzedaz_2014_09,6,' '),',',lpad(t.sprzedaz_2014_10,6,' '),',',lpad(t.sprzedaz_2014_11,6,' '),',',lpad(t.sprzedaz_2014_12,6,' ')
		) as sprzedaz_rok_poprz,
		concat('2015:',
		lpad(t.sprzedaz_2015_01,6,' '),',',lpad(t.sprzedaz_2015_02,6,' '),',',lpad(t.sprzedaz_2015_03,6,' '),',',lpad(t.sprzedaz_2015_04,6,' '),',',lpad(t.sprzedaz_2015_05,6,' '),',',lpad(t.sprzedaz_2015_06,6,' '),',',
		lpad(t.sprzedaz_2015_07,6,' '),',',lpad(t.sprzedaz_2015_08,6,' '),',',lpad(t.sprzedaz_2015_09,6,' '),',',lpad(t.sprzedaz_2015_10,6,' '),',',lpad(t.sprzedaz_2015_11,6,' '),',',lpad(t.sprzedaz_2015_12,6,' ')
		) as sprzedaz_rok_biez,
		t.sprzedaz_biez_mc,
		t.sprzedaz_poprz_mc,
		t.sprzedaz_popoprz_mc,t.sprzedaz_rok_temu,
		t.roznica_r2r,t.stan,t.mc,
		(SELECT h.param2 FROM v_kkn4 h WHERE k.katcol4=h.klucz) as login,
		(SELECT o.guid FROM v_kkn4 h,osoby o WHERE k.katcol4=h.klucz AND o.idnuser=h.param2 limit 1) as handlowiecguid,
		(SELECT h.param3 FROM v_kkn4 h WHERE k.katcol4=h.klucz) as odpowiada
		
-- TODO - lata w nazwach kolumn

		FROM temp_olap_r2r t 
		INNER JOIN kontrah k on t.kontrguid=k.guid
		WHERE t.kontrguid=_GUID
		INTO @oddzial,@trasa,@kontrahent,@klasyfikacja,@handlowiec,@rodzajkl,@status,@multibrand,@sprzedaz_poprz,@sprzedaz_biez,
		@sprzedaz_biez_mc,@sprzedaz_poprz_mc,@sprzedaz_popoprz_mc,@sprzedaz_rok_temu,
		@roznica_r2r,@stan,@mc,@login,@handlowiecguid,@odpowiada;
		

		SET @odpowiadaguid='';
		IF @odpowiada LIKE "%mosakowski%" THEN
		  SET @odpowiadaguid='IM_75';
		END IF;  
		IF @odpowiada LIKE "%pokorski%" THEN
		  SET @odpowiadaguid='{73BAA3DD-8931-4E10-9BA4-0342500E269F}';
		END IF;  


		SET @rodzaj=8;
		SET @template = 'r2r spadek';
		SET @zadanie_logistyka=0;

		IF @sprzedaz_biez_mc>0 THEN
-- spadek
		  SET _crmGUID='rr';
		  SET @temat=CONCAT("r2r - spadek miesiąc:",@mc); 
		ELSE
		  SET @temat=CONCAT("zerówka logistyczna miesiąc:",@mc); 
		  IF @klasyfikacja like ("D2D%") THEN
/*
logistyczna D2D:
sprzedaż ost 3 miesiące=0
wszyscy klienci mający stan butli D2D|D2D% - mail z 2015-10-09
*/
		    SET _crmGUID=concat('zk');
		    SET @temat=CONCAT("zerówka D2D miesiąc:",@mc); 
		    IF @sprzedaz_poprz_mc+@sprzedaz_popoprz_mc=0 THEN
		      SET @zadanie_logistyka=1;
		    ELSE
		      SET @zadanie_logistyka=-1; -- nie robimy D2D handlowych - pomijanie tworzenia zdarzenia
		    END IF;
		  ELSE
/*
logistyczna:
ostatni miesiac (analizowany)
sprzedaż=0
brak zamówień innych niż z powodem niezrealizowania INNE, BRAK GAZU, BRAK CZASU
wszyscy klienci mający stan butli za wyjątkiem KLATKA|KBK
*/
		    SET _TerminRealizacji=_VarDate(CONCAT(@rok,'-',@mc,'-01'));
		    SELECT count(*) FROM zmng n WHERE n.kontrguid=_GUID AND n.terminrealizacji BETWEEN _TerminRealizacji AND Last_Day(_TerminRealizacji) 
		    AND n.ilepoz>0 AND NOT(n.powod_niezrealizowania IN (5,7,20)) INTO @ilezamowien; -- 7=BG,20=BC,5=I
		    SET @zadanie_logistyka=(@ilezamowien=0);
		    IF @zadanie_logistyka=0 THEN
		      SET _crmGUID='zl';
		    ELSE
		      SET _crmGUID='zh';
		    END IF;
		  END IF;   -- IF KBK
		END IF;  
		
		SET _crmGUID=concat(_crmGUID,@rok,lpad(@mc,2,'0'),uuid());

		SET @opis=CONCAT('r2r - spadek ',-@roznica_r2r,'% ',@kontrahent,'\noddział:',@oddzial,'\nrodzaj klienta:',@rodzajkl,
				  '\nstatus:',@status,'\nmultibrand:',@multibrand,'\nklasyfikacja:',@klasyfikacja,
				  '\n',@sprzed_header,'\n',@sprzedaz_poprz,'\n',@sprzedaz_biez,'\n','stan butli:',lpad(@stan,6,' '));
		SET @czas=10/60; -- czas jest w godzinach

		SELECT _crmGUID,@kontrahent,_GUID,@oddzial,(select o.idnuser from osoby o where o.guid=@handlowiecguid) as handlowiec,@temat,@opis,@zadanie_logistyka,@ilezamowien;

		IF @zadanie_logistyka>=0 AND _PARAM_C NOT LIKE '%TESTbezINSERT%' THEN
		  IF @zadanie_logistyka=0 THEN -- spadek lub zerowka handlowa - wykonawca handlowiec
		      IF @sprzedaz_biez_mc=0 THEN
			  SET @temat=CONCAT("zerówka handlowa miesiąc:",@mc); 
		      END IF;  
		      CALL crm_INSERT('z.szablonu',_crmGUID, @template  , @rodzaj, 0, @temat, @opis, @czas, '', NULL, NULL, @handlowiecguid, '', '', _GUID, 1, 4, '', '');
		      IF @odpowiadaguid<>'' THEN -- nadzorca handlowca (PM lub PP)
--			INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,@odpowiadaguid,3; -- zmiana na "DW" uzgodnienie z maila PM 2015-04-09
			INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,@odpowiadaguid,IF(@sprzedaz_biez_mc>0,3,1); -- "DW" dla r2r, odpowiedzialny dla zerowek handlowych
		      END IF;
		      INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'IM_57',3; -- lewnab DW
		  ELSE -- zerowka logistyczna - wykonawca logistyka
		      CALL crm_INSERT('z.szablonu',_crmGUID, @template  , @rodzaj, 0, @temat, @opis, @czas, '', NULL, NULL, CONCAT(@oddzial,'kier'), '', '', _GUID, 1, 4, '', '');
		      IF @odpowiadaguid<>'' THEN -- nadzorca handlowca (PM lub PP)
			INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,@odpowiadaguid,3; 
		      END IF;
		      INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'IM_57',1; -- lewnab Odp
		  END IF;
		  
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'IM_64',3; -- matusiaks
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _GUID,0,CONCAT(@oddzial,'kier'),3; -- grupa oddziałowa zawsze DW
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'cf23fedf8f020ff365c0e164a6251d76',3;
		  UPDATE crm_commisions SET nrwewn=CONCAT(@oddzial,':',@trasa),koszt_wlasny=-@roznica_r2r, kwota_zysk=@sprzedaz_rok_temu-@sprzedaz_biez_mc WHERE guid=_crmGUID;
		END IF;


	END IF;	

	IF _MODE = 'r2r' THEN
		SET @ht_mhdroid_result := 0;
--		SET @spadek := IF(_PARAM_B<>'',_VarInt(_PARAM_B),40); -- wartosc dodatnia paramteru to spadek
		SET @spadek := 40;
		BEGIN
			DECLARE done BOOL DEFAULT FALSE;

			DECLARE c_proc CURSOR FOR
			SELECT DISTINCT kontrguid
			FROM temp_olap_r2r 
/* stare warunki
			WHERE roznica_r2r<-@spadek AND (sprzedaz_biez_mc=0 OR roznica_r2r_szt<-2) AND stan>0
-- bez zerowek:			
-- 			WHERE roznica_r2r<-@spadek AND sprzedaz_biez_mc<>0 AND roznica_r2r_szt<-2 AND stan>0
-- tylko zerowki	
--			WHERE (sprzedaz_biez_mc=0) AND stan>0
			
-- zmiana PM 20150729: bylo	AND (status like "Aktywny%" or status like "NOWY%" or status like "D_u_nik%")
			AND (STATUS LIKE "Aktywny%")
			AND rodzajkl NOT LIKE "BEZPO%"
			AND (_Param_A='' OR kontrahent LIKE _Param_A);
*/			
			-- po nowemu, TK, 23102015
			WHERE ((sprzedaz_biez_mc=0 AND stan>0 AND (status like "Aktywny%" or status like "NOWY%" or status like "D_u_nik%")) -- zerowki
			OR (roznica_r2r<-@spadek AND sprzedaz_biez_mc<>0 AND roznica_r2r_szt<-2 AND stan>0 AND status like "Aktywny%")) -- spadki r2r
			AND rodzajkl not like "BEZPO%"
			AND (_Param_A='' or kontrahent like _Param_A);
			
			DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
			
			OPEN c_proc;
				loop2: LOOP
				SET done = FALSE;
				FETCH c_proc INTO _GUID;
				IF done THEN
					LEAVE loop2;
				ELSE
					CALL ht_mh2crm('r2r_one',_GUID,_Param_A,_Param_B,_Param_C);
				END IF;
			END LOOP;
			CLOSE c_proc;
		END;
	END IF;	
	

--	select s.Value,s.DisplayValue,s.ParamExtra from slowniki_pierwotne s where s.slownik_guid="ZM_POWODY_NIEREALIZ" order by value+0;
--     1 | Info_rynek    |      | v_kkn1 |
--     2 | Ocena klienta |      | v_kkn2 |
--     3 | Status        |      | v_kkn3 |
--     4 | Handlowiec    |      | v_kkn4 |

-- CALL ht_mh2crm('gasdroid_one','{0BC3F3EA-5EB6-44CC-B91C-5EDF1ADEA33F}','','','DEBUG,TESTbezINSERT');	 
-- CALL ht_mh2crm('gasdroid_one','{91E1595E-FEE3-4FCA-92BA-FFDEF3D74495}','','','DEBUG');	 
-- CALL ht_mh2crm('gasdroid_all','','','','DEBUG');	 

	IF _MODE = 'gasdroid_one' THEN
		SET @ht_mhdroid_result := 0;

		DELETE FROM crm_commisions WHERE guid=_GUID;
		DELETE FROM crm_usr_links WHERE commisionGUID=_GUID;
		DELETE FROM crm_log WHERE commissionGUID=_GUID;
		
		SELECT z.powod_niezrealizowania,
--		(SELECT ParamExtra FROM slowniki_pierwotne s WHERE s.slownik_guid="ZM_POWODY_NIEREALIZ" AND s.value=z.powod_niezrealizowania) as powod,
		s.ParamExtra as powod,
		_VarInt(s.param1='L') as czylogistyka,
		_VarInt(s.param2) as ilekolejnych,
		z.kontrguid,k.symbol,k.nazwa,k.ugrpguid as oddzial,
		(SELECT v.valuex FROM v_kkn1 v WHERE v.klucz=k.katcol1) as infoRynek,
		(SELECT v.valuex FROM v_kkn2 v WHERE v.klucz=k.katcol2) as ocena,
		(SELECT v.valuex FROM v_kkn3 v WHERE v.klucz=k.katcol3) as status,
		substring_index(substring_index(k.treenode,'|',2),'|',-1) as rodzajkl,
		substring_index(substring_index(k.treenode,'|',3),'|',-1) as klasyfikacja,
		h.valuex as handlowiec,
		h.kontofk as hmail,
		h.param2 as hlogin,
		h.param3 as odpowiada,
		IFNULL((SELECT o.guid FROM osoby o WHERE o.idnuser=h.param2 limit 1),'') as handlowiecguid,
		ifnull(rew.nazwa,'brak') as trasa,
		-- ifnull((SELECT ki.nazwa FROM kontrah ki WHERE ki.guid=z.akwizytorguid),'brak') as kierowca,
		ifnull((SELECT ki.nazwa FROM kontrah ki WHERE ki.guid=z.akwizytorguid),(SELECT CONCAT('kierownik - ',Nazwisko, ' ',Imiona) FROM v_intnet_users WHERE idnuser=z.idnuser)) as kierowca,
		z.terminrealizacji
		FROM zmng z
		INNER JOIN kontrah k ON z.kontrguid=k.guid
		INNER JOIN v_kkn4 h ON h.klucz=k.katcol4
		LEFT JOIN slowniki_pierwotne s ON s.slownik_guid="ZM_POWODY_NIEREALIZ" AND s.value=z.powod_niezrealizowania
		LEFT JOIN erp_area_nodes rew ON rew.GUID= k.areaGUID
		WHERE z.guid=_GUID
		INTO @powod,@powodstr,@czylogistyka,@ilekolejnych,_Kontrguid,@ksymbol,@knazwa,@oddzial,@infoRynek,@ocena,@status,@rodzajkl,@klasyfikacja,
		      @handlowiec,@hmail,@hlogin,@odpowiada,@handlowiecguid,@trasa,@kierowca,_TerminRealizacji;
		
		SET @odpowiadaguid='';
		IF @odpowiada LIKE "%pokorski%" THEN
		  SET @odpowiadaguid='{73BAA3DD-8931-4E10-9BA4-0342500E269F}';
		END IF;  
		IF @odpowiada LIKE "%mosakowski%" OR @odpowiadaguid='' THEN
		  SET @odpowiadaguid='IM_75';
		END IF;  
		
		SET @rodzaj=8;
		SET @template = 'r2r spadek';
--		SET @template='{85FDD2AA-B1CD-4C1D-9146-21F9975EBC82}';
		SET @temat=CONCAT(@powodstr,'- Zamówienie niezrealizowane'); 
		SET @opis=CONCAT(' ',@knazwa,'\noddział:',@oddzial,'\ntrasa:',@trasa,'\nkierowca:',@kierowca,'\nrodzaj klienta:',@rodzajkl,'\nstatus:',@status,'\nklasyfikacja:',@klasyfikacja);
		SET @czas=10/60; -- czas jest w godzinach
		SET @logistyka=CONCAT(@oddzial,'kier'); -- guid grupy logistyka danego oddzialu
		
		IF @handlowiecguid='' THEN
		  SET @wykonawca=@odpowiadaguid;
		ELSE
		  SET @wykonawca=@handlowiecguid;
		END IF;

--		IF @powod in (1,2,6,7,8,9,10) OR @rodzajkl='CENTRALNY' THEN -- uzgodnienie z maila 2015-01-23
		IF @czylogistyka=1 OR @rodzajkl='CENTRALNY' THEN -- uzgodnienie - arkusz powodow 
		  SET @wykonawca=@logistyka;
		END IF;
		

		SELECT _GUID,@powod,@powodstr,_KontrGUID,@ksymbol,@knazwa,@oddzial,@infoRynek,@ocena,@status,@rodzajkl,@handlowiec,@hmail,@hlogin,@odpowiada,@handlowiecguid,@wykonawca,@temat,@opis;

		IF _PARAM_C NOT LIKE '%TESTbezINSERT%' THEN
		  CALL crm_INSERT('z.szablonu',_GUID, @template  , @rodzaj, 0, @temat, @opis, @czas, '', NULL, NULL, /*@wykonawca*/ '', '', '', _KontrGUID, 1, 4, '', '');
		  UPDATE crm_commisions SET nrwewn=CONCAT(@oddzial,':',@trasa) WHERE guid=_GUID;
		  IF @odpowiadaguid<>'' THEN
			INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _GUID,0,@odpowiadaguid,IF(@wykonawca=@logistyka,3,1); --  zmiana na "DW" dla zad. logistyki uzgodnienie z maila PM 2015-04-09
		  END IF;
		  
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _GUID,0,@wykonawca,2;
		  
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _GUID,0,'IM_57',IF(@wykonawca=@logistyka,1,3); -- lewnab; na "Odp." dla zad. logistyki uzgodnienie z maila PM 2015-04-09
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _GUID,0,'IM_64',3; -- matusiaks
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _GUID,0,@logistyka,3; -- grupa oddziałowa
		  IF @handlowiecguid<>@wykonawca THEN
		    INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _GUID,0,@handlowiecguid,3; 
		  END IF;
		  IF _PARAM_C LIKE '%DEBUG%' THEN
		    INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _GUID,0,'cf23fedf8f020ff365c0e164a6251d76',3;
		  END IF;
		  -- ustawienie pominiecia dla innych zamowien z tego samego dnia
		  UPDATE zmng SET ogk_guid='pomin' WHERE terminrealizacji=_TerminRealizacji AND kontrguid=_KontrGUID AND guid<>_GUID;
		END IF;
	END IF;	

	IF _MODE = 'gasdroid_all' THEN
		
		SET @ht_mhdroid_result := 0;
		SET _LIMIT=IF(_Param_A='',5,_VARINT(_Param_A));
		SET @interval=IF(_Param_B='',3,_VARINT(_Param_B));
		BEGIN
			DECLARE done BOOL DEFAULT FALSE;
			DECLARE _ILEZDARZEN INT;

			DECLARE c_proc CURSOR FOR
			SELECT n.guid,_VarINT(s.param2) as ilezdarzen,n.terminrealizacji,n.kontrguid
			FROM zmng n 
			LEFT JOIN crm_commisions c ON c.GUID=n.guid
			LEFT JOIN slowniki_pierwotne s ON s.slownik_guid="ZM_POWODY_NIEREALIZ" AND s.value=n.powod_niezrealizowania
-- zmiana 20150907			WHERE ISNULL(c.idn) and n.powod_niezrealizowania IN (1,2,4,7,8,9,11,12,13,14,15,16) AND n.terminrealizacji>CURRENT_DATE - INTERVAL @interval day AND ifnull(n.ogk_GUID,'')=''
			WHERE ISNULL(c.idn) and s.param2 IN ('1','3') AND n.terminrealizacji>CURRENT_DATE - INTERVAL @interval day AND ifnull(n.ogk_GUID,'')=''
			  LIMIT _LIMIT
			;
			-- wyrzucone 2015-09-07: uzgodnienie z PM 2015-03-11, 10 pelno dzwonione PD, 6 zamkniete Z,  3 nie wymienia pelno NP
			-- zmiana na ustawiena w slowniku 2015-09-07
			
			DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
			
			OPEN c_proc;
				loop2: LOOP
				SET done = FALSE;
				FETCH c_proc INTO _GUID,_ILEZDARZEN,_TerminRealizacji,_KontrGUID;
				IF done THEN
					LEAVE loop2;
				ELSE
					SELECT ifnull(ogk_GUID,'')<>'' FROM zmng WHERE guid=_GUID INTO @pomin;
					IF @pomin=0 AND _ILEZDARZEN=3 THEN
						-- czy jest to trzecie kolejne niezrealizowane zamowienie z dowolnym powodem niezrealizowania
						-- sprawdzam dwa poprzednie - jesli którekolwiek bylo zrealizowane (powod=0) to pomijam tworzenie zdarzenia
						DROP TEMPORARY TABLE IF EXISTS tterminy;
						CREATE TEMPORARY TABLE tterminy 
						SELECT DISTINCT terminrealizacji 
						FROM zmng WHERE kontrguid=_KontrGUID AND terminrealizacji<_TerminRealizacji 
						ORDER BY idn DESC LIMIT 2;
						SELECT count(DISTINCT terminrealizacji) 
						FROM zmng 
						WHERE kontrguid=_KONTRGUID AND terminrealizacji IN (SELECT terminrealizacji FROM tterminy) 
						AND powod_niezrealizowania=0
						INTO @pomin;
						DROP TEMPORARY TABLE IF EXISTS tterminy;
					END IF;
					
					IF @pomin=0 THEN
					    CALL ht_mh2crm('gasdroid_one',_GUID,_Param_A,_Param_B,_Param_C);
					END IF;
					
				END IF;
			END LOOP;
			CLOSE c_proc;
		END;

	END IF;	

-- CALL ht_mh2crm('czestotliwosc_all','','','','DEBUG,TESTbezINSERT');	 
-- CALL ht_mh2crm('czestotliwosc_one','IM_ac24f640d3c3a3cbc6b0f1ced20247ae','','','DEBUG,TESTbezINSERT');	 

	IF _MODE = 'czestotliwosc_one' THEN
		IF _Param_C NOT LIKE '%DEBUG%' THEN
		      SELECT _GUID,_Param_A,_Param_B,_Param_C;
		END IF;	
		SET @okres=IFNULL(@okres,CURRENT_DATE - INTERVAL 33 day); -- debug
		
		SELECT
		CONCAT('minimalna ilość wizyt: ',_Param_A,' odbyto wizyt: ',_Param_B,'\n') as opis,
		k.ugrpguid as oddzial,
		IFNULL((SELECT rew.nazwa FROM erp_area_nodes rew WHERE rew.GUID= k.areaGUID),'brak trasy') as trasa,
		k.nazwa,
		(SELECT h.valuex FROM v_kkn4 h WHERE k.katcol4=h.klucz) as handlowiec,
		substring_index(substring_index(k.treenode,'|',2),'|',-1) as rodzajkl,
		substring_index(substring_index(k.treenode,'|',3),'|',-1) as klasyfikacja,
		(SELECT h.valuex FROM v_kkn3 h WHERE k.katcol3=h.klucz) as status,
                (SELECT h.param2 FROM v_kkn4 h WHERE k.katcol4=h.klucz) as login,
                (SELECT o.guid FROM v_kkn4 h,osoby o WHERE k.katcol4=h.klucz AND o.idnuser=h.param2 limit 1) as handlowiecguid,
                (SELECT h.param3 FROM v_kkn4 h WHERE k.katcol4=h.klucz) as odpowiada,
                IFNULL((SELECT group_CONCAT(DISTINCT n.terminrealizacji) FROM zmng n WHERE n.kontrguid=k.guid AND n.deleted=0 AND n.terminrealizacji>=@okres),'-brak-') as zamowienia
		
		FROM kontrah k
		WHERE k.guid=_GUID
		
		INTO @opis,@oddzial,@trasa,@kontrahent,@handlowiec,@rodzajkl,@klasyfikacja,@status,@login,@handlowiecguid,@odpowiada,@zamowienia;

		SET @odpowiadaguid='';
		IF @odpowiada LIKE "%mosakowski%" THEN
		  SET @odpowiadaguid='IM_75';
		END IF;  
		IF @odpowiada LIKE "%pokorski%" THEN
		  SET @odpowiadaguid='{73BAA3DD-8931-4E10-9BA4-0342500E269F}';
		END IF;  


		SET @rodzaj=8;
		SET @template = 'r2r spadek';
		-- SELECT guid from crm_commisions WHERE idn= INTO @template;
		
		SET @zadanie_logistyka=1;

		SET @temat=CONCAT('nieprzestrzegana czestotliwosc ',@kontrahent); 
		
		SET _crmGUID=concat('cz',date_format(now(),'%y%m%d'),uuid());

		SET @opis=CONCAT(@kontrahent,'\noddział: ',@oddzial,'\nrodzaj klienta: ',@rodzajkl,'\nstatus: ',@status,
		    '\nklasyfikacja: ',@klasyfikacja,'\ntrasa: ',@trasa,
				'\nzamówienia od:',@okres,': ',@zamowienia,'\n\n',
				@opis);
		SET @czas=10/60; -- czas jest w godzinach

		IF _PARAM_C LIKE '%DEBUG%' THEN
			SELECT _crmGUID,@kontrahent,_GUID,@oddzial,@handlowiec,@temat,@opis;
		END IF;
		IF @zadanie_logistyka>=0 AND _PARAM_C NOT LIKE '%TESTbezINSERT%' THEN
		  CALL crm_INSERT('z.szablonu',_crmGUID, @template  , @rodzaj, 0, @temat, @opis, @czas, '', NULL, NULL, CONCAT(@oddzial,'kier'), '', '', _GUID, 1, 4, '', '');
		  IF @odpowiadaguid<>'' THEN -- nadzorca handlowca (PM lub PP)
		    INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,@odpowiadaguid,3; 
		  END IF;
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'IM_57',1; -- lewnab Odp
		  
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'IM_64',3; -- matusiaks
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,CONCAT(@oddzial,'kier'),3; -- grupa oddziałowa zawsze DW
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'cf23fedf8f020ff365c0e164a6251d76',3;
		  UPDATE crm_commisions SET nrwewn=CONCAT(@oddzial,':',@trasa),pr_symbol=_GUID WHERE guid=_crmGUID; -- pr_symbol - tylko dtechnicznie dla wygody
		  -- UPDATE kontrah k SET k.localtime=k.localtime,k.data_zmian_rycz=CURRENT_DATE WHERE guid=_GUID;
		  
		END IF;

	END IF;	
-- select k.symbol,k.nazwa,k.ugrpguid as oddzial,(select v.valuex from v_kkn3 v where v.klucz=k.katcol3) as status,k.treenode,k.dlmagazynu,t.min_czestotliwosc,t.ile_zam from t_czestotliwosc t,kontrah k where k.guid=t.guid order by oddzial,symbol into outfile "/var/lib/mysql/czestotliwosc.txt";
	
	IF _MODE = 'czestotliwosc_all' THEN
		SET @okres:=CURRENT_DATE - INTERVAL 28+5 DAY;
		
		DROP TEMPORARY TABLE IF EXISTS t_czestotliwosc;
		CREATE TEMPORARY TABLE t_czestotliwosc
		SELECT k.guid,k.dlmagazynu,ROUND(28/k.dlmagazynu) AS min_czestotliwosc, COUNT(DISTINCT n.terminrealizacji) AS ile_zam
			FROM zmng n 
			INNER JOIN kontrah k on k.guid=n.kontrguid
			INNER JOIN slowniki_pierwotne s ON s.slownik_guid="ZM_POWODY_NIEREALIZ" AND s.value=n.powod_niezrealizowania
			WHERE k.katcol3 NOT IN (6,7)
			AND k.treenode NOT LIKE "*|HURT%"
			AND k.treenode NOT LIKE "*|D2D%"
--			AND k.katcol2 IN (1,2) -- strategiczny i kluczowy
			AND k.katcol2 IN (1) -- strategiczny - do testow
			AND n.deleted=0 AND n.ilepoz>0 AND s.DisplayValue NOT IN ('I','BC','BG')
			AND n.terminrealizacji>=@okres
			AND k.serwis_koment<>''
			GROUP BY n.kontrguid
			HAVING ile_zam<min_czestotliwosc;
			
		SET @pomin=0;
		SET @ht_mh2crm_result := 0;
		BEGIN
			DECLARE done BOOL DEFAULT FALSE;
			DECLARE _DNI INT;
			DECLARE _MIN_CZESTOTLIWOSC INT;
			DECLARE _ILE_ZAM INT;
			
			DECLARE c_proc CURSOR FOR
			SELECT * FROM t_czestotliwosc;
			
			DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
			
			OPEN c_proc;
				loop2: LOOP
				SET done = FALSE;
				FETCH c_proc INTO _GUID,_DNI,_MIN_CZESTOTLIWOSC,_ILE_ZAM;
				IF done THEN
					LEAVE loop2;
				ELSE
				-- zadanie nie czesciej niz co cykl
					SELECT count(*) FROM crm_commisions c, crm_usr_links l 
					WHERE c.guid=l.commisionguid AND l.kontrguid=_GUID AND l.poziom=4
					  AND c.StartTime>= CURRENT_DATE - interval _DNI DAY
					INTO @pomin;
					IF @pomin=0 THEN
					    CALL ht_mh2crm('czestotliwosc_one',_GUID,_MIN_CZESTOTLIWOSC,_ILE_ZAM,_Param_C);
					END IF;
					
				END IF;
			END LOOP;
			CLOSE c_proc;
		END;

		IF _Param_C NOT LIKE '%DEBUG%' THEN
			DROP TEMPORARY TABLE IF EXISTS t_czestotliwosc;
		END IF;

	END IF;	
	
--	CALL ht_mh2crm('obrotowosc_one','IM_00083da0b6b9877edb1ce7bc00ca566b','','','DEBUG,TESTbezINSERT');

	IF _MODE = 'obrotowosc_one' THEN
		IF _Param_C NOT LIKE '%DEBUG%' THEN
		      SELECT _GUID,_Param_A,_Param_B,_Param_C;
		END IF;	
		SET @okres=IFNULL(@okres,CURRENT_DATE - INTERVAL 33 day); -- debug
		
		SELECT
		k.dlmagazynu,
		k.ugrpguid as oddzial,
		IFNULL((SELECT rew.nazwa FROM erp_area_nodes rew WHERE rew.GUID= k.areaGUID),'brak trasy') as trasa,
		k.nazwa,
		(SELECT h.valuex FROM v_kkn4 h WHERE k.katcol4=h.klucz) as handlowiec,
		substring_index(substring_index(k.treenode,'|',2),'|',-1) as rodzajkl,
		substring_index(substring_index(k.treenode,'|',3),'|',-1) as klasyfikacja,
		(SELECT h.valuex FROM v_kkn3 h WHERE k.katcol3=h.klucz) as status,
                (SELECT h.param2 FROM v_kkn4 h WHERE k.katcol4=h.klucz) as login,
                (SELECT o.guid FROM v_kkn4 h,osoby o WHERE k.katcol4=h.klucz AND o.idnuser=h.param2 limit 1) as handlowiecguid,
                (SELECT h.param3 FROM v_kkn4 h WHERE k.katcol4=h.klucz) as odpowiada
--                ,IFNULL((SELECT group_CONCAT(DISTINCT n.terminrealizacji) FROM zmng n WHERE n.kontrguid=k.guid AND n.deleted=0 AND n.terminrealizacji>=@okres),'-brak-') as zamowienia
		
		FROM kontrah k
		WHERE k.guid=_GUID
		
		INTO @czestotliwosc,@oddzial,@trasa,@kontrahent,@handlowiec,@rodzajkl,@klasyfikacja,@status,@login,@handlowiecguid,@odpowiada;

		SET @odpowiadaguid='';
		IF @odpowiada LIKE "%mosakowski%" THEN
		  SET @odpowiadaguid='IM_75';
		END IF;  
		IF @odpowiada LIKE "%pokorski%" THEN
		  SET @odpowiadaguid='{73BAA3DD-8931-4E10-9BA4-0342500E269F}';
		END IF;  


		SET @rodzaj=8;
		SET @template = 'r2r spadek';
		-- SELECT guid from crm_commisions WHERE idn= INTO @template;
		
		SET @zadanie_logistyka=1;

		SET @temat=CONCAT('niska obrotowosc ',@kontrahent); 
		
		SET _crmGUID=concat('ob',date_format(now(),'%y%m%d'),uuid());

		SET @opis=CONCAT(@kontrahent,'\noddział: ',@oddzial,'\nrodzaj klienta: ',@rodzajkl,'\nstatus: ',@status,
		    '\nklasyfikacja: ',@klasyfikacja,'\ntrasa: ',@trasa,'\nczęstotliwość: ',@czestotliwosc,
				'\n\n',_Param_A);
		SET @czas=10/60; -- czas jest w godzinach

		IF _PARAM_C LIKE '%DEBUG%' THEN
			SELECT _crmGUID,@kontrahent,_GUID,@oddzial,@handlowiec,@temat,@opis;
		END IF;
		IF @zadanie_logistyka>=0 AND _PARAM_C NOT LIKE '%TESTbezINSERT%' THEN
		  CALL crm_INSERT('z.szablonu',_crmGUID, @template  , @rodzaj, 0, @temat, @opis, @czas, '', NULL, NULL, CONCAT(@oddzial,'kier'), '', '', _GUID, 1, 4, '', '');
		  IF @odpowiadaguid<>'' THEN -- nadzorca handlowca (PM lub PP)
		    INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,@odpowiadaguid,3; 
		  END IF;
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'IM_57',1; -- lewnab Odp
		  
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'IM_64',3; -- matusiaks
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,CONCAT(@oddzial,'kier'),3; -- grupa oddziałowa zawsze DW
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'cf23fedf8f020ff365c0e164a6251d76',3;
		  UPDATE crm_commisions SET nrwewn=CONCAT(@oddzial,':',@trasa),pr_symbol=_GUID WHERE guid=_crmGUID; -- pr_symbol - tylko dtechnicznie dla wygody
		  -- UPDATE kontrah k SET k.localtime=k.localtime,k.data_zmian_rycz=CURRENT_DATE WHERE guid=_GUID;
		  
		END IF;

	END IF;	
-- select k.symbol,k.nazwa,k.ugrpguid as oddzial,(select v.valuex from v_kkn3 v where v.klucz=k.katcol3) as status,k.treenode,k.dlmagazynu,t.min_czestotliwosc,t.ile_zam from t_czestotliwosc t,kontrah k where k.guid=t.guid order by oddzial,symbol into outfile "/var/lib/mysql/czestotliwosc.txt";
-- CALL ht_mh2crm('obrotowosc_all','','','','DEBUG');	
	IF _MODE = 'obrotowosc_all' THEN
		SET @mc = MONTH(IF(_Param_B='',CURRENT_DATE,DATE(_Param_B)) - INTERVAL 1 MONTH);
		SET @mcp= MONTH(IF(_Param_B='',CURRENT_DATE,DATE(_Param_B)) - INTERVAL 2 MONTH);
		SET @rok=  YEAR(IF(_Param_B='',CURRENT_DATE,DATE(_Param_B)) - INTERVAL 1 MONTH);
		SET @rokp= YEAR(IF(_Param_B='',CURRENT_DATE,DATE(_Param_B)) - INTERVAL 2 MONTH);
		
		DROP TEMPORARY TABLE IF EXISTS t_obrotowosc;
		CREATE TEMPORARY TABLE t_obrotowosc
		select 
			k.guid,
			t.butla,k.dlmagazynu,SUM(if(t.mc=4,t.stan,0)) as stan,ROUND(SUM(t.ilosc)) as ilosc,
			ROUND(SUM(t.ilosc)/sum(if(t.mc=4,t.stan,0)),2) as obrot,if(k.dlmagazynu=7,2,if(k.dlmagazynu=14,1,0.5)) as granica 
			FROM
			temp_olap t
			INNER JOIN kontrah k on k.guid=t.kontrguid
			INNER JOIN v_kkn3 s on k.katcol3=s.klucz
			
			WHERE 
			  k.katcol3 NOT IN (6,7) --  dluznik, windykacja
			AND NOT (s.valuex LIKE "NOWY%" AND _VarInt(s.param1)=@mc) -- bez nowy  z tego miesiaca
			AND NOT (s.valuex LIKE "LIKWIDACJA%" AND _VarInt(s.param1)=@mc) -- bez likwidacji z tego 
			AND NOT (s.valuex LIKE "LIKWIDACJA%" AND _VarInt(s.param1)=@mcp) -- bez likwidacji z poprzedniego
			AND k.treenode NOT LIKE "*|HURT%"
			AND k.treenode NOT LIKE "*|D2D%"
--			AND k.katcol2 IN (1,2) -- strategiczny i kluczowy
			AND k.serwis_koment<>''
			AND k.ugrpguid in ('ND','SO')
			AND ((t.rok=@rok AND t.mc=@mc) OR (t.rok=@rokp AND t.mc=@mcp)) AND t.butla<>'' 
			AND (_GUID='' OR t.kontrguid=_GUID) 
			GROUP BY kontrguid,butla
			HAVING obrot<granica;
		
			
		SET @pomin=0;
		SET @ht_mh2crm_result := 0;
		BEGIN
			DECLARE done BOOL DEFAULT FALSE;
			DECLARE _BUTLA VARCHAR(38);
			DECLARE _STAN INT;
			DECLARE _OBROT INT;
			
			DECLARE c_proc CURSOR FOR
			SELECT guid,GROUP_CONCAT(
			  CONCAT('butla: ',butla,' stan: ',stan,' wymienił: ',ilosc,' obrotowość: ',obrot,' minimum: ',granica) 
			  SEPARATOR '\n') as opis 
			FROM t_obrotowosc 
			GROUP BY guid;
			
			DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
			
			OPEN c_proc;
				loop2: LOOP
				SET done = FALSE;
				FETCH c_proc INTO _GUID,_Param_A;
				IF done THEN
					LEAVE loop2;
				ELSE
					IF _Param_C LIKE '%DEBUG%' THEN
					    SELECT @pomin,@rok,@mc,@rokp,@mcp,_GUID,replace(_Param_A,'\n',';');
					END IF;
					
					IF @pomin=0 THEN
					    CALL ht_mh2crm('obrotowosc_one',_GUID,_Param_A,@mc,_Param_C);
					END IF;
					
				END IF;
			END LOOP;
			CLOSE c_proc;
		END;

		IF _Param_C NOT LIKE '%DEBUG%' THEN
			DROP TEMPORARY TABLE IF EXISTS t_obrotowosc;
		END IF;

	END IF;	

	
	IF _MODE = 'mh_all' THEN
	/* *************************************************************************************************************************************************************
		Naliczenie hurtowe
		CALL ht_mh2crm('mh_all', '',_Param_A,_Param_B,_Param_C);
		CALL ht_mh2crm('mh_all', '','','','');
		wszystkie pozycje
		
		SELECT * FROM crm_commisions WHERE www_modul LIKE '%MHWIZUAL%';
	**************************************************************************************************************************************************************/
		/*
		SET @ht_mhdroid_result := 0;
		SET _LIMIT=IF(_Param_A='',5,_VARINT(_Param_A));
		SET @interval=IF(_Param_B='',3,_VARINT(_Param_B));
		*/
		BEGIN
			DECLARE done BOOL DEFAULT FALSE;
			DECLARE _pGUID VARCHAR(38);
			
			DECLARE c_proc CURSOR FOR
			SELECT p.guid
				-- p.*
			 FROM droid_ankiety_dane_po p
			 INNER JOIN droid_ankiety_dane_ng n ON n.guid = p.GUIDng
			 INNER JOIN droid_ankiety_def_po dp ON dp.guid = p.AnkietaDefPoGUID
			 WHERE TRUE 
			 AND p.valuekey<>'-' AND valuedescr NOT LIKE 'zatwier%' AND p.valuedescr<> 'wizualizacja OK'
			 AND IFNULL(p.status, 0) in (0,-2)
			 AND p.ctx3 IS NOT NULL
			 AND (
			 (DATE(n.droidtime) >= '2015-01-01' AND dp.crm_template IN ('MHWIZUAL')) 
			  OR (DATE(n.droidtime) >= '2015-05-15' AND dp.crm_template IN ('MHFIN')) 
				OR (DATE(n.droidtime) >= '2015-05-13' AND dp.crm_template IN ('MHPOTENCJALNY'))
				OR (DATE(n.droidtime) >= '2015-01-01' AND dp.crm_template IN ('MHLIKWIDACJA'))
			 )
;
			
			DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
			
			OPEN c_proc;
				loop2: LOOP
				SET done = FALSE;
				FETCH c_proc INTO _pGUID;
				IF done THEN
					LEAVE loop2;
				ELSE
					CALL ht_mh2crm('mh_one', _pGUID, '', '', '');
					UPDATE droid_ankiety_dane_po SET status = 1 WHERE guid = _pGUID;
					UPDATE droid_ankiety_dane_po p, crm_commisions c SET p.status = 2 WHERE p.guid = _pGUID AND p.guid=c.guid;
				END IF;
			END LOOP;
			CLOSE c_proc;
		END;

	END IF;	

	IF _MODE = 'mh_niezgodne_all' THEN
	/* *************************************************************************************************************************************************************
		Generowanie zadan do niezgodnosci inwentaryzacyjnych, musza byc grupowane wg wizyt
		CALL ht_mh2crm('mh_niezgodne_all', '',_Param_A,_Param_B,_Param_C);
		
	**************************************************************************************************************************************************************/
		
		BEGIN
			DECLARE done BOOL DEFAULT FALSE;
			DECLARE _pGUID VARCHAR(38);
			
			DECLARE c_proc CURSOR FOR
			SELECT DISTINCT 
				p.ctx3 as guid
			 FROM droid_ankiety_dane_po p
			 INNER JOIN droid_ankiety_dane_ng n ON n.guid = p.GUIDng
			 INNER JOIN droid_ankiety_def_po dp ON dp.guid = p.AnkietaDefPoGUID
			 WHERE TRUE 
			 AND IFNULL(p.status, 0) in (0,-2)
			 AND p.ctx3 IS NOT NULL
			 AND (DATE(n.droidtime) >= '2015-01-01' AND dp.crm_template IN ('MHIWNNIEZGODNA') AND p.ValueDescr LIKE '%niezgodna')
			 ;

			
			DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
			
			OPEN c_proc;
				loop2: LOOP
				SET done = FALSE;
				FETCH c_proc INTO _pGUID;
				IF done THEN
					LEAVE loop2;
				ELSE
					CALL ht_mh2crm('mh_one', _pGUID, 'MHIWNNIEZGODNA', '', '');
					UPDATE droid_ankiety_dane_po p, droid_ankiety_def_po dp 
						SET p.status = 1 WHERE p.ctx3 = _pGUID AND dp.guid = p.AnkietaDefPoGUID AND dp.crm_template IN ('MHIWNNIEZGODNA');
					UPDATE droid_ankiety_dane_po p, crm_commisions c, droid_ankiety_def_po dp 
						SET p.status = 2 WHERE p.ctx3 = _pGUID AND p.ctx3 = c.guid AND dp.guid = p.AnkietaDefPoGUID AND dp.crm_template IN ('MHIWNNIEZGODNA');
				END IF;
			END LOOP;
			CLOSE c_proc;
		END;

	END IF;	

	IF _MODE = 'wizyty_all' THEN
	/* *************************************************************************************************************************************************************
		Generowanie zadan do wszystkich wizyt w ogole
		CALL ht_mh2crm('wizyty_all', '',_Param_A,_Param_B,_Param_C);
		
	**************************************************************************************************************************************************************/
		
		DROP TABLE IF EXISTS temp1;
		CREATE TEMPORARY TABLE temp1
			SELECT DISTINCT p.ctx3 as guid
			FROM droid_ankiety_dane_po p
			 INNER JOIN droid_ankiety_dane_ng n ON n.guid = p.GUIDng
			 INNER JOIN droid_ankiety_def_po dp ON dp.guid = p.AnkietaDefPoGUID
			 WHERE TRUE 
			 AND p.valuekey<>'-' AND valuedescr NOT LIKE 'zatwier%' AND p.valuedescr<> 'wizualizacja OK'
			 AND IFNULL(p.status, 0) IN (0,-2)
			 AND p.ctx3 IS NOT NULL	
			 AND (
			 (DATE(n.droidtime) >= '2015-01-01' AND dp.crm_template IN ('MHWIZUAL')) 
			  OR (DATE(n.droidtime) >= '2015-05-15' AND dp.crm_template IN ('MHFIN')) 
				OR (DATE(n.droidtime) >= '2015-05-13' AND dp.crm_template IN ('MHPOTENCJALNY'))
				OR (DATE(n.droidtime) >= '2015-01-01' AND dp.crm_template IN ('MHLIKWIDACJA'))
				
				OR (DATE(n.droidtime) >= '2015-01-01' AND dp.crm_template IN ('MHIWNNIEZGODNA') AND p.ValueDescr NOT LIKE '%ok%')
			 )
			 ;
			 
		ALTER TABLE temp1 ADD INDEX guid(guid);
		
		BEGIN
			DECLARE done BOOL DEFAULT FALSE;
			DECLARE _pGUID VARCHAR(38);
			
			DECLARE c_proc CURSOR FOR
			SELECT DISTINCT 
				p.ctx3 as guid
			 FROM droid_ankiety_dane_po p
			 INNER JOIN droid_ankiety_dane_ng n ON n.guid = p.GUIDng
			 INNER JOIN droid_ankiety_def_po dp ON dp.guid = p.AnkietaDefPoGUID
			 LEFT JOIN temp1 t ON t.guid = p.ctx3
			 LEFT JOIN crm_commisions c ON c.guid = p.ctx3
			 WHERE t.guid IS NULL AND c.guid IS NULL
			 AND IFNULL(p.status, 0) IN (0,-2)
			 AND p.ctx3 IS NOT NULL
			 
			 AND (DATE(n.droidtime) >= '2015-06-01' AND p.ctx1<>'' AND p.ctx3<>'') -- wszystkie wizyty (bez prac w biurze)			 
			 ;	
			
			DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
			
			OPEN c_proc;
				loop2: LOOP
				SET done = FALSE;
				FETCH c_proc INTO _pGUID;
				IF done THEN
					LEAVE loop2;
				ELSE
					CALL ht_mh2crm('mh_one', _pGUID, 'MHALL', '', '');
					-- UPDATE droid_ankiety_dane_po SET status = 1 WHERE guid = _pGUID;
					-- UPDATE droid_ankiety_dane_po p, crm_commisions c SET p.status = 2 WHERE p.guid = _pGUID AND p.guid=c.guid;
					
					UPDATE droid_ankiety_dane_po p, droid_ankiety_def_po dp 
						SET p.status = 1 WHERE p.ctx3 = _pGUID AND dp.guid = p.AnkietaDefPoGUID;
					UPDATE droid_ankiety_dane_po p, crm_commisions c, droid_ankiety_def_po dp 
						SET p.status = 2 WHERE p.ctx3 = _pGUID AND p.ctx3 = c.guid AND dp.guid = p.AnkietaDefPoGUID;
					
					
				END IF;
			END LOOP;
			CLOSE c_proc;
		END;

	END IF;	

	
	
	IF _MODE = 'crm_spadki_all' THEN
	/* *************************************************************************************************************************************************************
		Generowanie zadan dla klientow, dla ktorych nastapil spadek sprzedazy 
		na podstawie zestawienia a nie ankiet!
		
		CALL ht_mh2crm('crm_spadki_all', '',_Param_A,_Param_B,_Param_C);
		CALL ht_mh2crm('crm_spadki_all', '','','','');
		
	**************************************************************************************************************************************************************/
		
		DROP TABLE IF EXISTS temp_spadki_crm;
		CREATE TABLE temp_spadki_crm
			SELECT t.*,
				ROUND(100*
				IF(czestotliwosc=7,(-ilosc1+srednia),
				IF(czestotliwosc=14,(-ilosc1-ilosc2+2*srednia)/2,
				IF(czestotliwosc=21,(-ilosc1-ilosc2-ilosc3+3*srednia)/3,
				(-ilosc1-ilosc2-ilosc3-ilosc4+4*srednia)/4)))
				/srednia,1) AS spadek,
				k.dlmagazynu AS dni,
				0 AS status_p

				FROM temp_spadki t
				INNER JOIN kontrah k ON k.GUID = t.kontrGUID
				WHERE t.ocena = 'Kluczowy' AND t.czestotliwosc<>0 
				AND t.status NOT LIKE 'LIKWIDACJA%' AND t.status NOT LIKE 'UTRACONY%' 
				AND t.status NOT IN ('Sezon','WINDYKACJA','DŁUŻNIK','ZLIKWIDOWANY')
				HAVING spadek>=40 AND spadek<=100;

		ALTER TABLE temp_spadki_crm ADD INDEX kontrGUID(kontrGUID);

		
		BEGIN
			DECLARE done BOOL DEFAULT FALSE;
			DECLARE _pGUID VARCHAR(38);
			DECLARE _DNI INT;
			
			DECLARE c_proc CURSOR FOR
			SELECT kontrGUID as guid, dni FROM temp_spadki_crm; -- where kontrguid='IMOP_6cc8711ef1fef85bc48ff51cecf94cc5';

			DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
			
			OPEN c_proc;
				loop2: LOOP
				SET done = FALSE;
				FETCH c_proc INTO _pGUID, _DNI;
				IF done THEN
					LEAVE loop2;
				ELSE
					-- zadanie nie czesciej niz co cykl

					SELECT count(*) FROM crm_commisions c, crm_usr_links l 
					WHERE c.guid=l.commisionguid AND l.kontrguid = _pGUID AND l.poziom=4 AND c.temat LIKE 'Kluczowi spadek%'
					  AND c.StartTime>= CURRENT_DATE - interval _DNI DAY
					INTO @pomin;
					IF @pomin=0 THEN
					    CALL ht_mh2crm('crm_spadki_one', _pGUID, '', '', '');
					END IF;
					
				END IF;
			END LOOP;
			CLOSE c_proc;
		END;

	END IF;	
	
/********************************************************************************************************************
	zadanie w crm tworzone dla jednego kontrahenta o spadku wiekszym niz 40 proc (na podstawie zestawienia, nie ankiety)
	
	CALL ht_mh2crm('crm_spadki_one', 'IMOP_0d1dbc30e5e95d48fb7748401ea862c3', '', '', '');
********************************************************************************************************************/
		IF _MODE = 'crm_spadki_one' THEN
		
		SET @tabela_header := 'tyd11,tyd10,tydz9,tydz8,tydz7,tydz6,tydz5,tydz4,tydz3,tydz2,tydz1,biez_,sredn,spadek,majatek'; 
		
		SELECT
		k.dlmagazynu,
		k.ugrpguid as oddzial,
		IFNULL((SELECT rew.nazwa FROM erp_area_nodes rew WHERE rew.GUID= k.areaGUID),'brak trasy') as trasa,
		concat(k.nazwa,' ',k.symbol) as kontrahent,
		(SELECT h.valuex FROM v_kkn4 h WHERE k.katcol4=h.klucz) as handlowiec,
		substring_index(substring_index(k.treenode,'|',2),'|',-1) as rodzajkl,
		substring_index(substring_index(k.treenode,'|',3),'|',-1) as klasyfikacja,
		(SELECT h.valuex FROM v_kkn3 h WHERE k.katcol3=h.klucz) as status,
    (SELECT h.param2 FROM v_kkn4 h WHERE k.katcol4=h.klucz) as login,
    (SELECT o.guid FROM v_kkn4 h,osoby o WHERE k.katcol4=h.klucz AND o.idnuser=h.param2 limit 1) as handlowiecguid,
    (SELECT h.param3 FROM v_kkn4 h WHERE k.katcol4=h.klucz) as odpowiada,
    _VarStr(IFNULL((SELECT GUID FROM osoby o WHERE o.KontrGUID = k.GUID AND o.niewidoczna_w_HR=0  AND o.deleted=0 LIMIT 1), '')) AS Kontr_osoba,
    k.guid as kontrGUID

		FROM kontrah k
		WHERE k.guid=_GUID
		
		INTO @czestotliwosc,@oddzial,@trasa,@kontrahent,@handlowiec,@rodzajkl,@klasyfikacja,@status,@login,
		@handlowiecguid,@odpowiada,@.mh.Kontr_osoba,@.mh.KontrGUID;
				
		SELECT 
		concat(
		lpad(ROUND(ilosc11,0),7,' '),',', lpad(ROUND(ilosc10,0),7,' '),',', lpad(ROUND(ilosc9,0),7,' '),',', lpad(ROUND(ilosc8,0),7,' '),',', lpad(ROUND(ilosc7,0),7,' '),',',
		lpad(ROUND(ilosc6,0),7,' '),',', lpad(ROUND(ilosc5,0),7,' '),',', lpad(ROUND(ilosc4,0),7,' '),',', lpad(ROUND(ilosc3,0),7,' '),',', lpad(ROUND(ilosc2,0),7,' '),',', 
		lpad(ROUND(ilosc1,0),7,' '),',', lpad(ROUND(biez_ilosc,0),8,' '),',', lpad(ROUND(srednia,2),8,' '),',', lpad(spadek,8,' '),',', lpad(majatek,8,' ')
		) as tabela,
		infozm
		FROM temp_spadki_crm t
		WHERE t.kontrGUID=_GUID
		INTO @tabela, @infozm;
		
		SET @odpowiadaguid='';
		IF @odpowiada LIKE "%mosakowski%" THEN
		  SET @odpowiadaguid='IM_75';
		END IF;  
		IF @odpowiada LIKE "%pokorski%" THEN
		  SET @odpowiadaguid='{73BAA3DD-8931-4E10-9BA4-0342500E269F}';
		END IF;  


		SET @rodzaj=8;
		SET @template = 'crm_spadek';
		-- SELECT guid from crm_commisions WHERE idn= INTO @template;
		
		SET @zadanie_logistyka=1;

		SET @temat=CONCAT('Kluczowi spadek: ',@kontrahent); 
		
		SET _crmGUID=concat('sp',date_format(now(),'%y%m%d'),uuid());

		SET @opis=CONCAT(@kontrahent,'\noddział: ',@oddzial,'\nrodzaj klienta: ',@rodzajkl,'\nstatus: ',@status,
		    '\nklasyfikacja: ',@klasyfikacja,'\ntrasa: ',@trasa,'\nczęstotliwość: ',@czestotliwosc,
				'\n\n',_Param_A, '\n',@tabela_header,'\n',@tabela,'\ninfozm:\n',@infozm);
		SET @czas=10/60; -- czas jest w godzinach

		
		IF @zadanie_logistyka>=0 AND _PARAM_C NOT LIKE '%TESTbezINSERT%' THEN
		  CALL crm_INSERT('z.szablonu',_crmGUID, @template  , @rodzaj, 0, @temat, @opis, @czas, '', NULL, NULL, CONCAT(@oddzial,'kier'), '', '', _GUID, 1, 4, '', '');
		  
		  DELETE FROM crm_usr_links WHERE commisionGUID = _crmGUID;
		  
		  IF @odpowiadaguid<>'' THEN -- nadzorca handlowca (PM lub PP) jako odpowiedzialny (poziom 1)
		    INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,@odpowiadaguid,1; 
		  END IF;
		  -- DW
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'IM_57',3; -- lewnab Odp
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'IM_64',3; -- matusiaks
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,CONCAT(@oddzial,'kier'),3; -- grupa oddziałowa zawsze DW
		  -- wykonawca - handlowiec
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,@handlowiecguid,2;
		  -- zglosil
		  -- niesłusznie był jako zglaszajacy: INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,@handlowiecguid,4;
		  IF @.mh.Kontr_osoba<>'' THEN
			 CALL ht_mh2crm('Add.to.crm_usr_links', _crmGUID, @.mh.Kontr_osoba, 4, @.mh.KontrGUID); -- osoba od kontrahenta, o ile jest
		  END IF;
		  -- jmam INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'cf23fedf8f020ff365c0e164a6251d76',3;
		  
		  UPDATE crm_commisions 
				SET nrwewn=CONCAT(@oddzial,':',@trasa),pr_symbol=_GUID 
		  WHERE guid=_crmGUID;
		  -- UPDATE kontrah k SET k.localtime=k.localtime,k.data_zmian_rycz=CURRENT_DATE WHERE guid=_GUID;
		  
		END IF;

	END IF;	


	
	IF _MODE = 'mh_one' THEN
	/* *************************************************************************************************************************************************************
		Naliczenie atomiczne
		CALL ht_mh2crm('mh_one',_GUID,_Param_A,_Param_B,_Param_C);
		CALL ht_mh2crm('mh_one','818f88e0fdd31a1490aedbdc4c4cb2ba','','','');
		_GUID ID pozycji ankiety lub guid wizyty
	**************************************************************************************************************************************************************/
		-- jezeli nie jest to wejscie jako test, to nie kasujemy zadan juz istniejacych, tylko dopisujemy w crm_log komentarz i wypad
		IF _Param_C = '' AND EXISTS (select guid from crm_commisions where guid = _GUID) THEN
			
			INSERT INTO crm_log (guid, commissionGUID, osobaguid, modify_date, zmiana_dotyczy, jest)
			SELECT md5(CONCAT(_GUID,NOW())), _GUID, '63a9f0ea7bb98050796b649e85481845', NOW(), 'ADD_COMMENT', 'Proba dopisania zadania kolejny raz';
			
			LEAVE S_ht_mh2crm;
		END IF;
		
		
		
		SET @status = 0;
		SET
			@.mh.GUID = _GUID,
			@.mh.OK = FALSE,
			@.mh.ValueKey = NULL,
			@.mh.ValueDescr = NULL,
			@.mh.login = '', @.mh.User_GUID = '', @.mh.KontrGUID = '', @.mh.IdnTowr = '', @.mh.WizytaGUID = '', @.mh.oddzia = '',
			@.mh.crm_template = '',
			@.mh.sql_cond = '',
			
			
			@.mh.crm.WYK_1 = NULL,
			@.mh.crm.WYK_2 = NULL,
			@.mh.crm.DW_1 = NULL,
			@.mh.crm.DW_2 = NULL,
			@.mh.crm.ODP_1 = NULL,
			@.mh.crm.ODP_2 = NULL,
			
			@odpowiadaguid = '',			
			@.test.c.Temat = NULL, 
			@.test.c.Opis = NULL
		;
	--	Pobierz wartosci zmiennych	

	IF _Param_A NOT IN ('MHALL','MHIWNNIEZGODNA') THEN
		SELECT 
			dp.Label, 
			p.ValueKey,
			p.ValueDescr,
			n.login, u.GUID AS User_GUID,
			CONCAT(u.Nazwisko, ' ', u.Imiona) AS User_Nazwisko_Imiona,
			CASE 
			WHEN p.ctx1key = 'kontrah' THEN p.ctx1
			WHEN p.ctx2key = 'kontrah' THEN p.ctx2
			WHEN p.ctx3key = 'kontrah' THEN p.ctx3
			ELSE ''
			END AS KontrGUID,
			CASE 
			WHEN p.ctx1key = 'TowrNg' THEN p.ctx1
			WHEN p.ctx2key = 'TowrNg' THEN p.ctx2
			WHEN p.ctx3key = 'TowrNg' THEN p.ctx3
			ELSE ''
			END AS IdnTowr,
			CASE 
			WHEN p.ctx1key = 'wizyta.guid' THEN p.ctx1
			WHEN p.ctx2key = 'wizyta.guid' THEN p.ctx2
			WHEN p.ctx3key = 'wizyta.guid' THEN p.ctx3
			ELSE ''
			END AS WizytaGUID,
			dp.crm_template,
			dp.sql_cond,


		-- (SELECT ParamExtra FROM slowniki_pierwotne s WHERE s.slownik_guid="ZM_POWODY_NIEREALIZ" AND s.value=z.powod_niezrealizowania) AS powod,
		'' AS powod,
		k.ugrpguid AS oddzial,
		k.symbol AS KontrSymbol, k.nazwa AS KontrNazwa,
		k.dlmagazynu AS Kontr_Czestotliwosc,
		_VarStr(IFNULL((SELECT GROUP_CONCAT(CONCAT(IF(kk.Opis IN ('Telefon', 'Telefon 2'), '', CONCAT(kk.Opis, ' ')), kk.Adres) SEPARATOR ', ') FROM `kontakty` kk WHERE kk.KontrGUID = k.GUID AND typ_medium IN (0,2)), '')) AS Kontr_TEL,
		_VarStr(IFNULL((SELECT GROUP_CONCAT(CONCAT(IF(kk.Opis = 'E-mail', '', CONCAT(kk.Opis, ': ')), kk.Adres) SEPARATOR ', ') FROM `kontakty` kk WHERE kk.KontrGUID = k.GUID AND typ_medium IN (3)), '')) AS Kontr_MAIL,
		
		_VarStr(IFNULL((SELECT GUID FROM osoby o WHERE o.KontrGUID = k.GUID AND o.niewidoczna_w_HR=0  AND o.deleted=0 LIMIT 1), '')) AS Kontr_osoba,
						
		(SELECT v.valuex FROM v_kkn1 v WHERE v.klucz = k.katcol1) AS Kontr_infoRynek,
		(SELECT v.valuex FROM v_kkn2 v WHERE v.klucz = k.katcol2) AS Kontr_ocena,
		(SELECT v.valuex FROM v_kkn3 v WHERE v.klucz = k.katcol3) AS Kontr_STATUS,
		SUBSTRING_INDEX(SUBSTRING_INDEX(k.treenode,'|',2),'|',-1) AS Kontr_rodzajkl,
		SUBSTRING_INDEX(SUBSTRING_INDEX(k.treenode,'|',3),'|',-1) AS Kontr_klasyfikacja,
		
		h.valuex AS Kontr_handlowiec,
		h.kontofk AS Kontr_hmail,
		h.param2 AS Kontr_hlogin,
		h.param3 AS Kontr_odpowiada,
		(SELECT o.guid FROM osoby o WHERE o.idnuser=h.param2 LIMIT 1) AS Kontr_handlowiecguid,
		rew.nazwa AS Kontr_trasa,
		k.km AS Kontr_Prowizja,
		
		-- (SELECT nazwa FROM kontrah WHERE guid=n.akwizytorguid) AS kierowca
		'' AS Kontr_kierowca,
		IFNULL((SELECT GROUP_CONCAT(DISTINCT valuedescr) FROM `droid_ankiety_dane_po` d WHERE d.ctx3=p.ctx3 AND ankietaDefPoGUID ='CDG_MHv1540'), '') AS uwagi_wizyty,
		IFNULL((SELECT GROUP_CONCAT(DISTINCT valuedescr) FROM `droid_ankiety_dane_po` d WHERE d.ctx3=p.ctx3 AND ankietaDefPoGUID ='CDG_MHv1520'), '') AS inwentaryzacja,
		IFNULL((SELECT GROUP_CONCAT(concat(d.valuedescr,IF(d.ctx2key='TowrNg',concat(': ',d.ctx2),''))) FROM `droid_ankiety_dane_po` d WHERE d.ctx3=p.ctx3 AND ankietaDefPoGUID ='CDG_MHv1530'), '') AS uwagi_niezgodnosci,
		MIN(p.droidtime) as starttime,
		MAX(p.droidtime) as endtime
			-- ,p.* 
		FROM `droid_ankiety_dane_po` p
		INNER JOIN `droid_ankiety_def_po` dp ON dp.GUID = p.AnkietaDefPoGUID
		INNER JOIN `droid_ankiety_dane_ng` n ON n.GUID = p.GUIDng
		INNER JOIN `v_intnet_users` u ON u.IdnUser = n.Login
		LEFT JOIN `kontrah` k ON k.guid = (
			CASE 
			WHEN p.ctx1key = 'kontrah' THEN p.ctx1
			WHEN p.ctx2key = 'kontrah' THEN p.ctx2
			WHEN p.ctx3key = 'kontrah' THEN p.ctx3
			ELSE ''
			END
		)
		LEFT JOIN `v_kkn4` h ON h.klucz = k.katcol4
		LEFT JOIN `erp_area_nodes` rew ON rew.GUID = k.areaGUID
		WHERE
			TRUE
			AND p.GUID = _GUID

		INTO 
			@.mh.Label,					--	label z `droid_ankiety_def_po`
			@.mh.ValueKey,				--	Odp. z ankiety
			@.mh.ValueDescr,			--	Treść znakowa odp. z ankiety 
			@.mh.login, 				--	Login kierowcy
			@.mh.User_GUID, 			--	ID kierowcy
			@.mh.User_Nazwisko_Imiona,	--	Kierowcy nazwisko i imiona
			@.mh.KontrGUID, 		--	ID KOntrahenta
			@.mh.IdnTowr, 			--	ID Towaru
			@.mh.WizytaGUID, 		--	// ID wizyty
			@.mh.crm_template,		--	// ID szablonu CRM
			@.mh.sql_cond,			--	// 
			@.mh.powod,				--	Powod - NIEUZYWANY
			@.mh.oddzial, 			--	Oddzial
			@.mh.KontrSymbol, 		--	Symbol kontrahenta
			@.mh.KontrNazwa, 		--	Nazwa kontrahenta
			@.mh.Kontr_Czestotliwosc,
			@.mh.Kontr_TEL,
			@.mh.Kontr_MAIL,
			@.mh.Kontr_osoba,			-- guid osoby przypisany do kontrahenta w tabeli hr_kontrah_links
			
			@.mh.Kontr_infoRynek,	--	infoRynek 
			@.mh.Kontr_ocena,		--	Ocena kontrahenta
			@.mh.Kontr_STATUS,		--	Status kontrahenta
			@.mh.Kontr_rodzajkl,	--	Rodzaj klatki kontrahenta
			@.mh.Kontr_klasyfikacja,	--	Klasyfikacja kontrahenta
			@.mh.Kontr_handlowiec,	--	handlowiec kontrahenta
			@.mh.Kontr_hmail,		--	mail handlowca kontrahenta
			@.mh.Kontr_hlogin,		--	login handlowca kontrahenta
			@.mh.Kontr_odpowiada,	--	odpow. kontrahenta
			@.mh.Kontr_handlowiecguid,	--	// 
			@.mh.Kontr_trasa,		--	trasa kontrahenta
			@.mh.Kontr_Prowizja,
			@.mh.Kontr_kierowca,		--	kierowca kontrahenta
			@.mh.uwagi.wizyty,
			@.mh.inwentaryzacja,
			@.mh.uwagi.niezgodnosci,
			@.mh.starttime,
			@.mh.endtime
		;
		
		ELSE -- wywolanie dla wszystkich wizyt nie ma wprost przypisanego szablonu, poza tym jest bardziej ogolne
				-- dodatkowo niezgodnosci inwentaryzacyjne musza byc grupowane wg wizyt
			SELECT 
			dp.Label, 
			p.ValueKey,
			p.ValueDescr,
			n.login, u.GUID AS User_GUID,
			CONCAT(u.Nazwisko, ' ', u.Imiona) AS User_Nazwisko_Imiona,
			CASE 
			WHEN p.ctx1key = 'kontrah' THEN max(p.ctx1)
			WHEN p.ctx2key = 'kontrah' THEN max(p.ctx2)
			WHEN p.ctx3key = 'kontrah' THEN max(p.ctx3)
			ELSE ''
			END AS KontrGUID,
			CASE 
			WHEN p.ctx1key = 'TowrNg' THEN p.ctx1
			WHEN p.ctx2key = 'TowrNg' THEN p.ctx2
			WHEN p.ctx3key = 'TowrNg' THEN p.ctx3
			ELSE ''
			END AS IdnTowr,
			_GUID AS WizytaGUID,
			dp.crm_template,
			dp.sql_cond,


		-- (SELECT ParamExtra FROM slowniki_pierwotne s WHERE s.slownik_guid="ZM_POWODY_NIEREALIZ" AND s.value=z.powod_niezrealizowania) AS powod,
		'' AS powod,
		k.ugrpguid AS oddzial,
		k.symbol AS KontrSymbol, k.nazwa AS KontrNazwa,
		k.dlmagazynu AS Kontr_Czestotliwosc,
		_VarStr(IFNULL((SELECT GROUP_CONCAT(CONCAT(IF(kk.Opis IN ('Telefon', 'Telefon 2'), '', CONCAT(kk.Opis, ' ')), kk.Adres) SEPARATOR ', ') FROM `kontakty` kk WHERE kk.KontrGUID = k.GUID AND typ_medium IN (0,2)), '')) AS Kontr_TEL,
		_VarStr(IFNULL((SELECT GROUP_CONCAT(CONCAT(IF(kk.Opis = 'E-mail', '', CONCAT(kk.Opis, ': ')), kk.Adres) SEPARATOR ', ') FROM `kontakty` kk WHERE kk.KontrGUID = k.GUID AND typ_medium IN (3)), '')) AS Kontr_MAIL,
		
		_VarStr(IFNULL((SELECT GUID FROM osoby o WHERE o.KontrGUID = k.GUID AND o.niewidoczna_w_HR=0  AND o.deleted=0 LIMIT 1), '')) AS Kontr_osoba,
						
		(SELECT v.valuex FROM v_kkn1 v WHERE v.klucz = k.katcol1) AS Kontr_infoRynek,
		(SELECT v.valuex FROM v_kkn2 v WHERE v.klucz = k.katcol2) AS Kontr_ocena,
		(SELECT v.valuex FROM v_kkn3 v WHERE v.klucz = k.katcol3) AS Kontr_STATUS,
		SUBSTRING_INDEX(SUBSTRING_INDEX(k.treenode,'|',2),'|',-1) AS Kontr_rodzajkl,
		SUBSTRING_INDEX(SUBSTRING_INDEX(k.treenode,'|',3),'|',-1) AS Kontr_klasyfikacja,
		
		h.valuex AS Kontr_handlowiec,
		h.kontofk AS Kontr_hmail,
		h.param2 AS Kontr_hlogin,
		h.param3 AS Kontr_odpowiada,
		(SELECT o.guid FROM osoby o WHERE o.idnuser=h.param2 LIMIT 1) AS Kontr_handlowiecguid,
		rew.nazwa AS Kontr_trasa,
		k.km AS Kontr_Prowizja,
		
		-- (SELECT nazwa FROM kontrah WHERE guid=n.akwizytorguid) AS kierowca
		'' AS Kontr_kierowca,
		IFNULL((SELECT GROUP_CONCAT(DISTINCT valuedescr) FROM `droid_ankiety_dane_po` d WHERE d.ctx3=p.ctx3 AND ankietaDefPoGUID  in ('CDG_MHv1490','CDG_MHv1500','CDG_MHv1510')), '') as warunki_handlowe,
		IFNULL((SELECT GROUP_CONCAT(DISTINCT valuedescr) FROM `droid_ankiety_dane_po` d WHERE d.ctx3=p.ctx3 AND ankietaDefPoGUID ='CDG_MHv1540'), '') AS uwagi_wizyty,
		IFNULL((SELECT GROUP_CONCAT(DISTINCT valuedescr) FROM `droid_ankiety_dane_po` d WHERE d.ctx3=p.ctx3 AND ankietaDefPoGUID ='CDG_MHv1520'), '') AS inwentaryzacja,
		-- IFNULL((SELECT GROUP_CONCAT(DISTINCT valuedescr) FROM `droid_ankiety_dane_po` d WHERE d.ctx3=p.ctx3 AND ankietaDefPoGUID ='CDG_MHv1530'), '') AS uwagi_niezgodnosci,
		IFNULL((SELECT GROUP_CONCAT(concat(d.valuedescr,IF(d.ctx2key='TowrNg',concat(': ',d.ctx2),''))) FROM `droid_ankiety_dane_po` d WHERE d.ctx3=p.ctx3 AND ankietaDefPoGUID ='CDG_MHv1530'), '') AS uwagi_niezgodnosci,
		MIN(p.droidtime) as starttime,
		MAX(p.droidtime) as endtime

			-- ,p.* 
		FROM `droid_ankiety_dane_po` p
		INNER JOIN `droid_ankiety_def_po` dp ON dp.GUID = p.AnkietaDefPoGUID
		INNER JOIN `droid_ankiety_dane_ng` n ON n.GUID = p.GUIDng
		INNER JOIN `v_intnet_users` u ON u.IdnUser = n.Login
		LEFT JOIN `kontrah` k ON k.guid = (
			CASE 
			WHEN p.ctx1key = 'kontrah' THEN p.ctx1
			WHEN p.ctx2key = 'kontrah' THEN p.ctx2
			WHEN p.ctx3key = 'kontrah' THEN p.ctx3
			ELSE ''
			END
		)
		LEFT JOIN `v_kkn4` h ON h.klucz = k.katcol4
		LEFT JOIN `erp_area_nodes` rew ON rew.GUID = k.areaGUID
		WHERE
			p.ctx1 <> ''
			AND p.ctx3 = _GUID
		group by p.ctx3
		
		INTO 
			@.mh.Label,					--	label z `droid_ankiety_def_po`
			@.mh.ValueKey,				--	Odp. z ankiety
			@.mh.ValueDescr,			--	Treść znakowa odp. z ankiety 
			@.mh.login, 				--	Login kierowcy
			@.mh.User_GUID, 			--	ID kierowcy
			@.mh.User_Nazwisko_Imiona,	--	Kierowcy nazwisko i imiona
			@.mh.KontrGUID, 		--	ID KOntrahenta
			@.mh.IdnTowr, 			--	ID Towaru
			@.mh.WizytaGUID, 		--	// ID wizyty
			@.mh.crm_template,		--	// ID szablonu CRM
			@.mh.sql_cond,			--	// 
			@.mh.powod,				--	Powod - NIEUZYWANY
			@.mh.oddzial, 			--	Oddzial
			@.mh.KontrSymbol, 		--	Symbol kontrahenta
			@.mh.KontrNazwa, 		--	Nazwa kontrahenta
			@.mh.Kontr_Czestotliwosc,
			@.mh.Kontr_TEL,
			@.mh.Kontr_MAIL,
			@.mh.Kontr_osoba,			-- guid osoby przypisany do kontrahenta w tabeli hr_kontrah_links
			
			@.mh.Kontr_infoRynek,	--	infoRynek 
			@.mh.Kontr_ocena,		--	Ocena kontrahenta
			@.mh.Kontr_STATUS,		--	Status kontrahenta
			@.mh.Kontr_rodzajkl,	--	Rodzaj klatki kontrahenta
			@.mh.Kontr_klasyfikacja,	--	Klasyfikacja kontrahenta
			@.mh.Kontr_handlowiec,	--	handlowiec kontrahenta
			@.mh.Kontr_hmail,		--	mail handlowca kontrahenta
			@.mh.Kontr_hlogin,		--	login handlowca kontrahenta
			@.mh.Kontr_odpowiada,	--	odpow. kontrahenta
			@.mh.Kontr_handlowiecguid,	--	// 
			@.mh.Kontr_trasa,		--	trasa kontrahenta
			@.mh.Kontr_Prowizja,
			@.mh.Kontr_kierowca,		--	kierowca kontrahenta
			@.mh.warunki_handlowe,
			@.mh.uwagi.wizyty,
			@.mh.inwentaryzacja,
			@.mh.uwagi.niezgodnosci,
			@.mh.starttime,
			@.mh.endtime
			;
			
			IF _Param_A IN ('MHALL','MHIWNNIEZGODNA') THEN
				SET @.mh.crm_template.GUID = _Param_A, @.mh.crm_template = _Param_A;
			END IF;

		END IF;

		
		-- dodanie osoby kontrahenta jezeli jej nie ma
		IF @.mh.Kontr_osoba = '' AND ifnull(@.mh.KontrGUID,'') <> '' THEN
			INSERT INTO osoby (guid, kontrguid, niewidoczna_w_HR, rodzaj, idnuser, nazwisko) 
			values (md5(@.mh.KontrGUID), @.mh.KontrGUID, 0, 1, (select symbol from kontrah where guid= @.mh.KontrGUID and deleted=0 limit 1),
							concat('Osoba reprezent. ', (select symbol from kontrah where guid= @.mh.KontrGUID and deleted=0 limit 1)));
		
			SET @.mh.Kontr_osoba = md5(@.mh.KontrGUID);
		
		END IF;
		

--	Czy mamy cos do roboty ???
			SET @.mh.OK = IFNULL(@.mh.crm_template, '') != '';
			IF NOT @.mh.OK THEN
			--	brak szablonu wiec wychodzimy
				LEAVE S_ht_mh2crm;
			END IF;
		
		
	  
		SET _SQLText = @.mh.sql_cond;
		-- SET _SQLText = REPLACE(@.mh.sql_cond;
		SET @_SQLText = _SQLText;
		CALL _ExecuteCmd(_SQLText, @Error);
	--	Teraz w @.mh.OK musze miec 1 lub 0 ...
		SET @.mh.OK = IFNULL(@.mh.OK, FALSE);
	--	... ZATEM Czy mamy cos do roboty ???
		IF NOT @.mh.OK THEN
		--	NIE jest OK zatem wychodzimy
			LEAVE S_ht_mh2crm;
		END IF;
		SET
		-- 	@.mh.Info.template = 
		-- 	"@.mh.KontrNazwa\noddział: @.mh.oddzial,\ntrasa: @.mh.Kontr_trasa,\nkierowca: @.mh.User_Nazwisko_Imiona,\nrodzaj klienta: @.mh.Kontr_rodzajkl,\nstatus: @.mh.Kontr_STATUS,\nklasyfikacja: @.mh.Kontr_klasyfikacja"
		-- 	;
		-- 	TUTAJ nadeslamy przez P.Mosakowskiego
			@.mh.Info.template = 
			"@.mh.KontrNazwa \nTel:  @.mh.Kontr_TEL \nMail: @.mh.Kontr_MAIL \noddział: @.mh.oddzial, \ntrasa: @.mh.Kontr_trasa, \nczestotlwosc: @.mh.Kontr_Czestotliwosc \nkierowca: @.mh.User_Nazwisko_Imiona, \nrodzaj klienta: @.mh.Kontr_rodzajkl, \nStatus: @.mh.Kontr_STATUS, \nklasyfikacja: @.mh.Kontr_klasyfikacja"
			;
			
		SET 
			@.mh.crm.rodzaj = 8,	--	zadanie
			-- @.mh.crm.temat = CONCAT(@powodstr,'- Zamówienie niezrealizowane'), 
			@.mh.crm.temat = '',
			-- @.mh.crm.opis = CONCAT('', @.mh.KontrNazwa,'\noddział: ',@.mh.oddzial,'\ntrasa: ',@.mh.Kontr_trasa,'\nkierowca: ',@.mh.User_Nazwisko_Imiona,'\nrodzaj klienta: ',@.mh.Kontr_rodzajkl,'\nstatus: ',@.mh.Kontr_STATUS,'\nklasyfikacja: ',@.mh.Kontr_klasyfikacja),
			@.mh.crm.opis = '',
			@.mh.crm.czas = 10/60, -- czas jest w godzinach
			@logistyka = CONCAT(@.mh.oddzial, 'kier'), -- guid grupy logistyka danego oddzialu
			@wykonawca = IF(_Param_B = '', @.mh.User_GUID, _Param_B),
			@.mh.Info = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@.mh.Info.template,
				'@.mh.KontrNazwa', @.mh.KontrNazwa),
				'@.mh.oddzial', @.mh.oddzial),
				'@.mh.Kontr_trasa', @.mh.Kontr_trasa),
				'@.mh.User_Nazwisko_Imiona', @.mh.User_Nazwisko_Imiona),
				'@.mh.Kontr_rodzajkl', @.mh.Kontr_rodzajkl),
				'@.mh.Kontr_STATUS', @.mh.Kontr_STATUS),
				'@.mh.Kontr_klasyfikacja', @.mh.Kontr_klasyfikacja)
		;
		
		-- dla niezgodnosci dodajemy wyniki inwentaryzacji 
		-- IF @.mh.crm_template.GUID IN ('MHIWNNIEZGODNA') THEN
-- 			SET @.mh.Info = CONCAT(@.mh.Info,'\ninwentaryzacja: ',@.mh.inwentaryzacja,'\nniezgodności: ',@.mh.uwagi.niezgodnosci);
		-- END IF;
		
		
	--	UWAGA TUTAJ TESTY
		SET
			@.test.c.Temat = 'Wizualizacja - @.mh.Label',
			@.test.c.Opis = '@.mh.Label\n................................\n@.mh.Info'
		;
		SET
			@.test.c.Temat = _MH_Multi_Replace_Zmienne(@.test.c.Temat), 
			@.test.c.Opis = _MH_Multi_Replace_Zmienne(@.test.c.Opis)
		;
		
		SET 	
			@.mh.crm_template = TRIM(@.mh.crm_template),
			@.mh.crm_template.GUID = NULL
		;
		
		
		
		IF SUBSTR(@.mh.crm_template, 1, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9') THEN
			SELECT IDN, GUID FROM `crm_commisions` WHERE idn = @.mh.crm_template INTO @.mh.crm_template.IDN, @.mh.crm_template.GUID;
		END IF;
		
		SET @.mh.crm_template.GUID = IFNULL(@.mh.crm_template.GUID, @.mh.crm_template);


-- dla klienta potencjalnego nie mamy zadnych danych i trzeba je zebrac zupelnie na boku, aby utworzyc temat, opis, i nrwewn
		IF @.mh.crm_template.GUID IN ('MHPOTENCJALNY') THEN
			
			SELECT 
					
					_VarStr(MAX(IF(p.AnkietaDefPoGUID IN ('CDG_MHv1681','CDG_MHv1682','CDG_MHv1680'), dp.label,''))) AS oferta_przemysl,	
					_VarStr(MAX(IF(p.AnkietaDefPoGUID IN ('CDG_MHv1540'), p.valuedescr,''))) AS dodatkowe_uwagi,
					_VarStr(MAX(IF(p.AnkietaDefPoGUID IN ('CDG_MHv1910'), p.valuedescr,''))) AS nazwa_firmy,
					_VarStr(MAX(IF(p.AnkietaDefPoGUID IN ('CDG_MHv1915'), p.valuedescr,''))) AS adres_firmy,
					_VarStr(MAX(IF(p.AnkietaDefPoGUID IN ('CDG_MHv1916'), p.valuedescr,''))) AS nip_firmy,
					_VarStr(MAX(IF(p.AnkietaDefPoGUID IN ('CDG_MHv1920'), p.valuedescr,''))) AS osoba_kontakt,
					_VarStr(MAX(IF(p.AnkietaDefPoGUID IN ('CDG_MHv1930'), p.valuedescr,''))) AS osoba_stanowisko,
					_VarStr(MAX(IF(p.AnkietaDefPoGUID IN ('CDG_MHv1940'), p.valuedescr,''))) AS osoba_tel,
					_VarStr(MAX(IF(p.AnkietaDefPoGUID IN ('CDG_MHv1950'), p.valuedescr,''))) AS osoba_mail,
					_VarStr(IFNULL((SELECT GROUP_CONCAT(distinct concat(dp2.label,': ',tt2.valuedescr)) FROM droid_ankiety_dane_po tt2
					INNER JOIN droid_ankiety_def_po dp2 ON dp2.guid = tt2.AnkietaDefPoGUID
					WHERE tt2.AnkietaDefPoGUID IN ('CDG_MHv1731','CDG_MHv1740',
					'CDG_MHv1750','CDG_MHv1751','CDG_MHv1730','CDG_MHv1720','CDG_MHv1752') 
					AND tt2.ctx3=p.ctx3 GROUP BY tt2.ctx3), '')) as oferta_przemysl_cd,

					MAX(IF(p.AnkietaDefPoGUID IN ('CDG_MHv1970','CDG_MHv1971'), dp.label,'')) AS oferta_klatka,

					_VarStr(IFNULL((SELECT GROUP_CONCAT(distinct valuedescr) FROM droid_ankiety_dane_po WHERE AnkietaDefPoGUID IN ('CDG_MHv1390','CDG_MHv1395') 
					AND ctx3=p.ctx3 GROUP BY ctx3), '')) AS oferta_klatka_multi,
					_VarStr(IFNULL((SELECT GROUP_CONCAT(distinct valuedescr) FROM droid_ankiety_dane_po WHERE AnkietaDefPoGUID IN ('CDG_MHv11050',
					'CDG_MHv11040','CDG_MHv11060','CDG_MHv11030','CDG_MHv11020') AND ctx3 = p.ctx3 GROUP BY ctx3), '')) AS oferta_klatka_klient,

					_VarStr(IFNULL((SELECT GROUP_CONCAT(distinct valuedescr) FROM droid_ankiety_dane_po WHERE AnkietaDefPoGUID IN ('CDG_MHv11070','CDG_MHv11110',
					'CDG_MHv11090','CDG_MHv11120') AND ctx3=p.ctx3 GROUP BY ctx3), '')) AS oferta_klatka_warunki,
					MIN(p.droidtime) as starttime,
					MAX(p.droidtime) as endtime,
					(SELECT param3 FROM v_kkn4 WHERE param2 = n.login) as odpowiada,
					_VarStr(IFNULL((SELECT GROUP_CONCAT(distinct valuedescr) FROM droid_ankiety_dane_po WHERE AnkietaDefPoGUID IN ('CDG_MHv1740') 
					AND ctx3=p.ctx3 GROUP BY ctx3), '')) AS zuzycie,
					_VarStr(IFNULL((SELECT GROUP_CONCAT(distinct valuedescr) FROM droid_ankiety_dane_po WHERE AnkietaDefPoGUID IN ('CDG_MHv1720','CDG_MHv1730') 
					AND ctx3=p.ctx3 GROUP BY ctx3), '')) as konkurencja
						
						FROM droid_ankiety_dane_po p
						INNER JOIN droid_ankiety_def_po dp ON dp.guid = p.AnkietaDefPoGUID
						inner join droid_ankiety_dane_ng n ON n.GUID = p.GUIDng
						
					WHERE p.ctx3 = _GUID
					GROUP BY p.ctx3
					
					INTO 
					@.mh.oferta_przemysl,
					@.mh.dodatkowe_uwagi,
					@.mh.nazwa_firmy,
					@.mh.adres_firmy,
					@.mh.nip_firmy,
					@.mh.osoba_kontakt,
					@.mh.osoba_stanowisko,
					@.mh.osoba_tel,
					@.mh.osoba_mail,
					@.mh.oferta_przemysl_cd, 
					@.mh.oferta_klatka,
					@.mh.oferta_klatka_multi,
					@.mh.oferta_klatka_klient,
					@.mh.oferta_klatka_warunki,
					@.mh.starttime,
					@.mh.endtime,
					@.mh.Kontr_odpowiada,
					@.mh.zuzycie,
					@.mh.konkurencja
			;
					
			SET @.mh.Info.template2 =	'nazwa firmy: #.mh.nazwa_firmy \nadres firmy: #.mh.adres_firmy \nnip firmy: #.mh.nip_firmy 
			\nosoba: #.mh.osoba_kontakt \nstanowisko: #.mh.osoba_stanowisko \nosoba tel: #.mh.osoba_tel \nosoba mail: #.mh.osoba_mail \noferta przemysł: #.mh.oferta_przemysl \noferta przem. cd: #.mh.oferta_p_cd 
			\noferta klatka: #.mh.oferta_klatka \noferta klatka multi: #.mh.oferta_k_multi \noferta klatka klient: #.mh.oferta_kl_klient \noferta klatka warunki: #.mh.oferta_kla_warunki 
			\nuwagi dod: #.mh.dodatkowe_uwagi';
			
			
			SET @.mh.Info2 = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@.mh.Info.template2,
				'#.mh.oferta_przemysl', @.mh.oferta_przemysl),
				'#.mh.dodatkowe_uwagi', @.mh.dodatkowe_uwagi),
				'#.mh.nazwa_firmy', @.mh.nazwa_firmy),
				'#.mh.adres_firmy', @.mh.adres_firmy),
				'#.mh.nip_firmy',@.mh.nip_firmy),
				'#.mh.osoba_kontakt',@.mh.osoba_kontakt),
				'#.mh.osoba_stanowisko',@.mh.osoba_stanowisko),
				'#.mh.osoba_tel',@.mh.osoba_tel),
				'#.mh.osoba_mail',@.mh.osoba_mail),
				'#.mh.oferta_p_cd', @.mh.oferta_przemysl_cd),
				'#.mh.oferta_klatka',@.mh.oferta_klatka),
				'#.mh.oferta_k_multi',@.mh.oferta_klatka_multi),
				'#.mh.oferta_kl_klient',@.mh.oferta_klatka_klient),
				'#.mh.oferta_kla_warunki',@.mh.oferta_klatka_warunki)
				;
			
				
		END IF; -- koniec szukania danych dla klienta potencjalnego

-- wywolanie dla specyficznego przypadku generowania wizyt z wszystkich wizyt
		IF @.mh.crm_template.GUID IN ('MHALL') THEN 

			SET @.mh.Info.template3 = '@.mh.KontrNazwa \noddział: @.mh.oddzial, \ntrasa: @.mh.Kontr_trasa, \nkierowca: @.mh.User_Nazwisko_Imiona, \nrodzaj klienta: @.mh.Kontr_rodzajkl, \nStatus: @.mh.Kontr_STATUS, 
												\nklasyfikacja: @.mh.Kontr_klasyfikacja \nwarunki handlowe: @.mh.warunki_handlowe \nuwagi: @.mh.uwagi.wizyty \ninwentaryzacja: @.mh.inwentaryzacja \nniezgodności: @.mh.uwagi.niezgodnosci';

			SET @.mh.Info3 = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@.mh.Info.template3,
				'@.mh.KontrNazwa', @.mh.KontrNazwa),
				'@.mh.oddzial', @.mh.oddzial),
				'@.mh.Kontr_trasa', @.mh.Kontr_trasa),
				'@.mh.User_Nazwisko_Imiona', @.mh.User_Nazwisko_Imiona),
				'@.mh.Kontr_rodzajkl', @.mh.Kontr_rodzajkl),
				'@.mh.Kontr_STATUS', @.mh.Kontr_STATUS),
				'@.mh.Kontr_klasyfikacja', @.mh.Kontr_klasyfikacja),
				'@.mh.warunki_handlowe', @.mh.warunki_handlowe),
				'@.mh.uwagi.wizyty', @.mh.uwagi.wizyty),
				'@.mh.inwentaryzacja', @.mh.inwentaryzacja),
				'@.mh.uwagi.niezgodnosci', @.mh.uwagi.niezgodnosci)
				;
			
		END IF;
		
				
		
		DELETE FROM crm_commisions WHERE guid=_GUID;
		DELETE FROM crm_usr_links WHERE commisionGUID=_GUID;
		DELETE FROM crm_log WHERE commissionGUID=_GUID;
				
		
		CALL crm_INSERT('z.szablonu', _GUID, @.mh.crm_template.GUID, @.mh.crm.rodzaj, 0, @.mh.crm.temat, @.mh.crm.opis, @.mh.crm.czas, '', NULL, NULL, /*@wykonawca*/'', '', '', @.mh.KontrGUID, 1, 4, '', '');
		
		
		UPDATE crm_commisions c 
		SET 
			c.starttime = @.mh.starttime,
			c.endtime = @.mh.endtime
		WHERE 
			c.guid = _GUID; 
		

		UPDATE `crm_commisions` c 
		SET 
			c.nrwewn = CONCAT(@.mh.oddzial, ':', @.mh.Kontr_trasa),
			c.Temat = _MH_Multi_Replace_Zmienne(c.Temat), 
			c.Opis = _MH_Multi_Replace_Zmienne(c.Opis)
		WHERE 
			c.guid = _GUID 
			AND @.mh.crm_template.GUID NOT IN ('MHPOTENCJALNY','MHALL')
		;
		
		IF @.mh.crm_template.GUID  IN ('MHPOTENCJALNY') THEN
			UPDATE crm_commisions c SET 
				c.nrwewn = 'POTENCJALNY', 
				c.Temat = 'Potencjalny',
				c.Opis = @.mh.Info2,
				c.kwota_zysk = @.mh.zuzycie,
				c.keywords = @.mh.konkurencja
				
			where c.guid = _GUID;
		END IF;
		
		IF @.mh.crm_template.GUID  IN ('MHALL') THEN
			UPDATE crm_commisions c SET 
				c.nrwewn = CONCAT(@.mh.oddzial, ':', @.mh.Kontr_trasa),
				c.Temat = concat('Wizyta - ',@.mh.oddzial,': ',@.mh.Kontr_trasa),
				c.Opis = @.mh.Info3,
				c.status = 3
			where c.guid = _GUID;
		END IF;


		
		SET @odpowiadaguid='';
		  IF @.mh.Kontr_odpowiada LIKE "%pokorski%" THEN
			 SET @odpowiadaguid='{73BAA3DD-8931-4E10-9BA4-0342500E269F}';
		  END IF;  
		  IF @.mh.Kontr_odpowiada LIKE "%mosakowski%" OR @odpowiadaguid='' THEN
			 SET @odpowiadaguid='IM_75';
		  END IF; 
				  
		DELETE FROM crm_usr_links WHERE commisionGUID=_GUID;
		
		
		IF @.mh.crm_template.GUID IN ('MHWIZUAL') THEN
		  
		  SET @.mh.crm.ODP_1 = 'IM_57'; -- B. Lewna
		  
		  -- odpowieda - tutaj na sztywno B. Lewna
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.crm.ODP_1, 1, '');
		  -- CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.crm.ODP_2, 1, _Param_C);
		  
		  -- wykonawca
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @logistyka, 2, '');
		  -- CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.crm.WYK_2, 2, _Param_C);
		  
		  -- do wiadomosci - osoby odpowiadajace za region
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.Kontr_handlowiecguid, 3, ''); -- handlowiec
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @odpowiadaguid, 3, ''); -- kierownik regionu
		  
		
		  -- zglosil - kierowca i kontrahent
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.User_GUID, 4, ''); -- kierowca
		  
		  IF @.mh.Kontr_osoba<>'' THEN
			 CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.Kontr_osoba, 4, @.mh.KontrGUID); -- osoba od kontrahenta, o ile jest, i kontrahent 
		  END IF;
		
		
		END IF;
		
		
		IF @.mh.crm_template.GUID IN ('MHFIN') THEN
		  
		  -- odpowiada
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @odpowiadaguid, 1, ''); -- kierownik regionu
		  -- CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.crm.ODP_1, 1, '');
		  -- CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.crm.ODP_2, 1, _Param_C);
		  
		  -- wykonawca
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @odpowiadaguid, 2, ''); -- kierownik regionu
		  -- CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @logistyka, 2, '');
		  -- CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.crm.WYK_2, 2, _Param_C);
		  
		  -- do wiadomosci - logistyka, handlowiec, SM, BL
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.Kontr_handlowiecguid, 3, ''); -- handlowiec
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @logistyka, 3, '');
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, 'IM_57', 3, ''); -- B. Lewna
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, 'IM_64', 3, ''); -- S. Matusiak
		  -- CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @odpowiadaguid, 3, ''); -- kierownik regionu
		  
		
		  -- zglosil - handlowiec i kontrahent
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.User_GUID, 4, ''); -- handlowiec
		  
		  IF @.mh.Kontr_osoba<>'' THEN
			 CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.Kontr_osoba, 4, @.mh.KontrGUID); -- osoba od kontrahenta, o ile jest
		  END IF;
		
		
		END IF;
		
		IF @.mh.crm_template.GUID IN ('MHIWNNIEZGODNA') THEN
		  
		  -- odpowiada
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @odpowiadaguid, 1, ''); -- kierownik regionu
		  -- CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.crm.ODP_1, 1, '');
		  -- CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.crm.ODP_2, 1, _Param_C);
		  
		  -- wykonawca
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @odpowiadaguid, 2, ''); -- kierownik regionu
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @logistyka, 2, '');
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.Kontr_handlowiecguid, 2, ''); -- handlowiec
		  -- CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.crm.WYK_2, 2, _Param_C);
		  
		  -- do wiadomosci
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, 'IM_57', 3, ''); -- B. Lewna
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, 'IM_64', 3, ''); -- S. Matusiak
		  -- CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @odpowiadaguid, 3, ''); -- kierownik regionu
		
		  -- zglosil - handlowiec i kontrahent
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.User_GUID, 4, ''); -- handlowiec
		  
		  IF @.mh.Kontr_osoba<>'' THEN
			 CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.Kontr_osoba, 4, @.mh.KontrGUID); -- osoba od kontrahenta, o ile jest
		  END IF;
		
		
		END IF;
		
		IF @.mh.crm_template.GUID IN ('MHLIKWIDACJA') THEN
		  
		  -- odpowiada
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, 'IM_57', 1, ''); -- B. Lewna
		  
		  -- wykonawca
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @logistyka, 2, '');
		  
		  -- do wiadomosci
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @odpowiadaguid, 3, ''); -- kierownik regionu
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.Kontr_handlowiecguid, 3, ''); -- handlowiec
		  		
		  -- zglosil - handlowiec i kontrahent
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.User_GUID, 4, ''); -- handlowiec
		  
		  IF @.mh.Kontr_osoba<>'' THEN
			 CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.Kontr_osoba, 4, @.mh.KontrGUID); -- osoba od kontrahenta, o ile jest
		  END IF;
		
		
		END IF;

		
		IF @.mh.crm_template.GUID IN ('MHPOTENCJALNY') THEN
		  		  
		  -- odpowieda -
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @odpowiadaguid, 1, ''); -- kierownik regionu
		  
		  -- wykonawca
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.User_GUID, 2, ''); -- handlowiec
		  
		  -- do wiadomosci - osoby odpowiadajace za region
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, 'IM_57', 3, ''); -- B. Lewna
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, 'IM_64', 3, ''); -- S. Matusiak
		  
		
		  -- zglosil - handlowiec
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.User_GUID, 4, ''); -- handlowiec
		  
		  /*
		  IF @.mh.Kontr_osoba<>'' THEN
			 CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.Kontr_osoba, 4, @.mh.KontrGUID); -- osoba od kontrahenta, o ile jest, i kontrahent 
		  END IF;
			*/
		
		END IF;
		
		
		IF @.mh.crm_template.GUID IN ('MHALL') THEN
		  
		  SET @.mh.crm.ODP_1 = 'IM_57'; -- B. Lewna
		  
		 -- odpowieda -
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @odpowiadaguid, 1, ''); -- kierownik regionu
		  
		  -- wykonawca
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.Kontr_handlowiecguid, 2, ''); -- handlowiec
		  		  
		  -- do wiadomosci
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, 'IM_57', 3, ''); -- B. Lewna
		
		  -- zglosil - kierowca i kontrahent
		  CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.User_GUID, 4, ''); -- kierowca
		  
		  IF @.mh.Kontr_osoba<>'' THEN
			 CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, @.mh.Kontr_osoba, 4, @.mh.KontrGUID); -- osoba od kontrahenta, o ile jest, i kontrahent 
		  END IF;
		
		
		END IF;

		



		
		
		/*	
		INSERT INTO `crm_usr_links` 
			(commisionGUID, typ, osoba, poziom) 
			VALUES
			(_GUID, 0, @wykonawca, 2)
		;
		INSERT INTO `crm_usr_links` 
			(commisionGUID, typ, osoba, poziom) 
			VALUES
			(_GUID, 0, 'IM_57', 3) -- lewnab
		;
		INSERT INTO `crm_usr_links` 
			(commisionGUID, typ, osoba, poziom) 
			VALUES
			(_GUID, 0, 'IM_64', 3) -- matusiaks
		;
		INSERT INTO `crm_usr_links` 
			(commisionGUID, typ, osoba, poziom) 
			VALUES
			(_GUID, 0, @logistyka, 3) -- grupa oddziałowa
		;
		*/
			
		/*	
		-- ? ? ? ? ? WHAT IS THIST ? ? ? ? ?
		IF _PARAM_C LIKE '%DEBUG%' THEN
			INSERT INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _GUID,0,'cf23fedf8f020ff365c0e164a6251d76',3;
		END IF;
		*/
	END IF;	

	IF _MODE = 'Add.to.crm_usr_links' THEN
	/* *************************************************************************************************************************************************************
		Wstawianie osob
		CALL ht_mh2crm('Add.to.crm_usr_links', _GUID, "Osoba", 1, _Param_C);
		_GUID 		GUID z `crm_commisions`
		_PARAM_A 	osoba
		_PARAM_B 	Poziom
		
	**************************************************************************************************************************************************************/
		IF IFNULL(_PARAM_A, '') <> '' THEN
			INSERT IGNORE INTO `crm_usr_links` 
				(commisionGUID, typ, osoba, poziom, kontrguid) 
				VALUES
				(_GUID, 0, _PARAM_A, _PARAM_B, _PARAM_C)
			;
		END IF;
	END IF;	

END $$


DROP FUNCTION IF EXISTS `_MH_Multi_Replace_Zmienne`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `_MH_Multi_Replace_Zmienne`(
	_Input MEDIUMTEXT
) RETURNS MEDIUMTEXT
    NO SQL
    DETERMINISTIC
BEGIN
	SET
		@._MH_Multi_Replace_Zmienne =
			REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
		  REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(_Input,
			'@descr', @.mh.ValueDescr),
			'@Info', @.mh.Info.template),
			'@.mh.Info', @.mh.Info.template),
			'@.mh.ValueKey', @.mh.ValueKey),
			'@.mh.ValueDescr', @.mh.ValueDescr),
			'@.mh.Label', @.mh.Label),
			'@Label', @.mh.Label),
			
			'@.mh.login', @.mh.login),
			'@.mh.User_GUID', @.mh.User_GUID),
			'@.mh.User_Nazwisko_Imiona', @.mh.User_Nazwisko_Imiona),
			'@.mh.KontrGUID', @.mh.KontrGUID),
			'@.mh.IdnTowr', @.mh.IdnTowr),
			
			'@.mh.oddzial', @.mh.oddzial),
			'@.mh.KontrSymbol', @.mh.KontrSymbol),
			'@.mh.KontrNazwa', @.mh.KontrNazwa),
			'@.mh.Kontr_Czestotliwosc', @.mh.Kontr_Czestotliwosc),
			'@.mh.Kontr_TEL', @.mh.Kontr_TEL),
			'@.mh.Kontr_MAIL', @.mh.Kontr_MAIL),
			'@.mh.Kontr_osoba', @.mh.Kontr_osoba),
			
			'@.mh.Kontr_infoRynek', @.mh.Kontr_infoRynek),
			'@.mh.Kontr_ocena', @.mh.Kontr_ocena),
			'@.mh.Kontr_STATUS', @.mh.Kontr_STATUS),
			'@.mh.Kontr_rodzajkl', @.mh.Kontr_rodzajkl),
			'@.mh.Kontr_klasyfikacja', @.mh.Kontr_klasyfikacja),
			'@.mh.Kontr_handlowiec', @.mh.Kontr_handlowiec),
			'@.mh.Kontr_hmail', @.mh.Kontr_hmail),
			'@.mh.Kontr_hlogin', @.mh.Kontr_hlogin),
			'@.mh.Kontr_odpowiada', @.mh.Kontr_odpowiada),
			'@.mh.Kontr_trasa', @.mh.Kontr_trasa),
			'@.mh.Kontr_odpowiada', @.mh.Kontr_odpowiada),
			'@.mh.Kontr_Prowizja', @.mh.Kontr_Prowizja),
			
			'@.mh.uwagi.wizyty', @.mh.uwagi.wizyty),
			'@.mh.inwentaryzacja', @.mh.inwentaryzacja),
			'@.mh.uwagi.niezgodnosci', @.mh.uwagi.niezgodnosci)
			
	;

	RETURN @._MH_Multi_Replace_Zmienne;
END$$
 

DELIMITER ;


/* ****************************************************
REWIZJE
*******************************************************
$Log: ht_mh2crm.sql,v $
Revision 1.55  2015/10/23 11:28:20  waliant
Zmiana warunków tworzenia zadań dla zerówek i spadków r2r (są różne kryteria).

Revision 1.54  2015/10/15 12:22:40  apro
r2r  - dodane multibrand

Revision 1.53  2015/10/14 12:50:45  waliant
Dodanie do kluczowych "infozm".

Revision 1.52  2015/10/09 10:05:29  apro
D2D

Revision 1.51  2015/10/01 06:14:05  apro
wyrzucenie handlowca z 4 szufladki w spadkach

Revision 1.50  2015/09/24 12:04:15  waliant
*** empty log message ***

Revision 1.49  2015/09/08 05:10:23  apro
zmiany w zdarzeniach gasdroidowych - przejście na ustawienia w słowniku (param1 i param2)

Revision 1.48  2015/08/12 09:31:12  apro
zmiana warunków r2r

Revision 1.47  2015/07/01 07:08:52  waliant
Poprawki w "kluczowych spadki".

Revision 1.46  2015/06/23 08:30:01  waliant
Niezgodności inw - zmiana kryteriów wyboru.

Revision 1.45  2015/06/19 10:43:47  waliant
Poprawki dla likwidacji.

Revision 1.44  2015/06/12 12:32:59  waliant
Niezgodnosci inwentaryzacji, porządki w MHALL

Revision 1.43  2015/06/11 07:00:00  waliant
Likwidacje

Revision 1.42  2015/06/08 08:46:05  apro
poprawki w r2r

Revision 1.41  2015/06/05 12:43:57  waliant
Sporo poprawek, głównie dla potencjalnych.

Revision 1.40  2015/06/03 12:02:18  waliant
*** empty log message ***

Revision 1.39  2015/06/03 08:36:17  apro
obrotowość - c.d.

Revision 1.38  2015/05/28 13:02:41  apro
zmiany w czestotliwosci

Revision 1.37  2015/05/28 12:53:48  waliant
Start i end time w zadaniach, blokada powtórnego dopisania zadania.

Revision 1.36  2015/05/26 11:51:53  apro
czestotliwosc

Revision 1.35  2015/05/19 05:29:01  apro
brakująca negacja

Revision 1.34  2015/05/18 12:01:57  waliant
Włączenie crona dla MHFIN.

Revision 1.33  2015/05/18 06:31:08  waliant
Poprawki TK offline połączone z apro

Revision 1.32  2015/05/14 07:36:13  apro
poprawki TK offline

Revision 1.31  2015/05/14 07:28:30  apro
*** empty log message ***

Revision 1.30  2015/05/12 04:57:52  apro
zerówki - zmiany

Revision 1.29  2015/05/06 09:50:54  apro
dziwy w cvs - doprowadzenie do spójności

Revision 1.28  2015/05/06 08:00:05  apro
*** empty log message ***

Revision 1.27  2015/04/21 10:18:44  waliant
*** empty log message ***

Revision 1.26  2015/04/15 06:50:58  apro
zmiany w odpowiedzialnych - mail PM 2015-04-09

Revision 1.25  2015/04/09 07:41:10  apro
*** empty log message ***

Revision 1.24  2015/04/02 11:06:17  waliant
Obsługa MHWIZUAL.

Revision 1.23  2015/03/27 08:34:32  apro
*** empty log message ***

Revision 1.22  2015/03/16 13:49:04  waliant
*** empty log message ***

Revision 1.21  2015/03/13 13:07:16  waliant
*** empty log message ***

Revision 1.20  2015/03/13 06:23:11  apro
*** empty log message ***

Revision 1.19  2015/03/12 13:27:13  jmam
no message

Revision 1.18  2015/03/12 13:26:57  jmam
Dodano
CALL ht_mh2crm('mh_all', '',_Param_A,_Param_B,_Param_C);
z petla

Revision 1.17  2015/03/09 13:42:04  apro
bez Pełno Dzwonione

Revision 1.16  2015/02/27 13:59:21  apro
zmiany w gasdroid2crm

Revision 1.15  2015/02/27 13:29:14  apro
*** empty log message ***

Revision 1.14  2015/02/16 13:47:09  jmam
no message

Revision 1.13  2015/02/13 12:32:32  apro
ifnulle i DW handlowcy

Revision 1.12  2015/02/05 15:10:30  jmam
no message

Revision 1.11  2015/02/04 15:36:34  jmam
no message

Revision 1.10  2015/02/04 15:35:16  jmam
no message

Revision 1.9  2015/02/04 12:20:55  apro
2015 r2r

*/
