USP_DATAFORMTEMPLATE_HOUSEHOLDMEMBERSIMPLIFIED_ADD

The save procedure used by the add dataform template "Household Member Simplified Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@GROUPID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@MEMBERID uniqueidentifier IN Constituent
@COPYHOUSEHOLDCONTACTINFO bit IN Copy household's primary contact information
@RELATIONSHIPS xml IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_HOUSEHOLDMEMBERSIMPLIFIED_ADD
(
    @ID uniqueidentifier = null output,
    @CURRENTAPPUSERID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,    
    @GROUPID uniqueidentifier,
    @MEMBERID uniqueidentifier = null,
    @COPYHOUSEHOLDCONTACTINFO bit = null,
    @RELATIONSHIPS xml = null
)
as
    set nocount on;

    declare @CURRENTDATE datetime = getdate();

    if @CHANGEAGENTID is null  
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

    -- Check security on the member if they chose an existing constituent

    if @MEMBERID is not null
    begin
        declare @ISADMIN bit;
        declare @APPUSER_IN_NONRACROLE bit;
        declare @APPUSER_IN_NOSECGROUPROLE bit;
        declare @APPUSER_IN_NONSITEROLE bit;
        declare @APPUSER_IN_NOSITEROLE bit;

        set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);

        if @ISADMIN = 0
            set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);

        if @ISADMIN = 0 and @APPUSER_IN_NONRACROLE = 0
            set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);

        set @APPUSER_IN_NONSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NONSITEROLE(@CURRENTAPPUSERID);
        set @APPUSER_IN_NOSITEROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SITE_ROLE(@CURRENTAPPUSERID);

        if (@ISADMIN = 0 and
                (
                    (@APPUSER_IN_NONRACROLE = 0 and
                    dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, @MEMBERID, @APPUSER_IN_NOSECGROUPROLE) = 0)
                    or
                    (@APPUSER_IN_NONSITEROLE = 0 and
                    dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT_BYSITE(@CURRENTAPPUSERID, @MEMBERID, @APPUSER_IN_NOSITEROLE) = 0)
                )
            )
        begin
            raiserror('BBERR_DB_RECORDSECURITY_PERMISSION_DENIED', 13, 1)
            return 1
        end
    end

    begin try    
        exec dbo.USP_HOUSEHOLDMEMBERADD @ID output, null, @CHANGEAGENTID, @GROUPID, @MEMBERID output, null, null
            null, null, null, null, null, null, null, null, null, null, @COPYHOUSEHOLDCONTACTINFO, @GROUPID, null,
            0, null, @CURRENTAPPUSERID, 'D1AE9F9B-9600-4C62-840E-1197F8A065BD', 0, 0, null, null, null;

        exec dbo.USP_RELATIONSHIPS_ADDFROMXML @RELATIONSHIPS, @ID, @CHANGEAGENTID, @CURRENTDATE
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR;
        return 1;
    end catch

    return 0;