USP_PLANNEDGIFTADDITION_GETSPLITS_ADDFROMXML

Used to add a set of records defined by UFN_PLANNEDGIFTADDITION_GETDESIGNATIONS from the given xml string.

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN
@XML xml IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN

Definition

Copy


create procedure dbo.USP_PLANNEDGIFTADDITION_GETSPLITS_ADDFROMXML 
(
  @REVENUEID uniqueidentifier,
  @XML xml,
  @CHANGEAGENTID uniqueidentifier = null,
  @CHANGEDATE datetime = null
)
as

  set nocount on;

  print convert(nvarchar(max), @XML)

  if @CHANGEAGENTID is null
    exec USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

  if @CHANGEDATE is null
    set @CHANGEDATE = getdate();

  -- build a temporary table containing the values from the XML

  declare @TempTbl table
  (
    ID uniqueidentifier,
    AMOUNT money,
    DESIGNATIONID uniqueidentifier,
    BASECURRENCYID uniqueidentifier,
    BASEEXCHANGERATEID uniqueidentifier,
    ORGANIZATIONAMOUNT money,
    ORGANIZATIONEXCHANGERATEID uniqueidentifier,
    TRANSACTIONAMOUNT money,
    TRANSACTIONCURRENCYID uniqueidentifier
  );

  insert into @TempTbl
  select
    ID,
    AMOUNT,
    DESIGNATIONID,
    BASECURRENCYID,
    BASEEXCHANGERATEID,
    ORGANIZATIONAMOUNT,
    ORGANIZATIONEXCHANGERATEID,
    TRANSACTIONAMOUNT,
    TRANSACTIONCURRENCYID
  from
    dbo.UFN_PLANNEDGIFTADDITION_GETDESIGNATIONS_FROMITEMLISTXML(@XML)

  update
    @TempTbl
  set
    ID = newid()
  where
    ID is null or
    ID = '00000000-0000-0000-0000-000000000000';

  if @@Error <> 0
    return 1;

  -- insert new items

  insert into REVENUESPLIT
  (
    ID,
    REVENUEID,
    AMOUNT,
    APPLICATIONCODE,
    DESIGNATIONID,
    TYPECODE,
    BASECURRENCYID,
    BASEEXCHANGERATEID,
    ORGANIZATIONAMOUNT,
    ORGANIZATIONEXCHANGERATEID,
    TRANSACTIONAMOUNT,
    TRANSACTIONCURRENCYID,
    ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
  )
  select
    ID,
    @REVENUEID,
    AMOUNT,
    0,
    DESIGNATIONID,
    0,
    BASECURRENCYID,
    BASEEXCHANGERATEID,
    ORGANIZATIONAMOUNT,
    ORGANIZATIONEXCHANGERATEID,
    TRANSACTIONAMOUNT,
    TRANSACTIONCURRENCYID,
    @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE
  from
    @TempTbl as [temp]

  if @@Error <> 0
    return 2;

  return 0;