USP_DATAFORMTEMPLATE_VIEW_REVENUEBATCHHOUSEHOLDINFO

The load procedure used by the view dataform template "Revenue Batch Household Information View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@ISHOUSEHOLD bit INOUT Is household
@NAME nvarchar(700) INOUT Name
@CURRENTMEMBERCOUNT int INOUT Current member count
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_REVENUEBATCHHOUSEHOLDINFO
                (
                    @ID uniqueidentifier,
                    @ISHOUSEHOLD bit = null output,
                    @NAME nvarchar(700) = null output,
                    @CURRENTMEMBERCOUNT int = null output,
                    @DATALOADED bit = 0 output,
                    @CURRENTAPPUSERID uniqueidentifier
                ) as
                begin
                    set nocount on;

                    declare @CURRENTDATE datetime;
                    set @CURRENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate());                                                       

                    if exists(select top(1) ID from dbo.CONSTITUENT where CONSTITUENT.ID = @ID)
                    begin

                        -- Check constituent security.  The check is done manually since it only applies to existing constituents.

                        if (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1) or
                           ((dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORCONSTIT(@CURRENTAPPUSERID, '39eead9c-6cb2-4a76-92b0-ed4f8156d26b', @ID) = 1) and -- Constituent group security

                           exists (select 1 from dbo.UFN_SITEID_MAPFROM_CONSTITUENTID(@ID) where dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORSITE(@CURRENTAPPUSERID, '39eead9c-6cb2-4a76-92b0-ed4f8156d26b', SITEID) = 1)) -- Site security

                        begin

                            select
                                @DATALOADED = 1,
                                @NAME = CONSTITUENT_NF.NAME,
                                @ISHOUSEHOLD = case when GROUPDATA.GROUPTYPECODE = 0 then 1 else 0 end
                            from 
                                dbo.CONSTITUENT
                            left join 
                                dbo.GROUPDATA on CONSTITUENT.ID = GROUPDATA.ID
                            outer apply
                                dbo.UFN_CONSTITUENT_DISPLAYNAME(CONSTITUENT.ID) CONSTITUENT_NF
                            where 
                                CONSTITUENT.ID = @ID

                            select 
                                @CURRENTMEMBERCOUNT = count(GROUPMEMBER.ID) 
                            from 
                                dbo.GROUPMEMBER
                            left outer join 
                                dbo.GROUPMEMBERDATERANGE on GROUPMEMBER.ID = GROUPMEMBERDATERANGE.GROUPMEMBERID
                            where ((GROUPMEMBERDATERANGE.DATEFROM is null and (GROUPMEMBERDATERANGE.DATETO is null or GROUPMEMBERDATERANGE.DATETO > @CURRENTDATE))
                                or (GROUPMEMBERDATERANGE.DATETO is null and (GROUPMEMBERDATERANGE.DATEFROM is null or GROUPMEMBERDATERANGE.DATEFROM <= @CURRENTDATE)) 
                                or (GROUPMEMBERDATERANGE.DATEFROM <= @CURRENTDATE and GROUPMEMBERDATERANGE.DATETO > @CURRENTDATE))
                            and 
                                GROUPMEMBER.GROUPID = @ID;

                        end
                        else
                        begin
                            raiserror('BBERR_DB_RECORDSECURITY_PERMISSION_DENIED', 13, 1)
                        end
                    end

                    if @DATALOADED = 0
                        if exists(select top(1) ID from dbo.BATCHREVENUECONSTITUENT where BATCHREVENUECONSTITUENT.ID = @ID)
                        begin

                            select
                                @DATALOADED = 1,
                                @NAME = BATCHREVENUECONSTITUENT.NAME,
                                @ISHOUSEHOLD = case 
                                    when (BATCHREVENUECONSTITUENT.GROUPTYPECODE = 0 and BATCHREVENUECONSTITUENT.ISGROUP = 1) then 1 
                                    else 0 
                                end
                            from 
                                dbo.BATCHREVENUECONSTITUENT
                            where 
                                BATCHREVENUECONSTITUENT.ID = @ID

                            select 
                                @CURRENTMEMBERCOUNT = count(BATCHREVENUECONSTITUENTGROUPMEMBER.ID) 
                            from 
                                dbo.BATCHREVENUECONSTITUENTGROUPMEMBER
                            left outer join 
                                dbo.GROUPMEMBERDATERANGE on BATCHREVENUECONSTITUENTGROUPMEMBER.ID = GROUPMEMBERDATERANGE.GROUPMEMBERID
                            where
                                BATCHREVENUECONSTITUENTGROUPMEMBER.GROUPID = @ID;

                        end

                    return 0;
                end