USP_DATAFORMTEMPLATE_VIEW_WEALTHINFORMATION_SUMMARY

The load procedure used by the view dataform template "Wealth Information Summary View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@ADDRESS nvarchar(300) INOUT ADDRESS
@EMAILADDRESS nvarchar(100) INOUT EMAILADDRESS
@PHONENUMBER nvarchar(100) INOUT PHONENUMBER
@LOOKUPID nvarchar(20) INOUT Lookup ID
@ISINACTIVE bit INOUT ISINACTIVE
@PICTURE varbinary INOUT PICTURE
@SPOUSE nvarchar(100) INOUT Spouse
@SPOUSEID uniqueidentifier INOUT SPOUSEID
@PRIMARYBUSINESS nvarchar(100) INOUT Primary business
@PRIMARYBUSINESSID uniqueidentifier INOUT PRIMARYBUSINESSID
@PROSPECTMANAGER nvarchar(100) INOUT Prospect manager
@PROSPECTMANAGERID uniqueidentifier INOUT PROSPECTMANAGERID
@RESEARCHSTATUSCONFIRMED bit INOUT RESEARCHSTATUSCONFIRMED
@WEALTHPOINTUPDATEPENDING bit INOUT WEALTHPOINTUPDATEPENDING
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@DECEASEDDATE UDT_FUZZYDATE INOUT DECEASEDDATE
@ISORGANIZATION bit INOUT ISORGANIZATION
@ISHOUSEHOLD bit INOUT Is Household
@ISGROUP bit INOUT ISGROUP
@GIVESANONYMOUSLY bit INOUT Gives anonymously
@HOUSEHOLD nvarchar(100) INOUT Household
@HOUSEHOLDID uniqueidentifier INOUT HOUSEHOLDID
@EDUCATIONATTRIBUTEDEFINED bit INOUT EDUCATIONATTRIBUTEDEFINED
@PRIMARYEDUCATION nvarchar(100) INOUT Primary education
@PRIMARYEDUCATIONID uniqueidentifier INOUT PRIMARYEDUCATIONID
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@DATELASTRESEARCHREQUESTCOMPLETED datetime INOUT Last research request completed
@ISDECEASED bit INOUT Is deceased
@ISSPOUSEDECEASED bit INOUT Is spouse deceased
@EMAILADDRESSWEBUI UDT_EMAILADDRESS INOUT EMAILADDRESSWEBUI
@CONSTITUENTINACTIVITYREASON nvarchar(63) INOUT Inactive reason
@DONOTMAIL bit INOUT DONOTMAIL
@DONOTEMAIL bit INOUT DONOTEMAIL
@DONOTPHONE bit INOUT DONOTPHONE
@PHONEISCONFIDENTIAL bit INOUT PHONEISCONFIDENTIAL
@ADDRESSISCONFIDENTIAL bit INOUT ADDRESSISCONFIDENTIAL
@ADDRESSID uniqueidentifier INOUT ADDRESSID
@PHONENUMBERID uniqueidentifier INOUT PHONENUMBERID
@EMAILADDRESSID uniqueidentifier INOUT EMAILADDRESSID

Definition

Copy

CREATE procedure dbo.[USP_DATAFORMTEMPLATE_VIEW_WEALTHINFORMATION_SUMMARY]
(
    @ID                        uniqueidentifier,
    @ADDRESS                   nvarchar(300) =     null output,
    @EMAILADDRESS              nvarchar(100) =     null output,
    @PHONENUMBER               nvarchar(100) =     null output,
    @LOOKUPID                  nvarchar(20) =      null output,
    @ISINACTIVE                bit =               null output,
    @PICTURE                   varbinary(max) =    null output,    
    @SPOUSE                    nvarchar(100) =     null output,
    @SPOUSEID                   uniqueidentifier =  null output,
    @PRIMARYBUSINESS           nvarchar(100) =     null output,
    @PRIMARYBUSINESSID         uniqueidentifier =  null output,
    @PROSPECTMANAGER           nvarchar(100) =     null output,
    @PROSPECTMANAGERID         uniqueidentifier =  null output,
    @RESEARCHSTATUSCONFIRMED   bit =               null output,
    @WEALTHPOINTUPDATEPENDING  bit =               null output,
    @DATALOADED                bit =               0    output,
    @DECEASEDDATE               dbo.UDT_FUZZYDATE = null output,
    @ISORGANIZATION               bit =               null output,
    @ISHOUSEHOLD               bit =               null output,
    @ISGROUP                   bit =               null output,
    @GIVESANONYMOUSLY           bit =               null output,
    @HOUSEHOLD                 nvarchar(100) =     null output,
    @HOUSEHOLDID               uniqueidentifier =  null output,
    @EDUCATIONATTRIBUTEDEFINED bit =               null output,
    @PRIMARYEDUCATION          nvarchar(100) =     null output,
    @PRIMARYEDUCATIONID        uniqueidentifier =  null output,
    @CURRENTAPPUSERID           uniqueidentifier =  null,
    @DATELASTRESEARCHREQUESTCOMPLETED datetime =   null output,
    @ISDECEASED                   bit =               null output,
    @ISSPOUSEDECEASED           bit =               null output,
    @EMAILADDRESSWEBUI           dbo.UDT_EMAILADDRESS = null output, --Add new field since changing datatypes of parameter is a breaking change
    @CONSTITUENTINACTIVITYREASON nvarchar(63) =    null output,
    @DONOTMAIL                 bit =               null output,
    @DONOTEMAIL                bit =               null output,
    @DONOTPHONE                bit =               null output,
    @PHONEISCONFIDENTIAL       bit =               null output,
    @ADDRESSISCONFIDENTIAL     bit =               null output,
    @ADDRESSID                uniqueidentifier =   null output,
    @PHONENUMBERID            uniqueidentifier =   null output,
    @EMAILADDRESSID           uniqueidentifier =   null output
)
as

    set NOCOUNT on;
    set @DATALOADED = 0;

    --CONSTITUENT FIELDS
    select
        @DATALOADED =        1,
        @PICTURE =            CONSTITUENT.PICTURETHUMBNAIL,
        @ISINACTIVE =        CONSTITUENT.ISINACTIVE,
        @LOOKUPID =            CONSTITUENT.LOOKUPID,
        @ISORGANIZATION =    CONSTITUENT.ISORGANIZATION,
        @ISGROUP =            CONSTITUENT.ISGROUP,
        @GIVESANONYMOUSLY = CONSTITUENT.GIVESANONYMOUSLY
    from
        dbo.CONSTITUENT
    where
        CONSTITUENT.ID = @ID;

    if @ISINACTIVE = 1
        select @CONSTITUENTINACTIVITYREASON = dbo.UFN_CONSTITUENTINACTIVITYREASONCODE_TRANSLATE(CONSTITUENTINACTIVEDETAIL.CONSTITUENTINACTIVITYREASONCODEID)
        from dbo.CONSTITUENTINACTIVEDETAIL
        where ID = @ID

    select 
        @ISHOUSEHOLD = case when G.GROUPTYPECODE = 0 then 1 else 0 end
    from dbo.GROUPDATA G
    where G.ID = @ID;

    --EMAIL FIELDS
    select
        @EMAILADDRESS = EMAILADDRESS.EMAILADDRESS,
        @EMAILADDRESSWEBUI = EMAILADDRESS.EMAILADDRESS,
        @DONOTEMAIL = DONOTEMAIL,
        @EMAILADDRESSID = ID
    from
        dbo.EMAILADDRESS
    where
        EMAILADDRESS.CONSTITUENTID = @ID and 
        EMAILADDRESS.ISPRIMARY = 1;

    --PHONE FIELDS
    select
        @PHONENUMBER = dbo.UFN_PHONE_GETINTERNATIONALNUMBER(PHONE.COUNTRYID, PHONE.NUMBER),
        @PHONEISCONFIDENTIAL = PHONE.ISCONFIDENTIAL,
        @DONOTPHONE = PHONE.DONOTCALL,
        @PHONENUMBERID = PHONE.ID
    from
        dbo.PHONE
    where 
        PHONE.CONSTITUENTID = @ID and
        PHONE.ISPRIMARY = 1;

    --ADDRESS FIELDS
    select 
        @ADDRESS = dbo.UFN_BUILDFULLADDRESS(ADDRESS.ID, ADDRESS.ADDRESSBLOCK, ADDRESS.CITY, ADDRESS.STATEID, ADDRESS.POSTCODE, ADDRESS.COUNTRYID),
        @DONOTMAIL = ADDRESS.DONOTMAIL,
        @ADDRESSISCONFIDENTIAL = ADDRESS.ISCONFIDENTIAL,
        @ADDRESSID = ADDRESS.ID
    from
        dbo.ADDRESS
    where
        ADDRESS.CONSTITUENTID = @ID and
        ADDRESS.ISPRIMARY = 1;                    

    --SPOUSE FIELDS
    set @ISSPOUSEDECEASED = 0;

    select
        @SPOUSE =   NF_SPOUSE.[NAME],
        @SPOUSEID = SPOUSE.ID,
        @ISSPOUSEDECEASED = case when dbo.DECEASEDCONSTITUENT.ID is null then 0 else 1 end
    from
        dbo.RELATIONSHIP
    left outer join
        dbo.CONSTITUENT as SPOUSE
    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(SPOUSE.ID) NF_SPOUSE
    on
        SPOUSE.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
    left join
      dbo.DECEASEDCONSTITUENT
    on
      SPOUSE.ID = dbo.DECEASEDCONSTITUENT.ID
    where 
        RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @ID and
        RELATIONSHIP.ISSPOUSE = 1;

    --HOUSEHOLD FIELDS
    if @ISORGANIZATION = 0 and @ISGROUP = 0
    begin
        select top(1)
            @HOUSEHOLDID = CG.ID,
            @HOUSEHOLD = CG.NAME
        from dbo.GROUPMEMBER as GM
        join dbo.CONSTITUENT as CG on GM.GROUPID = CG.ID
        join dbo.GROUPDATA as GD on GD.ID = CG.ID
        where GM.MEMBERID = @ID
          and dbo.UFN_GROUPMEMBER_ISCURRENTMEMBER(GM.ID) = 1
          and GD.GROUPTYPECODE = 0;
    end

    --PRIMARY EDUCATION FIELDS
    if @ISORGANIZATION = 0 and @ISGROUP = 0
    begin
        select
            @PRIMARYEDUCATIONID = EDUCATIONALHISTORY.ID,
            @PRIMARYEDUCATION = EDUCATIONALINSTITUTION.NAME,
            @EDUCATIONATTRIBUTEDEFINED = dbo.UFN_ATTRIBUTECATEGORY_DEFINEDFORRECORDTYPE_FORAPPUSER('EDUCATIONAL HISTORY',@CURRENTAPPUSERID)
        from
            dbo.EDUCATIONALHISTORY 
        inner join dbo.EDUCATIONALINSTITUTION on
            EDUCATIONALINSTITUTION.ID = EDUCATIONALHISTORY.EDUCATIONALINSTITUTIONID
        where EDUCATIONALHISTORY.ISPRIMARYRECORD = 1 and EDUCATIONALHISTORY.CONSTITUENTID = @ID;
    end

    --BUSINESS FIELDS
    if @ISORGANIZATION = 1
    begin
        select 
            @PRIMARYBUSINESS =   NF_CONTACT.[NAME],
            @PRIMARYBUSINESSID = CONTACT.ID
        from
            dbo.RELATIONSHIP
        left outer join
            dbo.CONSTITUENT as CONTACT
        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(CONTACT.ID) NF_CONTACT
        on
            CONTACT.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
        where 
            RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @ID and
            RELATIONSHIP.ISPRIMARYCONTACT = 1;


    end
    else 
    begin
        select 
            @PRIMARYBUSINESS =   BUSINESS.[NAME],
            @PRIMARYBUSINESSID = BUSINESS.ID
        from
            dbo.RELATIONSHIP
        left outer join
            dbo.CONSTITUENT as BUSINESS
        on
            BUSINESS.ID = RELATIONSHIP.RECIPROCALCONSTITUENTID
        where 
            RELATIONSHIP.RELATIONSHIPCONSTITUENTID = @ID and
            RELATIONSHIP.ISPRIMARYBUSINESS = 1;
    end

    --PROSPECT STATUS FIELDS
    select
        @PROSPECTMANAGER =            NF_MANAGER.[NAME],
        @PROSPECTMANAGERID =          MANAGER.[ID],
        @RESEARCHSTATUSCONFIRMED =    PROSPECT.[RESEARCHSTATUSCONFIRMED]
    from
        dbo.[PROSPECT]
    left outer join
        dbo.[CONSTITUENT] as MANAGER
    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(MANAGER.ID) NF_MANAGER
    on  
        MANAGER.ID = PROSPECT.[PROSPECTMANAGERFUNDRAISERID]
    left outer join
        dbo.PROSPECTSTATUSCODE
    on    
        PROSPECTSTATUSCODE.ID = PROSPECT.[PROSPECTSTATUSCODEID]
    where 
        PROSPECT.ID = @ID

    --WEALTHPOINT STATUS FIELD
    if exists(select 1 from dbo.WEALTH where ID=@ID and PENDINGSEARCH=1) begin
        set @WEALTHPOINTUPDATEPENDING = 1;
    end else begin
        set @WEALTHPOINTUPDATEPENDING = 0;
    end

    --DECEASED
    SELECT 
    @DECEASEDDATE=DECEASEDDATE,
    @ISDECEASED = 1
    FROM
    dbo.DECEASEDCONSTITUENT
    WHERE ID=@ID;

    --LAST PROSPECT RESEARCH REQUEST COMPLETED DATE
    select top(1)
        @DATELASTRESEARCHREQUESTCOMPLETED = PRRC.DATECOMPLETED
    from
        dbo.PROSPECTRESEARCHREQUESTCONSTITUENT PRRC
    where    
        PRRC.CONSTITUENTID = @ID
    order by DATECOMPLETED desc

    return 0;