CREATE PROCEDURE SP_WMS_AlteraEstadoDevolucao @SSCC NVARCHAR(50), @bitNaoConforme BIT, @strUser NVARCHAR(50) AS BEGIN BEGIN TRANSACTION; BEGIN TRY -- Condição adicional para bitNaoConforme IF @bitNaoConforme = 1 BEGIN DECLARE @intIdEstado INT = 4; DECLARE @strEstado NVARCHAR(255); SET @strEstado = (SELECT [strDescricao] FROM [Tbl_Estados] WHERE intid = @intIdEstado); -- Atualizar o campo na tabela Mov_SSCC_Cab UPDATE Mov_SSCC_Cab SET [intIdEstadoAtual] = @intIdEstado, [strDescEstado] = @strEstado, [fltQtdActual] = 0, [dtmDataAlteracao] = getdate(), [strUserAlteracao] = @strUser, [strObs]= [strObs] + 'SSCC Devolvido Não Conforme, com uma qtd Anulada de ' + cast([fltQtdActual] AS NVARCHAR(50)) WHERE [strIA_00_SSCC] = @SSCC; END ELSE BEGIN set @intIdEstado = 3; SET @strEstado = (SELECT [strDescricao] FROM [Tbl_Estados] WHERE intid = @intIdEstado); -- Atualizar o campo na tabela Mov_SSCC_Cab com outra condição UPDATE Mov_SSCC_Cab SET [intIdEstadoAtual] = @intIdEstado, [strDescEstado] = @strEstado, [dtmDataAlteracao] = getdate(), [strUserAlteracao] = @strUser WHERE [strIA_00_SSCC] = @SSCC; END -- Inserir no histórico INSERT INTO [Mov_SSCC_Estados] ([strSSCC] ,[intEstado] ,[dtmDataRegisto] ,[strUserRegisto]) VALUES (@SSCC ,@intIdEstado ,getdate() ,@strUser) -- Commit da transação COMMIT TRANSACTION; END TRY BEGIN CATCH -- Rollback em caso de erro ROLLBACK TRANSACTION; -- Retornar o erro THROW; END CATCH END