USP_AUCTIONITEM_ADDTOPACKAGE

Executes the "Auction Item Add to Package Record Operation" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID nvarchar(73) IN Input parameter indicating the ID of the record being updated.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the update.

Definition

Copy


                CREATE procedure dbo.USP_AUCTIONITEM_ADDTOPACKAGE
                (
                    @ID nvarchar(73),
                    @CHANGEAGENTID uniqueidentifier
                )
                as begin

                    declare @ITEMID uniqueidentifier = null;
                    declare @PACKAGEID uniqueidentifier = null;

                    select @ITEMID = cast(substring(@ID, 0, 37) as uniqueidentifier)
                    select @PACKAGEID = cast(substring(@ID, 38, 36) as uniqueidentifier)

                    if @CHANGEAGENTID is null  
                        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = getdate()

                    begin try
                        if not exists
                                        (
                                            select EVENT.BASECURRENCYID 
                                            from dbo.AUCTIONITEM [PACKAGE]
                                            inner join dbo.EVENT on EVENT.ID = [PACKAGE].EVENTAUCTIONID
                                            inner join dbo.AUCTIONITEM on AUCTIONITEM.TRANSACTIONCURRENCYID = EVENT.BASECURRENCYID
                                            where AUCTIONITEM.ID = @ITEMID
                                                and [PACKAGE].ID = @PACKAGEID
                                        )
                                raiserror('BBERR_AUCTIONITEM_EVENT_BASECURRENCY', 13, 1);

                        declare @ITEMACCOUNTSYSTEMID uniqueidentifier;
                        select 
                            @ITEMACCOUNTSYSTEMID = PDACCOUNTSYSTEMFORREVENUE.PDACCOUNTSYSTEMID
                        from
                            dbo.AUCTIONITEM
                            inner join dbo.PDACCOUNTSYSTEMFORREVENUE on AUCTIONITEM.REVENUEAUCTIONDONATIONID = PDACCOUNTSYSTEMFORREVENUE.ID
                        where
                            AUCTIONITEM.ID = @ITEMID

                        declare @PACKAGEACCOUNTSYSTEMID uniqueidentifier;
                        select top 1 
                            @PACKAGEACCOUNTSYSTEMID = PDACCOUNTSYSTEMFORREVENUE.PDACCOUNTSYSTEMID
                        from
                            dbo.AUCTIONITEM
                            inner join dbo.PDACCOUNTSYSTEMFORREVENUE on AUCTIONITEM.REVENUEAUCTIONDONATIONID = PDACCOUNTSYSTEMFORREVENUE.ID
                        where
                            AUCTIONITEM.PACKAGEID = @PACKAGEID

                        if (@PACKAGEACCOUNTSYSTEMID is not null) and (@ITEMACCOUNTSYSTEMID <> @PACKAGEACCOUNTSYSTEMID)
                            raiserror('BBERR_AUCTIONITEM_INVALIDPDACCOUNTSYSTEM_FORPACKAGE', 13, 1);

                        update dbo.AUCTIONITEM
                        set 
                            PACKAGEID = @PACKAGEID,
                            EVENTAUCTIONID = (select EVENTAUCTIONID from dbo.AUCTIONITEM where ID = @PACKAGEID),
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE
                        where ID = @ITEMID
                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1;
                    end catch

                    return 0;

                end