USP_DATALIST_STEWARDSHIPPLAN_BENEFITS

List of all appeal, membership program level, and recognition program level benefits that this constituent has received.

Parameters

Parameter Parameter Type Mode Description
@STEWARDSHIPPLANID uniqueidentifier IN Input parameter indicating the context ID for the data list.

Definition

Copy


CREATE procedure dbo.USP_DATALIST_STEWARDSHIPPLAN_BENEFITS
(
    @STEWARDSHIPPLANID uniqueidentifier
) as
begin
    set nocount on;

    declare @CONSTITUENTID uniqueidentifier;
    select @CONSTITUENTID = CONSTITUENTID from dbo.STEWARDSHIPPLAN where STEWARDSHIPPLAN.ID = @STEWARDSHIPPLANID;

    select
      BENEFIT.ID,
      CONSTITUENTBENEFITS.TYPE,
      BENEFIT.NAME,
      CONSTITUENTBENEFITS.QUANTITY,
      CONSTITUENTBENEFITS.UNITVALUE,
      CONSTITUENTBENEFITS.TOTALVALUE,
      CONSTITUENTBENEFITS.DETAILS,
      CONSTITUENTBENEFITS.VALUEPERCENT,
      CONSTITUENTBENEFITS.BASECURRENCYID
    from
    (
      select
        REVENUEBENEFIT.BENEFITID,
        'Revenue Benefit' as TYPE,
        REVENUEBENEFIT.QUANTITY,
        REVENUEBENEFIT.UNITVALUE,
        REVENUEBENEFIT.TOTALVALUE,
        REVENUEBENEFIT.DETAILS,
        REVENUEBENEFIT.VALUEPERCENT,
        REVENUEBENEFIT.BASECURRENCYID
      from
        dbo.REVENUE
      inner join
        dbo.REVENUEBENEFIT on REVENUEBENEFIT.REVENUEID = REVENUE.ID
      where
        REVENUE.CONSTITUENTID = @CONSTITUENTID

      union all

      select
        REGISTRANTBENEFIT.BENEFITID,
        'Event Registrant Benefit' as TYPE,
        REGISTRANTBENEFIT.QUANTITY,
        REGISTRANTBENEFIT.UNITVALUE,
        REGISTRANTBENEFIT.TOTALVALUE,
        REGISTRANTBENEFIT.DETAILS,
        0 as VALUEPERCENT,
        REGISTRANTBENEFIT.BASECURRENCYID
      from
        dbo.REGISTRANT
      inner join
        dbo.REGISTRANTBENEFIT on REGISTRANTBENEFIT.REGISTRANTID = REGISTRANT.ID
      where
        REGISTRANT.CONSTITUENTID = @CONSTITUENTID

      union all

      select
        CONSTITUENTRECOGNITIONBENEFIT.BENEFITID,
        'Constituent Recognition Benefit' as TYPE,
        CONSTITUENTRECOGNITIONBENEFIT.QUANTITY,
        CONSTITUENTRECOGNITIONBENEFIT.UNITVALUE,
        (CONSTITUENTRECOGNITIONBENEFIT.QUANTITY * CONSTITUENTRECOGNITIONBENEFIT.UNITVALUE) as TOTALVALUE,
        CONSTITUENTRECOGNITIONBENEFIT.DETAILS,
        0 as VALUEPERCENT,
        null as BASECURRENCYID
      from
        dbo.CONSTITUENTRECOGNITION
      inner join
        dbo.CONSTITUENTRECOGNITIONBENEFIT on CONSTITUENTRECOGNITIONBENEFIT.CONSTITUENTRECOGNITIONID = CONSTITUENTRECOGNITION.ID
      where
        CONSTITUENTRECOGNITION.CONSTITUENTID = @CONSTITUENTID

    ) as CONSTITUENTBENEFITS
    inner join
      dbo.BENEFIT on BENEFIT.ID = CONSTITUENTBENEFITS.BENEFITID
    order by
      CONSTITUENTBENEFITS.TYPE, BENEFIT.NAME

end