Varela_PuntosVenta/Database/3 - procedimientos.sql

274 lines
8.9 KiB
Transact-SQL
Raw Blame History

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