UFN_CREDITCARDPROCESSING_MERCHANTACCOUNTSVALIDFORUSER

Verifies that an application user has access to all merchant accounts associated with a credit card processing process.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN
@CREDITCARDPROCESSINGID uniqueidentifier IN
@SECURITYFEATUREID uniqueidentifier IN
@SECURITYFEATURETYPE tinyint IN

Definition

Copy


            create function dbo.UFN_CREDITCARDPROCESSING_MERCHANTACCOUNTSVALIDFORUSER
            (
                @CURRENTAPPUSERID uniqueidentifier,
                @CREDITCARDPROCESSINGID uniqueidentifier,
                @SECURITYFEATUREID uniqueidentifier = null,
                @SECURITYFEATURETYPE tinyint = null
            )
            returns bit
            as begin

                declare @valid bit = 1;
                declare @MULTICURRENCYENABLED bit;
                set @MULTICURRENCYENABLED = dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION('Multicurrency');

                if @MULTICURRENCYENABLED = 0
                begin
                    if exists
                    (
                        select
                            1
                        from
                            dbo.CREDITCARDPROCESSING
                            inner join dbo.MERCHANTACCOUNT on CREDITCARDPROCESSING.MERCHANTACCOUNTID = MERCHANTACCOUNT.ID
                        where
                            CREDITCARDPROCESSING.ID = @CREDITCARDPROCESSINGID
                            and
                            dbo.UFN_MERCHANTACCOUNT_USERHASSITEACCESS(MERCHANTACCOUNT.ID, @CURRENTAPPUSERID, @SECURITYFEATUREID, @SECURITYFEATURETYPE) = 0
                    )
                    select @valid = 0;
                end

                if @MULTICURRENCYENABLED = 1    
                begin
                    if exists
                    (
                        select
                            1
                        from
                            dbo.CREDITCARDPROCESSING
                            inner join dbo.CREDITCARDPROCESSINGMERCHANTACCOUNT on CREDITCARDPROCESSING.ID = CREDITCARDPROCESSINGMERCHANTACCOUNT.CREDITCARDPROCESSINGID
                            inner join dbo.MERCHANTACCOUNT on MERCHANTACCOUNT.ID = CREDITCARDPROCESSINGMERCHANTACCOUNT.MERCHANTACCOUNTID
                        where
                            CREDITCARDPROCESSINGMERCHANTACCOUNT.CREDITCARDPROCESSINGID = @CREDITCARDPROCESSINGID
                            and
                            dbo.UFN_MERCHANTACCOUNT_USERHASSITEACCESS(MERCHANTACCOUNT.ID, @CURRENTAPPUSERID, @SECURITYFEATUREID, @SECURITYFEATURETYPE) = 0
                    )
                    select @valid = 0;
                end

                return @valid;

            end