UFN_ADDPROSPECTPLANSPROCESS_CANNOTMANAGENEWPROSPECT

Tests if a user can create a new prospect and assign a manager to this prospect for any constituent in an IDSet.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@IDSETREGISTERID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@CONSTITUENTID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_ADDPROSPECTPLANSPROCESS_CANNOTMANAGENEWPROSPECT
(
    @IDSETREGISTERID uniqueidentifier,
    @CURRENTAPPUSERID uniqueidentifier,
    @CONSTITUENTID uniqueidentifier
)
returns bit
with execute as caller
as begin
    declare @CANMANAGENEWPROSPECTS bit = 0;
    declare @ISADMIN bit = 0;
    declare @ISADDAMAJORGIVINGPROSPECTTASKALLOWED bit = 0;
    declare @ISPROSPECTMANAGEREDITDATAFORMINSTANCEALLOWED bit = 0
    declare @ADDAMAJORGIVINGPROSPECTTASKID uniqueidentifier = 'F3D5EC46-C463-4873-923A-B392F1F3C472';
    declare @PROSPECTMANAGEREDITDATAFORMINSTANCEID uniqueidentifier = 'C69768CC-D4DF-42A7-A1E0-185419D14854'

    set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
    set @ISADDAMAJORGIVINGPROSPECTTASKALLOWED = dbo.UFN_SECURITY_APPUSER_GRANTED_TASK_IN_SYSTEMROLE(@CURRENTAPPUSERID,@ADDAMAJORGIVINGPROSPECTTASKID);
    set @ISPROSPECTMANAGEREDITDATAFORMINSTANCEALLOWED = dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_IN_SYSTEMROLE(@CURRENTAPPUSERID,@PROSPECTMANAGEREDITDATAFORMINSTANCEID);

    if @ISADMIN = 1 or (@CONSTITUENTID is not null and dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORCONSTIT(@CURRENTAPPUSERID,@PROSPECTMANAGEREDITDATAFORMINSTANCEID,@CONSTITUENTID) = 1)
        set @CANMANAGENEWPROSPECTS = 1;
    else if (@IDSETREGISTERID is not null) and (@ISADMIN = 1 or (@ISADDAMAJORGIVINGPROSPECTTASKALLOWED = 1 and @ISPROSPECTMANAGEREDITDATAFORMINSTANCEALLOWED = 1))
    begin
        declare @NEWPROSPECT table (ID uniqueidentifier primary key);

        insert into @NEWPROSPECT (ID)
            select ID from dbo.UFN_IDSETREADER_GETRESULTS(@IDSETREGISTERID)
            except
            select ID from dbo.PROSPECT;

        if exists (select ID from @NEWPROSPECT)
        begin
            if @ISADMIN = 1
                set @CANMANAGENEWPROSPECTS = 1;
            else if exists
                (
                    select ID
                    from @NEWPROSPECT as NEWPROSPECT
                    where
                        dbo.UFN_SECURITY_APPUSER_GRANTED_TASK_FORCONSTIT(@CURRENTAPPUSERID,@ADDAMAJORGIVINGPROSPECTTASKID,NEWPROSPECT.ID) = 1
                        and
                        dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORCONSTIT(@CURRENTAPPUSERID,@PROSPECTMANAGEREDITDATAFORMINSTANCEID,NEWPROSPECT.ID) = 1
                )
                set @CANMANAGENEWPROSPECTS = 1;
        end
    end

    if @CANMANAGENEWPROSPECTS = 1
        return 0;

    return 1;
end