USP_DATAFORMTEMPLATE_ADD_AUCTIONITEMBATCHROW_COMMIT

The save procedure used by the add dataform template "Auction Item Batch Row Commit 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.
@BATCHNUMBER nvarchar(100) IN
@VALIDATEONLY bit IN
@BATCHROWID uniqueidentifier IN
@CONSTITUENTID uniqueidentifier IN Constituent
@CONSTITUENTLOOKUPID uniqueidentifier IN Lookup ID
@NEWCONSTITUENT xml IN New constituent
@NAME nvarchar(100) IN Item name
@AUCTIONITEMCATEGORYID uniqueidentifier IN Category
@AUCTIONITEMSUBCATEGORYID uniqueidentifier IN Subcategory
@DESCRIPTION nvarchar(255) IN Description
@EVENTAUCTIONID uniqueidentifier IN Auction
@DESIGNATIONID uniqueidentifier IN Designation
@VALUE money IN Value
@MINIMUMBID money IN Minimum bid
@DONATIONDATE date IN Donation date
@EXPIRATIONDATE date IN Expiration date
@GIVENANONYMOUSLY bit IN Given anonymously
@PDACCOUNTSYSTEMID uniqueidentifier IN Account system
@POSTDATE datetime IN Post date
@POSTSTATUSCODE tinyint IN Post status
@TRANSACTIONCURRENCYID uniqueidentifier IN Transaction currency
@BASECURRENCYID uniqueidentifier IN Base currency
@BASEEXCHANGERATEID uniqueidentifier IN Base exchange rate
@EXCHANGERATE decimal(20, 8) IN Exchange rate
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_AUCTIONITEMBATCHROW_COMMIT
                    (
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier,
                        @BATCHNUMBER nvarchar(100),
                        @VALIDATEONLY bit = 0,
                        @BATCHROWID uniqueidentifier = null,

                        @CONSTITUENTID uniqueidentifier = null,
                        @CONSTITUENTLOOKUPID uniqueidentifier = null,
                        @NEWCONSTITUENT xml = null,

                        @NAME nvarchar(100),
                        @AUCTIONITEMCATEGORYID uniqueidentifier = null,
                        @AUCTIONITEMSUBCATEGORYID uniqueidentifier = null,
                        @DESCRIPTION nvarchar(255) = null,
                        @EVENTAUCTIONID uniqueidentifier = null,
                        @DESIGNATIONID uniqueidentifier = null,
                        @VALUE money = 0,
                        @MINIMUMBID money = 0,
                        @DONATIONDATE date = null,
                        @EXPIRATIONDATE date = null,
                        @GIVENANONYMOUSLY bit = 0,
                        @PDACCOUNTSYSTEMID uniqueidentifier,
                        @POSTDATE datetime = null,
                        @POSTSTATUSCODE tinyint,
                        @TRANSACTIONCURRENCYID uniqueidentifier = null,
                        @BASECURRENCYID uniqueidentifier = null,
                        @BASEEXCHANGERATEID uniqueidentifier = null,
                        @EXCHANGERATE decimal(20,8) = null,
                        @CURRENTAPPUSERID uniqueidentifier = null
                    )
                    as
                    set nocount on;

                    begin try
                        -- Multicurrency setup

                        declare @BASEAMOUNT money;
                        declare @ORGANIZATIONAMOUNT money;    
                        declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                        declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                        declare @TRANSACTIONVATAMOUNT money;
                        declare @TRANSACTIONAMOUNTTOTAX money;    
                        declare @BASEVATAMOUNT money;
                        declare @BASEAMOUNTTOTAX money;
                        declare @ORGANIZATIONVATAMOUNT money;
                        declare @ORGANIZATIONAMOUNTTOTAX money;

                        set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        if @TRANSACTIONCURRENCYID is null
                            set @TRANSACTIONCURRENCYID = @BASECURRENCYID;

                        if @EXCHANGERATE is null
                            set @EXCHANGERATE = 0;

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

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

                        if @ID is null
                            set @ID = newid();

                        if @DESCRIPTION is null
                            set @DESCRIPTION = N'';

                        if @VALUE is null
                            set @VALUE = 0;

                        if @MINIMUMBID is null
                            set @MINIMUMBID = 0;

                        if @POSTDATE is null
                            set @POSTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());

                        if @POSTSTATUSCODE is null
                            set @POSTSTATUSCODE = 1;

                        if @CONSTITUENTID is null
                            raiserror('ERR_REQUIRED_CONSTITUENT', 13, 1);

                        if @EXPIRATIONDATE < @DONATIONDATE
                            raiserror('ERR_INVALID_EXPIRATIONDATE_DONATIONDATE', 13, 1);

                        if @DESIGNATIONID is null
                            raiserror('ERR_REQUIRED_DESIGNATION', 13, 1);

                        if @PDACCOUNTSYSTEMID is null
                            set @PDACCOUNTSYSTEMID = dbo.UFN_PDACCOUNTSYSTEM_GETDEFAULTSYSTEMIDSFORUSER(@CURRENTAPPUSERID)

                        -- Get base currency from account system's currency set, if available; from user's default set otherwise.

                        if @BASECURRENCYID is null
                        begin
                            declare @CURRENCYSETID uniqueidentifier
                            select @CURRENCYSETID = CURRENCYSETID
                            from dbo.PDACCOUNTSYSTEM
                            where ID = @PDACCOUNTSYSTEMID

                            select 
                                @BASECURRENCYID = CURRENCYSET.BASECURRENCYID
                            from 
                                dbo.CURRENCYSET
                            where 
                                CURRENCYSET.ID = coalesce(@CURRENCYSETID,dbo.UFN_CURRENCYSET_GETAPPUSERDEFAULTCURRENCYSET())
                        end

                        if @EXCHANGERATE is null
                            set @EXCHANGERATE = 0;



                        declare @CONSTITUENTEXISTS bit;
                        if exists(select ID from dbo.CONSTITUENT where ID = @CONSTITUENTID)
                            set @CONSTITUENTEXISTS = 1;
                        else
                            set @CONSTITUENTEXISTS = 0;

                        if @CONSTITUENTEXISTS = 1
                            exec dbo.USP_AUCTIONITEMBATCH_VALIDATENEWCONSTITUENT @BATCHCONSTITUENTID = @CONSTITUENTID, @ISDONOR = 1, @BATCHROWID = @BATCHROWID;

                        if @VALIDATEONLY = 0
                        begin
                            -- Create the base exchange rate when "Spot rate" is selected.

                            if @BASEEXCHANGERATEID = '00000000-0000-0000-0000-000000000001'
                            begin
                                set @BASEEXCHANGERATEID = newid();

                                insert into dbo.CURRENCYEXCHANGERATE(ID, FROMCURRENCYID, TOCURRENCYID, RATE, ASOFDATE, TYPECODE,
                                                                     SOURCECODEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                                values(@BASEEXCHANGERATEID, @TRANSACTIONCURRENCYID, @BASECURRENCYID, @EXCHANGERATE, @DONATIONDATE, 2, null,
                                       @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE);
                            end

                            if @CONSTITUENTEXISTS = 0
                            begin
                                declare @BATCHCONSTITUENTID uniqueidentifier;
                                set @BATCHCONSTITUENTID = @CONSTITUENTID;
                                set @CONSTITUENTID = newid();

                                exec dbo.USP_AUCTIONITEMBATCH_CONSTITUENT_COMMIT
                                    @ID = @CONSTITUENTID output,
                                    @CHANGEAGENTID = @CHANGEAGENTID,
                                    @BATCHAUCTIONITEMCONSTITUENTID = @BATCHCONSTITUENTID,
                                    @BATCHAUCTIONITEMCONSTITUENTACCOUNTID = null,
                                    @CONSTITUENTACCOUNTID = null,
                                    @CURRENTRECOGNITIONS = null,
                                    @UPDATEDRECOGNITIONS = null,
                                    @UPDATEDAPPLICATIONRECOGNITIONS = null;

                                --delete the temporary batch version of the constituent

                                exec dbo.USP_AUCTIONITEMBATCH_CONSTITUENT_DELETE @BATCHAUCTIONITEMCONSTITUENTID = @BATCHCONSTITUENTID, @CHANGEAGENTID = @CHANGEAGENTID
                            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 = @CONSTITUENTID,
                                @EVENTAUCTIONID = @EVENTAUCTIONID,
                                @PACKAGEID = null,
                                @TYPECODE = 0,
                                @COPIEDFROMID = null,
                                @DESIGNATIONID = @DESIGNATIONID,
                                @ISANONYMOUS = @GIVENANONYMOUSLY,
                                @PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID,
                                @BATCHNUMBER = @BATCHNUMBER,
                                @POSTDATE = @POSTDATE,
                                @POSTSTATUSCODE = @POSTSTATUSCODE,
                                @BASECURRENCYID = @BASECURRENCYID,
                                @TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,
                                @BASEEXCHANGERATEID = @BASEEXCHANGERATEID,
                                @EXCHANGERATE= @EXCHANGERATE,
                                @CHANGEDATE = @CHANGEDATE
                        end
                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR;
                        return 1;
                    end catch

                    return 0;