/*--------------- SQL ---------------*/

CREATE VIEW RDX_V_VENTASEDI AS
SELECT
    NUMINF,
	CLAVE1,
	CLAVE2,
	CLAVE3,
	PERVENINI,
	NUMTALON,
	EANLUG,
	FILIAL,
	EANVEN,
	CODVEN,
	VENDEDOR,
	EANART,
	CODCOM,
	PRODUTO,
	DESC_PRODUTO,
	COR_PRODUTO,
	GRADE,
	TIPO_PRODUTO,
	GRUPO_PRODUTO,
	DESC_COLECAO,
	VALVEN,
	CANVEN,
	CANDEV,
	CANVENNET,
	CANESP,
	IGNORAR
FROM RDX_VENTASEDI
WHERE (IGNORAR IS NULL) OR (IGNORAR <> 'S')
GO

/*--------------- SQL ---------------*/

CREATE VIEW RDX_V_VENTASEDI_PESADA
AS
SELECT
  RDX_CABVEN.NUMINF,
  RDX_ARTVEN.CLAVE1,
  RDX_ARTVEN.CLAVE2,
  RDX_ARTVEN.CLAVE3,
  RDX_LUGVEN.PERVENINI,
  RDX_ARTVEN.NUMTALON,
  RDX_LUGVEN.EANLUG,
  FILIAL = ISNULL(FILIAIS.FILIAL, RDX_LUGVEN.EANLUG),
  RDX_ARTVEN.EANVEN,
  LOJA_VENDEDORES.VENDEDOR AS CODVEN,
  VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_ARTVEN.EANVEN),
  RDX_ARTVEN.EANART,
  RDX_ARTVEN.CODCOM,
  produtos.PRODUTO,
  ISNULL(produtos.DESC_PRODUTO, '*** ERROR REFERENCIA  **** LLAMAR AL CI') AS DESC_PRODUTO,
  PRODUTOS_BARRA.COR_PRODUTO,
  PRODUTOS_BARRA.GRADE,
  produtos.TIPO_PRODUTO,
  produtos.GRUPO_PRODUTO,
  COLECOES.DESC_COLECAO,
  RDX_ARTVEN.VALVEN,
  RDX_ARTVEN.CANVEN,
  RDX_ARTVEN.CANDEV,
  RDX_ARTVEN.CANVENNET,
  RDX_ARTVEN.CANESP
FROM
  RDX_ARTVEN
  INNER JOIN RDX_LUGVEN ON (RDX_ARTVEN.CLAVE1 = RDX_LUGVEN.CLAVE1 AND RDX_ARTVEN.CLAVE2 = RDX_LUGVEN.CLAVE2)
  INNER JOIN RDX_CABVEN ON (RDX_LUGVEN.CLAVE1 = RDX_CABVEN.CLAVE1)
  left outer join RDX_FILIALES on (RDX_FILIALES.CODBARRA = RDX_LUGVEN.EANLUG)
  left outer join FILIAIS on (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL)
  LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG LIKE '%' + RDX_ARTVEN.EANVEN + '%')
  LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.EANART) or (PRODUTOS_BARRA.CODIGO_BARRA = RDX_ARTVEN.CODCOM))
  LEFT OUTER JOIN PRODUTOS on (produtos.PRODUTO = PRODUTOS_BARRA.PRODUTO)
  LEFT OUTER JOIN COLECOES on (COLECOES.COLECAO = PRODUTOS.COLECAO)
WHERE (RDX_CABVEN.IGNORAR IS NULL) OR (RDX_CABVEN.IGNORAR <> 'S')
GO

/*--------------- SQL ---------------*/

CREATE VIEW RDX_V_REFERENCIAS_RESUELTAS
AS
SELECT *
FROM RDX_REFERENCIA_GENERICA
WHERE ESTADO = 'R'
GO

/*--------------- SQL ---------------*/

CREATE VIEW RDX_V_VENTASEDI_RESUELTAS
AS
SELECT
  RDX_V_VENTASEDI.NUMINF,
  RDX_V_VENTASEDI.CLAVE1,
  RDX_V_VENTASEDI.CLAVE2,
  RDX_V_VENTASEDI.CLAVE3,
  RDX_V_VENTASEDI.PERVENINI,
  RDX_V_VENTASEDI.NUMTALON,
  RDX_V_VENTASEDI.EANLUG,
  RDX_V_VENTASEDI.FILIAL,
  RDX_V_VENTASEDI.EANVEN,
  RDX_V_VENTASEDI.CODVEN,
  RDX_V_VENTASEDI.VENDEDOR,
  EANART = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART),
  RDX_V_VENTASEDI.CODCOM,
  PRODUTO = ISNULL(PRODUTOS_BARRA.PRODUTO, RDX_V_VENTASEDI.PRODUTO),
  DESC_PRODUTO = ISNULL(PRODUTOS.DESC_PRODUTO, RDX_V_VENTASEDI.DESC_PRODUTO),
  COR_PRODUTO = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, RDX_V_VENTASEDI.COR_PRODUTO),
  GRADE = ISNULL(PRODUTOS_BARRA.GRADE, RDX_V_VENTASEDI.GRADE),
  TIPO_PRODUTO = ISNULL(PRODUTOS.TIPO_PRODUTO, RDX_V_VENTASEDI.TIPO_PRODUTO),
  GRUPO_PRODUTO = ISNULL(PRODUTOS.GRUPO_PRODUTO, RDX_V_VENTASEDI.GRUPO_PRODUTO),
  PRODUTOS.COLECAO,
  DESC_COLECAO = ISNULL(COLECOES.DESC_COLECAO, RDX_V_VENTASEDI.DESC_COLECAO),
  RDX_V_VENTASEDI.VALVEN,
  RDX_V_VENTASEDI.CANVEN,
  RDX_V_VENTASEDI.CANDEV,
  RDX_V_VENTASEDI.CANVENNET,
  RDX_V_VENTASEDI.CANESP
FROM RDX_V_VENTASEDI
LEFT JOIN RDX_V_REFERENCIAS_RESUELTAS ON (
     (RDX_V_REFERENCIAS_RESUELTAS.NUMINF = RDX_V_VENTASEDI.NUMINF) AND
     (RDX_V_REFERENCIAS_RESUELTAS.CLAVE1 = RDX_V_VENTASEDI.CLAVE1) AND
     (RDX_V_REFERENCIAS_RESUELTAS.CLAVE2 = RDX_V_VENTASEDI.CLAVE2) AND
     (RDX_V_REFERENCIAS_RESUELTAS.CLAVE3 = RDX_V_VENTASEDI.CLAVE3))
LEFT JOIN PRODUTOS_BARRA ON (
     (PRODUTOS_BARRA.CODIGO_BARRA = ISNULL(RDX_V_REFERENCIAS_RESUELTAS.CODIGO_BARRA, RDX_V_VENTASEDI.EANART)))
LEFT JOIN PRODUTOS ON (
     (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO))
LEFT JOIN COLECOES ON (
     (COLECOES.COLECAO = PRODUTOS.COLECAO))
GO

/*--------------- SQL ---------------*/

CREATE VIEW RDX_V_VENTASEDI_ERRONEAS
AS
SELECT
*
FROM
  RDX_V_VENTASEDI
WHERE PRODUTO = '107CH.EN.01'
GO

/*--------------- SQL ---------------*/

CREATE VIEW RDX_V_REFERENCIA_GENERICA
AS
SELECT DISTINCT
  VENTAS.NUMINF,
  VENTAS.CLAVE1,
  VENTAS.CLAVE2,
  VENTAS.CLAVE3,
  NUMCON = ISNULL(REF.NUMCON, 0),
  VENTAS.PERVENINI AS FECHA,
  VENTAS.EANLUG AS CODCENTRO,
  VENTAS.FILIAL AS CENTRO,
  VENTAS.EANVEN AS CODVENDEDOR,
  VENTAS.VENDEDOR,
  VENTAS.NUMTALON,
  CODIGO_BARRA = ISNULL(PRODUTOS_BARRA.CODIGO_BARRA, VENTAS.EANART),
  CODIGO = ISNULL(PRODUTOS_BARRA.PRODUTO, VENTAS.PRODUTO),
  PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, VENTAS.DESC_PRODUTO),
  COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, VENTAS.COR_PRODUTO),
  TALLA = ISNULL(PRODUTOS_BARRA.GRADE, VENTAS.GRADE),
  VTAPROCESO = ISNULL(REF.CANESP, VENTAS.CANESP),
  VTAFINAL = ISNULL(REF.CANVENNET, VENTAS.CANVENNET),
  VTATERM = ISNULL(REF.CANVEN, VENTAS.CANVEN),
  VALTOT = ISNULL(REF.VALVEN, VENTAS.VALVEN),
  REF.ESTADO,
  REF.FECHACAMBIO
FROM RDX_V_VENTASEDI_ERRONEAS VENTAS
LEFT OUTER JOIN RDX_REFERENCIA_GENERICA REF ON
     (REF.NUMINF = VENTAS.NUMINF AND REF.CLAVE1 = VENTAS.CLAVE1 AND
      REF.CLAVE2 = VENTAS.CLAVE2 AND REF.CLAVE3 = VENTAS.CLAVE3)
LEFT OUTER JOIN PRODUTOS_BARRA on
     (PRODUTOS_BARRA.CODIGO_BARRA = REF.CODIGO_BARRA)
LEFT OUTER JOIN PRODUTOS ON
     (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO)
WHERE NOT ((VENTAS.VALVEN < 1) AND (VENTAS.VALVEN > 0)) /* QUITAR COMPOSTURAS */
GO

/*--------------- SQL ---------------*/

CREATE VIEW RDX_V_VENTASPROCESO AS
SELECT
  NUMINF,
  CLAVE1,
  CLAVE2,
  CLAVE3,
  PERVENINI AS FECHA,
  DAY(PERVENINI) AS DIA,
  DATENAME(DW, PERVENINI) DIASEMANA,
  DATENAME(MONTH, PERVENINI) AS MES,
  YEAR(PERVENINI) AS ANO,
  FILIAL AS CENTRO,
  VENDEDOR,
  NUMTALON,
  PRODUTO AS CODIGO,
  DESC_PRODUTO AS PRODUCTO,
  GRUPO_PRODUTO AS GRUPOPRODUCTO,
  TIPO_PRODUTO AS TIPOPRODUCTO,
  COLECAO AS COLECCION,
  COR_PRODUTO AS COLOR,
  GRADE AS TALLA,
  CANESP AS INICIO,
  CANVENNET AS FINAL,
  VALVEN AS IMPORTE
FROM
  RDX_V_VENTASEDI_RESUELTAS
WHERE ((CANESP IS NOT NULL) OR (CANVENNET IS NOT NULL))
AND NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0)))	/* QUITAR COMPOSTURAS */
GO

/*--------------- SQL ---------------*/

CREATE VIEW RDX_V_VENTASPROCESOPENDIENTES AS
SELECT NUMTALON,
	CODIGO,
	COLOR,
	TALLA,
	SUM(ISNULL(INICIO, 0)) AS INICIO,
	SUM(ABS(ISNULL(FINAL, 0))) AS FINAL
FROM RDX_V_VENTASPROCESO
GROUP BY NUMTALON, CODIGO, COLOR, TALLA
HAVING ((SUM(ISNULL(INICIO, 0)) <> 0) AND
			  (SUM(ISNULL(INICIO, 0)) > SUM(ABS(ISNULL(FINAL, 0)))))
GO

/*--------------- SQL ---------------*/

CREATE VIEW RDX_V_VENTASTERMINADAS
AS
SELECT
  NUMINF,
  CLAVE1,
  CLAVE2,
  CLAVE3,
  PERVENINI AS FECHA,
  DAY(PERVENINI) AS DIA,
  DATENAME(DW, PERVENINI) DIASEMANA,
  DATENAME(MONTH, PERVENINI) AS MES,
  YEAR(PERVENINI) AS ANO,
  FILIAL AS CENTRO,
  VENDEDOR,
  NUMTALON,
  PRODUTO AS CODIGO,
  DESC_PRODUTO AS PRODUCTO,
  GRUPO_PRODUTO AS GRUPOPRODUCTO,
  TIPO_PRODUTO AS TIPOPRODUCTO,
  COLECAO AS COLECCION,
  COR_PRODUTO AS COLOR,
  GRADE AS TALLA,
  TALLA38 = CASE WHEN (GRADE = 38) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END,
  TALLA40 = CASE WHEN (GRADE = 40) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END,
  TALLA42 = CASE WHEN (GRADE = 42) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END,
  TALLA44 = CASE WHEN (GRADE = 44) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END,
  TALLA46 = CASE WHEN (GRADE = 46) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END,
  TALLA48 = CASE WHEN (GRADE = 48) THEN ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0) ELSE NULL END,

  VTATERMDEV = ISNULL(CANVEN, 0),
  VTAFINALRESC = ISNULL(CANVENNET, 0),

  VENTAS = CASE WHEN (CANVEN > 0) THEN CANVEN ELSE 0 END +
           CASE WHEN (CANVENNET > 0) THEN CANVENNET ELSE 0 END,

  DEVOLUCIONES = CASE WHEN (CANVEN < 0) THEN CANVEN ELSE 0 END +
           CASE WHEN (CANVENNET < 0) THEN CANVENNET ELSE 0 END,

  TOTAL = ISNULL(CANVEN, 0) + ISNULL(CANVENNET, 0),

  VALTERMDEV = CASE WHEN (CANVEN <> 0) THEN ISNULL(VALVEN, 0) ELSE 0 END,
  VALFINALRESC = CASE WHEN (CANVENNET <> 0) THEN ISNULL(VALVEN, 0) ELSE 0 END,

  VALVEN = CASE WHEN (VALVEN > 0) THEN VALVEN ELSE 0 END,
  VALDEV = CASE WHEN (VALVEN < 0) THEN VALVEN ELSE 0 END,
  VALTOT = VALVEN
FROM
  RDX_V_VENTASEDI_RESUELTAS
WHERE NOT ((DESC_PRODUTO LIKE '%ERROR REFERENCIA%') AND ((VALVEN < 1) AND (VALVEN > 0)))	/* QUITAR COMPOSTURAS */
AND (CANESP IS NULL OR CANESP = 0)	/* QUITAR INICIO V.PROCESO */
AND (VALVEN IS NOT NULL)	/* QUITAR CAMBIO DE TALLA */
AND ((CANVENNET >= 0) OR (CANVENNET IS NULL))   /* IGNORAR LAS RESCISIONES DE V.PROCESO */
GO

/* EOF */
