alter table ADD NCTRESTOQUE INT alter table CANCELAMENTO_PRODUTOS ADD NCTRESTOQUE INT alter table movimento_vendas add FLAG_CANCELAMENTO varchar(1) alter table Movimento_Troca add NUMERO_VENDA int, CHAVE_CFE varchar(44) alter table produtos_recebidos_troca add DATAHORA_MOVIMENTO datetime alter table PRODUTOS_RECEBIDOS_TROCA add nctrestoque int SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create TRIGGER [dbo].[TRG_Movimento_Produtos_A] ON [dbo].[MOVIMENTO_PRODUTOS] AFTER INSERT, UPDATE, DELETE AS DECLARE @old_NCTRESTOQUE int DECLARE @old_DATAHORA_MOVIMENTO datetime DECLARE @old_CODIGO_PRODUTO varchar(13) DECLARE @old_QUANTIDADE_PRODUTOS float DECLARE @old_PRECO_UNITARIO float DECLARE @old_NUMERO_VENDA int DECLARE @old_NUMERO_ITEM int DECLARE @new_NCTRESTOQUE int DECLARE @new_DATAHORA_MOVIMENTO datetime DECLARE @new_CODIGO_PRODUTO varchar(13) DECLARE @new_QUANTIDADE_PRODUTOS float DECLARE @new_PRECO_UNITARIO float DECLARE @new_NUMERO_VENDA varchar(10) DECLARE @new_NUMERO_ITEM varchar(3) DECLARE @historico varchar(20) DECLARE @NQTD float BEGIN SET NOCOUNT ON; SELECT @new_NCTRESTOQUE=NCTRESTOQUE, @new_DATAHORA_MOVIMENTO= DATAHORA_MOVIMENTO, @new_CODIGO_PRODUTO=CODIGO_PRODUTO, @new_QUANTIDADE_PRODUTOS =QUANTIDADE_PRODUTOS, @new_PRECO_UNITARIO=PRECO_UNITARIO, @new_NUMERO_VENDA= cast(NUMERO_VENDA as varchar), @new_NUMERO_ITEM =cast(NUMERO_ITEM as varchar) from Inserted SELECT @old_NCTRESTOQUE=NCTRESTOQUE, @old_DATAHORA_MOVIMENTO= DATAHORA_MOVIMENTO, @old_CODIGO_PRODUTO=CODIGO_PRODUTO, @old_QUANTIDADE_PRODUTOS =QUANTIDADE_PRODUTOS, @old_PRECO_UNITARIO=PRECO_UNITARIO, @old_NUMERO_VENDA= cast(NUMERO_VENDA as varchar), @old_NUMERO_ITEM =cast(NUMERO_ITEM as varchar) from Deleted set @historico = 'VENDA '+@new_NUMERO_VENDA+' ITEM '+@new_NUMERO_ITEM set @nqtd = @new_QUANTIDADE_PRODUTOS; -- EXCLUSAO IF NOT EXISTS(SELECT * FROM INSERTED) BEGIN DELETE FROM ESTOQUE_SAIDA where NCTRESTOQUE = @old_NCTRESTOQUE PRINT 'DELETE'; END ELSE BEGIN -- INCLUSAO IF NOT EXISTS(SELECT * FROM DELETED) BEGIN EXEC sp_SaidaEstoque @new_NCTRESTOQUE, @new_DATAHORA_MOVIMENTO, @new_CODIGO_PRODUTO, @nqtd, @new_PRECO_UNITARIO, @historico PRINT 'INSERT'; END ELSE -- ALTERACAO BEGIN UPDATE ESTOQUE_SAIDA set NPRECO = @new_PRECO_UNITARIO, NQTD = @nqtd WHERE NCTRESTOQUE = @new_NCTRESTOQUE PRINT 'UPDATE'; END END END ------------- Cancelamento de Cupom SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create TRIGGER [dbo].[TRG_Cancelamento_Produtos] ON [dbo].[Cancelamento_Produtos] AFTER INSERT, UPDATE, DELETE AS DECLARE @old_NCTRESTOQUE int DECLARE @old_DATAHORA_MOVIMENTO datetime DECLARE @old_CODIGO_PRODUTO varchar(13) DECLARE @old_QUANTIDADE_PRODUTOS float DECLARE @old_PRECO_UNITARIO float DECLARE @old_NUMERO_VENDA int DECLARE @old_NUMERO_ITEM int DECLARE @new_NCTRESTOQUE int DECLARE @new_DATAHORA_MOVIMENTO datetime DECLARE @new_CODIGO_PRODUTO varchar(13) DECLARE @new_QUANTIDADE_PRODUTOS float DECLARE @new_PRECO_UNITARIO float DECLARE @new_NUMERO_VENDA varchar(10) DECLARE @new_NUMERO_ITEM varchar(3) DECLARE @historico varchar(20) DECLARE @NQTD float BEGIN SET NOCOUNT ON; SELECT @new_NCTRESTOQUE=NCTRESTOQUE, @new_DATAHORA_MOVIMENTO= DATAHORA_MOVIMENTO, @new_CODIGO_PRODUTO=CODIGO_PRODUTO, @new_QUANTIDADE_PRODUTOS =QUANTIDADE_PRODUTOS, @new_PRECO_UNITARIO=PRECO_UNITARIO, @new_NUMERO_VENDA= cast(NUMERO_VENDA as varchar), @new_NUMERO_ITEM =cast(NUMERO_ITEM as varchar) from Inserted SELECT @old_NCTRESTOQUE=NCTRESTOQUE, @old_DATAHORA_MOVIMENTO= DATAHORA_MOVIMENTO, @old_CODIGO_PRODUTO=CODIGO_PRODUTO, @old_QUANTIDADE_PRODUTOS =QUANTIDADE_PRODUTOS, @old_PRECO_UNITARIO=PRECO_UNITARIO, @old_NUMERO_VENDA= cast(NUMERO_VENDA as varchar), @old_NUMERO_ITEM =cast(NUMERO_ITEM as varchar) from Deleted set @historico = 'CANCELAMENTO VENDA '+@new_NUMERO_VENDA+' ITEM '+@new_NUMERO_ITEM set @nqtd = @new_QUANTIDADE_PRODUTOS; -- EXCLUSAO IF NOT EXISTS(SELECT * FROM INSERTED) BEGIN DELETE FROM ESTOQUE_ENTRADA where NCTRESTOQUE = @old_NCTRESTOQUE PRINT 'DELETE'; END ELSE BEGIN -- INCLUSAO IF NOT EXISTS(SELECT * FROM DELETED) BEGIN EXEC sp_EntradaEstoque @new_NCTRESTOQUE, @new_DATAHORA_MOVIMENTO, @new_CODIGO_PRODUTO, @nqtd, @new_PRECO_UNITARIO, @historico PRINT 'INSERT'; END ELSE -- ALTERACAO BEGIN UPDATE ESTOQUE_ENTRADA set NPRECO = @new_PRECO_UNITARIO, NQTD = @nqtd WHERE NCTRESTOQUE = @new_NCTRESTOQUE PRINT 'UPDATE'; END END END alter table PRODUTOS_RECEBIDOS_TROCA add nctrestoque int SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create TRIGGER [dbo].[TRG_Produtos_Recebidos_Troca] ON [dbo].[Produtos_Recebidos_Troca] AFTER INSERT, UPDATE, DELETE AS DECLARE @old_NCTRESTOQUE int DECLARE @old_DATAHORA_MOVIMENTO datetime DECLARE @old_CODIGO_PRODUTO varchar(13) DECLARE @old_QUANTIDADE float DECLARE @old_PRECO_UNITARIO float DECLARE @old_NUMERO_MOVIMENTO int DECLARE @new_NCTRESTOQUE int DECLARE @new_DATAHORA_MOVIMENTO datetime DECLARE @new_CODIGO_PRODUTO varchar(13) DECLARE @new_QUANTIDADE float DECLARE @new_PRECO_UNITARIO float DECLARE @new_NUMERO_MOVIMENTO varchar(10) DECLARE @historico varchar(20) DECLARE @NQTD float BEGIN SET NOCOUNT ON; SELECT @new_NCTRESTOQUE=NCTRESTOQUE, @new_DATAHORA_MOVIMENTO= DATAHORA_MOVIMENTO, @new_CODIGO_PRODUTO=CODIGO_PRODUTO, @new_QUANTIDADE =QUANTIDADE, @new_PRECO_UNITARIO=PRECO_UNITARIO, @new_NUMERO_MOVIMENTO= cast(NUMERO_MOVIMENTO as varchar) from Inserted SELECT @old_NCTRESTOQUE=NCTRESTOQUE, @old_DATAHORA_MOVIMENTO= DATAHORA_MOVIMENTO, @old_CODIGO_PRODUTO=CODIGO_PRODUTO, @old_QUANTIDADE =QUANTIDADE, @old_PRECO_UNITARIO=PRECO_UNITARIO, @old_NUMERO_MOVIMENTO= cast(NUMERO_MOVIMENTO as varchar) from Deleted set @historico = 'DEVOLUÇÃO '+@new_NUMERO_MOVIMENTO set @nqtd = @new_QUANTIDADE; -- EXCLUSAO IF NOT EXISTS(SELECT * FROM INSERTED) BEGIN DELETE FROM ESTOQUE_ENTRADA where NCTRESTOQUE = @old_NCTRESTOQUE PRINT 'DELETE'; END ELSE BEGIN -- INCLUSAO IF NOT EXISTS(SELECT * FROM DELETED) BEGIN EXEC sp_EntradaEstoque @new_NCTRESTOQUE, @new_DATAHORA_MOVIMENTO, @new_CODIGO_PRODUTO, @nqtd, @new_PRECO_UNITARIO, @historico PRINT 'INSERT'; END ELSE -- ALTERACAO BEGIN UPDATE ESTOQUE_ENTRADA set NPRECO = @new_PRECO_UNITARIO, NQTD = @nqtd WHERE NCTRESTOQUE = @new_NCTRESTOQUE PRINT 'UPDATE'; END END END