USP_DATAFORMTEMPLATE_EDIT_AUCTIONPACKAGE

The save procedure used by the edit dataform template "Auction Package Edit Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(100) IN Name
@DESCRIPTION nvarchar(255) IN Description
@AUCTIONITEMCATEGORYID uniqueidentifier IN Category
@AUCTIONITEMSUBCATEGORYID uniqueidentifier IN Subcategory
@MINIMUMBID money IN Minimum bid
@EXPIRATIONDATE datetime IN Expiration
@EVENTAUCTIONID uniqueidentifier IN Auction
@BASECURRENCYID uniqueidentifier IN Base currency
@TRANSACTIONCURRENCYID uniqueidentifier IN Transaction currency

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_AUCTIONPACKAGE (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @NAME nvarchar(100),
                        @DESCRIPTION nvarchar(255),
                        @AUCTIONITEMCATEGORYID uniqueidentifier,
                        @AUCTIONITEMSUBCATEGORYID uniqueidentifier,
                        @MINIMUMBID money,
                        @EXPIRATIONDATE datetime,
                        @EVENTAUCTIONID uniqueidentifier,
                        @BASECURRENCYID uniqueidentifier,
                        @TRANSACTIONCURRENCYID uniqueidentifier
                    )
                    as

                        set nocount on;

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

                        declare @CURRENTDATE datetime
                        set @CURRENTDATE = getdate()

                        begin try

                            declare @PREVIOUSEVENTAUCTIONID uniqueidentifier;
                            select @PREVIOUSEVENTAUCTIONID = EVENTAUCTIONID from dbo.AUCTIONITEM where ID = @ID
                            if (((@PREVIOUSEVENTAUCTIONID is null) and (@EVENTAUCTIONID is not null)) or ((@PREVIOUSEVENTAUCTIONID is not null) and (@EVENTAUCTIONID is not null) and (@PREVIOUSEVENTAUCTIONID <> @EVENTAUCTIONID))) and exists(select 1 from dbo.EVENT where EVENT.ID = @EVENTAUCTIONID and EVENT.ISACTIVE = 0)
                                raiserror('BBERR_EVENTAUCTIONISINACTIVE',13,1);

                            declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                            select @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                            select 
                                @TRANSACTIONCURRENCYID = EVENT.BASECURRENCYID
                            from dbo.EVENT
                            where EVENT.ID = @EVENTAUCTIONID

                            -- check to see if there are items attached to this package

                            -- if the items have a transaction currency that is equal to the event base currency, it's fine

                            -- otherwise, throw an error

                            if exists(select 1 from dbo.AUCTIONITEM where AUCTIONITEM.TRANSACTIONCURRENCYID <> @TRANSACTIONCURRENCYID and AUCTIONITEM.PACKAGEID = @ID)
                                raiserror('BBERR_AUCTIONITEM_PACKAGE_ITEMSWITHINVALIDTRANSACTIONCURRENCYID', 13, 1);

                            -- handle updating the data

                            update AUCTIONITEM 
                                set
                                    NAME = @NAME,
                                    DESCRIPTION = @DESCRIPTION,
                                    AUCTIONITEMCATEGORYID = @AUCTIONITEMCATEGORYID,
                                    AUCTIONITEMSUBCATEGORYID = @AUCTIONITEMSUBCATEGORYID,
                                    TRANSACTIONMINIMUMBID = @MINIMUMBID,
                                    MINIMUMBID = @MINIMUMBID,
                                    ORGANIZATIONMINIMUMBID = case when @TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID then @MINIMUMBID 
                                                                  else dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@MINIMUMBID, AUCTIONITEM.ORIGINTOORGANIZATIONEXCHANGERATEID, @MINIMUMBID)
                                                             end,
                                    EXPIRATIONDATE = @EXPIRATIONDATE,
                                    EVENTAUCTIONID = @EVENTAUCTIONID,
                                    CHANGEDBYID = @CHANGEAGENTID,
                                    DATECHANGED = @CURRENTDATE,
                                    TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,
                                    BASECURRENCYID = @TRANSACTIONCURRENCYID
                            from dbo.AUCTIONITEM
                            where ID = @ID

                            -- update the items to match the event

                            update dbo.AUCTIONITEM set
                                EVENTAUCTIONID = @EVENTAUCTIONID
                            where
                                PACKAGEID = @ID

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

                    return 0;