USP_DATAFORMTEMPLATE_EDIT_PLANNEDGIFTADDITIONASSET

The save procedure used by the edit dataform template "Planned Gift Addition Asset Edit 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.
@ASSETTYPECODEID uniqueidentifier IN Type
@DESCRIPTION nvarchar(1000) IN Description
@VALUE money IN Value
@COSTBASIS money IN Cost basis
@ASSETVALUATIONMETHODCODEID uniqueidentifier IN Valuation method
@VALUATIONSOURCE nvarchar(200) IN Valuation source
@ADDRESSID uniqueidentifier IN Address
@ASSETHOLDERS xml IN Asset held by

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PLANNEDGIFTADDITIONASSET (
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @ASSETTYPECODEID uniqueidentifier,
  @DESCRIPTION nvarchar(1000),
  @VALUE money,
  @COSTBASIS money,
  @ASSETVALUATIONMETHODCODEID uniqueidentifier,
  @VALUATIONSOURCE nvarchar(200),
  @ADDRESSID uniqueidentifier,
  @ASSETHOLDERS xml
) as
  set nocount on;

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

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


  --Multicurrency - RobertDi 5/13/10 - Retrieve and calculate the necessary multicurrency values.
  declare @TRANSACTIONCURRENCYID uniqueidentifier;
  declare @BASECURRENCYID uniqueidentifier;
  declare @BASEEXCHANGERATEID uniqueidentifier;
  declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;

  select
    @TRANSACTIONCURRENCYID = PLANNEDGIFTADDITION.TRANSACTIONCURRENCYID,
    @BASECURRENCYID = PLANNEDGIFTADDITION.BASECURRENCYID,
    @BASEEXCHANGERATEID = PLANNEDGIFTADDITION.BASEEXCHANGERATEID,
    @ORGANIZATIONEXCHANGERATEID = PLANNEDGIFTADDITION.ORGANIZATIONEXCHANGERATEID
  from
    dbo.PLANNEDGIFTADDITION
    inner join dbo.PLANNEDGIFTADDITIONASSET on PLANNEDGIFTADDITIONASSET.PLANNEDGIFTADDITIONID = PLANNEDGIFTADDITION.ID
  where
    PLANNEDGIFTADDITIONASSET.ID = @ID;

  declare @BASEVALUE money;
  declare @BASECOSTBASIS money;
  declare @ORGVALUE money;
  declare @ORGCOSTBASIS money;    

  --SlyyMu 8/19/10.  Replaced the existing multicurrency logic with logic that can account for both T->B->O and T->O.
  exec dbo.USP_CURRENCY_GETCURRENCYVALUES
    @VALUE,
    null,
    @BASECURRENCYID,
    @BASEEXCHANGERATEID,
    @TRANSACTIONCURRENCYID,
    @BASEVALUE output,
    null,
    @ORGVALUE output,
    @ORGANIZATIONEXCHANGERATEID,
    0,
    null;

  --This function is not a duplicate of the previous call to the same function this call gets "COSTBASIS" related values
  exec dbo.USP_CURRENCY_GETCURRENCYVALUES
    @COSTBASIS,
    null,
    @BASECURRENCYID,
    @BASEEXCHANGERATEID,
    @TRANSACTIONCURRENCYID,
    @BASECOSTBASIS output,
    null,
    @ORGCOSTBASIS output,
    @ORGANIZATIONEXCHANGERATEID,
    0,
    null;

  begin try
    update dbo.PLANNEDGIFTADDITIONASSET set
      ASSETTYPECODEID = @ASSETTYPECODEID,
      DESCRIPTION = @DESCRIPTION,
      TRANSACTIONVALUE = @VALUE,
      TRANSACTIONCOSTBASIS = @COSTBASIS,
      ASSETVALUATIONMETHODCODEID = @ASSETVALUATIONMETHODCODEID,
      VALUATIONSOURCE = @VALUATIONSOURCE,
      ADDRESSID = @ADDRESSID,
      VALUE = @BASEVALUE,
      COSTBASIS = @BASECOSTBASIS,
      ORGANIZATIONVALUE = @ORGVALUE,
      ORGANIZATIONCOSTBASIS = @ORGCOSTBASIS,
      TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,
      BASECURRENCYID = @BASECURRENCYID,
      BASEEXCHANGERATEID = @BASEEXCHANGERATEID,
      ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
      CHANGEDBYID = @CHANGEAGENTID,
      DATECHANGED = @CHANGEDATE
    where
      ID = @ID;

    exec dbo.USP_PLANNEDGIFTADDITION_GETASSETHOLDERS_UPDATEFROMXML @ID, @ASSETHOLDERS, @CHANGEAGENTID, @CHANGEDATE
  end try
  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch

  return 0;