USP_DATAFORMTEMPLATE_EDIT_CAMPAIGNPRIORITY

The save procedure used by the edit dataform template "Campaign Priority Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@GOAL money IN Goal
@CAMPAIGNPRIORITYTYPECODEID uniqueidentifier IN Type
@CAMPAIGNSUBPRIORITIES xml IN Subpriorities
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_CAMPAIGNPRIORITY (
                        @ID uniqueidentifier,
                        @GOAL money,
                        @CAMPAIGNPRIORITYTYPECODEID uniqueidentifier,
                        @CAMPAIGNSUBPRIORITIES xml,
                        @CHANGEAGENTID uniqueidentifier = null
                    ) as begin

                        set nocount on;

                        begin try

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

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

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

                            declare @BASECURRENCYID uniqueidentifier;
                            declare @DATEADDED datetime;
                            declare @CURRENCYEXCHANGERATEID uniqueidentifier;
                            declare @ORGANIZATIONAMOUNT money;
                            declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                            set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                            select
                                @BASECURRENCYID = CAMPAIGN.BASECURRENCYID,
                                @DATEADDED = CAMPAIGNPRIORITY.DATEADDED,
                                @CURRENCYEXCHANGERATEID = CAMPAIGNPRIORITY.CURRENCYEXCHANGERATEID
                            from
                                dbo.CAMPAIGNPRIORITY
                                inner join dbo.CAMPAIGN on CAMPAIGNPRIORITY.CAMPAIGNID = CAMPAIGN.ID
                            where
                                CAMPAIGNPRIORITY.ID = @ID;

                            if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
                            begin
                                set @ORGANIZATIONAMOUNT = @GOAL;

                                --Bug 84308 - AdamBu - 3/5/10 - Update the org amount in the subpriorities XML.

                                set @CAMPAIGNSUBPRIORITIES=(
                                    select 
                                        BASECURRENCYID,
                                        null CURRENCYEXCHANGERATEID,
                                        GOAL,
                                        ID,
                                        CAMPAIGNSUBPRIORITYNAMECODEID,
                                        GOAL ORGANIZATIONAMOUNT
                                    from 
                                        dbo.UFN_CAMPAIGNPRIORITY_CAMPAIGNSUBPRIORITIES_FROMITEMLISTXML(@CAMPAIGNSUBPRIORITIES)
                                    for xml raw('ITEM'),type,elements,root('CAMPAIGNSUBPRIORITIES'),BINARY BASE64
                                )
                            end
                            else
                            begin
                                if @CURRENCYEXCHANGERATEID is null
                                    set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);

                                set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@GOAL, @CURRENCYEXCHANGERATEID);

                                --Bug 84308 - AdamBu - 3/5/10 - Update the org amount and exchange rate in the subpriorities XML.

                                set @CAMPAIGNSUBPRIORITIES=(
                                    select 
                                        BASECURRENCYID,
                                        @CURRENCYEXCHANGERATEID CURRENCYEXCHANGERATEID,
                                        GOAL,
                                        ID,
                                        CAMPAIGNSUBPRIORITYNAMECODEID,
                                        dbo.UFN_CURRENCY_CONVERT(GOAL, @CURRENCYEXCHANGERATEID) ORGANIZATIONAMOUNT
                                    from 
                                        dbo.UFN_CAMPAIGNPRIORITY_CAMPAIGNSUBPRIORITIES_FROMITEMLISTXML(@CAMPAIGNSUBPRIORITIES)
                                    for xml raw('ITEM'),type,elements,root('CAMPAIGNSUBPRIORITIES'),BINARY BASE64
                                )
                            end

                            update 
                                dbo.CAMPAIGNPRIORITY
                            set
                                GOAL = @GOAL,
                                CAMPAIGNPRIORITYTYPECODEID = @CAMPAIGNPRIORITYTYPECODEID,
                                CURRENCYEXCHANGERATEID = @CURRENCYEXCHANGERATEID,
                                ORGANIZATIONAMOUNT = @ORGANIZATIONAMOUNT,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where
                                CAMPAIGNPRIORITY.ID = @ID;

                            exec dbo.USP_CAMPAIGNPRIORITY_CAMPAIGNSUBPRIORITIES_UPDATEFROMXML @ID, @CAMPAIGNSUBPRIORITIES, @CHANGEAGENTID, @CURRENTDATE;

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

                        return 0;

                    end