USP_DATAFORMTEMPLATE_ADD_AUCTIONITEMCOPY

The save procedure used by the add dataform template "Auction Item Copy Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@AUCTIONITEMID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@NAME nvarchar(100) IN Name
@AUCTIONITEMCATEGORYID uniqueidentifier IN Category
@AUCTIONITEMSUBCATEGORYID uniqueidentifier IN Subcategory
@DESCRIPTION nvarchar(255) IN Description
@VALUE money IN Value
@MINIMUMBID money IN Minimum bid
@DONATIONDATE date IN Donation date
@EXPIRATIONDATE date IN Expiration date
@DONORID uniqueidentifier IN Donor
@EVENTAUCTIONID uniqueidentifier IN Auction
@DESIGNATIONID uniqueidentifier IN Designation
@QUANTITY int IN Number of copies
@ISANONYMOUS bit IN Donation is anonymous
@PDACCOUNTSYSTEMID uniqueidentifier IN PD account system
@POSTDATE datetime IN Post date
@POSTSTATUSCODE tinyint IN Post status
@BASECURRENCYID uniqueidentifier IN Base currency
@BASEEXCHANGERATEID uniqueidentifier IN Exchange rate ID
@TRANSACTIONCURRENCYID uniqueidentifier IN Transaction currency

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_AUCTIONITEMCOPY
                    (
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @AUCTIONITEMID uniqueidentifier,
                        @NAME nvarchar(100) = '',
                        @AUCTIONITEMCATEGORYID uniqueidentifier = null,
                        @AUCTIONITEMSUBCATEGORYID uniqueidentifier = null,
                        @DESCRIPTION nvarchar(255) = null,
                        @VALUE money = null,
                        @MINIMUMBID money = null,
                        @DONATIONDATE date = null,
                        @EXPIRATIONDATE date = null,
                        @DONORID uniqueidentifier = null,
                        @EVENTAUCTIONID uniqueidentifier = null,
                        @DESIGNATIONID uniqueidentifier = null,
                        @QUANTITY integer = null,
                        @ISANONYMOUS bit = null,
                        @PDACCOUNTSYSTEMID uniqueidentifier = null,
                        @POSTDATE datetime = null,
                        @POSTSTATUSCODE tinyint = 1,
                        @BASECURRENCYID uniqueidentifier = null,
                        @BASEEXCHANGERATEID uniqueidentifier = null,
                        @TRANSACTIONCURRENCYID uniqueidentifier = null
                    )
                    as

                    set nocount on;

                    if @QUANTITY < 1
                        raiserror('Quantity must be greater than zero.', 13, 1);

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

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = getdate()

                    declare @COUNT integer;
                    set @COUNT = 0;

                    declare @BASEEXCHANGERATEISSPOTRATE bit = 0;
                    if (select top 1 TYPECODE from dbo.CURRENCYEXCHANGERATE where ID = @BASEEXCHANGERATEID) = 2 
                        set @BASEEXCHANGERATEISSPOTRATE = 1;

                    declare @COPYBASEEXCHANGERATEID uniqueidentifier = @BASEEXCHANGERATEID;

                    begin try

                        while (@COUNT < @QUANTITY)
                        begin
                            set @ID = newid();

                            if @BASEEXCHANGERATEISSPOTRATE = 1
                            begin
                                set @COPYBASEEXCHANGERATEID = newid();

                                insert into dbo.CURRENCYEXCHANGERATE(ID, FROMCURRENCYID, TOCURRENCYID, RATE, ASOFDATE, TYPECODE, SOURCECODEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                                    select @COPYBASEEXCHANGERATEID, FROMCURRENCYID, TOCURRENCYID, RATE, ASOFDATE, TYPECODE, SOURCECODEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
                                    from dbo.CURRENCYEXCHANGERATE
                                    where ID = @BASEEXCHANGERATEID;
                            end

                            exec dbo.USP_AUCTIONITEM_ADD 
                                @ID = @ID
                                @CHANGEAGENTID = @CHANGEAGENTID
                                @NAME = @NAME,
                                @AUCTIONITEMCATEGORYID = @AUCTIONITEMCATEGORYID
                                @AUCTIONITEMSUBCATEGORYID = @AUCTIONITEMSUBCATEGORYID
                                @DESCRIPTION = @DESCRIPTION,
                                @VALUE = @VALUE
                                @MINIMUMBID = @MINIMUMBID
                                @DONATIONDATE = @DONATIONDATE
                                @EXPIRATIONDATE = @EXPIRATIONDATE,
                                @DONORID = @DONORID
                                @EVENTAUCTIONID = @EVENTAUCTIONID
                                @PACKAGEID = null
                                @TYPECODE = 0,
                                @COPIEDFROMID = @AUCTIONITEMID
                                @DESIGNATIONID = @DESIGNATIONID
                                @ISANONYMOUS = @ISANONYMOUS
                                @PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID,
                                @POSTDATE = @POSTDATE,
                                @POSTSTATUSCODE = @POSTSTATUSCODE,
                                @BASECURRENCYID = @BASECURRENCYID,
                                @TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,
                                @BASEEXCHANGERATEID = @COPYBASEEXCHANGERATEID;


                            set @COUNT = @COUNT + 1;
                        end
                    end try

                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1
                    end catch

                    return 0