USP_GLOBALCHANGE_UPDATECONSTITUENTGENDER

Parameters

Parameter Parameter Type Mode Description
@IDSETREGISTERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@ASOF datetime IN
@NUMBERADDED int INOUT
@NUMBEREDITED int INOUT
@NUMBERDELETED int INOUT
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy


    CREATE procedure dbo.USP_GLOBALCHANGE_UPDATECONSTITUENTGENDER
    (
        @IDSETREGISTERID uniqueidentifier, 
        @CHANGEAGENTID uniqueidentifier = null,
        @ASOF as datetime = null,
        @NUMBERADDED int = 0 output,
        @NUMBEREDITED int = 0 output,
        @NUMBERDELETED int = 0 output,
        @CURRENTAPPUSERID uniqueidentifier = null
    )
    as
        set nocount on;

        declare @CURRENTDATE datetime

        set @CURRENTDATE = getdate();
        set @NUMBERADDED = 0;
        set @NUMBEREDITED = 0;
        set @NUMBERDELETED = 0
        declare @BPID uniqueidentifier = '3269A1D1-31CB-4D28-945C-B7623A3EFCCA';

        declare @BYPASSSECURITY bit;
        declare @BYPASSSITESECURITY bit;
        exec dbo.USP_SECURITY_APPUSER_BYPASSSECURITYFORBUSINESSPROCESS @CURRENTAPPUSERID, @BPID, @BYPASSSECURITY output, @BYPASSSITESECURITY output;

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

        declare @SELECTION table (ID uniqueidentifier not null primary key);
        insert into @SELECTION (ID) 
        select ID 
        from dbo.UFN_CONSTITUENT_GETRECORDSINSELECTION_FORBUSINESSPROCESS(@CURRENTAPPUSERID, @IDSETREGISTERID, @BPID, @BYPASSSECURITY, @BYPASSSITESECURITY);

        begin try
            update dbo.CONSTITUENT 
            set dbo.CONSTITUENT.GENDERCODEID=GENDERCODEDEFAULTMAPPING.GENDERCODEID
            from dbo.CONSTITUENT
            inner join dbo.GENDERCODEDEFAULTMAPPING on CONSTITUENT.GENDERCODE=GENDERCODEDEFAULTMAPPING.DEFAULTREASONCODE
            inner join @SELECTION as SELECTION on SELECTION.ID = CONSTITUENT.ID
            left join dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITIDS_FORBUSINESSPROCESS(@CURRENTAPPUSERID, @BPID) as CONSTIT_RACS on CONSTITUENT.ID = CONSTIT_RACS.ID
            where
            (
                @BYPASSSECURITY = 1 or
                CONSTIT_RACS.ID is not null
            )
            and
            (
                @BYPASSSITESECURITY = 1 or 
                exists
                (
                    select 1 
                    from dbo.CONSTITUENTSITE
                    where CONSTITUENTSITE.CONSTITUENTID = CONSTITUENT.ID
                    and dbo.UFN_SECURITY_APPUSER_GRANTED_BUSINESSPROCESS_FORSITE(@CURRENTAPPUSERID, @BPID, CONSTITUENTSITE.SITEID) = 1
                )
            );

            set @NUMBEREDITED = @@ROWCOUNT;

        end try
        begin catch
            exec dbo.USP_RAISE_ERROR;
            return 1;
        end catch