USP_DATAFORMTEMPLATE_PLANNEDGIFTASSET_EDITSAVE

The save procedure used by the edit dataform template "Planned Gift 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_PLANNEDGIFTASSET_EDITSAVE (
  @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 = PLANNEDGIFT.TRANSACTIONCURRENCYID,
    @BASECURRENCYID = PLANNEDGIFT.BASECURRENCYID,
    @BASEEXCHANGERATEID = PLANNEDGIFT.BASEEXCHANGERATEID,
    @ORGANIZATIONEXCHANGERATEID = PLANNEDGIFT.ORGANIZATIONEXCHANGERATEID
  from
    dbo.PLANNEDGIFT
    inner join dbo.PLANNEDGIFTASSET on PLANNEDGIFTASSET.PLANNEDGIFTID = PLANNEDGIFT.ID
  where
    PLANNEDGIFTASSET.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.PLANNEDGIFTASSET 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_PLANNEDGIFT_ASSETHOLDERS_UPDATEFROMXML @ID, @ASSETHOLDERS, @CHANGEAGENTID, @CHANGEDATE
  end try
  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch

  return 0;