USE [UnipsCenterQueue]
GO
/****** Object: StoredProcedure [dbo].[up_CancelMemberOrderByMainAndMiddle] Script Date: 05/27/2014 16:45:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: zjc
-- Create date: 2014-05-27
-- Description: 取消主服务器以及中间库的订单
-- =============================================
ALTER PROCEDURE [dbo].[up_CancelMemberOrderByMainAndMiddle]
@OrderID INT ,
@CancelMemo NVARCHAR(100) ,
@CancelOperator INT ,
@SaleOrderCode VARCHAR(200) ,
@MemberNO VARCHAR(20)
AS
BEGIN
DECLARE @Result INT
SET xact_abort ON --必须添加该语句
BEGIN TRANSACTION
--取消生产环境的订单
EXEC @Result = SRV_118.UnipsCenter.dbo.up_CancelMemberOrder @OrderID,
@CancelMemo, @CancelOperator
IF @@ERROR<>0 GOTO ErrorHandler
IF @Result >= 0
BEGIN
--记录订单取消日志
EXEC up_CancelMemberOrderStatusLog @MemberNO, @SaleOrderCode
--取消中间库的订单
EXEC @Result = up_CancelMemberOrderQueue @MemberNO,
@SaleOrderCode
IF @@ERROR<>0 GOTO ErrorHandler
SELECT @Result
END
ELSE
BEGIN
IF @Result = -1
RETURN -2 --区分@Result中的值,@Result包含三种值,-1,0,-200
ELSE
SELECT @Result
END
COMMIT TRANSACTION
RETURN 0
ErrorHandler:
ROLLBACK TRANSACTION
RETURN -200
END