22,207
社区成员
发帖
与我相关
我的任务
分享
CREATE PROCEDURE [dbo].[UpdateModifyOrder]
(
@OrderDetailID int,
@UpdateAmount int,
@Operator varchar(20)
)
AS
Begin Tran
DECLARE @RowCount int
SELECT @RowCount=COUNT(*) FROM TOrderDetail WHERE FOrderDetailID=@OrderDetailID
IF @RowCount>0
BEGIN
SELECT @RowCount=COUNT(*) FROM TModifyOrder WHERE FOrderDetailID=@OrderDetailID
IF @RowCount>0
BEGIN
UPDATE TModifyOrder SET FOperator=@Operator WHERE FOrderDetailID=@OrderDetailID
END
ELSE
BEGIN
INSERT INTO TModifyOrder SELECT FOrderMasterID,FOrderDetailID,FBookID,FAmount,'',GETDATE()
FROM TOrderDetail WHERE FOrderDetailID=@OrderDetailID
UPDATE TModifyOrder SET FOperator=@Operator WHERE FModifyID=@@IDENTITY
END
UPDATE TOrderDetail SET FAmount=@UpdateAmount
END
If @@Error <> 0
Begin
RollBack Tran
Return -1
End
Else
Begin
Commit Tran
End
IF exists(SELECT 1 FROM TOrderDetail WHERE FOrderDetailID=@OrderDetailID)
BEGIN
IF exists(SELECT 1 FROM TModifyOrder WHERE FOrderDetailID=@OrderDetailID
BEGIN
UPDATE TModifyOrder SET FOperator=@Operator WHERE FOrderDetailID=@OrderDetailID
END
ELSE
BEGIN
INSERT INTO TModifyOrder SELECT FOrderMasterID,FOrderDetailID,FBookID,FAmount,'',GETDATE()
FROM TOrderDetail WHERE FOrderDetailID=@OrderDetailID
UPDATE TModifyOrder SET FOperator=@Operator WHERE FModifyID=@@IDENTITY
END
UPDATE TOrderDetail SET FAmount=@UpdateAmount
END