USP_DATAFORMTEMPLATE_EDIT_PURPOSESTEWARDSHIP

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@STEWARDSHIPPACKAGEPROCESSID uniqueidentifier IN
@TIMEPERIODCODE tinyint IN
@ISENDOWED bit IN
@ISFULLYFUNDED bit IN
@ISINCOMETOPRINCIPAL bit IN
@INCOMETOPRINCIPALPERCENT decimal(5, 2) IN
@STATEMENTWORDING nvarchar(1024) IN
@ENDOWMENTMINAMOUNT money IN
@ENDOWMENTTARGETDATE date IN
@ENDOWMENTMINAMOUNTDATEMET date IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PURPOSESTEWARDSHIP (
  @ID uniqueidentifier
  ,@CURRENTAPPUSERID uniqueidentifier
  ,@CHANGEAGENTID uniqueidentifier = null
  ,@STEWARDSHIPPACKAGEPROCESSID uniqueidentifier
  ,@TIMEPERIODCODE tinyint
  ,@ISENDOWED bit
  ,@ISFULLYFUNDED bit
  ,@ISINCOMETOPRINCIPAL bit
  ,@INCOMETOPRINCIPALPERCENT decimal(5, 2)
  ,@STATEMENTWORDING nvarchar(1024)
  ,@ENDOWMENTMINAMOUNT money
  ,@ENDOWMENTTARGETDATE date
  ,@ENDOWMENTMINAMOUNTDATEMET date
  )
as
begin
  set nocount on;

  declare @CURRENTDATE datetime

  set @CURRENTDATE = getdate()

  if @STEWARDSHIPPACKAGEPROCESSID is not null
    and (
      @TIMEPERIODCODE is null
      or @TIMEPERIODCODE = 0
      )
    raiserror (
        'Frequency is required.'
        ,13
        ,1
        )

  if COALESCE(@ISINCOMETOPRINCIPAL, 0) = 0
    set @INCOMETOPRINCIPALPERCENT = 0.00;

  declare @BASECURRENCYID uniqueidentifier;
  declare @DATEADDED datetime;
  declare @CURRENCYEXCHANGERATEID uniqueidentifier;
  declare @ORGANIZATIONENDOWMENTMINAMOUNT money;
  declare @ORGANIZATIONCURRENCYID uniqueidentifier;

  set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

  select @BASECURRENCYID = DESIGNATIONLEVEL.BASECURRENCYID
    ,@DATEADDED = DESIGNATIONLEVEL.DATEADDED
    ,@CURRENCYEXCHANGERATEID = DESIGNATIONLEVEL.ORGANIZATIONEXCHANGERATEID
  from dbo.DESIGNATIONLEVEL
  where DESIGNATIONLEVEL.ID = @ID;

  if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
  begin
    set @ORGANIZATIONENDOWMENTMINAMOUNT = @ENDOWMENTMINAMOUNT;
  end
  else
  begin
    if @CURRENCYEXCHANGERATEID is null
      set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);
    set @ORGANIZATIONENDOWMENTMINAMOUNT = dbo.UFN_CURRENCY_CONVERT(@ENDOWMENTMINAMOUNT, @CURRENCYEXCHANGERATEID);
  end

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

    update dbo.DESIGNATIONLEVEL
    set STEWARDSHIPPACKAGEPROCESSID = @STEWARDSHIPPACKAGEPROCESSID
      ,CHANGEDBYID = @CHANGEAGENTID
      ,DATECHANGED = @CURRENTDATE
      ,TIMEPERIODCODE = coalesce(@TIMEPERIODCODE, 0)
      ,ISENDOWED = @ISENDOWED
      ,ISFULLYFUNDED = @ISFULLYFUNDED
      ,ISINCOMETOPRINCIPAL = @ISINCOMETOPRINCIPAL
      ,INCOMETOPRINCIPALPERCENT = @INCOMETOPRINCIPALPERCENT
      ,STATEMENTWORDING = @STATEMENTWORDING
      ,ENDOWMENTMINAMOUNT = @ENDOWMENTMINAMOUNT
      ,ORGANIZATIONENDOWMENTMINAMOUNT = @ORGANIZATIONENDOWMENTMINAMOUNT
      ,ENDOWMENTTARGETDATE = @ENDOWMENTTARGETDATE
      ,ENDOWMENTMINAMOUNTDATEMET = @ENDOWMENTMINAMOUNTDATEMET
      ,ORGANIZATIONEXCHANGERATEID = @CURRENCYEXCHANGERATEID
    where ID = @ID;
  end try

  begin catch
    exec dbo.USP_RAISE_ERROR

    return 1
  end catch

  return 0
end