DROP TRIGGER ActAcumuladosBCMOV GO CREATE TRIGGER [dbo].[ActAcumuladosBCMOV] ON [dbo].[BCMOV] FOR INSERT,DELETE,UPDATE NOT FOR REPLICATION 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 DROP TRIGGER ActAcumuladosCLMOV GO CREATE TRIGGER ActAcumuladosCLMOV ON CLMOV FOR INSERT,DELETE,UPDATE NOT FOR REPLICATION AS BEGIN DECLARE @INDICE SMALLINT 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 SMALLINT 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 DROP TRIGGER [dbo].[ActAcumuladosECLIN] GO CREATE TRIGGER [dbo].[ActAcumuladosECLIN] ON [dbo].[ECLIN] FOR INSERT,DELETE,UPDATE NOT FOR REPLICATION 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 DROP TRIGGER ActAcumuladosFRMOV GO CREATE TRIGGER ActAcumuladosFRMOV ON FRMOV FOR INSERT,DELETE,UPDATE NOT FOR REPLICATION 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 DROP TRIGGER [dbo].[ActAcumuladosIPCAB] GO CREATE TRIGGER [dbo].[ActAcumuladosIPCAB] ON [dbo].[IPCAB] FOR UPDATE NOT FOR REPLICATION 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: 04/01/2009 11:24:42 ******/ 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 NOT FOR REPLICATION 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 GO DROP TRIGGER [dbo].[ActAcumuladosSTMOV] GO CREATE TRIGGER [dbo].[ActAcumuladosSTMOV] ON [dbo].[STMOV] FOR INSERT,DELETE,UPDATE NOT FOR REPLICATION 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 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 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 DROP PROCEDURE [dbo].[sp_ActualizaBCVAL] GO CREATE PROCEDURE [dbo].[sp_ActualizaBCVAL] (@RAD SMALLINT, @COD SMALLINT, @ANO SMALLINT, @MES SMALLINT, @DEBITO DECIMAL(20,4), @CREDITO DECIMAL(20,4), @DEB_CONCILIADO DECIMAL(20,4), @CRED_CONCILIADO DECIMAL(20,4) ) AS BEGIN UPDATE BCVAL SET DEBITO = DEBITO+@DEBITO ,CREDITO = CREDITO+@CREDITO ,DEB_CONCILIADO = DEB_CONCILIADO+@DEB_CONCILIADO ,CRED_CONCILIADO = CRED_CONCILIADO+@CRED_CONCILIADO WHERE COD = @COD AND RAD = @RAD AND ANO = @ANO AND MES = @MES IF @@ROWCOUNT=0 BEGIN INSERT INTO BCVAL (RAD,COD,ANO,MES,DEBITO,CREDITO,DEB_CONCILIADO,CRED_CONCILIADO) VALUES (@RAD,@COD,@ANO,@MES,@DEBITO,@CREDITO,@DEB_CONCILIADO,@CRED_CONCILIADO) END END GO DROP PROCEDURE sp_ActualizaCLVAL GO CREATE PROCEDURE sp_ActualizaCLVAL (@RAD SMALLINT, @CLIENTE INT, @ANO SMALLINT, @MES SMALLINT, @DEBITO DECIMAL(20,4), @CREDITO DECIMAL(20,4), @SAIDA_C DECIMAL(20,4), @SAIDA_V DECIMAL(20,4), @SAIDA_D DECIMAL(20,4), @VDINH_C DECIMAL(20,4), @VDINH_V DECIMAL(20,4), @VDINH_D DECIMAL(20,4), @VCRED_C DECIMAL(20,4), @VCRED_V DECIMAL(20,4), @VCRED_D DECIMAL(20,4), @DEVOL_CRED_C DECIMAL(20,4), @DEVOL_CRED_V DECIMAL(20,4), @DEVOL_CRED_D DECIMAL(20,4), @DEVOL_DINH_C DECIMAL(20,4), @DEVOL_DINH_V DECIMAL(20,4), @DEVOL_DINH_D DECIMAL(20,4)) AS BEGIN UPDATE CLVAL SET DEBITO = DEBITO + @DEBITO, CREDITO = CREDITO + @CREDITO, SAIDA_C = SAIDA_C + @SAIDA_C, SAIDA_V = SAIDA_V + @SAIDA_V, SAIDA_D = SAIDA_D + @SAIDA_D, VDINH_C = VDINH_C + @VDINH_C, VDINH_V = VDINH_V + @VDINH_V, VDINH_D = VDINH_D + @VDINH_D, VCRED_C = VCRED_C + @VCRED_C, VCRED_V = VCRED_V + @VCRED_V, VCRED_D = VCRED_D + @VCRED_D, DEVOL_CRED_C = DEVOL_CRED_C + @DEVOL_CRED_C, DEVOL_CRED_V = DEVOL_CRED_V + @DEVOL_CRED_V, DEVOL_CRED_D = DEVOL_CRED_D + @DEVOL_CRED_D, DEVOL_DINH_C = DEVOL_DINH_C + @DEVOL_DINH_C, DEVOL_DINH_V = DEVOL_DINH_V + @DEVOL_DINH_V, DEVOL_DINH_D = DEVOL_DINH_D + @DEVOL_DINH_D WHERE CLIENTE = @CLIENTE AND RAD = @RAD AND ANO = @ANO AND MES = @MES IF @@ROWCOUNT=0 BEGIN INSERT INTO CLVAL (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) VALUES (@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) END END GO DROP PROCEDURE sp_ActualizaFRVAL GO CREATE PROCEDURE sp_ActualizaFRVAL (@RAD AS SMALLINT, @FORNEC AS INT, @ANO AS SMALLINT, @MES AS SMALLINT, @DEBITO AS DECIMAL(20,4), @CREDITO AS DECIMAL(20,4), @COMPRAS_V AS DECIMAL(20,4), @COMPRAS_D AS DECIMAL(20,4), @DEVOL_V AS DECIMAL(20,4), @DEVOL_D AS DECIMAL(20,4)) AS BEGIN UPDATE FRVAL SET DEBITO = DEBITO+@DEBITO, CREDITO = CREDITO+@CREDITO, COMPRAS_V = COMPRAS_V+@COMPRAS_V, COMPRAS_D = COMPRAS_D+@COMPRAS_D, DEVOL_V = DEVOL_V+@DEVOL_V, DEVOL_D = DEVOL_D+@DEVOL_D WHERE FORNEC=@FORNEC AND RAD=@RAD AND ANO=@ANO AND MES=@MES IF @@ROWCOUNT=0 BEGIN INSERT INTO FRVAL (RAD,FORNEC,ANO,MES,DEBITO,CREDITO,COMPRAS_V,COMPRAS_D,DEVOL_V,DEVOL_D) VALUES (@RAD,@FORNEC,@ANO,@MES,@DEBITO,@CREDITO,@COMPRAS_V,@COMPRAS_D,@DEVOL_V,@DEVOL_D) END END GO DROP PROCEDURE [dbo].[sp_ActualizaSTVAL_ANO] GO CREATE PROCEDURE [dbo].[sp_ActualizaSTVAL_ANO] ( @ARTIGO VARCHAR(25), @ARM SMALLINT, @ANO SMALLINT, @QT_ENTRA DECIMAL(20,4), @QT_ETRANS DECIMAL(20,4), @QT_DCLI DECIMAL(20,4), @QT_ENCO DECIMAL(20,4), @QT_AMOSTRA DECIMAL(20,4), @QT_AVARIADAS DECIMAL(20,4), @QT_STBUFFER DECIMAL(20,4), @QT_SAIDAS DECIMAL(20,4), @QT_STRANS DECIMAL(20,4), @QT_VDINH DECIMAL(20,4), @QT_VCRED DECIMAL(20,4), @QT_DFORN DECIMAL(20,4), @QT_RESERV DECIMAL(20,4), @QT_RECTI DECIMAL(20,4), @QT_PERDIDAS DECIMAL(20,4), @QT_ANOANT DECIMAL(20,4), @QT_ETIQ DECIMAL(20,4), @QT_EXIST DECIMAL(20,4), @VL_ENTRA DECIMAL(20,4), @VL_ETRANS DECIMAL(20,4), @VL_DCLI DECIMAL(20,4), @VL_ENCO DECIMAL(20,4), @VL_AMOSTRA DECIMAL(20,4), @VL_AVARIADAS DECIMAL(20,4), @VL_STBUFFER DECIMAL(20,4), @VL_SAIDAS DECIMAL(20,4), @VL_STRANS DECIMAL(20,4), @VL_VDINH DECIMAL(20,4), @VL_VCRED DECIMAL(20,4), @VL_DFORN DECIMAL(20,4), @VL_RESERV DECIMAL(20,4), @VL_RECTI DECIMAL(20,4), @VL_PERDIDAS DECIMAL(20,4), @VL_ANOANT DECIMAL(20,4), @VL_ETIQ DECIMAL(20,4), @VL_EXIST DECIMAL(20,4), @VL_DCLI_V DECIMAL(20,4), @VL_SAIDAS_V DECIMAL(20,4), @VL_STRANS_V DECIMAL(20,4), @VL_VDINH_V DECIMAL(20,4), @VL_VCRED_V DECIMAL(20,4), @VL_RESERV_V DECIMAL(20,4) ) AS BEGIN UPDATE STVAL_ANO SET QT_ENTRA=@QT_ENTRA+QT_ENTRA, QT_ETRANS=@QT_ETRANS+QT_ETRANS, QT_DCLI=@QT_DCLI+QT_DCLI, QT_ENCO=@QT_ENCO+QT_ENCO, QT_AMOSTRA=@QT_AMOSTRA+QT_AMOSTRA, QT_AVARIADAS=@QT_AVARIADAS+QT_AVARIADAS, QT_STBUFFER=@QT_STBUFFER+QT_STBUFFER, QT_SAIDAS=@QT_SAIDAS+QT_SAIDAS, QT_STRANS=@QT_STRANS+QT_STRANS, QT_VDINH=@QT_VDINH+QT_VDINH, QT_VCRED=@QT_VCRED+QT_VCRED, QT_DFORN=@QT_DFORN+QT_DFORN, QT_RESERV=@QT_RESERV+QT_RESERV, QT_RECTI=@QT_RECTI+QT_RECTI, QT_PERDIDAS=@QT_PERDIDAS+QT_PERDIDAS, QT_ANOANT=@QT_ANOANT+QT_ANOANT, QT_ETIQ=@QT_ETIQ+QT_ETIQ, QT_EXIST=@QT_EXIST+QT_EXIST, VL_ENTRA=@VL_ENTRA+VL_ENTRA, VL_ETRANS=@VL_ETRANS+VL_ETRANS, VL_DCLI=@VL_DCLI+VL_DCLI, VL_ENCO=@VL_ENCO+VL_ENCO, VL_AMOSTRA=@VL_AMOSTRA+VL_AMOSTRA, VL_AVARIADAS=@VL_AVARIADAS+VL_AVARIADAS, VL_STBUFFER=@VL_STBUFFER+VL_STBUFFER, VL_SAIDAS=@VL_SAIDAS+VL_SAIDAS, VL_STRANS=@VL_STRANS+VL_STRANS, VL_VDINH=@VL_VDINH+VL_VDINH, VL_VCRED=@VL_VCRED+VL_VCRED, VL_DFORN=@VL_DFORN+VL_DFORN, VL_RESERV=@VL_RESERV+VL_RESERV, VL_RECTI=@VL_RECTI+VL_RECTI, VL_PERDIDAS=@VL_PERDIDAS+VL_PERDIDAS, VL_ANOANT=@VL_ANOANT+VL_ANOANT, VL_ETIQ=@VL_ETIQ+VL_ETIQ, VL_EXIST=@VL_EXIST+VL_EXIST, VL_DCLI_V=@VL_DCLI_V+VL_DCLI_V, VL_SAIDAS_V=@VL_SAIDAS_V+VL_SAIDAS_V, VL_STRANS_V=@VL_STRANS_V+VL_STRANS_V, VL_VDINH_V=@VL_VDINH_V+VL_VDINH_V, VL_VCRED_V=@VL_VCRED_V+VL_VCRED_V, VL_RESERV_V=@VL_RESERV_V+VL_RESERV_V WHERE ARTIGO=@ARTIGO AND ARM=@ARM AND ANO=@ANO IF @@ROWCOUNT=0 BEGIN INSERT INTO [STVAL_ANO] ([ARTIGO],[ARM],[ANO],[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]) VALUES (@ARTIGO,@ARM,@ANO,@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) END END GO DROP PROCEDURE [dbo].[sp_ActualizaSTVAL_MES] GO CREATE PROCEDURE [dbo].[sp_ActualizaSTVAL_MES] ( @ARTIGO VARCHAR(25), @ARM SMALLINT, @ANO SMALLINT, @MES SMALLINT, @QT_ENTRA DECIMAL(20,4), @QT_ETRANS DECIMAL(20,4), @QT_DCLI DECIMAL(20,4), @QT_ENCO DECIMAL(20,4), @QT_AMOSTRA DECIMAL(20,4), @QT_AVARIADAS DECIMAL(20,4), @QT_STBUFFER DECIMAL(20,4), @QT_SAIDAS DECIMAL(20,4), @QT_STRANS DECIMAL(20,4), @QT_VDINH DECIMAL(20,4), @QT_VCRED DECIMAL(20,4), @QT_DFORN DECIMAL(20,4), @QT_RESERV DECIMAL(20,4), @QT_RECTI DECIMAL(20,4), @QT_PERDIDAS DECIMAL(20,4), @QT_ANOANT DECIMAL(20,4), @QT_ETIQ DECIMAL(20,4), @QT_EXIST DECIMAL(20,4), @VL_ENTRA DECIMAL(20,4), @VL_ETRANS DECIMAL(20,4), @VL_DCLI DECIMAL(20,4), @VL_ENCO DECIMAL(20,4), @VL_AMOSTRA DECIMAL(20,4), @VL_AVARIADAS DECIMAL(20,4), @VL_STBUFFER DECIMAL(20,4), @VL_SAIDAS DECIMAL(20,4), @VL_STRANS DECIMAL(20,4), @VL_VDINH DECIMAL(20,4), @VL_VCRED DECIMAL(20,4), @VL_DFORN DECIMAL(20,4), @VL_RESERV DECIMAL(20,4), @VL_RECTI DECIMAL(20,4), @VL_PERDIDAS DECIMAL(20,4), @VL_ANOANT DECIMAL(20,4), @VL_ETIQ DECIMAL(20,4), @VL_EXIST DECIMAL(20,4), @VL_DCLI_V DECIMAL(20,4), @VL_SAIDAS_V DECIMAL(20,4), @VL_STRANS_V DECIMAL(20,4), @VL_VDINH_V DECIMAL(20,4), @VL_VCRED_V DECIMAL(20,4), @VL_RESERV_V DECIMAL(20,4) ) AS BEGIN UPDATE STVAL_MES SET QT_ENTRA=@QT_ENTRA+QT_ENTRA, QT_ETRANS=@QT_ETRANS+QT_ETRANS, QT_DCLI=@QT_DCLI+QT_DCLI, QT_ENCO=@QT_ENCO+QT_ENCO, QT_AMOSTRA=@QT_AMOSTRA+QT_AMOSTRA, QT_AVARIADAS=@QT_AVARIADAS+QT_AVARIADAS, QT_STBUFFER=@QT_STBUFFER+QT_STBUFFER, QT_SAIDAS=@QT_SAIDAS+QT_SAIDAS, QT_STRANS=@QT_STRANS+QT_STRANS, QT_VDINH=@QT_VDINH+QT_VDINH, QT_VCRED=@QT_VCRED+QT_VCRED, QT_DFORN=@QT_DFORN+QT_DFORN, QT_RESERV=@QT_RESERV+QT_RESERV, QT_RECTI=@QT_RECTI+QT_RECTI, QT_PERDIDAS=@QT_PERDIDAS+QT_PERDIDAS, QT_ANOANT=@QT_ANOANT+QT_ANOANT, QT_ETIQ=@QT_ETIQ+QT_ETIQ, QT_EXIST=@QT_EXIST+QT_EXIST, VL_ENTRA=@VL_ENTRA+VL_ENTRA, VL_ETRANS=@VL_ETRANS+VL_ETRANS, VL_DCLI=@VL_DCLI+VL_DCLI, VL_ENCO=@VL_ENCO+VL_ENCO, VL_AMOSTRA=@VL_AMOSTRA+VL_AMOSTRA, VL_AVARIADAS=@VL_AVARIADAS+VL_AVARIADAS, VL_STBUFFER=@VL_STBUFFER+VL_STBUFFER, VL_SAIDAS=@VL_SAIDAS+VL_SAIDAS, VL_STRANS=@VL_STRANS+VL_STRANS, VL_VDINH=@VL_VDINH+VL_VDINH, VL_VCRED=@VL_VCRED+VL_VCRED, VL_DFORN=@VL_DFORN+VL_DFORN, VL_RESERV=@VL_RESERV+VL_RESERV, VL_RECTI=@VL_RECTI+VL_RECTI, VL_PERDIDAS=@VL_PERDIDAS+VL_PERDIDAS, VL_ANOANT=@VL_ANOANT+VL_ANOANT, VL_ETIQ=@VL_ETIQ+VL_ETIQ, VL_EXIST=@VL_EXIST+VL_EXIST, VL_DCLI_V=@VL_DCLI_V+VL_DCLI_V, VL_SAIDAS_V=@VL_SAIDAS_V+VL_SAIDAS_V, VL_STRANS_V=@VL_STRANS_V+VL_STRANS_V, VL_VDINH_V=@VL_VDINH_V+VL_VDINH_V, VL_VCRED_V=@VL_VCRED_V+VL_VCRED_V, VL_RESERV_V=@VL_RESERV_V+VL_RESERV_V WHERE ARTIGO=@ARTIGO AND ARM=@ARM AND ANO=@ANO AND MES=@MES IF @@ROWCOUNT=0 BEGIN INSERT INTO [STVAL_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]) VALUES (@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) END EXECUTE [sp_ActualizaSTVAL_ANO] @ARTIGO,@ARM,@ANO,@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 END