UFN_VOLUNTEER_TRAITS

Returns all traits for a given volunteer

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@VOLUNTEERID uniqueidentifier IN

Definition

Copy


            create function dbo.UFN_VOLUNTEER_TRAITS(@VOLUNTEERID uniqueidentifier)
            returns @TRAITS table 
                (
                    ID uniqueidentifier, 
                    TRAITTYPEID tinyint,
                    TRAITTYPE nvarchar(25),
                    SKILL nvarchar(100),
                    SKILLLEVEL nvarchar(100),
                    SKILLLEVELSEQUENCE int,
                    INTEREST nvarchar(100),
                    SPECIALNEED nvarchar(100),
                    CERTIFICATION nvarchar(100),
                    CERTIFICATE nvarchar(25),
                    COURSE nvarchar(100),
                    LICENSE nvarchar(100),
                    LICENSENUMBER nvarchar(25),
                    MEDICAL nvarchar(100),
                    ADMINISTRATIVE nvarchar(100),
                    EXPIRESON datetime,
                    VERIFIED bit
                ) with execute as caller
            as begin
                --Administrative

                insert into @TRAITS(ID, TRAITTYPEID, TRAITTYPE, ADMINISTRATIVE,EXPIRESON,VERIFIED)
                    select    VA.ID, 
                            0,
                            'Administrative',
                            ADMINISTRATIVE.DESCRIPTION,
                            VA.EXPIRESON,
                            VA.VERIFIED
                    from VOLUNTEERADMINISTRATIVE VA
                    inner join VOLUNTEERADMINISTRATIVECODE ADMINISTRATIVE on ADMINISTRATIVE.ID = VA.ADMINISTRATIVECODEID
                    where VA.VOLUNTEERID = @VOLUNTEERID;

                --Certification

                insert into @TRAITS(ID, TRAITTYPEID, TRAITTYPE, CERTIFICATION, CERTIFICATE,EXPIRESON,VERIFIED)
                    select    VC.ID, 
                            1,
                            'Certification',
                            CERTIFICATION.DESCRIPTION,
                            VC.CERTIFICATE,
                            VC.EXPIRESON,
                            VERIFIED
                    from VOLUNTEERCERTIFICATION VC
                    inner join VOLUNTEERCERTIFICATIONCODE CERTIFICATION on CERTIFICATION.ID = VC.CERTIFICATIONCODEID
                    where VC.VOLUNTEERID = @VOLUNTEERID;

                --Course

                insert into @TRAITS(ID, TRAITTYPEID, TRAITTYPE, COURSE,EXPIRESON,VERIFIED)
                    select    VC.ID, 
                            2,
                            'Course',
                            COURSE.DESCRIPTION,
                            VC.EXPIRESON,
                            VERIFIED
                    from VOLUNTEERCOURSE VC
                    inner join VOLUNTEERCOURSECODE COURSE on COURSE.ID = VC.COURSECODEID
                    where VC.VOLUNTEERID = @VOLUNTEERID;

                --Interest

                insert into @TRAITS(ID, TRAITTYPEID, TRAITTYPE, INTEREST)
                    select    VI.ID, 
                            3,
                            'Interest',
                            INTEREST.DESCRIPTION
                    from VOLUNTEERINTEREST VI
                    inner join VOLUNTEERINTERESTCODE INTEREST on INTEREST.ID = VI.VOLUNTEERINTERESTCODEID
                    where VI.VOLUNTEERID = @VOLUNTEERID;

                --License

                insert into @TRAITS(ID, TRAITTYPEID, TRAITTYPE, LICENSE, LICENSENUMBER,EXPIRESON,VERIFIED)
                    select    VL.ID, 
                            4,
                            'License',
                            LICENSE.DESCRIPTION,
                            VL.LICENSENUMBER,
                            VL.EXPIRESON,
                            VERIFIED
                    from VOLUNTEERLICENSE VL
                    inner join VOLUNTEERLICENSECODE LICENSE on LICENSE.ID = VL.LICENSECODEID
                    where VL.VOLUNTEERID = @VOLUNTEERID;

                --Medical

                insert into @TRAITS(ID, TRAITTYPEID, TRAITTYPE, MEDICAL,EXPIRESON,VERIFIED)
                    select    VM.ID, 
                            5,
                            'Medical',
                            MEDICAL.DESCRIPTION,
                            VM.EXPIRESON,
                            VERIFIED
                    from VOLUNTEERMEDICAL VM
                    inner join VOLUNTEERMEDICALCODE MEDICAL on MEDICAL.ID = VM.MEDICALCODEID
                    where VM.VOLUNTEERID = @VOLUNTEERID;

                --Skills

                insert into @TRAITS(ID, TRAITTYPEID, TRAITTYPE, SKILL, SKILLLEVEL, SKILLLEVELSEQUENCE)
                    select    VS.ID,
                            6,
                            'Skill',
                            SKILL.DESCRIPTION,
                            SKILLLEVEL.DESCRIPTION,
                            SKILLLEVEL.SEQUENCE
                    from VOLUNTEERSKILL VS
                    inner join VOLUNTEERSKILLCODE SKILL on SKILL.ID = VS.SKILLCODEID
                    inner join VOLUNTEERSKILLLEVEL SKILLLEVEL on SKILLLEVEL.ID = VS.SKILLLEVELID
                    where VS.VOLUNTEERID = @VOLUNTEERID;


                --Special need

                insert into @TRAITS(ID, TRAITTYPEID, TRAITTYPE, SPECIALNEED)
                    select    VS.ID, 
                            7,
                            'Special Need',
                            SPECIALNEED.DESCRIPTION
                    from VOLUNTEERSPECIALNEED VS
                    inner join VOLUNTEERSPECIALNEEDCODE SPECIALNEED on SPECIALNEED.ID = VS.SPECIALNEEDCODEID
                    where VS.VOLUNTEERID = @VOLUNTEERID;

                return;
            end