IF EXISTS (SELECT  *  FROM  sys.views
					 WHERE
						object_id = OBJECT_ID(N'[dbo].[V_EST_PROD_TBL_COMIS_TIPOS]'))
DROP VIEW [dbo].[V_EST_PROD_TBL_COMIS_TIPOS]
GO
/*
SELECT 
	 V_EST_PROD_TBL_COMIS_TIPOS .*
FROM 
	 V_EST_PROD_TBL_COMIS_TIPOS  
WHERE 
	 V_EST_PROD_TBL_COMIS_TIPOS.CD_EMP =1 
	 AND CD_PROD = 7059
*/
CREATE VIEW  [dbo].[V_EST_PROD_TBL_COMIS_TIPOS]  AS 
SELECT
  RS.CD_EMP,      
  EST_PROD_TBL_COMIS_PRC_FILIAL.CD_FILIAL,     
  RS.CD_TBL_COMIS,          
  RS.DS_TBL_COMIS,      
  RS.CD_USU,
  RS.DT_CAD,
  RS.DT_ULT_ALT,
  RS.STS_TBL,
  RS.CD_PROD,
  RS.DS_HIERARQUIA,
  RS.PERC_COMIS,
  GLB_USU.NM_USU,
  TIPO_COMISSAO,
  CASE WHEN TIPO_COMISSAO=0 THEN
	'PERCENTUAL'
  WHEN TIPO_COMISSAO=1 THEN
	'QUANTIDADE'	
  ELSE
	'NAO DEFINIDO'
  END DS_TIPO_COMISSAO,
   ISNULL(DS_CARGO,'NAO POSSUI VINCULO') AS DS_CARGO
FROM
(SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS,          
  D.DS_TBL_COMIS,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  A.CD_PROD,
  'LINHA' AS DS_HIERARQUIA,
  L.PERC_COMIS,
  0 AS TIPO_COMISSAO
 FROM 
 EST_PROD_TBL_COMIS D  INNER JOIN EST_PROD_TBL_COMIS_EST_ARV_MERC_LINHA L ON           
	D.CD_EMP = L.CD_EMP AND           
	D.CD_TBL_COMIS = L.CD_TBL_COMIS
 INNER JOIN  EST_PROD_EST_ARV_MERCADOLOGICA A ON
	L.CD_EMP = A.CD_EMP AND
	L.CD_ARV_MERC_LINHA=A.CD_ARV_MERC_LINHA
UNION ALL
         
SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS,          
  D.DS_TBL_COMIS,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  A.CD_PROD,
  'CATEGORIA' AS DS_HIERARQUIA,
  C.PERC_COMIS,
  0 AS TIPO_COMISSAO
 FROM 
 EST_PROD_TBL_COMIS D  INNER JOIN EST_PROD_TBL_COMIS_EST_ARV_MERC_CATEGORIA C ON           
	D.CD_EMP = C.CD_EMP AND           
	D.CD_TBL_COMIS = C.CD_TBL_COMIS
 INNER JOIN  EST_PROD_EST_ARV_MERCADOLOGICA A ON
	C.CD_EMP = A.CD_EMP AND
	C.CD_ARV_MERC_CATEG=A.CD_ARV_MERC_CATEG

 UNION ALL

 SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS,          
  D.DS_TBL_COMIS,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  P.CD_PROD,
  'FABRICANTE' AS DS_HIERARQUIA,
  F.PERC_COMIS,
  0 AS TIPO_COMISSAO
 FROM 
 EST_PROD_TBL_COMIS D INNER JOIN EST_PROD_TBL_COMIS_EST_PROD_FABRIC F ON           
	D.CD_EMP = F.CD_EMP AND           
	D.CD_TBL_COMIS = F.CD_TBL_COMIS    
	INNER JOIN EST_PROD P ON           
	F.CD_EMP = P.CD_EMP AND
	F.CD_FABRIC = P.CD_FABRIC 

UNION ALL

 SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS,          
  D.DS_TBL_COMIS,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  P.CD_PROD,
  'MARCA' AS DS_HIERARQUIA,
  M.PERC_COMIS,
  0 AS TIPO_COMISSAO
 FROM 
 EST_PROD_TBL_COMIS D INNER JOIN EST_PROD_TBL_COMIS_EST_MC M ON           
	D.CD_EMP = M.CD_EMP AND
	D.CD_TBL_COMIS = M.CD_TBL_COMIS         
 INNER JOIN EST_PROD P ON
	M.CD_EMP = P.CD_EMP AND
	M.CD_MC = P.CD_MC
UNION ALL

SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS,          
  D.DS_TBL_COMIS,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  A.CD_PROD,
  'FAMILIA' AS DS_HIERARQUIA,
  E.PERC_COMIS,
  0 AS TIPO_COMISSAO
 FROM 
EST_PROD_TBL_COMIS D  INNER JOIN EST_PROD_TBL_COMIS_EST_ARV_MERC_FAMILIA E ON           
	D.CD_EMP = E.CD_EMP AND           
	D.CD_TBL_COMIS = E.CD_TBL_COMIS
 INNER JOIN EST_PROD_EST_ARV_MERCADOLOGICA A ON
	E.CD_EMP = A.CD_EMP AND
	E.CD_ARV_MERC_FAMILIA = A.CD_ARV_MERC_FAMILIA

UNION ALL

SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS,          
  D.DS_TBL_COMIS,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  T.CD_PROD,
  'PRODUTO' AS DS_HIERARQUIA,
  T.PERC_COMIS,
  0 AS TIPO_COMISSAO
 FROM 
	EST_PROD_TBL_COMIS D  INNER JOIN EST_PROD_TBL_COMIS_EST_PROD T ON           
	D.CD_EMP = T.CD_EMP AND           
	D.CD_TBL_COMIS = T.CD_TBL_COMIS
UNION ALL
--Por qtde
SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS,          
  D.DS_TBL_COMIS,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  A.CD_PROD,
  'LINHA' AS DS_HIERARQUIA,
  L.PERC_COMIS,
  1 AS TIPO_COMISSAO
 FROM 
 EST_PROD_TBL_COMIS D  INNER JOIN EST_PROD_TBL_COMIS_EST_ARV_MERC_LINHA_QTDE L ON           
	D.CD_EMP = L.CD_EMP AND           
	D.CD_TBL_COMIS = L.CD_TBL_COMIS
 INNER JOIN  EST_PROD_EST_ARV_MERCADOLOGICA A ON
	L.CD_EMP = A.CD_EMP AND
	L.CD_ARV_MERC_LINHA=A.CD_ARV_MERC_LINHA
UNION ALL
         
SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS,          
  D.DS_TBL_COMIS,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  A.CD_PROD,
  'CATEGORIA' AS DS_HIERARQUIA,
  C.PERC_COMIS,
  1 AS TIPO_COMISSAO
 FROM 
 EST_PROD_TBL_COMIS D  INNER JOIN EST_PROD_TBL_COMIS_EST_ARV_MERC_CATEGORIA_QTDE C ON           
	D.CD_EMP = C.CD_EMP AND           
	D.CD_TBL_COMIS = C.CD_TBL_COMIS
 INNER JOIN  EST_PROD_EST_ARV_MERCADOLOGICA A ON
	C.CD_EMP = A.CD_EMP AND
	C.CD_ARV_MERC_CATEG=A.CD_ARV_MERC_CATEG

 UNION ALL

 SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS,          
  D.DS_TBL_COMIS,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  P.CD_PROD,
  'FABRICANTE' AS DS_HIERARQUIA,
  F.PERC_COMIS,
  1 AS TIPO_COMISSAO
 FROM 
 EST_PROD_TBL_COMIS D INNER JOIN EST_PROD_TBL_COMIS_EST_PROD_FABRIC_QTDE F ON           
	D.CD_EMP = F.CD_EMP AND           
	D.CD_TBL_COMIS = F.CD_TBL_COMIS    
	INNER JOIN EST_PROD P ON           
	F.CD_EMP = P.CD_EMP AND
	F.CD_FABRIC = P.CD_FABRIC 

UNION ALL

 SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS,          
  D.DS_TBL_COMIS,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  P.CD_PROD,
  'MARCA' AS DS_HIERARQUIA,
  M.PERC_COMIS,
  1 AS TIPO_COMISSAO
 FROM 
 EST_PROD_TBL_COMIS D INNER JOIN EST_PROD_TBL_COMIS_EST_MC_QTDE M ON           
	D.CD_EMP = M.CD_EMP AND
	D.CD_TBL_COMIS = M.CD_TBL_COMIS         
 INNER JOIN EST_PROD P ON
	M.CD_EMP = P.CD_EMP AND
	M.CD_MC = P.CD_MC
UNION ALL

SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS,          
  D.DS_TBL_COMIS,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  A.CD_PROD,
  'FAMILIA' AS DS_HIERARQUIA,
  E.PERC_COMIS,
  1 AS TIPO_COMISSAO
 FROM 
EST_PROD_TBL_COMIS D  INNER JOIN EST_PROD_TBL_COMIS_EST_ARV_MERC_FAMILIA_QTDE E ON           
	D.CD_EMP = E.CD_EMP AND           
	D.CD_TBL_COMIS = E.CD_TBL_COMIS
 INNER JOIN EST_PROD_EST_ARV_MERCADOLOGICA A ON
	E.CD_EMP = A.CD_EMP AND
	E.CD_ARV_MERC_FAMILIA = A.CD_ARV_MERC_FAMILIA

UNION ALL

SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS,          
  D.DS_TBL_COMIS,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  T.CD_PROD,
  'PRODUTO' AS DS_HIERARQUIA,
  T.PERC_COMIS,
  1 AS TIPO_COMISSAO
 FROM 
	EST_PROD_TBL_COMIS D  INNER JOIN EST_PROD_TBL_COMIS_EST_PROD_QTDE T ON           
	D.CD_EMP = T.CD_EMP AND           
	D.CD_TBL_COMIS = T.CD_TBL_COMIS) RS 
	INNER JOIN EST_PROD_TBL_COMIS_PRC_FILIAL ON
	RS.CD_EMP = EST_PROD_TBL_COMIS_PRC_FILIAL.CD_EMP AND
	RS.CD_TBL_COMIS = EST_PROD_TBL_COMIS_PRC_FILIAL.CD_TBL_COMIS
	INNER JOIN GLB_USU ON
	RS.CD_USU = GLB_USU.CD_USU
	INNER JOIN PRC_GRP_ECON_PRC_FILIAL ON
	EST_PROD_TBL_COMIS_PRC_FILIAL.CD_EMP= PRC_GRP_ECON_PRC_FILIAL.CD_EMP AND
	EST_PROD_TBL_COMIS_PRC_FILIAL.CD_FILIAL= PRC_GRP_ECON_PRC_FILIAL.CD_FILIAL 
	LEFT OUTER JOIN FP_CARGO_EST_PROD_TBL_COMIS ON
	RS.CD_EMP = FP_CARGO_EST_PROD_TBL_COMIS.CD_EMP AND
	RS.CD_TBL_COMIS = FP_CARGO_EST_PROD_TBL_COMIS.CD_TBL_COMIS AND
	PRC_GRP_ECON_PRC_FILIAL.CD_GRP_ECON = FP_CARGO_EST_PROD_TBL_COMIS.CD_GRP_ECON
	LEFT OUTER JOIN FP_CARGO ON
	FP_CARGO_EST_PROD_TBL_COMIS.CD_EMP = FP_CARGO.CD_EMP AND
	FP_CARGO_EST_PROD_TBL_COMIS.CD_CARGO = FP_CARGO.CD_CARGO
UNION ALL

SELECT
  RS.CD_EMP,      
  EST_PROD_TBL_COMIS_REGRESSAO_PRC_FILIAL.CD_FILIAL,     
  RS.CD_TBL_COMIS_REGRESSAO,          
  RS.DS_TBL_COMIS_REGRESSAO,      
  RS.CD_USU,
  RS.DT_CAD,
  RS.DT_ULT_ALT,
  RS.STS_TBL,
  RS.CD_PROD,
  RS.DS_HIERARQUIA,
  RS.PERC_COMIS,
  GLB_USU.NM_USU,
  TIPO_COMISSAO,
 'REGRESSAO' AS DS_TIPO_COMISSAO,
  ISNULL(DS_CARGO,'NAO POSSUI VINCULO') AS DS_CARGO
FROM
(SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS_REGRESSAO,          
  D.DS_TBL_COMIS_REGRESSAO,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  A.CD_PROD,
  'LINHA' AS DS_HIERARQUIA,
  0 AS PERC_COMIS,
  2 AS TIPO_COMISSAO
 FROM 
	EST_PROD_TBL_COMIS_REGRESSAO D  INNER JOIN EST_PROD_TBL_COMIS_REGRESSAO_EST_ARV_MERC_LINHA L ON           
	D.CD_EMP = L.CD_EMP AND           
	D.CD_TBL_COMIS_REGRESSAO = L.CD_TBL_COMIS_REGRESSAO
 INNER JOIN  EST_PROD_EST_ARV_MERCADOLOGICA A ON
	L.CD_EMP = A.CD_EMP AND
	L.CD_ARV_MERC_LINHA=A.CD_ARV_MERC_LINHA
UNION ALL
SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS_REGRESSAO,          
  D.DS_TBL_COMIS_REGRESSAO,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  A.CD_PROD,
  'CATEGORIA' AS DS_HIERARQUIA,
  0 AS PERC_COMIS,
  2 AS TIPO_COMISSAO
 FROM 
	EST_PROD_TBL_COMIS_REGRESSAO D  INNER JOIN EST_PROD_TBL_COMIS_REGRESSAO_EST_ARV_MERC_CATEGORIA L ON           
	D.CD_EMP = L.CD_EMP AND           
	D.CD_TBL_COMIS_REGRESSAO = L.CD_TBL_COMIS_REGRESSAO
 INNER JOIN  EST_PROD_EST_ARV_MERCADOLOGICA A ON
	L.CD_EMP = A.CD_EMP AND
	L.CD_ARV_MERC_CATEG=A.CD_ARV_MERC_CATEG
UNION ALL
SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS_REGRESSAO,          
  D.DS_TBL_COMIS_REGRESSAO,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  A.CD_PROD,
  'FAMILIA' AS DS_HIERARQUIA,
  0 AS PERC_COMIS,
  2 AS TIPO_COMISSAO
 FROM 
	EST_PROD_TBL_COMIS_REGRESSAO D  INNER JOIN EST_PROD_TBL_COMIS_REGRESSAO_EST_ARV_MERC_FAMILIA L ON           
	D.CD_EMP = L.CD_EMP AND           
	D.CD_TBL_COMIS_REGRESSAO = L.CD_TBL_COMIS_REGRESSAO
	INNER JOIN  EST_PROD_EST_ARV_MERCADOLOGICA A ON
	L.CD_EMP = A.CD_EMP AND
	L.CD_ARV_MERC_FAMILIA=A.CD_ARV_MERC_FAMILIA
UNION ALL
SELECT           
  D.CD_EMP,           
  D.CD_TBL_COMIS_REGRESSAO,          
  D.DS_TBL_COMIS_REGRESSAO,      
  D.CD_USU,
  D.DT_CAD,
  D.DT_ULT_ALT,
  D.STS_TBL,
  L.CD_PROD,
  'PRODUTO' AS DS_HIERARQUIA,
  0 AS PERC_COMIS,
  2 AS TIPO_COMISSAO
 FROM 
	EST_PROD_TBL_COMIS_REGRESSAO D  INNER JOIN EST_PROD_TBL_COMIS_REGRESSAO_EST_PROD L ON           
	D.CD_EMP = L.CD_EMP AND           
	D.CD_TBL_COMIS_REGRESSAO = L.CD_TBL_COMIS_REGRESSAO) RS 
	INNER JOIN EST_PROD_TBL_COMIS_REGRESSAO_PRC_FILIAL ON
	RS.CD_EMP = EST_PROD_TBL_COMIS_REGRESSAO_PRC_FILIAL.CD_EMP AND
	RS.CD_TBL_COMIS_REGRESSAO = EST_PROD_TBL_COMIS_REGRESSAO_PRC_FILIAL.CD_TBL_COMIS_REGRESSAO
	INNER JOIN GLB_USU ON
	RS.CD_USU = GLB_USU.CD_USU
	INNER JOIN PRC_GRP_ECON_PRC_FILIAL ON
	EST_PROD_TBL_COMIS_REGRESSAO_PRC_FILIAL.CD_EMP= PRC_GRP_ECON_PRC_FILIAL.CD_EMP AND
	EST_PROD_TBL_COMIS_REGRESSAO_PRC_FILIAL.CD_FILIAL= PRC_GRP_ECON_PRC_FILIAL.CD_FILIAL 
	LEFT OUTER JOIN FP_CARGO_EST_PROD_TBL_COMIS_REGRESSAO ON
	RS.CD_EMP = FP_CARGO_EST_PROD_TBL_COMIS_REGRESSAO.CD_EMP AND
	RS.CD_TBL_COMIS_REGRESSAO = FP_CARGO_EST_PROD_TBL_COMIS_REGRESSAO.CD_TBL_COMIS_REGRESSAO AND
	PRC_GRP_ECON_PRC_FILIAL.CD_GRP_ECON = FP_CARGO_EST_PROD_TBL_COMIS_REGRESSAO.CD_GRP_ECON
	LEFT OUTER JOIN FP_CARGO ON
	FP_CARGO_EST_PROD_TBL_COMIS_REGRESSAO.CD_EMP = FP_CARGO.CD_EMP AND
	FP_CARGO_EST_PROD_TBL_COMIS_REGRESSAO.CD_CARGO = FP_CARGO.CD_CARGO


