USP_BBNC_GETBATCHTRANSACTIONCOUNT

Retrieves a count of records in batches from the instance ID specified for Blackbaud Internet Solutions whose statuses are open, waiting for approval, or approved.

Parameters

Parameter Parameter Type Mode Description
@BATCHID uniqueidentifier IN

Definition

Copy


            CREATE procedure [dbo].[USP_BBNC_GETBATCHTRANSACTIONCOUNT](@BATCHID uniqueidentifier)
            with execute as owner
            as

            begin
                declare @TABLENAME nvarchar(128);
                declare @SQL nvarchar(300);
                declare @RECORDCOUNT int;
                declare @PARAMS nvarchar(50);

                select top 1 @TABLENAME = BATCHTYPECATALOG.BASETABLENAME
                    from dbo.BATCH
                    inner join dbo.BATCHTEMPLATE on BATCH.BATCHTEMPLATEID = BATCHTEMPLATE.ID
                    inner join dbo.BATCHTYPECATALOG on BATCHTEMPLATE.BATCHTYPECATALOGID = BATCHTYPECATALOG.ID
                    where BATCH.ID = @BATCHID
                    order by BATCH.DATEADDED;

                if not @TABLENAME is null
                    begin
                        if @TABLENAME = 'BATCHREVENUE' or @TABLENAME = 'BATCHCONSTITUENTUPDATE' or @TABLENAME = 'BATCHMEMBERSHIPDUES'                            
                            begin
                --CRM batch types

                                declare @BBNCTABLENAME nvarchar(150);
                set @BBNCTABLENAME = @TABLENAME + N'BBNCINFO';

                declare @FKID nvarchar(250);
                set @FKID = @TABLENAME + N'ID';

                set @SQL = N'select @RECORDCOUNT = count(*) from dbo.' + @TABLENAME + ' inner join dbo.' + @BBNCTABLENAME +
                                ' on dbo.' + @TABLENAME + '.ID = dbo.' + @BBNCTABLENAME + '.' + @FKID + ' where BATCHID = @BATCHID';                    
                            end

                        else
              --BBIS batch types

                            begin
                                set @SQL = N'select @RECORDCOUNT = count(*) from dbo.' + @TABLENAME + ' where BATCHID = @BATCHID';
                            end

                        set @PARAMS = N'@BATCHID uniqueidentifier, @RECORDCOUNT int OUTPUT';
                        exec sp_executesql @SQL, @params, @BATCHID = @BATCHID, @RECORDCOUNT = @RECORDCOUNT OUTPUT;
            select @RECORDCOUNT as RECORDCOUNT;
                    end
                else
                    begin
                        set @RECORDCOUNT = 0;
                        select @RECORDCOUNT as RECORDCOUNT;
                    end
            end