UFN_APPUSER_HASPERMISSIONFORDECLARATION

Returns a row if the user has permission for the tax declaration.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@APPUSERID uniqueidentifier IN
@CHARITYCLAIMREFERENCENUMBERID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_APPUSER_HASPERMISSIONFORDECLARATION
            (
                @APPUSERID uniqueidentifier,
                @CHARITYCLAIMREFERENCENUMBERID uniqueidentifier
            )
            returns table
            as return
            (
                with CTE_REFERENCENUMBERSITES as
                (
                    select 
                        CHARITYCLAIMREFERENCENUMBERSITE.SITEID
                    from dbo.CHARITYCLAIMREFERENCENUMBERSITE
                    where
                        CHARITYCLAIMREFERENCENUMBERSITE.CHARITYCLAIMREFERENCENUMBERID = @CHARITYCLAIMREFERENCENUMBERID
                )
                select
                    1 as PERMISSIONGRANTED
                from
                (
                    select 
                        CTE_REFERENCENUMBERSITES.SITEID
                    from CTE_REFERENCENUMBERSITES

                    union all

                    -- Handle the default CCRN

                    select 
                        DERIVED.SITEID
                    from 
                    (
                        -- null indicates "no site"

                        select null as SITEID

                        union all

                        -- Include sites not explicitly associated with

                        -- a CCRN since they are included on the default

                        -- CCRN as well

                        select
                            SITE.ID
                        from dbo.SITE
                        where
                            not exists
                            (
                                select
                                    1
                                from dbo.CHARITYCLAIMREFERENCENUMBERSITE
                                where
                                    CHARITYCLAIMREFERENCENUMBERSITE.SITEID = SITE.ID
                            )
                    ) DERIVED
                    where
                        not exists (select 1 from CTE_REFERENCENUMBERSITES)
                ) as DERIVEDTABLE
                where dbo.UFN_SITEALLOWEDFORUSER(@APPUSERID, DERIVEDTABLE.SITEID) = 1
            )