USP_AUCTIONITEM_DELETE

Executes the "Delete an auction item" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being deleted.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the delete.

Definition

Copy


                    CREATE procedure dbo.USP_AUCTIONITEM_DELETE
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier
                    )
                    as begin

                        declare @REVENUEPOSTEDID uniqueidentifier;
                        declare @PURCHASEID uniqueidentifier;
                        declare @RESERVATIONID uniqueidentifier;
                        declare @INRESERVEDPACKAGEID uniqueidentifier;

                        declare @CURRENTDATE datetime;
                        set @CURRENTDATE = getdate();

                        select
                            @REVENUEPOSTEDID = REVENUEPOSTED.ID,
                            @PURCHASEID = AUCTIONITEMPURCHASE.PURCHASEID,
                            @RESERVATIONID = AUCTIONITEMRESERVATION.ID,
                            @INRESERVEDPACKAGEID = [RESERVEDPARENTPACKAGE].AUCTIONITEMID
                        from dbo.AUCTIONITEM
                        left join dbo.AUCTIONITEMPURCHASE 
                            on AUCTIONITEM.ID = AUCTIONITEMPURCHASE.AUCTIONITEMID
                        left join dbo.REVENUEPOSTED
                            on REVENUEPOSTED.ID = AUCTIONITEM.REVENUEAUCTIONDONATIONID
                        left join dbo.AUCTIONITEMRESERVATION
                            on AUCTIONITEMRESERVATION.AUCTIONITEMID = AUCTIONITEM.ID
                        left join dbo.AUCTIONITEMRESERVATION [RESERVEDPARENTPACKAGE]
                            on [RESERVEDPARENTPACKAGE].AUCTIONITEMID = AUCTIONITEM.PACKAGEID
                        where AUCTIONITEM.ID = @ID

                        begin try
                            if @REVENUEPOSTEDID is not null
                                raiserror('Posted items should not be deleted with this task.', 13, 1);

                            if @RESERVATIONID is not null
                                raiserror('This item is pending purchase and cannot be deleted.', 13, 1);

                            if @INRESERVEDPACKAGEID is not null
                                raiserror('This item is part of a package that is pending purchase and cannot be deleted.', 13, 1);

                            if @PURCHASEID is not null
                                raiserror('Purchased items cannot be deleted.', 13, 1);

                            declare @REVENUEID uniqueidentifier;
                            select @REVENUEID = REVENUEAUCTIONDONATIONID from dbo.AUCTIONITEM where ID = @ID;

                            update dbo.AUCTIONITEM
                            set COPIEDFROMID = null,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where COPIEDFROMID = @ID;

                            exec dbo.USP_AUCTIONITEM_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;

                            exec dbo.USP_REVENUE_DELETE @REVENUEID, @CHANGEAGENTID;

                            return 0;
                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch
                    end