实现功能:为订单申请退款
设想返回整数,以判断流程是否通过。
我只是想看判断的流程是否够好,有没有更好的写法?0 申请成功
1 无些订单
2 订单状态不符合申请退款要求,如未支付的订单
3 订单已经申请退款,不能重复申请
Create Proc [dbo].[Pro_Fujet_OrderRefund_Apply]
@OrderNum varchar(50),
@Way int,
@Re varchar(500),
@ApplyName varchar(100),
@ApplyOn datetime,
@Ret int output
as
declare @ApplyBy int  
declare @TotalAmount decimal(5,1)
declare @Token int
declare @OriginalStatus int
declare @Cash   decimal(5,1)
declare @Balance   decimal(5,1)
declare @Status int
begin
begin Transaction Trans_Refund --事务开始
select @Ret=1
select @Status=[status] from OrderInfo where OrderNum=@OrderNum
if @Status is not  null
begin
select @ret=2
if @status in(4,5,6,7,8)/*这几个状态表示已经支付*/
begin
select @ret=0
end
else if @status=10 /*10 表示 订单已经是申请状态*/
select @ret=4
end
if @status <>0
return @ret

/*
一些业务逻辑处理
*/ if @@error<>0
begin
select @ret=@@error
rollback tran Trans_Refund
return @ret
end
commit Transaction  Trans_Refund  --提交事务
end