UFN_CONSTITUENT_CANBEDONOR

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN

Definition

Copy


create function dbo.UFN_CONSTITUENT_CANBEDONOR(@CONSTITUENTID uniqueidentifier)
returns bit
as begin

    declare @HOUSEHOLDSCANBEDONORS bit = dbo.UFN_INSTALLATIONINFO_GETHOUSEHOLDSCANBEDONORS();
    declare @EXISTS bit, @DECEASED bit, @ISGROUP bit, @ISHOUSEHOLD bit, @GROUPCANBEDONOR bit, @ISDISSOLVED bit;

    select
        @EXISTS = 1,
        @DECEASED = case when DECEASEDCONSTITUENT.ID is null then 0 else 1 end,
        @ISGROUP = C.ISGROUP,
        @ISDISSOLVED = case when DISSOLVEDGROUP.ID is null then 0 else 1 end
    from
        dbo.CONSTITUENT AS C
    left join dbo.DECEASEDCONSTITUENT on DECEASEDCONSTITUENT.ID = C.ID
    left join dbo.DISSOLVEDGROUP on DISSOLVEDGROUP.ID = C.ID
    where C.ID = @CONSTITUENTID;

    if @EXISTS <> 1
        return 0;

    select
        @GROUPCANBEDONOR = isnull(GT.CANBEDONOR,1),
        @ISHOUSEHOLD = case when GD.GROUPTYPECODE = 0 then 1 else 0 end
    from 
        dbo.GROUPDATA as GD
    left outer join dbo.GROUPTYPE as GT on GD.GROUPTYPECODE = 1 and GD.GROUPTYPEID = GT.ID
    where GD.ID = @CONSTITUENTID;

    if (
        @DECEASED = 0
        and (
            @ISGROUP = 0
            or (@ISGROUP = 1 and @ISHOUSEHOLD = 0 and @GROUPCANBEDONOR = 1)
            or (@ISHOUSEHOLD = 1 and @HOUSEHOLDSCANBEDONORS = 1 and @ISDISSOLVED = 0)
        )
    )
        return 1;

    return 0;

    end