/*--------------- 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 ) 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.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 */