ALTER PROCEDURE dbo.MW_CANCEL_OUT_Del @p_CANCEL_OUT_ID varchar(15) = NULL AS DECLARE @ERRORSYS NVARCHAR(15) = '', @AUTH_STATUS VARCHAR(1); IF ( NOT EXISTS ( SELECT * FROM MW_CANCEL_OUT cr WHERE cr.CANCEL_OUT_ID = @p_CANCEL_OUT_ID)) SET @ERRORSYS = '' IF( EXISTS (SELECT * FROM MW_CANCEL_OUT cd WHERE cd.RECORD_STATUS <> '1' AND cd.AUTH_STATUS = 'A' AND cd.CANCEL_OUT_ID = @p_CANCEL_OUT_ID)) SET @ERRORSYS = '241' SET @AUTH_STATUS = (SELECT mco.AUTH_STATUS FROM MW_CANCEL_OUT mco WHERE mco.CANCEL_OUT_ID = @p_CANCEL_OUT_ID) IF(@AUTH_STATUS <> 'E' AND @AUTH_STATUS <> 'R') BEGIN SELECT '-1' as Result, N'Phiếu ' + @p_CANCEL_OUT_ID + N' Không được phép xóa' ErrorDesc RETURN '-1' END IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END BEGIN TRANSACTION IF((SELECT cd.CHECKER_ID FROM MW_CANCEL_OUT cd WHERE cd.CANCEL_OUT_ID = @p_CANCEL_OUT_ID) IS NOT NULL ) BEGIN UPDATE MW_CANCEL_OUT SET RECORD_STATUS = '0' WHERE MW_CANCEL_OUT.CANCEL_OUT_ID = @p_CANCEL_OUT_ID IF @@Error <> 0 GOTO ABORT END ELSE BEGIN DELETE FROM MW_CANCEL_OUT WHERE MW_CANCEL_OUT.CANCEL_OUT_ID = @p_CANCEL_OUT_ID IF @@Error <> 0 GOTO ABORT END COMMIT TRANSACTION SELECT '0' as Result, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc RETURN '-1' End