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

CREATE PROCEDURE crosstab
	@select varchar(8000),
	@sumfunc varchar(100),
	@pivot varchar(100),
	@table varchar(100)
AS

	DECLARE @sql varchar(8000), @delim varchar(1)
	SET NOCOUNT ON
	SET ANSI_WARNINGS OFF

	EXEC ('SELECT ' + @pivot + ' AS pivot INTO ##pivot FROM ' + @table + ' WHERE 1=2')
	EXEC ('INSERT INTO ##pivot SELECT DISTINCT ' + @pivot + ' FROM ' + @table + ' WHERE ' + @pivot + ' Is Not Null')

	SELECT @sql='',  @sumfunc=stuff(@sumfunc, len(@sumfunc), 1, ' END)' )

	SELECT @delim=CASE Sign( CharIndex('char', data_type)+CharIndex('date', data_type) )
	WHEN 0 THEN '' ELSE '''' END
	FROM tempdb.information_schema.columns
	WHERE table_name='##pivot' AND column_name='pivot'

	SELECT @sql=@sql + '''' + convert(varchar(100), pivot) + ''' = ' + stuff(@sumfunc,charindex( '(', @sumfunc )+1, 0, ' CASE ' + @pivot + ' WHEN ' + @delim + convert(varchar(100), pivot) + @delim + ' THEN ' ) + ', ' FROM ##pivot

	DROP TABLE ##pivot

	SELECT @sql=left(@sql, len(@sql)-1)
	SELECT @select=stuff(@select, charindex(' FROM ', @select)+1, 0, ', ' + @sql + ' ')

	EXEC (@select)
	SET ANSI_WARNINGS ON
GO

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

CREATE PROCEDURE RDX_P_CARGAR_INVENTARIOEDI
AS
BEGIN
	INSERT INTO RDX_INVENTARIOEDI (
	       NUMDOC, NUMLIN, NUMCANT, TIPOCANT, FECHA, CENTRO, FILIAL, CODVEN,
           VENDEDOR, CODIGO_BARRA, CODIGO, PRODUCTO, COLOR, TALLA, CANTIDAD,
           CENTRO2, FILIAL2, IGNORAR	)
	SELECT
	      RDX_CANTINV.NUMDOC,
	      RDX_CANTINV.NUMLIN,
	      RDX_CANTINV.NUMCANT,
	      RDX_CANTINV.TIPOCANT,
	      RDX_CABINV.FECHALIQ AS FECHA,
	      RDX_CABINV.CENTRO,
	      FILIAL = ISNULL(FILIAIS.FILIAL, RDX_CABINV.CENTRO),
	      RDX_CANTINV.IDVEN AS CODVEN,
	      VENDEDOR = ISNULL(LTRIM(RTRIM(LOJA_VENDEDORES.NOME_VENDEDOR)) + ' ' + LTRIM(RTRIM(LOJA_VENDEDORES.VENDEDOR_APELIDO)), RDX_CANTINV.IDVEN),
	      RDX_LININV.CODART AS CODIGO_BARRA,
	      CODIGO = ISNULL(PRODUTOS.PRODUTO, '107CH.EN.01'),
	      PRODUCTO = ISNULL(PRODUTOS.DESC_PRODUTO, '*** ERROR REFERENCIA  **** LLAMAR AL CI'),
	      COLOR = ISNULL(PRODUTOS_BARRA.COR_PRODUTO, 300),
	      TALLA = PRODUTOS_BARRA.GRADE,
	      RDX_CANTINV.CANTIDAD,
	      CENTRO2 = RDX_CANTINV.CENTRO,
	      FILIAL2 = ISNULL(FILIAIS2.FILIAL, RDX_CANTINV.CENTRO),
		  RDX_CABINV.IGNORAR
	FROM RDX_CANTINV
	INNER JOIN RDX_LININV ON
	      ((RDX_LININV.NUMDOC = RDX_CANTINV.NUMDOC) AND
	       (RDX_LININV.NUMLIN = RDX_CANTINV.NUMLIN))
	INNER JOIN RDX_CABINV ON
	      (RDX_CABINV.NUMDOC = RDX_LININV.NUMDOC)
	LEFT OUTER JOIN RDX_FILIALES ON (RDX_FILIALES.CODBARRA = RDX_CABINV.CENTRO)
	LEFT OUTER JOIN FILIAIS ON (FILIAIS.COD_FILIAL = RDX_FILIALES.CODFILIAL)
	LEFT OUTER JOIN RDX_FILIALES RDX_FILIALES2 ON (RDX_FILIALES2.CODBARRA = RDX_CANTINV.CENTRO)
	LEFT OUTER JOIN FILIAIS FILIAIS2 ON (FILIAIS2.COD_FILIAL = RDX_FILIALES2.CODFILIAL)
	LEFT OUTER JOIN LOJA_VENDEDORES ON (LOJA_VENDEDORES.RG = RDX_CANTINV.IDVEN)
	LEFT OUTER JOIN PRODUTOS_BARRA ON ((PRODUTOS_BARRA.CODIGO_BARRA = RDX_LININV.CODART))
	LEFT OUTER JOIN PRODUTOS ON (PRODUTOS.PRODUTO = PRODUTOS_BARRA.PRODUTO)
	WHERE RDX_CABINV.FECHALIQ >= CONVERT(DATETIME, '20060601', 112)  /* PARA NO COGER AŅOS ANTERIORES */
	AND RDX_CABINV.CARGADO IS NULL
	
	UPDATE RDX_CABINV SET
	       CARGADO = 1
    WHERE CARGADO IS NULL
END
GO

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

CREATE PROCEDURE RDX_P_CARGAR_VENTASEDI
AS
BEGIN
	INSERT INTO RDX_VENTASEDI (
	       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 )
	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,
	  RDX_CABVEN.IGNORAR

	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.CARGADO IS NULL

	
	UPDATE RDX_CABVEN SET
	       CARGADO = 1
    WHERE CARGADO IS NULL
END
GO

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

CREATE PROCEDURE RDX_P_SET_ULTIMOINVENTARIO
AS
BEGIN
     DECLARE @CENTRO VARCHAR(17),
             @CODIGO VARCHAR(12),
             @COLOR VARCHAR(10),
             @TALLA VARCHAR(8),
             @FECHA DATETIME,
             @UPDATECMD VARCHAR(255)
             
     DECLARE ASD CURSOR FOR
             SELECT RTRIM(CENTRO), RTRIM(CODIGO), RTRIM(COLOR), RTRIM(TALLA), FECHA
             FROM RDX_V_INVENTARIO_MAXFECHAS
     OPEN ASD
     FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA

     IF @@ROWCOUNT >= 0
     BEGIN
	      WHILE @@FETCH_STATUS = 0
	      BEGIN
	           UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=NULL
               WHERE CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA

	           UPDATE RDX_INVENTARIOEDI SET ULTIMO_INVENTARIO=1
	           WHERE FECHA = CONVERT(VARCHAR, @FECHA, 112) AND CENTRO = @CENTRO AND CODIGO = @CODIGO AND COLOR = @COLOR AND TALLA = @TALLA AND TIPOCANT = 145
               
               FETCH NEXT FROM ASD INTO @CENTRO, @CODIGO, @COLOR, @TALLA, @FECHA
          END
     END
     CLOSE ASD
     DEALLOCATE ASD
END
GO

/* EOF */