USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTGROUPPLANNEDGIFTSUMMARY

The load procedure used by the view dataform template "Constituent Group Planned Gifts Summary View"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@NUMBERACCEPTED int INOUT Total number accepted
@AMOUNTACCEPTED int INOUT Total amount accepted
@NUMBERPROPOSED int INOUT Number proposed
@NUMBERPENDINGRESPONSE int INOUT Number pending response

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTGROUPPLANNEDGIFTSUMMARY
(
  @ID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @NUMBERACCEPTED int = null output,
  @AMOUNTACCEPTED int = null output,
  @NUMBERPROPOSED int = null output,
  @NUMBERPENDINGRESPONSE int = null output
)
as
begin
  set nocount on;

  declare @MULTICURRENCYENABLED bit = dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION('Multicurrency');

  declare @GROUPANDMEMBER_PLANNEDGIFTS table
  (
    ID uniqueidentifier,
    CONSTITUENTID uniqueidentifier,
    STATUSCODE tinyint,
    GIFTAMOUNT money,
    ISADDITION bit
  );

  insert into
    @GROUPANDMEMBER_PLANNEDGIFTS
  select distinct
    PLANNEDGIFT.ID,
    PLANNEDGIFT.CONSTITUENTID,
    PLANNEDGIFT.STATUSCODE,
    case @MULTICURRENCYENABLED
      when 0
        then
          PLANNEDGIFT.GIFTAMOUNT
        else
          PLANNEDGIFT.ORGANIZATIONGIFTAMOUNT
    end as GIFTAMOUNT,
    0 as ISADDITION
  from
    dbo.PLANNEDGIFT
  where
    --Proposal = 0; Response pending = 1; Accepted = 2
    PLANNEDGIFT.STATUSCODE in (0, 1, 2) and
    PLANNEDGIFT.CONSTITUENTID in
    (
      select
        @ID

      union all

      select
        ID
      from
        dbo.UFN_GROUP_GETCURRENTMEMBERSNOPERMISSIONCHECK(@ID)
    );

  insert into
    @GROUPANDMEMBER_PLANNEDGIFTS
  select distinct
    PLANNEDGIFTADDITION.ID,
    PG.CONSTITUENTID,
    PG.STATUSCODE,
    case @MULTICURRENCYENABLED
      when 0
        then
          PLANNEDGIFTADDITION.GIFTAMOUNT
        else
          PLANNEDGIFTADDITION.ORGANIZATIONGIFTAMOUNT
    end as GIFTAMOUNT,
    1 as ISADDITION
  from
    dbo.PLANNEDGIFTADDITION
  inner join
    @GROUPANDMEMBER_PLANNEDGIFTS PG on PG.ID = PLANNEDGIFTADDITION.PLANNEDGIFTID;

  select
    @NUMBERPROPOSED = (select count(ID) from @GROUPANDMEMBER_PLANNEDGIFTS where STATUSCODE = 0 and ISADDITION = 0),
    @NUMBERPENDINGRESPONSE = (select count(ID) from @GROUPANDMEMBER_PLANNEDGIFTS where STATUSCODE = 1 and ISADDITION = 0),
    @NUMBERACCEPTED = (select count(ID) from @GROUPANDMEMBER_PLANNEDGIFTS where STATUSCODE = 2 and ISADDITION = 0),
    @AMOUNTACCEPTED = (select sum(GIFTAMOUNT) from @GROUPANDMEMBER_PLANNEDGIFTS where STATUSCODE = 2),
    @DATALOADED = 1;

end