DELIMITER $$


DROP PROCEDURE IF EXISTS `ht_mh2crm`$$

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

-- 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');	 

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
		SET @ht_mhdroid_result := 0;
		SELECT t.oddzial,t.trasa,t.kontrahent,t.klasyfikacja,t.handlowiec,t.rodzajkl,t.status,
		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,
-- TODO		t.sprzedaz_poprz_mc,
		0 as temp_sprzed_poprz_mc,
		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
		-- do odpowiedzialnych dodac grupe "oddzialowa" : np guid: {648543FE-0926-409E-A4BD-27019EE8155E} idnuser: crm KR nazwisko: crm KR
-- 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,@sprzedaz_poprz,@sprzedaz_biez,
		@sprzedaz_biez_mc,@sprzedaz_poprz_mc,
		@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 _crmGUID=concat('MHr15',lpad(@mc,2,'0'),uuid());
		SET @rodzaj=8;
		SET @template = 'r2r spadek';
		IF @sprzedaz_biez_mc>0 THEN
		  SET @temat=CONCAT('r2r - spadek miesiąc:',@mc); 
		  SET @wykonawca=@handlowiecguid;
		  SET @odpowiadaguid2='';
		ELSE
		  SET @temat=CONCAT('zerówka miesiąc:',@mc); 
		  SET @wykonawca=CONCAT(@oddzial,'kier');
		  SET @odpowiadaguid2=@handlowiecguid;
-- zerowki wylatuja stad - tu beda tylko spadki
		END IF;  

		
-- TODO
-- zerówka zwykla to stan, gdy w danym miesiacu (zakonczonym) jest 0
-- zerowka: SET @temat=CONCAT('zerówka miesiąc:',@mc); 
-- zerówka niezwykla to stan, gdy w danym i poprzednim miesiacu (zakonczonym) jest 0
-- zerowka 2mc: SET @temat=CONCAT('zerówka powyżej miesiąca:',@mc); 
-- do kwoty dodać procent spadku

		SET @opis=CONCAT('r2r - spadek ',-@roznica_r2r,'% ',@kontrahent,'\noddział:',@oddzial,'\nrodzaj klienta:',@rodzajkl,'\nstatus:',@status,'\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=@wykonawca) as wykonawca,@temat,@opis,@odpowiada,@odpowiadaguid;

		IF _PARAM_C NOT LIKE '%TESTbezINSERT%' THEN
		  CALL crm_INSERT('z.szablonu',_crmGUID, @template  , @rodzaj, 0, @temat, @opis, @czas, '', NULL, NULL, @wykonawca, '', '', _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
		  END IF;
		  IF @odpowiadaguid2<>'' THEN -- handlowiec
			INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,@odpowiadaguid2,1;
		  END IF;
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'IM_57',1; -- lewnab
		  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
		  INSERT IGNORE INTO crm_usr_links (commisionGUID,typ,osoba,poziom) SELECT _crmGUID,0,'cf23fedf8f020ff365c0e164a6251d76',3;
		END IF;
		UPDATE crm_commisions SET nrwewn=CONCAT(@oddzial,':',@trasa),koszt_wlasny=-@roznica_r2r WHERE guid=_crmGUID;

	END IF;	

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

			DECLARE c_proc CURSOR FOR
			SELECT DISTINCT kontrguid
			FROM temp_olap_r2r 
-- z zerowkami			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
			AND (status like "Aktywny%" or status like "NOWY%" or status like "D_u_nik%")
			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,
		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,
		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 erp_area_nodes rew ON rew.GUID= k.areaGUID
		WHERE z.guid=_GUID
		INTO @powod,@powodstr,_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
		  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;
		  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 c_proc CURSOR FOR
			SELECT n.guid
			FROM zmng n 
			LEFT JOIN crm_commisions c ON c.GUID=n.guid
			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,'')=''
			  LIMIT _LIMIT
			;
			-- wyrzucone - uzgodnienie z PM 2015-03-11
			-- 10 pelno dzwonione PD
			-- 6 zamkniete Z
			-- 3 nie wymienia pelno NP
			
			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
					SELECT ifnull(ogk_GUID,'')<>'' FROM zmng WHERE guid=_GUID INTO @pomin;
					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;	

	
	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 DATE(n.droidtime) >= '2015-01-01'

			 AND dp.crm_template IN ('MHWIZUAL')
			 -- AND dp.crm_template IN ('MHWIZUAL','MHFIN')
			 ;
			
			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, _Param_A, _Param_B, _Param_C);
					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_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
	**************************************************************************************************************************************************************/
	/*
	  set @guidlikwidacja='{1A60760E-6CE3-4D1F-931D-095F11E26A53}';
	  set @rodzaj=8; -- zadanie
	  set @kontrah='{1629BE3D-DC20-49BB-A83C-FD9538617B31}';
	  set @wykonawca='cf23fedf8f020ff365c0e164a6251d76';
	  set @temat='likwidacja';
	  set @opis='likwidacja';
	  set @czas=10;
	  select idn,guid,temat,left(replace(replace(opis,char(10),'; '),char(13),''),100) as opis,(select idnuser from osoby o where o.guid=c.template_osoba) as templ 
	  from crm_commisions c where template_osoba<>''
	  and guid=@guidlikwidacja
	  order by idn
	  ;
	  #exit

	  set @guid=concat('MH',uuid());
	  #set @guid=@guidlikwidacja;

	  CALL crm_INSERT('z.szablonu',@guid, @guidlikwidacja , @rodzaj, 0, @temat, @opis, @czas, '', NULL, NULL, @wykonawca, '', 'EMPTY', @kontrah, 1, 4, '', '');
	  select * from crm_commisions where guid=@guid;
	  select * from crm_usr_links where commisionguid=@guid;
*/
		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	
		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_MHv1530'), '') AS uwagi_niezgodnosci

			-- ,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.uwagi.niezgodnosci
		;
	--	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)
		;
	--	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);

		
		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.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
		;
		
		
		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 - 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
		  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(_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.uwagi.niezgodnosci', @.mh.uwagi.niezgodnosci)
			
	;

	RETURN @._MH_Multi_Replace_Zmienne;
END$$
 

DELIMITER ;


/* ****************************************************
REWIZJE
*******************************************************
$Log: ht_mh2crm.sql,v $
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

*/
