GO /****** Object: Trigger [dbo].[ActAcumuladosCLMOV] Script Date: 02/04/2011 16:43:14 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP TRIGGER [dbo].[ActAcumuladosCLMOV] GO CREATE TRIGGER [dbo].[ActAcumuladosCLMOV] ON [dbo].[CLMOV] FOR INSERT,DELETE,UPDATE AS BEGIN DECLARE @INDICE INT DECLARE @RAD SMALLINT DECLARE @CLIENTE INT DECLARE @ANO SMALLINT DECLARE @MES SMALLINT DECLARE @MOV SMALLINT DECLARE @VALOR DECIMAL(20,4) DECLARE @VLCUSTO DECIMAL(20,4) DECLARE @VLLIQ DECIMAL(20,4) DECLARE @DESCONTOS DECIMAL(20,4) DECLARE @DEBITO DECIMAL (20,4) DECLARE @CREDITO DECIMAL (20,4) DECLARE @SAIDA_C DECIMAL (20,4) DECLARE @SAIDA_V DECIMAL (20,4) DECLARE @SAIDA_D DECIMAL (20,4) DECLARE @VDINH_C DECIMAL (20,4) DECLARE @VDINH_V DECIMAL (20,4) DECLARE @VDINH_D DECIMAL (20,4) DECLARE @VCRED_C DECIMAL (20,4) DECLARE @VCRED_V DECIMAL (20,4) DECLARE @VCRED_D DECIMAL (20,4) DECLARE @DEVOL_CRED_C DECIMAL (20,4) DECLARE @DEVOL_CRED_V DECIMAL (20,4) DECLARE @DEVOL_CRED_D DECIMAL (20,4) DECLARE @DEVOL_DINH_C DECIMAL (20,4) DECLARE @DEVOL_DINH_V DECIMAL (20,4) DECLARE @DEVOL_DINH_D DECIMAL (20,4) CREATE TABLE #AUX_ACM_CLMOV (INDICE INT IDENTITY(1,1), RAD SMALLINT, CLIENTE INT, ANO INT, MES INT, MOV SMALLINT, VLCUSTO DECIMAL(20,4), VLLIQ DECIMAL(20,4), VALOR DECIMAL(20,4), DESCONTOS DECIMAL(20,4) ) --------------------------------------------------------------- -- PARTE INSERÇÃO --------------------------------------------------------------- SET @INDICE=0 SET @RAD =0 SET @CLIENTE =0 SET @ANO =0 SET @MES =0 SET @MOV =0 SET @VALOR=0 SET @VLCUSTO =0 SET @VLLIQ =0 SET @DESCONTOS =0 SET @DEBITO =0 SET @CREDITO =0 SET @SAIDA_C =0 SET @SAIDA_V =0 SET @SAIDA_D =0 SET @VDINH_C =0 SET @VDINH_V =0 SET @VDINH_D =0 SET @VCRED_C =0 SET @VCRED_V =0 SET @VCRED_D =0 SET @DEVOL_CRED_C =0 SET @DEVOL_CRED_V =0 SET @DEVOL_CRED_D =0 SET @DEVOL_DINH_C =0 SET @DEVOL_DINH_V =0 SET @DEVOL_DINH_D =0 INSERT INTO #AUX_ACM_CLMOV (RAD,CLIENTE,ANO,MES,MOV,VLCUSTO,VLLIQ,VALOR,DESCONTOS) SELECT RAD,CLIENTE,YEAR(DATA-2) AS ANO,MONTH(DATA-2) AS MES,MOV,VLCUSTO,VLLIQ,VALOR,DESCONTOS FROM INSERTED SELECT @INDICE=COUNT(*) FROM #AUX_ACM_CLMOV WHILE @INDICE>0 BEGIN SELECT @RAD=RAD,@CLIENTE=CLIENTE,@ANO=ANO,@MES=MES,@MOV=MOV,@VALOR=VALOR,@VLCUSTO=VLCUSTO,@VLLIQ=VLLIQ,@DESCONTOS=DESCONTOS FROM #AUX_ACM_CLMOV WHERE INDICE=@INDICE -- DETERMINAR SE É UM DÉBITO OU UM CREDITO IF @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('CL_Debito_Fim') BEGIN SET @DEBITO=@VALOR SET @CREDITO=0 END ELSE BEGIN SET @DEBITO=0 SET @CREDITO=@VALOR END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('CL_Saida_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('CL_Saida_Fim') BEGIN SET @SAIDA_C = @VLCUSTO SET @SAIDA_V = @VLLIQ SET @SAIDA_D = @DESCONTOS END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('CL_Venda_Cred_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('CL_Venda_Cred_Fim') BEGIN SET @VCRED_C = @VLCUSTO SET @VCRED_V = @VLLIQ SET @VCRED_D = @DESCONTOS END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('CL_Venda_Dinh_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('CL_Venda_Dinh_Fim') BEGIN SET @VDINH_C = @VLCUSTO SET @VDINH_V = @VLLIQ SET @VDINH_D = @DESCONTOS END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('CL_Devol_VCred_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('CL_Devol_VCred_Fim') BEGIN SET @DEVOL_CRED_C = @VLCUSTO SET @DEVOL_CRED_V = @VLLIQ SET @DEVOL_CRED_D = @DESCONTOS END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('CL_Devol_VDinh_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('CL_Devol_VDinh_Fim') BEGIN SET @DEVOL_DINH_C = @VLCUSTO SET @DEVOL_DINH_V = @VLLIQ SET @DEVOL_DINH_D = @DESCONTOS END EXECUTE [sp_ActualizaCLVAL] @RAD,@CLIENTE,@ANO,@MES,@DEBITO,@CREDITO,@SAIDA_C,@SAIDA_V,@SAIDA_D,@VDINH_C,@VDINH_V,@VDINH_D,@VCRED_C,@VCRED_V,@VCRED_D,@DEVOL_CRED_C,@DEVOL_CRED_V,@DEVOL_CRED_D,@DEVOL_DINH_C,@DEVOL_DINH_V,@DEVOL_DINH_D SET @INDICE=@INDICE-1 END --------------------------------------------------------------- -- FIM PARTE INSERÇÃO --------------------------------------------------------------- TRUNCATE TABLE #AUX_ACM_CLMOV --------------------------------------------------------------- -- PARTE ANULAÇÃO --------------------------------------------------------------- SET @INDICE=0 SET @RAD =0 SET @CLIENTE =0 SET @ANO =0 SET @MES =0 SET @MOV =0 SET @VALOR=0 SET @VLCUSTO =0 SET @VLLIQ =0 SET @DESCONTOS =0 SET @DEBITO =0 SET @CREDITO =0 SET @SAIDA_C =0 SET @SAIDA_V =0 SET @SAIDA_D =0 SET @VDINH_C =0 SET @VDINH_V =0 SET @VDINH_D =0 SET @VCRED_C =0 SET @VCRED_V =0 SET @VCRED_D =0 SET @DEVOL_CRED_C =0 SET @DEVOL_CRED_V =0 SET @DEVOL_CRED_D =0 SET @DEVOL_DINH_C =0 SET @DEVOL_DINH_V =0 SET @DEVOL_DINH_D =0 INSERT INTO #AUX_ACM_CLMOV (RAD,CLIENTE,ANO,MES,MOV,VLCUSTO,VLLIQ,VALOR,DESCONTOS) SELECT RAD,CLIENTE,YEAR(DATA-2) AS ANO,MONTH(DATA-2) AS MES,MOV,VLCUSTO,VLLIQ,VALOR,DESCONTOS FROM DELETED SELECT @INDICE=COUNT(*) FROM #AUX_ACM_CLMOV WHILE @INDICE>0 BEGIN SELECT @RAD=RAD,@CLIENTE=CLIENTE,@ANO=ANO,@MES=MES,@MOV=MOV,@VALOR=VALOR,@VLCUSTO=VLCUSTO,@VLLIQ=VLLIQ,@DESCONTOS=DESCONTOS FROM #AUX_ACM_CLMOV WHERE INDICE=@INDICE --NO TRIGUER DO DEL OS VALORES SÃO COLOCADOS A NEGATIVO SET @VALOR=-@VALOR SET @VLCUSTO=-@VLCUSTO SET @VLLIQ=-@VLLIQ SET @DESCONTOS=-@DESCONTOS -- DETERMINAR SE É UM DÉBITO OU UM CREDITO IF @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('CL_Debito_Fim') BEGIN SET @DEBITO=@VALOR SET @CREDITO=0 END ELSE BEGIN SET @DEBITO=0 SET @CREDITO=@VALOR END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('CL_Saida_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('CL_Saida_Fim') BEGIN SET @SAIDA_C = @VLCUSTO SET @SAIDA_V = @VLLIQ SET @SAIDA_D = @DESCONTOS END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('CL_Venda_Cred_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('CL_Venda_Cred_Fim') BEGIN SET @VCRED_C = @VLCUSTO SET @VCRED_V = @VLLIQ SET @VCRED_D = @DESCONTOS END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('CL_Venda_Dinh_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('CL_Venda_Dinh_Fim') BEGIN SET @VDINH_C = @VLCUSTO SET @VDINH_V = @VLLIQ SET @VDINH_D = @DESCONTOS END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('CL_Devol_VCred_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('CL_Devol_VCred_Fim') BEGIN SET @DEVOL_CRED_C = @VLCUSTO SET @DEVOL_CRED_V = @VLLIQ SET @DEVOL_CRED_D = @DESCONTOS END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('CL_Devol_VDinh_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('CL_Devol_VDinh_Fim') BEGIN SET @DEVOL_DINH_C = @VLCUSTO SET @DEVOL_DINH_V = @VLLIQ SET @DEVOL_DINH_D = @DESCONTOS END EXECUTE [sp_ActualizaCLVAL] @RAD,@CLIENTE,@ANO,@MES,@DEBITO,@CREDITO,@SAIDA_C,@SAIDA_V,@SAIDA_D,@VDINH_C,@VDINH_V,@VDINH_D,@VCRED_C,@VCRED_V,@VCRED_D,@DEVOL_CRED_C,@DEVOL_CRED_V,@DEVOL_CRED_D,@DEVOL_DINH_C,@DEVOL_DINH_V,@DEVOL_DINH_D SET @INDICE=@INDICE-1 END --------------------------------------------------------------- -- FIM PARTE ANULAÇÃO --------------------------------------------------------------- DROP TABLE #AUX_ACM_CLMOV END GO GO /****** Object: Trigger [dbo].[ActAcumuladosSTMOV] Script Date: 02/04/2011 16:43:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP TRIGGER [dbo].[ActAcumuladosSTMOV] GO CREATE TRIGGER [dbo].[ActAcumuladosSTMOV] ON [dbo].[STMOV] FOR INSERT,DELETE,UPDATE AS BEGIN DECLARE @INDICE INT DECLARE @TDOC SMALLINT DECLARE @ANO SMALLINT DECLARE @ARM SMALLINT DECLARE @MES SMALLINT DECLARE @ARTIGO VARCHAR(25) DECLARE @QTD DECIMAL(20,4) DECLARE @VALOR_CUSTO DECIMAL(20,4) DECLARE @VALOR_VENDA DECIMAL(20,4) DECLARE @LOTE VARCHAR(20) DECLARE @PMC_SEQ INT CREATE TABLE #AUX_ACM_STMOV ( INDICE INT IDENTITY(1,1), TDOC SMALLINT, ANO SMALLINT, ARM SMALLINT, MES SMALLINT, ARTIGO VARCHAR(25), LOTE VARCHAR(20), PMC_SEQ INT, QTD DECIMAL(20,4), VALOR_CUSTO DECIMAL(20,4), VALOR_VENDA DECIMAL(20,4), ) --------------------------------------------------------------- -- PARTE INSERÇÃO --------------------------------------------------------------- INSERT INTO #AUX_ACM_STMOV(TDOC,ANO,ARM,MES,ARTIGO,LOTE,PMC_SEQ,QTD,VALOR_CUSTO,VALOR_VENDA) SELECT INSERTED.TDOC,INSERTED.ANO,INSERTED.ARM,MONTH(INSERTED.DATA-2) AS MES,INSERTED.ARTIGO,INSERTED.LOTE,INSERTED.PMC_SEQ, INSERTED.QTFORN,(INSERTED.QTFORN*INSERTED.PRC_ESC) AS VALOR_CUSTO,(INSERTED.LIQUIDO*INSERTED.CAMBIO) AS VALOR_VENDA FROM INSERTED WHERE NOT INSERTED.MOVSTK=0 AND INSERTED.SINAL=0 SELECT @INDICE=COUNT(*) FROM #AUX_ACM_STMOV WHILE @INDICE>0 BEGIN SELECT @TDOC=TDOC,@ANO=ANO,@ARM=ARM,@MES=MES,@ARTIGO=ARTIGO,@LOTE=LOTE,@PMC_SEQ=PMC_SEQ, @QTD=QTD,@VALOR_CUSTO=VALOR_CUSTO,@VALOR_VENDA=VALOR_VENDA FROM #AUX_ACM_STMOV WHERE INDICE=@INDICE EXECUTE sp_ActAcumuladosSTMOV @TDOC,@ANO,@ARM,@MES,@ARTIGO,@QTD,@VALOR_CUSTO,@VALOR_VENDA,'INS' SET @INDICE=@INDICE-1 END TRUNCATE TABLE #AUX_ACM_STMOV SET @INDICE=0 --------------------------------------------------------------- -- PARTE ELIMINAÇÃO --------------------------------------------------------------- INSERT INTO #AUX_ACM_STMOV(TDOC,ANO,ARM,MES,ARTIGO,LOTE,PMC_SEQ,QTD,VALOR_CUSTO,VALOR_VENDA) SELECT DELETED.TDOC,DELETED.ANO,DELETED.ARM,MONTH(DELETED.DATA-2) AS MES,DELETED.ARTIGO,DELETED.LOTE,DELETED.PMC_SEQ, DELETED.QTFORN, (DELETED.QTFORN*DELETED.PRC_ESC) AS DEL_VALOR_CUSTO,(DELETED.LIQUIDO*DELETED.CAMBIO) AS DEL_VALOR_VENDA FROM DELETED WHERE NOT DELETED.MOVSTK=0 AND DELETED.SINAL=0 SELECT @INDICE=COUNT(*) FROM #AUX_ACM_STMOV WHILE @INDICE>0 BEGIN SELECT @TDOC=TDOC,@ANO=ANO,@ARM=ARM,@MES=MES,@ARTIGO=ARTIGO,@LOTE=LOTE,@PMC_SEQ=PMC_SEQ, @QTD=QTD,@VALOR_CUSTO=VALOR_CUSTO,@VALOR_VENDA=VALOR_VENDA FROM #AUX_ACM_STMOV WHERE INDICE=@INDICE EXECUTE sp_ActAcumuladosSTMOV @TDOC,@ANO,@ARM,@MES,@ARTIGO,@QTD,@VALOR_CUSTO,@VALOR_VENDA,'DEL' SET @INDICE=@INDICE-1 END DROP TABLE #AUX_ACM_STMOV END GO GO /****** Object: Trigger [dbo].[ActAcumuladosBCMOV] Script Date: 02/04/2011 16:44:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP TRIGGER [dbo].[ActAcumuladosBCMOV] GO CREATE TRIGGER [dbo].[ActAcumuladosBCMOV] ON [dbo].[BCMOV] FOR INSERT,DELETE,UPDATE AS BEGIN DECLARE @INDICE INT DECLARE @RAD SMALLINT DECLARE @COD INT DECLARE @ANO SMALLINT DECLARE @MES SMALLINT DECLARE @MOV SMALLINT DECLARE @VALOR DECIMAL(20,4) DECLARE @DEBITO DECIMAL (20,4) DECLARE @CREDITO DECIMAL (20,4) DECLARE @DEB_CONCILIADO DECIMAL (20,4) DECLARE @CRED_CONCILIADO DECIMAL (20,4) DECLARE @CONCILIADO INT CREATE TABLE #AUX_ACM_BCMOV (INDICE INT IDENTITY(1,1), RAD SMALLINT, COD INT, ANO INT, MES INT, MOV SMALLINT, VALOR DECIMAL(20,4), CONCILIADO SMALLINT ) --------------------------------------------------------------- -- PARTE INSERÇÃO --------------------------------------------------------------- SET @INDICE=0 SET @RAD =0 SET @COD =0 SET @ANO =0 SET @MES =0 SET @MOV =0 SET @VALOR=0 SET @DEBITO =0 SET @CREDITO =0 SET @DEB_CONCILIADO =0 SET @CRED_CONCILIADO =0 SET @CONCILIADO =0 INSERT INTO #AUX_ACM_BCMOV (RAD,COD,ANO,MES,MOV,VALOR,CONCILIADO) SELECT RAD,COD,YEAR(DATA_MOV-2)AS ANO,MONTH(DATA_MOV-2) AS MES,MOV,VALOR,CONCILIADO FROM INSERTED SELECT @INDICE=COUNT(*) FROM #AUX_ACM_BCMOV WHILE @INDICE>0 BEGIN SELECT @RAD=RAD,@COD=COD,@ANO=ANO,@MES=MES,@MOV=MOV,@VALOR=VALOR,@CONCILIADO=CONCILIADO FROM #AUX_ACM_BCMOV WHERE INDICE=@INDICE -- DETERMINAR SE É UM DÉBITO OU UM CREDITO IF @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('BC_Debito_Fim') BEGIN SET @DEBITO=@VALOR SET @CREDITO=0 END ELSE BEGIN SET @DEBITO=0 SET @CREDITO=@VALOR END IF @CONCILIADO=1 BEGIN SET @DEB_CONCILIADO=@DEBITO SET @CRED_CONCILIADO=@CREDITO END ELSE BEGIN SET @DEB_CONCILIADO=0 SET @CRED_CONCILIADO=0 END EXECUTE sp_ActualizaBCVAL @RAD,@COD,@ANO,@MES,@DEBITO,@CREDITO,@DEB_CONCILIADO,@CRED_CONCILIADO SET @INDICE=@INDICE-1 END --------------------------------------------------------------- -- FIM PARTE INSERÇÃO --------------------------------------------------------------- TRUNCATE TABLE #AUX_ACM_BCMOV --------------------------------------------------------------- -- PARTE ANULAÇÃO --------------------------------------------------------------- SET @INDICE=0 SET @RAD =0 SET @COD =0 SET @ANO =0 SET @MES =0 SET @MOV =0 SET @VALOR=0 SET @DEBITO =0 SET @CREDITO =0 SET @DEB_CONCILIADO =0 SET @CRED_CONCILIADO =0 SET @CONCILIADO =0 INSERT INTO #AUX_ACM_BCMOV (RAD,COD,ANO,MES,MOV,VALOR,CONCILIADO) SELECT RAD,COD,YEAR(DATA_MOV-2)AS ANO,MONTH(DATA_MOV-2) AS MES,MOV,VALOR,CONCILIADO FROM DELETED SELECT @INDICE=COUNT(*) FROM #AUX_ACM_BCMOV WHILE @INDICE>0 BEGIN SELECT @RAD=RAD,@COD=COD,@ANO=ANO,@MES=MES,@MOV=MOV,@VALOR=VALOR,@CONCILIADO=CONCILIADO FROM #AUX_ACM_BCMOV WHERE INDICE=@INDICE --NO TRIGUER DO DEL OS VALORES SÃO COLOCADOS A NEGATIVO SET @VALOR=-@VALOR -- DETERMINAR SE É UM DÉBITO OU UM CREDITO IF @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('BC_Debito_Fim') BEGIN SET @DEBITO=@VALOR SET @CREDITO=0 END ELSE BEGIN SET @DEBITO=0 SET @CREDITO=@VALOR END IF @CONCILIADO=1 BEGIN SET @DEB_CONCILIADO=@DEBITO SET @CRED_CONCILIADO=@CREDITO END ELSE BEGIN SET @DEB_CONCILIADO=0 SET @CRED_CONCILIADO=0 END EXECUTE sp_ActualizaBCVAL @RAD,@COD,@ANO,@MES,@DEBITO,@CREDITO,@DEB_CONCILIADO,@CRED_CONCILIADO SET @INDICE=@INDICE-1 END --------------------------------------------------------------- -- FIM PARTE ANULAÇÃO --------------------------------------------------------------- DROP TABLE #AUX_ACM_BCMOV END GO GO /****** Object: Trigger [dbo].[ActAcumuladosECLIN] Script Date: 02/04/2011 16:44:27 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP TRIGGER [dbo].[ActAcumuladosECLIN] GO CREATE TRIGGER [dbo].[ActAcumuladosECLIN] ON [dbo].[ECLIN] FOR INSERT,DELETE,UPDATE AS BEGIN DECLARE @INDICE SMALLINT DECLARE @ARTIGO VARCHAR(25) DECLARE @TDOC SMALLINT DECLARE @ANO SMALLINT DECLARE @ARM SMALLINT DECLARE @MES SMALLINT DECLARE @QTD DECIMAL(20,4) DECLARE @VALOR_CUSTO DECIMAL(20,4) DECLARE @VALOR_VENDA DECIMAL(20,4) --CAMPOS DO STVAL_MES ----------------------- DECLARE @QT_ENTRA DECIMAL(20,4) DECLARE @QT_ETRANS DECIMAL(20,4) DECLARE @QT_DCLI DECIMAL(20,4) DECLARE @QT_ENCO DECIMAL(20,4) DECLARE @QT_AMOSTRA DECIMAL(20,4) DECLARE @QT_AVARIADAS DECIMAL(20,4) DECLARE @QT_STBUFFER DECIMAL(20,4) DECLARE @QT_SAIDAS DECIMAL(20,4) DECLARE @QT_STRANS DECIMAL(20,4) DECLARE @QT_VDINH DECIMAL(20,4) DECLARE @QT_VCRED DECIMAL(20,4) DECLARE @QT_DFORN DECIMAL(20,4) DECLARE @QT_RESERV DECIMAL(20,4) DECLARE @QT_RECTI DECIMAL(20,4) DECLARE @QT_PERDIDAS DECIMAL(20,4) DECLARE @QT_ANOANT DECIMAL(20,4) DECLARE @QT_ETIQ DECIMAL(20,4) DECLARE @QT_EXIST DECIMAL(20,4) DECLARE @VL_ENTRA DECIMAL(20,4) DECLARE @VL_ETRANS DECIMAL(20,4) DECLARE @VL_DCLI DECIMAL(20,4) DECLARE @VL_ENCO DECIMAL(20,4) DECLARE @VL_AMOSTRA DECIMAL(20,4) DECLARE @VL_AVARIADAS DECIMAL(20,4) DECLARE @VL_STBUFFER DECIMAL(20,4) DECLARE @VL_SAIDAS DECIMAL(20,4) DECLARE @VL_STRANS DECIMAL(20,4) DECLARE @VL_VDINH DECIMAL(20,4) DECLARE @VL_VCRED DECIMAL(20,4) DECLARE @VL_DFORN DECIMAL(20,4) DECLARE @VL_RESERV DECIMAL(20,4) DECLARE @VL_RECTI DECIMAL(20,4) DECLARE @VL_PERDIDAS DECIMAL(20,4) DECLARE @VL_ANOANT DECIMAL(20,4) DECLARE @VL_ETIQ DECIMAL(20,4) DECLARE @VL_EXIST DECIMAL(20,4) DECLARE @VL_DCLI_V DECIMAL(20,4) DECLARE @VL_SAIDAS_V DECIMAL(20,4) DECLARE @VL_STRANS_V DECIMAL(20,4) DECLARE @VL_VDINH_V DECIMAL(20,4) DECLARE @VL_VCRED_V DECIMAL(20,4) DECLARE @VL_RESERV_V DECIMAL(20,4) --------------------------------------------- -- PARTE DA INSERÇÃO --------------------------------------------- ------------------------------------------- -- INICIALIZAR VARIAVEIS STVAL_MES -------- SET @QT_ENTRA=0 SET @QT_ETRANS=0 SET @QT_DCLI=0 SET @QT_ENCO=0 SET @QT_AMOSTRA=0 SET @QT_AVARIADAS=0 SET @QT_STBUFFER=0 SET @QT_SAIDAS=0 SET @QT_STRANS=0 SET @QT_VDINH=0 SET @QT_VCRED=0 SET @QT_DFORN=0 SET @QT_RESERV=0 SET @QT_RECTI=0 SET @QT_PERDIDAS=0 SET @QT_ANOANT=0 SET @QT_ETIQ=0 SET @QT_EXIST=0 SET @VL_ENTRA=0 SET @VL_ETRANS=0 SET @VL_DCLI=0 SET @VL_ENCO=0 SET @VL_AMOSTRA=0 SET @VL_AVARIADAS=0 SET @VL_STBUFFER=0 SET @VL_SAIDAS=0 SET @VL_STRANS=0 SET @VL_VDINH=0 SET @VL_VCRED=0 SET @VL_DFORN=0 SET @VL_RESERV=0 SET @VL_RECTI=0 SET @VL_PERDIDAS=0 SET @VL_ANOANT=0 SET @VL_ETIQ=0 SET @VL_EXIST=0 SET @VL_DCLI_V=0 SET @VL_SAIDAS_V=0 SET @VL_STRANS_V=0 SET @VL_VDINH_V=0 SET @VL_VCRED_V=0 SET @VL_RESERV_V=0 ------------------------------------------- SET @INDICE=0 SET @ARTIGO='' SET @TDOC=0 SET @ANO=0 SET @MES=0 SET @ARM=0 SET @QTD=0 CREATE TABLE #AUX_ACM_ECLIN (INDICE SMALLINT IDENTITY(1,1), TDOC SMALLINT, ANO SMALLINT, MES SMALLINT, ARM SMALLINT, ARTIGO VARCHAR(25), QTPED DECIMAL(20,4), QTFORN DECIMAL(20,4), PRC_ESC DECIMAL(20,4), LIQUIDO DECIMAL(20,4), CAMBIO DECIMAL(18,12), ) INSERT INTO #AUX_ACM_ECLIN (ARTIGO,TDOC,ANO,ARM,MES,QTPED,QTFORN,PRC_ESC,LIQUIDO,CAMBIO) SELECT ARTIGO,TDOC,ANO,ARM,MONTH(DATA-2),QTPED,QTFORN,PRC_ESC,LIQUIDO,CAMBIO FROM INSERTED WHERE NOT MOVSTK=0 SELECT @INDICE=COUNT(*) FROM #AUX_ACM_ECLIN WHILE @INDICE>0 BEGIN SELECT @TDOC=TDOC,@ANO=ANO,@MES=MES,@ARM=ARM,@ARTIGO=ARTIGO, @QTD=(QTPED-QTFORN),@VALOR_CUSTO=(QTPED-QTFORN)*PRC_ESC,@VALOR_VENDA=LIQUIDO*CAMBIO FROM #AUX_ACM_ECLIN WHERE INDICE=@INDICE IF @TDOC>= [dbo].[fn_GetGlobalGciTdoc] ('EC_Forn_Ini') AND @TDOC<=[dbo].[fn_GetGlobalGciTdoc] ('EC_Forn_Fim') BEGIN ---» Encomenda a Fornecedor SET @QT_ENCO = @QTD SET @VL_ENCO = @VALOR_CUSTO SET @VL_RESERV_V = 0 END IF (@TDOC>= [dbo].[fn_GetGlobalGciTdoc] ('EC_Cli_Ini') AND @TDOC<=[dbo].[fn_GetGlobalGciTdoc] ('EC_Cli_Fim')) OR (@TDOC>= [dbo].[fn_GetGlobalGciTdoc] ('EC_Int_Ini') AND @TDOC<=[dbo].[fn_GetGlobalGciTdoc] ('EC_Int_Fim')) BEGIN ---» Encomenda de Cliente SET @QT_RESERV = @QTD SET @VL_RESERV = @VALOR_CUSTO SET @VL_RESERV_V = @VALOR_VENDA END EXECUTE [sp_ActualizaSTVAL_MES] @ARTIGO,@ARM,@ANO,@MES,@QT_ENTRA,@QT_ETRANS,@QT_DCLI,@QT_ENCO,@QT_AMOSTRA,@QT_AVARIADAS,@QT_STBUFFER,@QT_SAIDAS, @QT_STRANS,@QT_VDINH,@QT_VCRED,@QT_DFORN,@QT_RESERV,@QT_RECTI,@QT_PERDIDAS,@QT_ANOANT,@QT_ETIQ,@QT_EXIST,@VL_ENTRA, @VL_ETRANS,@VL_DCLI,@VL_ENCO,@VL_AMOSTRA,@VL_AVARIADAS,@VL_STBUFFER,@VL_SAIDAS,@VL_STRANS,@VL_VDINH,@VL_VCRED, @VL_DFORN,@VL_RESERV,@VL_RECTI,@VL_PERDIDAS,@VL_ANOANT,@VL_ETIQ,@VL_EXIST,@VL_DCLI_V,@VL_SAIDAS_V,@VL_STRANS_V, @VL_VDINH_V,@VL_VCRED_V,@VL_RESERV_V SET @INDICE=@INDICE-1 END TRUNCATE TABLE #AUX_ACM_ECLIN --------------------------------------------- -- FIM DA PARTE DA INSERÇÃO --------------------------------------------- --------------------------------------------- -- PARTE DA ANULAÇÃO --------------------------------------------- --------------------------------------------- -- INICIALIZAR VARIAVEIS STVAL_MES --------------------------------------------- SET @QT_ENTRA=0 SET @QT_ETRANS=0 SET @QT_DCLI=0 SET @QT_ENCO=0 SET @QT_AMOSTRA=0 SET @QT_AVARIADAS=0 SET @QT_STBUFFER=0 SET @QT_SAIDAS=0 SET @QT_STRANS=0 SET @QT_VDINH=0 SET @QT_VCRED=0 SET @QT_DFORN=0 SET @QT_RESERV=0 SET @QT_RECTI=0 SET @QT_PERDIDAS=0 SET @QT_ANOANT=0 SET @QT_ETIQ=0 SET @QT_EXIST=0 SET @VL_ENTRA=0 SET @VL_ETRANS=0 SET @VL_DCLI=0 SET @VL_ENCO=0 SET @VL_AMOSTRA=0 SET @VL_AVARIADAS=0 SET @VL_STBUFFER=0 SET @VL_SAIDAS=0 SET @VL_STRANS=0 SET @VL_VDINH=0 SET @VL_VCRED=0 SET @VL_DFORN=0 SET @VL_RESERV=0 SET @VL_RECTI=0 SET @VL_PERDIDAS=0 SET @VL_ANOANT=0 SET @VL_ETIQ=0 SET @VL_EXIST=0 SET @VL_DCLI_V=0 SET @VL_SAIDAS_V=0 SET @VL_STRANS_V=0 SET @VL_VDINH_V=0 SET @VL_VCRED_V=0 SET @VL_RESERV_V=0 ------------------------------------------- SET @INDICE=0 SET @ARTIGO='' SET @TDOC=0 SET @ANO=0 SET @MES=0 SET @ARM=0 SET @QTD=0 INSERT INTO #AUX_ACM_ECLIN (ARTIGO,TDOC,ANO,ARM,MES,QTPED,QTFORN,PRC_ESC,LIQUIDO,CAMBIO) SELECT ARTIGO,TDOC,ANO,ARM,MONTH(DATA-2),QTPED,QTFORN,PRC_ESC,LIQUIDO,CAMBIO FROM DELETED WHERE NOT MOVSTK=0 SELECT @INDICE=COUNT(*) FROM #AUX_ACM_ECLIN WHILE @INDICE>0 BEGIN SELECT @TDOC=TDOC,@ANO=ANO,@MES=MES,@ARM=ARM,@ARTIGO=ARTIGO, @QTD=(QTPED-QTFORN),@VALOR_CUSTO=PRC_ESC * (QTPED - QTFORN),@VALOR_VENDA=((LIQUIDO * CAMBIO) / QTPED) * (QTPED - QTFORN) FROM #AUX_ACM_ECLIN WHERE INDICE=@INDICE --NO TRIGUER DO DEL OS VALORES SÃO COLOCADOS A NEGATIVO SET @QTD=-@QTD SET @VALOR_CUSTO=-@VALOR_CUSTO SET @VALOR_VENDA=-@VALOR_VENDA --------------------------------------------------------- IF @TDOC>= [dbo].[fn_GetGlobalGciTdoc] ('EC_Forn_Ini') AND @TDOC<=[dbo].[fn_GetGlobalGciTdoc] ('EC_Forn_Fim') BEGIN ---» Encomenda a Fornecedor SET @QT_ENCO = @QTD SET @VL_ENCO = @VALOR_CUSTO SET @VL_RESERV_V = 0 END IF (@TDOC>= [dbo].[fn_GetGlobalGciTdoc] ('EC_Cli_Ini') AND @TDOC<=[dbo].[fn_GetGlobalGciTdoc] ('EC_Cli_Fim')) OR (@TDOC>= [dbo].[fn_GetGlobalGciTdoc] ('EC_Int_Ini') AND @TDOC<=[dbo].[fn_GetGlobalGciTdoc] ('EC_Int_Fim')) BEGIN ---» Encomenda de Cliente SET @QT_RESERV = @QTD SET @VL_RESERV = @VALOR_CUSTO SET @VL_RESERV_V = @VALOR_VENDA END EXECUTE [sp_ActualizaSTVAL_MES] @ARTIGO,@ARM,@ANO,@MES,@QT_ENTRA,@QT_ETRANS,@QT_DCLI,@QT_ENCO,@QT_AMOSTRA,@QT_AVARIADAS,@QT_STBUFFER,@QT_SAIDAS, @QT_STRANS,@QT_VDINH,@QT_VCRED,@QT_DFORN,@QT_RESERV,@QT_RECTI,@QT_PERDIDAS,@QT_ANOANT,@QT_ETIQ,@QT_EXIST,@VL_ENTRA, @VL_ETRANS,@VL_DCLI,@VL_ENCO,@VL_AMOSTRA,@VL_AVARIADAS,@VL_STBUFFER,@VL_SAIDAS,@VL_STRANS,@VL_VDINH,@VL_VCRED, @VL_DFORN,@VL_RESERV,@VL_RECTI,@VL_PERDIDAS,@VL_ANOANT,@VL_ETIQ,@VL_EXIST,@VL_DCLI_V,@VL_SAIDAS_V,@VL_STRANS_V, @VL_VDINH_V,@VL_VCRED_V,@VL_RESERV_V SET @INDICE=@INDICE-1 END DROP TABLE #AUX_ACM_ECLIN -- FIM DA PARTE DA INSERÇÃO END GO GO /****** Object: Trigger [dbo].[ActAcumuladosFRMOV] Script Date: 02/04/2011 16:44:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP TRIGGER [dbo].[ActAcumuladosFRMOV] GO CREATE TRIGGER [dbo].[ActAcumuladosFRMOV] ON [dbo].[FRMOV] FOR INSERT,DELETE,UPDATE AS BEGIN DECLARE @INDICE SMALLINT DECLARE @RAD SMALLINT DECLARE @FORNEC INT DECLARE @ANO SMALLINT DECLARE @MES SMALLINT DECLARE @MOV SMALLINT DECLARE @VALOR DECIMAL(20,4) DECLARE @VLLIQ DECIMAL(20,4) DECLARE @DESCONTOS DECIMAL(20,4) DECLARE @DEBITO DECIMAL (20,4) DECLARE @CREDITO DECIMAL (20,4) DECLARE @COMPRAS_V DECIMAL (20,4) DECLARE @COMPRAS_D DECIMAL (20,4) DECLARE @DEVOL_V DECIMAL (20,4) DECLARE @DEVOL_D DECIMAL (20,4) CREATE TABLE #AUX_ACM_FRMOV (INDICE SMALLINT IDENTITY(1,1), RAD SMALLINT, FORNEC INT, ANO INT, MES INT, MOV SMALLINT, VALOR DECIMAL(20,4), VLLIQ DECIMAL(20,4), DESCONTOS DECIMAL(20,4) ) --------------------------------------------------------------- -- PARTE INSERÇÃO --------------------------------------------------------------- SET @INDICE=0 SET @RAD =0 SET @FORNEC =0 SET @ANO =0 SET @MES =0 SET @MOV =0 SET @VALOR=0 SET @VLLIQ =0 SET @DESCONTOS =0 SET @DEBITO =0 SET @CREDITO =0 SET @COMPRAS_V =0 SET @COMPRAS_D =0 SET @DEVOL_V =0 SET @DEVOL_D =0 INSERT INTO #AUX_ACM_FRMOV (RAD,FORNEC,ANO,MES,MOV,VALOR,VLLIQ,DESCONTOS) SELECT RAD,FORNEC,YEAR(DATA-2)AS ANO,MONTH(DATA-2) AS MES,MOV,VALOR,VLLIQ,DESCONTOS FROM INSERTED SELECT @INDICE=COUNT(*) FROM #AUX_ACM_FRMOV WHILE @INDICE>0 BEGIN SELECT @RAD=RAD,@FORNEC=FORNEC,@ANO=ANO,@MES=MES,@MOV=MOV,@VALOR=VALOR,@VLLIQ=VLLIQ,@DESCONTOS=DESCONTOS FROM #AUX_ACM_FRMOV WHERE INDICE=@INDICE -- DETERMINAR SE É UM DÉBITO OU UM CREDITO IF @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('FR_Credito_Fim') BEGIN SET @CREDITO=@VALOR SET @DEBITO=0 END ELSE BEGIN SET @CREDITO=0 SET @DEBITO=@VALOR END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('FR_Entrada_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('FR_Entrada_Fim') BEGIN SET @COMPRAS_V = @VLLIQ SET @COMPRAS_D = @DESCONTOS END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('FR_Devol_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('FR_Devol_Fim') BEGIN SET @DEVOL_V = @VLLIQ SET @DEVOL_D = @DESCONTOS END EXECUTE sp_ActualizaFRVAL @RAD,@FORNEC,@ANO,@MES,@DEBITO,@CREDITO,@COMPRAS_V,@COMPRAS_D,@DEVOL_V,@DEVOL_D SET @INDICE=@INDICE-1 END --------------------------------------------------------------- -- FIM PARTE INSERÇÃO --------------------------------------------------------------- TRUNCATE TABLE #AUX_ACM_FRMOV --------------------------------------------------------------- -- PARTE ANULAÇÃO --------------------------------------------------------------- SET @INDICE=0 SET @RAD =0 SET @FORNEC =0 SET @ANO =0 SET @MES =0 SET @MOV =0 SET @VALOR=0 SET @VLLIQ =0 SET @DESCONTOS =0 SET @DEBITO =0 SET @CREDITO =0 SET @COMPRAS_V =0 SET @COMPRAS_D =0 SET @DEVOL_V =0 SET @DEVOL_D =0 INSERT INTO #AUX_ACM_FRMOV (RAD,FORNEC,ANO,MES,MOV,VALOR,VLLIQ,DESCONTOS) SELECT RAD,FORNEC,YEAR(DATA-2)AS ANO,MONTH(DATA-2) AS MES,MOV,VALOR,VLLIQ,DESCONTOS FROM DELETED SELECT @INDICE=COUNT(*) FROM #AUX_ACM_FRMOV WHILE @INDICE>0 BEGIN SELECT @RAD=RAD,@FORNEC=FORNEC,@ANO=ANO,@MES=MES,@MOV=MOV,@VALOR=VALOR,@VLLIQ=VLLIQ,@DESCONTOS=DESCONTOS FROM #AUX_ACM_FRMOV WHERE INDICE=@INDICE --NO TRIGUER DO DEL OS VALORES SÃO COLOCADOS A NEGATIVO SET @VALOR=-@VALOR SET @VLLIQ=-@VLLIQ SET @DESCONTOS=-@DESCONTOS -- DETERMINAR SE É UM DÉBITO OU UM CREDITO IF @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('FR_Credito_Fim') BEGIN SET @CREDITO=@VALOR SET @DEBITO=0 END ELSE BEGIN SET @CREDITO=0 SET @DEBITO=@VALOR END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('FR_Entrada_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('FR_Entrada_Fim') BEGIN SET @COMPRAS_V = @VLLIQ SET @COMPRAS_D = @DESCONTOS END IF @MOV>= [dbo].[fn_GetGlobalGciTdoc] ('FR_Devol_Ini') AND @MOV<=[dbo].[fn_GetGlobalGciTdoc] ('FR_Devol_Fim') BEGIN SET @DEVOL_V = @VLLIQ SET @DEVOL_D = @DESCONTOS END EXECUTE sp_ActualizaFRVAL @RAD,@FORNEC,@ANO,@MES,@DEBITO,@CREDITO,@COMPRAS_V,@COMPRAS_D,@DEVOL_V,@DEVOL_D SET @INDICE=@INDICE-1 END --------------------------------------------------------------- -- FIM PARTE ANULAÇÃO --------------------------------------------------------------- DROP TABLE #AUX_ACM_FRMOV END GO GO /****** Object: Trigger [dbo].[ActAcumuladosIPCAB] Script Date: 02/04/2011 16:45:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP TRIGGER [dbo].[ActAcumuladosIPCAB] GO CREATE TRIGGER [dbo].[ActAcumuladosIPCAB] ON [dbo].[IPCAB] FOR UPDATE AS BEGIN DECLARE @INDICE SMALLINT DECLARE @ARTIGO VARCHAR(25) DECLARE @ANO SMALLINT DECLARE @ARM SMALLINT DECLARE @MES SMALLINT DECLARE @QTD DECIMAL(20,4) DECLARE @VALOR_CUSTO DECIMAL(20,4) DECLARE @VALOR_VENDA DECIMAL(20,4) --CAMPOS DO STVAL_MES ----------------------- DECLARE @QT_ENTRA DECIMAL(20,4) DECLARE @QT_ETRANS DECIMAL(20,4) DECLARE @QT_DCLI DECIMAL(20,4) DECLARE @QT_ENCO DECIMAL(20,4) DECLARE @QT_AMOSTRA DECIMAL(20,4) DECLARE @QT_AVARIADAS DECIMAL(20,4) DECLARE @QT_STBUFFER DECIMAL(20,4) DECLARE @QT_SAIDAS DECIMAL(20,4) DECLARE @QT_STRANS DECIMAL(20,4) DECLARE @QT_VDINH DECIMAL(20,4) DECLARE @QT_VCRED DECIMAL(20,4) DECLARE @QT_DFORN DECIMAL(20,4) DECLARE @QT_RESERV DECIMAL(20,4) DECLARE @QT_RECTI DECIMAL(20,4) DECLARE @QT_PERDIDAS DECIMAL(20,4) DECLARE @QT_ANOANT DECIMAL(20,4) DECLARE @QT_ETIQ DECIMAL(20,4) DECLARE @QT_EXIST DECIMAL(20,4) DECLARE @VL_ENTRA DECIMAL(20,4) DECLARE @VL_ETRANS DECIMAL(20,4) DECLARE @VL_DCLI DECIMAL(20,4) DECLARE @VL_ENCO DECIMAL(20,4) DECLARE @VL_AMOSTRA DECIMAL(20,4) DECLARE @VL_AVARIADAS DECIMAL(20,4) DECLARE @VL_STBUFFER DECIMAL(20,4) DECLARE @VL_SAIDAS DECIMAL(20,4) DECLARE @VL_STRANS DECIMAL(20,4) DECLARE @VL_VDINH DECIMAL(20,4) DECLARE @VL_VCRED DECIMAL(20,4) DECLARE @VL_DFORN DECIMAL(20,4) DECLARE @VL_RESERV DECIMAL(20,4) DECLARE @VL_RECTI DECIMAL(20,4) DECLARE @VL_PERDIDAS DECIMAL(20,4) DECLARE @VL_ANOANT DECIMAL(20,4) DECLARE @VL_ETIQ DECIMAL(20,4) DECLARE @VL_EXIST DECIMAL(20,4) DECLARE @VL_DCLI_V DECIMAL(20,4) DECLARE @VL_SAIDAS_V DECIMAL(20,4) DECLARE @VL_STRANS_V DECIMAL(20,4) DECLARE @VL_VDINH_V DECIMAL(20,4) DECLARE @VL_VCRED_V DECIMAL(20,4) DECLARE @VL_RESERV_V DECIMAL(20,4) --------------------------------------------- -- PARTE DA INSERÇÃO --------------------------------------------- ------------------------------------------- -- INICIALIZAR VARIAVEIS STVAL_MES -------- SET @QT_ENTRA=0 SET @QT_ETRANS=0 SET @QT_DCLI=0 SET @QT_ENCO=0 SET @QT_AMOSTRA=0 SET @QT_AVARIADAS=0 SET @QT_STBUFFER=0 SET @QT_SAIDAS=0 SET @QT_STRANS=0 SET @QT_VDINH=0 SET @QT_VCRED=0 SET @QT_DFORN=0 SET @QT_RESERV=0 SET @QT_RECTI=0 SET @QT_PERDIDAS=0 SET @QT_ANOANT=0 SET @QT_ETIQ=0 SET @QT_EXIST=0 SET @VL_ENTRA=0 SET @VL_ETRANS=0 SET @VL_DCLI=0 SET @VL_ENCO=0 SET @VL_AMOSTRA=0 SET @VL_AVARIADAS=0 SET @VL_STBUFFER=0 SET @VL_SAIDAS=0 SET @VL_STRANS=0 SET @VL_VDINH=0 SET @VL_VCRED=0 SET @VL_DFORN=0 SET @VL_RESERV=0 SET @VL_RECTI=0 SET @VL_PERDIDAS=0 SET @VL_ANOANT=0 SET @VL_ETIQ=0 SET @VL_EXIST=0 SET @VL_DCLI_V=0 SET @VL_SAIDAS_V=0 SET @VL_STRANS_V=0 SET @VL_VDINH_V=0 SET @VL_VCRED_V=0 SET @VL_RESERV_V=0 ------------------------------------------- SET @INDICE=0 SET @ARTIGO='' SET @ANO=0 SET @MES=0 SET @ARM=0 SET @QTD=0 CREATE TABLE #AUX_ACM_IPCAB (INDICE SMALLINT IDENTITY(1,1), ARTIGO VARCHAR(25), ANO SMALLINT, ARM SMALLINT, MES SMALLINT, QTFORN DECIMAL(20,4), PRC_ESC DECIMAL(20,4), LIQUIDO DECIMAL(20,4), CAMBIO DECIMAL(18,12) ) --*********************************************************** --PASSAGEM DE STATUS PARA ENCERRADO (ENCERRAMENTO DE PROCESSO) --*********************************************************** INSERT INTO #AUX_ACM_IPCAB (ARTIGO,ANO,ARM,MES,QTFORN,PRC_ESC,LIQUIDO,CAMBIO) SELECT IPLIN.ARTIGO,IPLIN.ANO,IPLIN.ARM,MONTH(IPLIN.DATA-2),IPLIN.QTFORN,IPLIN.PRC_ESC,IPLIN.LIQUIDO,IPLIN.CAMBIO FROM INSERTED INNER JOIN DELETED ON INSERTED.TDOC=DELETED.TDOC AND INSERTED.ANO=DELETED.ANO AND INSERTED.ARM=DELETED.ARM AND INSERTED.DOC=DELETED.DOC INNER JOIN IPLIN ON INSERTED.TDOC=IPLIN.TDOC AND INSERTED.ANO=IPLIN.ANO AND INSERTED.ARM=IPLIN.ARM AND INSERTED.DOC=IPLIN.DOC WHERE INSERTED.STATUS='E' AND NOT DELETED.STATUS='E' AND NOT IPLIN.MOVSTK=0 SELECT @INDICE=COUNT(*) FROM #AUX_ACM_IPCAB WHILE @INDICE>0 BEGIN SELECT @ANO=ANO,@MES=MES,@ARM=ARM,@ARTIGO=ARTIGO, @QTD=QTFORN,@VALOR_CUSTO=QTFORN*PRC_ESC,@VALOR_VENDA=LIQUIDO*CAMBIO FROM #AUX_ACM_IPCAB WHERE INDICE=@INDICE -- NO ENCERRAMENTO OS VALORES VÃO A NEGATIVO SET @QTD=-@QTD SET @VALOR_CUSTO=-@VALOR_CUSTO SET @VALOR_VENDA=-@VALOR_VENDA --------------------------------------------------------- SET @QT_ENCO = @QTD SET @VL_ENCO = @VALOR_CUSTO SET @VL_RESERV_V = 0 EXECUTE [sp_ActualizaSTVAL_MES] @ARTIGO,@ARM,@ANO,@MES,@QT_ENTRA,@QT_ETRANS,@QT_DCLI,@QT_ENCO,@QT_AMOSTRA,@QT_AVARIADAS,@QT_STBUFFER,@QT_SAIDAS, @QT_STRANS,@QT_VDINH,@QT_VCRED,@QT_DFORN,@QT_RESERV,@QT_RECTI,@QT_PERDIDAS,@QT_ANOANT,@QT_ETIQ,@QT_EXIST,@VL_ENTRA, @VL_ETRANS,@VL_DCLI,@VL_ENCO,@VL_AMOSTRA,@VL_AVARIADAS,@VL_STBUFFER,@VL_SAIDAS,@VL_STRANS,@VL_VDINH,@VL_VCRED, @VL_DFORN,@VL_RESERV,@VL_RECTI,@VL_PERDIDAS,@VL_ANOANT,@VL_ETIQ,@VL_EXIST,@VL_DCLI_V,@VL_SAIDAS_V,@VL_STRANS_V, @VL_VDINH_V,@VL_VCRED_V,@VL_RESERV_V SET @INDICE=@INDICE-1 END TRUNCATE TABLE #AUX_ACM_IPCAB --------------------------------------------- -- FIM PASSAGEM DE STATUS PARA ENCERRADO (ENCERRAMENTO DE PROCESSO) --------------------------------------------- --*********************************************************** --REABERTURA DE PROCESSOS --*********************************************************** INSERT INTO #AUX_ACM_IPCAB (ARTIGO,ANO,ARM,MES,QTFORN,PRC_ESC,LIQUIDO,CAMBIO) SELECT IPLIN.ARTIGO,IPLIN.ANO,IPLIN.ARM,MONTH(IPLIN.DATA-2),IPLIN.QTFORN,IPLIN.PRC_ESC,IPLIN.LIQUIDO,IPLIN.CAMBIO FROM INSERTED INNER JOIN DELETED ON INSERTED.TDOC=DELETED.TDOC AND INSERTED.ANO=DELETED.ANO AND INSERTED.ARM=DELETED.ARM AND INSERTED.DOC=DELETED.DOC INNER JOIN IPLIN ON INSERTED.TDOC=IPLIN.TDOC AND INSERTED.ANO=IPLIN.ANO AND INSERTED.ARM=IPLIN.ARM AND INSERTED.DOC=IPLIN.DOC WHERE NOT INSERTED.STATUS='E' AND DELETED.STATUS='E' AND NOT IPLIN.MOVSTK=0 SELECT @INDICE=COUNT(*) FROM #AUX_ACM_IPCAB WHILE @INDICE>0 BEGIN SELECT @ANO=ANO,@MES=MES,@ARM=ARM,@ARTIGO=ARTIGO, @QTD=QTFORN,@VALOR_CUSTO=QTFORN*PRC_ESC,@VALOR_VENDA=LIQUIDO*CAMBIO FROM #AUX_ACM_IPCAB WHERE INDICE=@INDICE SET @QT_ENCO = @QTD SET @VL_ENCO = @VALOR_CUSTO SET @VL_RESERV_V = 0 EXECUTE [sp_ActualizaSTVAL_MES] @ARTIGO,@ARM,@ANO,@MES,@QT_ENTRA,@QT_ETRANS,@QT_DCLI,@QT_ENCO,@QT_AMOSTRA,@QT_AVARIADAS,@QT_STBUFFER,@QT_SAIDAS, @QT_STRANS,@QT_VDINH,@QT_VCRED,@QT_DFORN,@QT_RESERV,@QT_RECTI,@QT_PERDIDAS,@QT_ANOANT,@QT_ETIQ,@QT_EXIST,@VL_ENTRA, @VL_ETRANS,@VL_DCLI,@VL_ENCO,@VL_AMOSTRA,@VL_AVARIADAS,@VL_STBUFFER,@VL_SAIDAS,@VL_STRANS,@VL_VDINH,@VL_VCRED, @VL_DFORN,@VL_RESERV,@VL_RECTI,@VL_PERDIDAS,@VL_ANOANT,@VL_ETIQ,@VL_EXIST,@VL_DCLI_V,@VL_SAIDAS_V,@VL_STRANS_V, @VL_VDINH_V,@VL_VCRED_V,@VL_RESERV_V SET @INDICE=@INDICE-1 END TRUNCATE TABLE #AUX_ACM_IPCAB --------------------------------------------- -- FIM REABERTURA PROCESSOS --------------------------------------------- DROP TABLE #AUX_ACM_IPCAB END GO GO /****** Object: Trigger [dbo].[ActAcumuladosIPLIN] Script Date: 02/04/2011 16:45:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP TRIGGER [dbo].[ActAcumuladosIPLIN] GO CREATE TRIGGER [dbo].[ActAcumuladosIPLIN] ON [dbo].[IPLIN] FOR INSERT,DELETE,UPDATE AS BEGIN DECLARE @INDICE SMALLINT DECLARE @ARTIGO VARCHAR(25) DECLARE @TDOC SMALLINT DECLARE @ANO SMALLINT DECLARE @ARM SMALLINT DECLARE @MES SMALLINT DECLARE @QTD DECIMAL(20,4) DECLARE @VALOR_CUSTO DECIMAL(20,4) DECLARE @VALOR_VENDA DECIMAL(20,4) --CAMPOS DO STVAL_MES ----------------------- DECLARE @QT_ENTRA DECIMAL(20,4) DECLARE @QT_ETRANS DECIMAL(20,4) DECLARE @QT_DCLI DECIMAL(20,4) DECLARE @QT_ENCO DECIMAL(20,4) DECLARE @QT_AMOSTRA DECIMAL(20,4) DECLARE @QT_AVARIADAS DECIMAL(20,4) DECLARE @QT_STBUFFER DECIMAL(20,4) DECLARE @QT_SAIDAS DECIMAL(20,4) DECLARE @QT_STRANS DECIMAL(20,4) DECLARE @QT_VDINH DECIMAL(20,4) DECLARE @QT_VCRED DECIMAL(20,4) DECLARE @QT_DFORN DECIMAL(20,4) DECLARE @QT_RESERV DECIMAL(20,4) DECLARE @QT_RECTI DECIMAL(20,4) DECLARE @QT_PERDIDAS DECIMAL(20,4) DECLARE @QT_ANOANT DECIMAL(20,4) DECLARE @QT_ETIQ DECIMAL(20,4) DECLARE @QT_EXIST DECIMAL(20,4) DECLARE @VL_ENTRA DECIMAL(20,4) DECLARE @VL_ETRANS DECIMAL(20,4) DECLARE @VL_DCLI DECIMAL(20,4) DECLARE @VL_ENCO DECIMAL(20,4) DECLARE @VL_AMOSTRA DECIMAL(20,4) DECLARE @VL_AVARIADAS DECIMAL(20,4) DECLARE @VL_STBUFFER DECIMAL(20,4) DECLARE @VL_SAIDAS DECIMAL(20,4) DECLARE @VL_STRANS DECIMAL(20,4) DECLARE @VL_VDINH DECIMAL(20,4) DECLARE @VL_VCRED DECIMAL(20,4) DECLARE @VL_DFORN DECIMAL(20,4) DECLARE @VL_RESERV DECIMAL(20,4) DECLARE @VL_RECTI DECIMAL(20,4) DECLARE @VL_PERDIDAS DECIMAL(20,4) DECLARE @VL_ANOANT DECIMAL(20,4) DECLARE @VL_ETIQ DECIMAL(20,4) DECLARE @VL_EXIST DECIMAL(20,4) DECLARE @VL_DCLI_V DECIMAL(20,4) DECLARE @VL_SAIDAS_V DECIMAL(20,4) DECLARE @VL_STRANS_V DECIMAL(20,4) DECLARE @VL_VDINH_V DECIMAL(20,4) DECLARE @VL_VCRED_V DECIMAL(20,4) DECLARE @VL_RESERV_V DECIMAL(20,4) --------------------------------------------- -- PARTE DA INSERÇÃO --------------------------------------------- ------------------------------------------- -- INICIALIZAR VARIAVEIS STVAL_MES -------- SET @QT_ENTRA=0 SET @QT_ETRANS=0 SET @QT_DCLI=0 SET @QT_ENCO=0 SET @QT_AMOSTRA=0 SET @QT_AVARIADAS=0 SET @QT_STBUFFER=0 SET @QT_SAIDAS=0 SET @QT_STRANS=0 SET @QT_VDINH=0 SET @QT_VCRED=0 SET @QT_DFORN=0 SET @QT_RESERV=0 SET @QT_RECTI=0 SET @QT_PERDIDAS=0 SET @QT_ANOANT=0 SET @QT_ETIQ=0 SET @QT_EXIST=0 SET @VL_ENTRA=0 SET @VL_ETRANS=0 SET @VL_DCLI=0 SET @VL_ENCO=0 SET @VL_AMOSTRA=0 SET @VL_AVARIADAS=0 SET @VL_STBUFFER=0 SET @VL_SAIDAS=0 SET @VL_STRANS=0 SET @VL_VDINH=0 SET @VL_VCRED=0 SET @VL_DFORN=0 SET @VL_RESERV=0 SET @VL_RECTI=0 SET @VL_PERDIDAS=0 SET @VL_ANOANT=0 SET @VL_ETIQ=0 SET @VL_EXIST=0 SET @VL_DCLI_V=0 SET @VL_SAIDAS_V=0 SET @VL_STRANS_V=0 SET @VL_VDINH_V=0 SET @VL_VCRED_V=0 SET @VL_RESERV_V=0 ------------------------------------------- SET @INDICE=0 SET @ARTIGO='' SET @TDOC=0 SET @ANO=0 SET @MES=0 SET @ARM=0 SET @QTD=0 CREATE TABLE #AUX_ACM_IPLIN (INDICE SMALLINT IDENTITY(1,1), TDOC SMALLINT, ANO SMALLINT, MES SMALLINT, ARM SMALLINT, ARTIGO VARCHAR(25), QTPED DECIMAL(20,4), QTFORN DECIMAL(20,4), PRC_ESC DECIMAL(20,4), LIQUIDO DECIMAL(20,4), CAMBIO DECIMAL(18,12), ) INSERT INTO #AUX_ACM_IPLIN (ARTIGO,TDOC,ANO,ARM,MES,QTPED,QTFORN,PRC_ESC,LIQUIDO,CAMBIO) SELECT ARTIGO,TDOC,ANO,ARM,MONTH(DATA-2),QTPED,QTFORN,PRC_ESC,LIQUIDO,CAMBIO FROM INSERTED WHERE NOT MOVSTK=0 SELECT @INDICE=COUNT(*) FROM #AUX_ACM_IPLIN WHILE @INDICE>0 BEGIN SELECT @TDOC=TDOC,@ANO=ANO,@MES=MES,@ARM=ARM,@ARTIGO=ARTIGO, @QTD=(QTFORN),@VALOR_CUSTO=(QTFORN)*PRC_ESC,@VALOR_VENDA=LIQUIDO*CAMBIO FROM #AUX_ACM_IPLIN WHERE INDICE=@INDICE SET @QT_ENCO = @QTD SET @VL_ENCO = @VALOR_CUSTO EXECUTE [sp_ActualizaSTVAL_MES] @ARTIGO,@ARM,@ANO,@MES,@QT_ENTRA,@QT_ETRANS,@QT_DCLI,@QT_ENCO,@QT_AMOSTRA,@QT_AVARIADAS,@QT_STBUFFER,@QT_SAIDAS, @QT_STRANS,@QT_VDINH,@QT_VCRED,@QT_DFORN,@QT_RESERV,@QT_RECTI,@QT_PERDIDAS,@QT_ANOANT,@QT_ETIQ,@QT_EXIST,@VL_ENTRA, @VL_ETRANS,@VL_DCLI,@VL_ENCO,@VL_AMOSTRA,@VL_AVARIADAS,@VL_STBUFFER,@VL_SAIDAS,@VL_STRANS,@VL_VDINH,@VL_VCRED, @VL_DFORN,@VL_RESERV,@VL_RECTI,@VL_PERDIDAS,@VL_ANOANT,@VL_ETIQ,@VL_EXIST,@VL_DCLI_V,@VL_SAIDAS_V,@VL_STRANS_V, @VL_VDINH_V,@VL_VCRED_V,@VL_RESERV_V SET @INDICE=@INDICE-1 END TRUNCATE TABLE #AUX_ACM_IPLIN --------------------------------------------- -- FIM DA PARTE DA INSERÇÃO --------------------------------------------- --------------------------------------------- -- PARTE DA ANULAÇÃO --------------------------------------------- --------------------------------------------- -- INICIALIZAR VARIAVEIS STVAL_MES --------------------------------------------- SET @QT_ENTRA=0 SET @QT_ETRANS=0 SET @QT_DCLI=0 SET @QT_ENCO=0 SET @QT_AMOSTRA=0 SET @QT_AVARIADAS=0 SET @QT_STBUFFER=0 SET @QT_SAIDAS=0 SET @QT_STRANS=0 SET @QT_VDINH=0 SET @QT_VCRED=0 SET @QT_DFORN=0 SET @QT_RESERV=0 SET @QT_RECTI=0 SET @QT_PERDIDAS=0 SET @QT_ANOANT=0 SET @QT_ETIQ=0 SET @QT_EXIST=0 SET @VL_ENTRA=0 SET @VL_ETRANS=0 SET @VL_DCLI=0 SET @VL_ENCO=0 SET @VL_AMOSTRA=0 SET @VL_AVARIADAS=0 SET @VL_STBUFFER=0 SET @VL_SAIDAS=0 SET @VL_STRANS=0 SET @VL_VDINH=0 SET @VL_VCRED=0 SET @VL_DFORN=0 SET @VL_RESERV=0 SET @VL_RECTI=0 SET @VL_PERDIDAS=0 SET @VL_ANOANT=0 SET @VL_ETIQ=0 SET @VL_EXIST=0 SET @VL_DCLI_V=0 SET @VL_SAIDAS_V=0 SET @VL_STRANS_V=0 SET @VL_VDINH_V=0 SET @VL_VCRED_V=0 SET @VL_RESERV_V=0 ------------------------------------------- SET @INDICE=0 SET @ARTIGO='' SET @TDOC=0 SET @ANO=0 SET @MES=0 SET @ARM=0 SET @QTD=0 INSERT INTO #AUX_ACM_IPLIN (ARTIGO,TDOC,ANO,ARM,MES,QTPED,QTFORN,PRC_ESC,LIQUIDO,CAMBIO) SELECT ARTIGO,TDOC,ANO,ARM,MONTH(DATA-2),QTPED,QTFORN,PRC_ESC,LIQUIDO,CAMBIO FROM DELETED WHERE NOT MOVSTK=0 SELECT @INDICE=COUNT(*) FROM #AUX_ACM_IPLIN WHILE @INDICE>0 BEGIN SELECT @TDOC=TDOC,@ANO=ANO,@MES=MES,@ARM=ARM,@ARTIGO=ARTIGO, @QTD=(QTFORN),@VALOR_CUSTO=PRC_ESC * (QTFORN),@VALOR_VENDA=(LIQUIDO * CAMBIO) FROM #AUX_ACM_IPLIN WHERE INDICE=@INDICE --NO TRIGUER DO DEL OS VALORES SÃO COLOCADOS A NEGATIVO SET @QTD=-@QTD SET @VALOR_CUSTO=-@VALOR_CUSTO SET @VALOR_VENDA=-@VALOR_VENDA --------------------------------------------------------- SET @QT_ENCO = @QTD SET @VL_ENCO = @VALOR_CUSTO EXECUTE [sp_ActualizaSTVAL_MES] @ARTIGO,@ARM,@ANO,@MES,@QT_ENTRA,@QT_ETRANS,@QT_DCLI,@QT_ENCO,@QT_AMOSTRA,@QT_AVARIADAS,@QT_STBUFFER,@QT_SAIDAS, @QT_STRANS,@QT_VDINH,@QT_VCRED,@QT_DFORN,@QT_RESERV,@QT_RECTI,@QT_PERDIDAS,@QT_ANOANT,@QT_ETIQ,@QT_EXIST,@VL_ENTRA, @VL_ETRANS,@VL_DCLI,@VL_ENCO,@VL_AMOSTRA,@VL_AVARIADAS,@VL_STBUFFER,@VL_SAIDAS,@VL_STRANS,@VL_VDINH,@VL_VCRED, @VL_DFORN,@VL_RESERV,@VL_RECTI,@VL_PERDIDAS,@VL_ANOANT,@VL_ETIQ,@VL_EXIST,@VL_DCLI_V,@VL_SAIDAS_V,@VL_STRANS_V, @VL_VDINH_V,@VL_VCRED_V,@VL_RESERV_V SET @INDICE=@INDICE-1 END DROP TABLE #AUX_ACM_IPLIN -- FIM DA PARTE DA INSERÇÃO END