USP_DATAFORMTEMPLATE_EDIT_RECOGNITIONCREDIT_DONORCHALLENGE

The save procedure used by the edit dataform template "Recognition Credit Donor Challenge 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.
@RECOGNITIONS xml IN

Definition

Copy

          CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_RECOGNITIONCREDIT_DONORCHALLENGE
          (
            @ID uniqueidentifier,
            @CHANGEAGENTID uniqueidentifier = null,
            @RECOGNITIONS xml
          )
          as 
            set nocount on

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

              declare @BASETOORGANIZATIONEXCHANGERATEID uniqueidentifier;                 
              declare @BASECURRENCYID uniqueidentifier;
              declare @BASEEXCHANGERATEID uniqueidentifier;
              declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
              declare @TRANSACTIONCURRENCYID uniqueidentifier;
              declare @DATE datetime;

              select 
                @BASECURRENCYID = isnull(REVENUE_EXT.NONPOSTABLEBASECURRENCYID, CURRENCYSET.BASECURRENCYID),
                @ORGANIZATIONEXCHANGERATEID = FINANCIALTRANSACTION.ORGEXCHANGERATEID,
                @DATE = FINANCIALTRANSACTIONLINEITEM.DATECHANGED,               
                @BASEEXCHANGERATEID = FINANCIALTRANSACTION.BASEEXCHANGERATEID,      
                @TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID               
              from dbo.FINANCIALTRANSACTIONLINEITEM
              inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
              inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
              inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
              inner join dbo.PDACCOUNTSYSTEM on FINANCIALTRANSACTION.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
              inner join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
              where 
                FINANCIALTRANSACTIONLINEITEM.ID = @ID
                and FINANCIALTRANSACTION.DELETEDON is null
                and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null
                and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1;

              exec dbo.USP_CURRENCY_GETCURRENCYVALUES
                  @AMOUNT=null,
                  @DATE=@DATE,
                  @BASECURRENCYID=@BASECURRENCYID,
                  @BASEEXCHANGERATEID=@BASEEXCHANGERATEID,
                  @TRANSACTIONCURRENCYID=@TRANSACTIONCURRENCYID,
                  @BASEAMOUNT=null,
                  @ORGANIZATIONCURRENCYID=null,
                  @ORGANIZATIONEXCHANGERATEID=@ORGANIZATIONEXCHANGERATEID,
                  @LOOKUPORGANIZATIONEXCHANGERATE=0,
                  @BASETOORGANIZATIONEXCHANGERATEID=@BASETOORGANIZATIONEXCHANGERATEID output;

              -- Process the recognitions xml to calculate organization amounts.
              set @RECOGNITIONS = dbo.UFN_RECOGNITIONCREDIT_DONORCHALLENGE_CONVERTAMOUNTSINXML(@RECOGNITIONS, @BASECURRENCYID, @BASETOORGANIZATIONEXCHANGERATEID);

              exec dbo.USP_RECOGNITIONCREDIT_DONORCHALLENGE_GETRECOGNITIONS_CUSTOMUPDATEFROMXML @ID, @RECOGNITIONS, @CHANGEAGENTID;    
            end try

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

            return 0;