UFN_REPORT_VALIDCONSCODE

Returns valid constituents for the vse report.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@STARTDATE datetime IN
@ENDDATE datetime IN

Definition

Copy


CREATE function dbo.UFN_REPORT_VALIDCONSCODE
(
  @STARTDATE datetime = null,
  @ENDDATE datetime=null
)
returns table
return
(
    select
        1 "CODETYPE",
        CONSTITUENCYDEFINITION.ID,
        CONSTITUENCYDEFINITION.DESCRIPTION,
        BOARDMEMBERDATERANGE.CONSTITUENTID,
        BOARDMEMBERDATERANGE.DATEFROM,
        BOARDMEMBERDATERANGE.DATETO
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join dbo.CONSTITUENCYDEFINITION
        on CONSTITUENCYDEFINITION.ID = VSECONSTITUENCYMAP.CONSTITUENCYID
    cross join dbo.BOARDMEMBERDATERANGE
    where CONSTITUENCYDEFINITION.ID = 'F828E957-5F5E-479A-8F23-2FFD6C7C68FF'
        and CONSTITUENCYDEFINITION.ISACTIVE = 1
        and (
            (
                BOARDMEMBERDATERANGE.DATEFROM is null
                and BOARDMEMBERDATERANGE.DATETO is null
                )
            or (
                BOARDMEMBERDATERANGE.DATEFROM is null
                and BOARDMEMBERDATERANGE.DATETO >= @STARTDATE
                )
            or (
                BOARDMEMBERDATERANGE.DATEFROM <= @ENDDATE
                and BOARDMEMBERDATERANGE.DATETO is null
                )
            or (
                BOARDMEMBERDATERANGE.DATEFROM <= @ENDDATE
                and BOARDMEMBERDATERANGE.DATETO >= @STARTDATE
                )
            )

    union all

    select
        2 "CODETYPE",
        CONSTITUENCYDEFINITION.ID,
        CONSTITUENCYDEFINITION.DESCRIPTION,
        STAFFDATERANGE.CONSTITUENTID,
        STAFFDATERANGE.DATEFROM,
        STAFFDATERANGE.DATETO
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join dbo.CONSTITUENCYDEFINITION
        on CONSTITUENCYDEFINITION.ID = VSECONSTITUENCYMAP.CONSTITUENCYID
    cross join dbo.STAFFDATERANGE
    where CONSTITUENCYDEFINITION.ID = '6093915E-ADE9-42BE-88AE-304731754467'
        and CONSTITUENCYDEFINITION.ISACTIVE = 1
        and (
            (
                STAFFDATERANGE.DATEFROM is null
                and STAFFDATERANGE.DATETO is null
                )
            or (
                STAFFDATERANGE.DATEFROM is null
                and STAFFDATERANGE.DATETO >= @STARTDATE
                )
            or (
                STAFFDATERANGE.DATEFROM <= @ENDDATE
                and STAFFDATERANGE.DATETO is null
                )
            or (
                STAFFDATERANGE.DATEFROM <= @ENDDATE
                and STAFFDATERANGE.DATETO >= @STARTDATE
                )
            )

    union all

    select
        3 "CODETYPE",
        CONSTITUENCYDEFINITION.ID,
        CONSTITUENCYDEFINITION.DESCRIPTION,
        FUNDRAISERDATERANGE.CONSTITUENTID,
        FUNDRAISERDATERANGE.DATEFROM,
        FUNDRAISERDATERANGE.DATETO
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join dbo.CONSTITUENCYDEFINITION
        on CONSTITUENCYDEFINITION.ID = VSECONSTITUENCYMAP.CONSTITUENCYID
    cross join dbo.FUNDRAISERDATERANGE
    where CONSTITUENCYDEFINITION.ID = 'D2DCA06A-BE6E-40B3-B95D-59A926181923'
        and CONSTITUENCYDEFINITION.ISACTIVE = 1
        and (
            (
                FUNDRAISERDATERANGE.DATEFROM is null
                and FUNDRAISERDATERANGE.DATETO is null
                )
            or (
                FUNDRAISERDATERANGE.DATEFROM is null
                and FUNDRAISERDATERANGE.DATETO >= @STARTDATE
                )
            or (
                FUNDRAISERDATERANGE.DATEFROM <= @ENDDATE
                and FUNDRAISERDATERANGE.DATETO is null
                )
            or (
                FUNDRAISERDATERANGE.DATEFROM <= @ENDDATE
                and FUNDRAISERDATERANGE.DATETO >= @STARTDATE
                )
            )

    union all

    select
        4 "CODETYPE",
        CONSTITUENCYDEFINITION.ID,
        CONSTITUENCYDEFINITION.DESCRIPTION,
        PROSPECTDATERANGE.CONSTITUENTID,
        PROSPECTDATERANGE.DATEFROM,
        PROSPECTDATERANGE.DATETO
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join dbo.CONSTITUENCYDEFINITION
        on CONSTITUENCYDEFINITION.ID = VSECONSTITUENCYMAP.CONSTITUENCYID
    cross join dbo.PROSPECTDATERANGE
    where CONSTITUENCYDEFINITION.ID = '00E748FB-940D-4A7D-A133-C148B29410A8'
        and CONSTITUENCYDEFINITION.ISACTIVE = 1
        and (
            (
                PROSPECTDATERANGE.DATEFROM is null
                and PROSPECTDATERANGE.DATETO is null
                )
            or (
                PROSPECTDATERANGE.DATEFROM is null
                and PROSPECTDATERANGE.DATETO >= @STARTDATE
                )
            or (
                PROSPECTDATERANGE.DATEFROM <= @ENDDATE
                and PROSPECTDATERANGE.DATETO is null
                )
            or (
                PROSPECTDATERANGE.DATEFROM <= @ENDDATE
                and PROSPECTDATERANGE.DATETO >= @STARTDATE
                )
            )

    union all

    select
        5 "CODETYPE",
        CONSTITUENCYDEFINITION.ID,
        CONSTITUENCYDEFINITION.DESCRIPTION,
        VOLUNTEERDATERANGE.CONSTITUENTID,
        VOLUNTEERDATERANGE.DATEFROM,
        VOLUNTEERDATERANGE.DATETO
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join dbo.CONSTITUENCYDEFINITION
        on CONSTITUENCYDEFINITION.ID = VSECONSTITUENCYMAP.CONSTITUENCYID
    cross join dbo.VOLUNTEERDATERANGE
    where CONSTITUENCYDEFINITION.ID = 'E7489703-3D63-4017-A2BC-88C092563C5D'
        and CONSTITUENCYDEFINITION.ISACTIVE = 1
        and (
            (
                VOLUNTEERDATERANGE.DATEFROM is null
                and VOLUNTEERDATERANGE.DATETO is null
                )
            or (
                VOLUNTEERDATERANGE.DATEFROM is null
                and VOLUNTEERDATERANGE.DATETO >= @STARTDATE
                )
            or (
                VOLUNTEERDATERANGE.DATEFROM <= @ENDDATE
                and VOLUNTEERDATERANGE.DATETO is null
                )
            or (
                VOLUNTEERDATERANGE.DATEFROM <= @ENDDATE
                and VOLUNTEERDATERANGE.DATETO >= @STARTDATE
                )
            )

    union all

    select
        CODETYPE,
        V.ID,
        V.DESCRIPTION,
        CONSTITUENTID,
        DATEFROM,
        DATETO
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join (
        select 6 "CODETYPE",
            case 
                when max(EHS.CONSTITUENCYIMPLIEDCODE) = 0
                    then STUDENTNAME.ID
                when max(EHS.CONSTITUENCYIMPLIEDCODE) = 1
                    then ALUMNUSNAME.ID
                else null
                end "ID",
            case 
                when max(EHS.CONSTITUENCYIMPLIEDCODE) = 0
                    then STUDENTNAME.DESCRIPTION
                when max(EHS.CONSTITUENCYIMPLIEDCODE) = 1
                    then ALUMNUSNAME.DESCRIPTION
                else null
                end "DESCRIPTION",
            EH.CONSTITUENTID,
            case 
                when max(EHS.CONSTITUENCYIMPLIEDCODE) = 0
                    then min(dbo.UFN_DATE_EARLIESTFROMFUZZYDATE(EH.STARTDATE))
                when max(EHS.CONSTITUENCYIMPLIEDCODE) = 1
                    then max(dbo.UFN_DATE_EARLIESTFROMFUZZYDATE(EH.STARTDATE))
                else null
                end "DATEFROM",
            case 
                when max(EHS.CONSTITUENCYIMPLIEDCODE) = 0
                    then max(dbo.UFN_DATE_EARLIESTFROMFUZZYDATE(EH.ENDDATE))
                else null
                end "DATETO"
        from dbo.EDUCATIONALHISTORY EH
        cross apply dbo.UFN_EDUCATIONALHISTORY_CURRENTEDUCATIONALHISTORYSTATUSINLINE2(EH.ID) as EHSLINKING
        inner join dbo.EDUCATIONALHISTORYSTATUS EHS
            on EHSLINKING.EDUCATIONALHISTORYSTATUSID = EHS.ID
        left join dbo.CONSTITUENCYDEFINITION STUDENTNAME
            on STUDENTNAME.ID = '4DB8F4FC-BC43-421D-B592-69BEF109B5FC'
            and STUDENTNAME.ISACTIVE = 1
        left join dbo.CONSTITUENCYDEFINITION ALUMNUSNAME
            on ALUMNUSNAME.ID = '46EC3424-BA54-4431-A7DC-C6CEBB3B4592'
            and ALUMNUSNAME.ISACTIVE = 1
        where EH.EDUCATIONALINSTITUTIONID in (
                select ID
                from dbo.SCHOOL
                )
        group by EH.CONSTITUENTID,
            STUDENTNAME.ID,
            STUDENTNAME.DESCRIPTION,
            ALUMNUSNAME.ID,
            ALUMNUSNAME.DESCRIPTION
        ) V
        on V.ID = CONSTITUENCYID
    where (
            V.DATEFROM is null
            and V.DATETO is null
            )
        or (
            V.DATEFROM is null
            and V.DATETO >= @STARTDATE
            )
        or (
            V.DATEFROM <= @ENDDATE
            and V.DATETO is null
            )
        or (
            V.DATEFROM <= @ENDDATE
            and V.DATETO >= @STARTDATE
            )

    union all

    select
        CODETYPE,
        V.ID,
        V.DESCRIPTION,
        CONSTITUENTID,
        DATEFROM,
        null "DATETO"
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join (
        select 7 "CODETYPE",
            CONSTITUENCYDEFINITION.ID,
            CONSTITUENCYDEFINITION.DESCRIPTION,
            NETCOMMUNITYCLIENTUSER.CONSTITUENTID,
            --The "GETEARLIESTTIME" date function has been inlined here for performance (the part with "cast(@DATE as date)")...

            cast(cast(isnull(NETCOMMUNITYCLIENTUSER.USERADDEDDATE, NETCOMMUNITYCLIENTUSER.SIGNUPTRANSACTIONDATE) as date) as datetime) "DATEFROM",
            null "DATETO"
        from dbo.CONSTITUENT
        left join dbo.NETCOMMUNITYCLIENTUSER
            on CONSTITUENT.ID = NETCOMMUNITYCLIENTUSER.CONSTITUENTID
        left join dbo.CONSTITUENCYDEFINITION
            on CONSTITUENCYDEFINITION.ID = '55FE8E7C-2B68-44C8-B35C-818AD1944C03'
            and CONSTITUENCYDEFINITION.ISACTIVE = 1
        where NETCOMMUNITYCLIENTUSER.ACTIVE = 1
            and NETCOMMUNITYCLIENTUSER.DELETED = 0
        ) V
        on V.ID = CONSTITUENCYID
    where (
            V.DATEFROM <= @ENDDATE
            or V.DATEFROM is null
            )

    union all

    select
        8 "CODETYPE",
        CONSTITUENCYDEFINITION.ID,
        CONSTITUENCYDEFINITION.DESCRIPTION,
        V.CONSTITUENTID,
        V.DATEFROM,
        null "DATETO"
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join dbo.CONSTITUENCYDEFINITION
        on CONSTITUENCYDEFINITION.ID = VSECONSTITUENCYMAP.CONSTITUENCYID
    cross join (
        select REGISTRANT.CONSTITUENTID,
            min(REGISTRANT.DATEADDED) "DATEFROM"
        from dbo.REGISTRANT
        where (
                REGISTRANT.DATEADDED <= @ENDDATE
                or REGISTRANT.DATEADDED is null
                )
        group by REGISTRANT.CONSTITUENTID
        ) V
    where CONSTITUENCYDEFINITION.ID = 'C49D4B46-72A7-4206-91AA-BEABA2323E3C'
        and CONSTITUENCYDEFINITION.ISACTIVE = 1
        and (
            V.DATEFROM <= @ENDDATE
            or V.DATEFROM is null
            )

    union all

    select
        9 "CODETYPE",
        CONSTITUENCYDEFINITION.ID,
        CONSTITUENCYDEFINITION.DESCRIPTION,
        C.ID,
        null "DATEFROM",
        null "DATETO"
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join dbo.CONSTITUENCYDEFINITION
        on CONSTITUENCYDEFINITION.ID = VSECONSTITUENCYMAP.CONSTITUENCYID
    cross join dbo.constituent C
    where CONSTITUENCYDEFINITION.ID = '5435C96D-8617-46C3-9A62-5AFF08451A53'
        and CONSTITUENCYDEFINITION.ISACTIVE = 1
        and exists (
            select ID
            from dbo.EVENTEXPENSE
            where VENDORID = C.ID
            )

    union all

    select
        10 "CODETYPE",
        CONSTITUENCYDEFINITION.ID,
        CONSTITUENCYDEFINITION.DESCRIPTION,
        V.CONSTITUENTID,
        V.DATEFROM,
        null "DATETO"
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join dbo.CONSTITUENCYDEFINITION
        on CONSTITUENCYDEFINITION.ID = VSECONSTITUENCYMAP.CONSTITUENCYID
    cross join (
        select FIRSTREVENUEDATE as DATEFROM,
            CONSTITUENTID
        from dbo.REVENUELIFECYCLE
        inner join dbo.LIFECYCLETYPE
            on LIFECYCLETYPE.ID = REVENUELIFECYCLE.LIFECYCLETYPEID
        where LIFECYCLETYPE.NAME in (
                'Consecutive years donor',
                'First year donor',
                'Loyal donor',
                'Major donor',
                'Mid-level donor',
                'Multiple years donor'
                )
            and LIFECYCLETYPE.LIFECYCLEGROUPCODE = 0
            and REVENUELIFECYCLE.LASTREVENUEDATE <= @ENDDATE

        union

        select
            min(DATE) DATEFROM,
            CONSTITUENTID
        from dbo.REVENUE r
        inner join dbo.REVENUESPLIT rs
            on rs.REVENUEID = r.ID
        where (r.DATE <= @ENDDATE)
            and (
                (r.TRANSACTIONTYPECODE = 1)
                or (
                    r.TRANSACTIONTYPECODE = 0
                    and (
                        rs.APPLICATIONCODE in (
                            0,
                            3
                            )
                        or (
                            RS.APPLICATIONCODE = 1
                            and RS.TYPECODE = 0
                            )
                        )
                    )
                )
            and r.CONSTITUENTID not in (
                select CONSTITUENTID
                from dbo.REVENUELIFECYCLE
                )
        group by r.CONSTITUENTID
        ) V
    where CONSTITUENCYDEFINITION.ID = '70165682-4324-46EC-9439-83FC0CC67E7F'
        and CONSTITUENCYDEFINITION.ISACTIVE = 1

    union all

    select
        11 "CODETYPE",
        CONSTITUENCYDEFINITION.ID,
        CONSTITUENCYDEFINITION.DESCRIPTION,
        V.CONSTITUENTID,
        V.DATEFROM,
        null "DATETO"
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join dbo.CONSTITUENCYDEFINITION
        on CONSTITUENCYDEFINITION.ID = VSECONSTITUENCYMAP.CONSTITUENCYID
    cross join (
        select min(DATEADDED) "DATEFROM",
            RELATIONSHIPCONSTITUENTID "CONSTITUENTID"
        from dbo.RELATIONSHIP
        where (
                RELATIONSHIP.DATEADDED <= @ENDDATE
                or RELATIONSHIP.DATEADDED is null
                )
        group by RELATIONSHIPCONSTITUENTID
        ) V
    where CONSTITUENCYDEFINITION.ID = '8B6ECCFD-6829-4FBC-B092-58CA083F9322'
        and CONSTITUENCYDEFINITION.ISACTIVE = 1

    union all

    select
        12 "CODETYPE",
        CONSTITUENCYDEFINITION.ID,
        CONSTITUENCYDEFINITION.DESCRIPTION,
        GRANTOR.ID,
        GRANTOR.DATEADDED,
        null "DATETO"
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join dbo.CONSTITUENCYDEFINITION
        on CONSTITUENCYDEFINITION.ID = VSECONSTITUENCYMAP.CONSTITUENCYID
    cross join dbo.GRANTOR
    where CONSTITUENCYDEFINITION.ID = 'D9982C99-15C1-4C90-873E-56FD4B164056'
        and CONSTITUENCYDEFINITION.ISACTIVE = 1
        and (
            GRANTOR.DATEADDED >= @STARTDATE
            and GRANTOR.DATEADDED <= @ENDDATE
            )

    union all

    select
        99 "CODETYPE",
        CODE.ID,
        CODE.DESCRIPTION,
        CONSTITUENCY.CONSTITUENTID,
        CONSTITUENCY.DATEFROM,
        CONSTITUENCY.DATETO
    from dbo.VSECONSTITUENCYMAP
    inner join dbo.VSECONSTITUENCY
        on VSECONSTITUENCY.ID = VSECONSTITUENCYMAP.VSECONSTITUENCYID
    inner join dbo.CONSTITUENCY
        on CONSTITUENCY.CONSTITUENCYCODEID = VSECONSTITUENCYMAP.CONSTITUENCYID
    inner join dbo.CONSTITUENCYDEFINITION as CODE
        on CODE.ID = CONSTITUENCY.CONSTITUENCYCODEID
    where (
            CONSTITUENCY.DATEFROM is null
            and CONSTITUENCY.DATETO is null
            )
        or (
            CONSTITUENCY.DATEFROM is null
            and CONSTITUENCY.DATETO >= @STARTDATE
            )
        or (
            CONSTITUENCY.DATEFROM <= @ENDDATE
            and CONSTITUENCY.DATETO is null
            )
        or (
            CONSTITUENCY.DATEFROM <= @ENDDATE
            and CONSTITUENCY.DATETO >= @STARTDATE
            )
)