/*--------------- SQL ---------------*/ DROP PROCEDURE crosstab GO 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 ---------------*/ DROP PROCEDURE RDX_P_CARGAR_INVENTARIOEDI GO 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 IF @@ERROR = 0 UPDATE RDX_CABINV SET CARGADO = 1 WHERE CARGADO IS NULL END GO /*--------------- SQL ---------------*/ DROP PROCEDURE RDX_P_CARGAR_VENTASEDI GO 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, ISNULL(produtos.PRODUTO, '107CH.EN.01') AS 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 IF @@error = 0 UPDATE RDX_CABVEN SET CARGADO = 1 WHERE CARGADO IS NULL END GO /*--------------- SQL ---------------*/ DROP PROCEDURE RDX_P_SET_ULTIMOINVENTARIO GO 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 /*--------------- SQL ---------------*/ CREATE PROCEDURE RDX_P_DELETE_CARGA_VENTAS AS BEGIN DECLARE @CLAVE1 NUMERIC(10,0) DECLARE ASD CURSOR FOR SELECT RDX_CABVEN.CLAVE1 FROM RDX_CABVEN WHERE RDX_CABVEN.FECINF = '2007/09/01' OPEN ASD FETCH NEXT FROM ASD INTO @CLAVE1 IF @@ROWCOUNT >= 0 BEGIN WHILE @@FETCH_STATUS = 0 BEGIN DELETE FROM RDX_ARTVEN WHERE CLAVE1 = @CLAVE1 DELETE FROM RDX_LUGVEN WHERE CLAVE1 = @CLAVE1 DELETE FROM RDX_CABVEN WHERE CLAVE1 = @CLAVE1 DELETE FROM RDX_VENTASEDI WHERE CLAVE1 = @CLAVE1 FETCH NEXT FROM ASD INTO @CLAVE1 END END CLOSE ASD DEALLOCATE ASD END GO /*--------------- SQL ---------------*/ CREATE PROCEDURE RDX_P_DELETE_CARGA_INVENTARIO AS BEGIN DECLARE @NUMDOC VARCHAR(25) DECLARE ASD CURSOR FOR SELECT RDX_CABINV.NUMDOC FROM RDX_CABINV WHERE RDX_CABINV.FECHALIQ = '2007/09/01' OPEN ASD FETCH NEXT FROM ASD INTO @NUMDOC IF @@ROWCOUNT >= 0 BEGIN WHILE @@FETCH_STATUS = 0 BEGIN DELETE FROM RDX_LININV WHERE NUMDOC = @NUMDOC DELETE FROM RDX_CANTINV WHERE NUMDOC = @NUMDOC DELETE FROM RDX_CABINV WHERE NUMDOC = @NUMDOC DELETE FROM RDX_INVENTARIOEDI WHERE NUMDOC = @NUMDOC FETCH NEXT FROM ASD INTO @NUMDOC END END CLOSE ASD DEALLOCATE ASD END GO CREATE PROCEDURE dbo.RDX_P_TIPO_TALLAJE @PRODUCTO VARCHAR(12), @TIPO_TALLAJE smallint OUT AS BEGIN set @TIPO_TALLAJE = (SELECT DISTINCT RDX_TALLAS.TIPO_TALLAJE FROM PRODUTOS_BARRA LEFT JOIN RDX_TALLAS ON (PRODUTOS_BARRA.GRADE = RDX_TALLAS.TALLA) WHERE PRODUTOS_BARRA.PRODUTO = @PRODUCTO) END GO /* EOF */