 DELIMITER $$

/* ************************************************************************************************************************************************************************
	v_crm_usr_links
	podzlecenia
************************************************************************************************************************************************************************ */	
DROP VIEW IF EXISTS `v_crm_usr_links`
$$
CREATE OR REPLACE DEFINER=`root`@`localhost` VIEW `v_crm_usr_links` AS
	SELECT
		cul.*,
		c.Temat, c.Opis, c.Status,
		cr.nazwa AS Rodzaj_Nazwa,
		cr.Opis AS Rodzaj_Opis,
	--	do 19 XII było ...	
	--	cr.Def_confirm_statuses
	--	od 19 XII jest ...	
		IFNULL(c.Def_confirm_statuses, cr.Def_confirm_statuses) AS Def_confirm_statuses,
		cr.Def_confirm_statuses AS Init_Def_confirm_statuses
	FROM `crm_usr_links` cul 
	INNER JOIN `crm_commisions` c ON c.GUID = cul.commisionGUID
	LEFT JOIN `crm_rodzaje` cr ON cr.Rodzaj = c.Rodzaj AND cr.PodRodzaj = c.PodRodzaj
	WHERE
		TRUE
$$

DROP VIEW IF EXISTS `v_crm_usr_links_inf`
$$
CREATE OR REPLACE DEFINER=`root`@`localhost` VIEW `v_crm_usr_links_inf` AS
	SELECT
		cul.*,
		TRIM(CONCAT_WS(' ', o.Imiona, o.Nazwisko)) AS Imiona_Nazwisko,
		o.IdnUser,
		o.nazwa_dzialu,
		k.Symbol AS KontrahSymbol,
		CONCAT(k.Symbol, ' - ', k.Nazwa) AS KontrahInfo
	FROM `crm_usr_links` cul 
	INNER JOIN `osoby` o ON o.GUID = cul.osoba 
	LEFT JOIN `kontrah` k ON k.GUID = cul.KontrGUID 
	WHERE
		TRUE
$$
CREATE OR REPLACE DEFINER=`root`@`localhost` VIEW `v_Notify_Medium_Types` AS
	SELECT 
		-- nt.* 
		nt.Value AS Medium_Types,
		nt.DisplayValue AS Opis,
		nt.Param1 AS Opis_Short, 
		nt.ParamExtra AS IsVisible,
		nt.Param2, nt.Param3 
	FROM `slowniki_pierwotne` nt
	WHERE
		TRUE
		AND nt.Slownik_GUID = 'NOTIFY_Medium_Types'
		AND nt.ParamExtra = 1
	;
$$
CREATE OR REPLACE DEFINER=`root`@`localhost` VIEW `v_notify_crm_When_Changed` AS
	SELECT 
		-- nt.* 
		wc.Value AS When_Changed,
		wc.DisplayValue AS Opis,
		wc.Param1 AS Opis_Short, 
		wc.ParamExtra AS IsVisible,
		wc.Param2, wc.Param3 
	FROM `slowniki_pierwotne` wc
	WHERE
		TRUE
		AND wc.Slownik_GUID = 'NOTIFY_crm_When_Changed'
		AND wc.ParamExtra = 1
	;
$$
CREATE OR REPLACE DEFINER=`root`@`localhost` VIEW `v_crm_usr_links_Notify` AS
	SELECT 
		cul.Idn,
		cul.commisionGUID,
		cul.Osoba,
		(
		SELECT CONCAT_WS(' ', o.Nazwisko, o.Imiona) AS Osoba_str FROM `osoby` o WHERE o.GUID = cul.Osoba
		) AS Osoba_str,
		cul.Poziom,
		CASE cul.Poziom
		WHEN 0 THEN 'Stwrorzył'
		WHEN 1 THEN 'Odpowiedzialny'
		WHEN 2 THEN 'Wykonawca/uczestnik'
		WHEN 3 THEN 'Do wiadomości'
		WHEN 4 THEN 'Zgłosił/postulował/kontrahent'
		END
		AS Poziom_str,
		-- cul.Alert,
		-- cul.alert_tryb,
		cul.Notify_When_Changed,
		IFNULL(
		( 
		SELECT GROUP_CONCAT(wc.Opis_Short SEPARATOR ' / ') AS Opis
		FROM `v_notify_crm_When_Changed` wc
		WHERE
			cul.Notify_When_Changed LIKE CONCAT('%', wc.When_Changed, '%')
		), '') AS Notify_When_Changed_Str,
		cul.AlertAt,
		cul.Notify_h_Before_At,
		cul.Notify_Medium_Types,
		IFNULL(
		( 
		SELECT GROUP_CONCAT(nt.Opis_Short SEPARATOR ', ') AS Opis
		FROM `v_Notify_Medium_Types` nt
		WHERE
			cul.Notify_Medium_Types LIKE CONCAT('%', nt.Medium_Types, '%')
		), '') AS Notify_Medium_Types_Str
	FROM `crm_usr_links` cul
	WHERE
		TRUE
	ORDER BY IF(cul.Notify_When_Changed IS NULL, 9, 0), IF(cul.Poziom = 2, 0, IF(cul.Poziom = 0, 1, cul.Poziom))
	;
$$

DROP VIEW IF EXISTS `v_crm_rodzaje`
$$
CREATE OR REPLACE DEFINER=`root`@`localhost` VIEW `v_crm_rodzaje` AS
	SELECT
		r.*,
	--  Poziom kreatora
		IFNULL(r.Poziom_0_Def_Str, IFNULL(r0.Poziom_0_Def_Str, _VarStr('Kreator'))) AS Poziom_0_Str,
		IFNULL(r.Poziom_0_User_Def_Str, IFNULL(r0.Poziom_0_User_Def_Str, _VarStr('kreator'))) AS Poziom_0_User_Str,
	--  Poziom odpowiedzialnych
		IFNULL(r.Poziom_1_Def_Str, IFNULL(r0.Poziom_1_Def_Str, _VarStr('Odpowiedzialni'))) AS Poziom_1_Str,
		IFNULL(r.Poziom_1_User_Def_Str, IFNULL(r0.Poziom_1_User_Def_Str, _VarStr('odpowiedzialny'))) AS Poziom_1_User_Str,
	--  Poziom uczestnika, wykonawcy, przypisany etc.
		IFNULL(r.Poziom_2_Def_Str, IFNULL(r0.Poziom_2_Def_Str, _VarStr('Uczestnicy'))) AS Poziom_2_Str,
		IFNULL(r.Poziom_2_User_Def_Str, IFNULL(r0.Poziom_2_User_Def_Str, _VarStr('uczestnik'))) AS Poziom_2_User_Str,
	--  Poziom Do wiadomości
		IFNULL(r.Poziom_3_Def_Str, IFNULL(r0.Poziom_3_Def_Str, _VarStr('Do wiadomości'))) AS Poziom_3_Str,
		IFNULL(r.Poziom_3_User_Def_Str, IFNULL(r0.Poziom_3_User_Def_Str, _VarStr('Do wiadomości'))) AS Poziom_3_User_Str,
	--  Poziom Osoby klienta, zgłosił, ...
		IFNULL(r.Poziom_4_Def_Str, IFNULL(r0.Poziom_4_Def_Str, _VarStr('Osoby klienta'))) AS Poziom_4_Str,
		IFNULL(r.Poziom_4_User_Def_Str, IFNULL(r0.Poziom_4_User_Def_Str, _VarStr('Osoby klienta'))) AS Poziom_4_User_Str
	FROM `crm_rodzaje` r
	LEFT JOIN `crm_rodzaje` r0 ON r0.Rodzaj = r.Rodzaj AND r0.Podrodzaj = 0
	WHERE
		TRUE
	ORDER BY r.rodzaj
	;
$$

DROP VIEW IF EXISTS v_crm_role
$$
CREATE OR REPLACE DEFINER=`root`@`localhost` VIEW v_crm_role AS
SELECT `value` as poziom,displayvalue as nazwa FROM slowniki_pierwotne WHERE slownik_guid='CRM_ROLE';

$$

CREATE OR REPLACE DEFINER=`root`@`localhost`  VIEW v_crm_log_keywords AS 
SELECT lp,`value` as symbol,displayValue as opis, paramextra, param1, param2, param3, param4, param5,color FROM slowniki_pierwotne WHERE slownik_GUID='CRM_TIMESHEET_KEYWORDS' AND param5<>'InActive';

$$

CREATE OR REPLACE DEFINER=`root`@`localhost`  VIEW v_crm_keywords AS 
SELECT lp,`value` as symbol,displayValue as opis, paramextra, param1, param2, param3, param4, param5,color FROM slowniki_pierwotne WHERE slownik_GUID='CRM_KEYWORDS' AND param5<>'InActive';

$$

DELIMITER ;

