USP_GLOBALCHANGE_DELETEUSERDEFINEDCONSTITUENCY

Parameters

Parameter Parameter Type Mode Description
@IDSETREGISTERID uniqueidentifier IN
@CONSTITUENCYCODEID 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_DELETEUSERDEFINEDCONSTITUENCY
            (
                @IDSETREGISTERID uniqueidentifier = null
                @CONSTITUENCYCODEID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier = null,
                @ASOF as datetime = null,
                @NUMBERADDED int = 0 output,
                @NUMBEREDITED int = 0 output,
                @NUMBERDELETED int = 0 output,
                @CURRENTAPPUSERID uniqueidentifier
            )
            as            
                set nocount off;

                declare @CURRENTDATE datetime

                set @CURRENTDATE = getdate();
                set @NUMBERADDED = 0;
                set @NUMBEREDITED = 0;
                set @NUMBERDELETED = 0;

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

                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;                                

                begin try
                    declare @CONTEXTCACHE varbinary(128);

                    /* Cache current context information@ */
                    set @CONTEXTCACHE = CONTEXT_INFO();

                    /* Set CONTEXT_INFO to @CHANGEAGENTID */
                    set CONTEXT_INFO @CHANGEAGENTID;

                    /* delete records */
                    delete from 
                        dbo.CONSTITUENCY 
                    where 
                        CONSTITUENCY.CONSTITUENCYCODEID = @CONSTITUENCYCODEID and
                        CONSTITUENCY.CONSTITUENTID in(select ID from dbo.UFN_CONSTITUENT_GETRECORDSINSELECTION_FORBUSINESSPROCESS(@CURRENTAPPUSERID, @IDSETREGISTERID, @BPID, @BYPASSSECURITY, @BYPASSSITESECURITY));

                    set @NUMBERDELETED = @@ROWCOUNT;

                    /* Reset CONTEXT_INFO to previous value */
                    if not @contextCache is null
                        set CONTEXT_INFO @CONTEXTCACHE;

                    delete dbo.CONSTITUENCYDATERANGE
                    from
                        dbo.CONSTITUENCYDATERANGE
                        left join dbo.CONSTITUENCY
                            on CONSTITUENCY.ID = CONSTITUENCYDATERANGE.CONSTITUENCYRECORDIDENTIFIER
                    where
                        CONSTITUENCY.ID is null
                        and CONSTITUENCYDATERANGE.CONSTITUENCYDEFINITIONID = @CONSTITUENCYCODEID;
                end try

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