UFN_QUERY_STANDINGORDERSEXPORTPROCESSSTANDARDOUTPUT

Return

Return Type
table

Parameters

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

Definition

Copy


        CREATE function [dbo].[UFN_QUERY_STANDINGORDERSEXPORTPROCESSSTANDARDOUTPUT]
        (
            @PARAMETERSETID uniqueidentifier = null,
                    @APPUSERID uniqueidentifier
        )
        returns table
        as

        return 
        (                
                select
                    REVENUESCHEDULESTANDINGORDERPAYMENT.ID as REVENUEID,                                        
          CONSTITUENT.ID as CONSTITUENTID,
                    dbo.UFN_CONSTITUENT_BUILDNAME(CONSTITUENT.ID) as CONSTITUENTNAME,
                    (select ADDRESSBLOCK from dbo.UFN_ADDRESS_GETSEASONALADDRESS(CONSTITUENT.ID, getdate())) as ADDRESSBLOCK,
          (select CITY from dbo.UFN_ADDRESS_GETSEASONALADDRESS(CONSTITUENT.ID, getdate())) as CITY,
          (select STATE from dbo.UFN_ADDRESS_GETSEASONALADDRESS(CONSTITUENT.ID, getdate())) as COUNTY,
          (select POSTCODE from dbo.UFN_ADDRESS_GETSEASONALADDRESS(CONSTITUENT.ID, getdate())) as POSTCODE,
          (select COUNTRY from dbo.UFN_ADDRESS_GETSEASONALADDRESS(CONSTITUENT.ID, getdate())) as COUNTRY,
                    CONSTITUENTACCOUNT.ACCOUNTNUMBER as ACCOUNTNUMBER,
                    dbo.UFN_STANDINGORDER_REFERENCENUMBER_FORDISPLAY(REVENUE.ID) as REFERENCENUMBER,
                    REVENUESCHEDULESTANDINGORDERPAYMENT.REFERENCEDATE as REFERENCEDATE,
                    FINANCIALINSTITUTION.FINANCIALINSTITUTION as BANKNAME,
                    FINANCIALINSTITUTION.BRANCHNAME as BRANCHNAME,
                    FINANCIALINSTITUTION.SORTCODE as SORTCODE,
                    FINANCIALINSTITUTION.FORMATTEDADDRESS as BRANCHADDRESS,
                    (case REVENUESCHEDULE.FREQUENCY 
                        when 'Single Installment' then 'Single Instalment'
                        else REVENUESCHEDULE.FREQUENCY
                     end) as INSTALMENTFREQUENCY,   
                    REVENUESCHEDULE.STARTDATE as INSTALMENTSTARTDATE,
                    (case REVENUE.TRANSACTIONTYPECODE
                        when 2 then NULL
                        else REVENUESCHEDULE.NUMBEROFINSTALLMENTS
                     end) as NUMBEROFINSTALMENTS,   

                    ((case dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('97d98e59-5b0b-446f-bf48-de8709f50afe'
            when 0 then REVENUE.AMOUNT
            else REVENUE.TRANSACTIONAMOUNT
            end ) /                
                     (case
             when REVENUESCHEDULE.NUMBEROFINSTALLMENTS > 0 then REVENUESCHEDULE.NUMBEROFINSTALLMENTS 
             else 1 
            end)) as INSTALMENTAMOUNT,                
                    dbo.UFN_REVENUE_GETLASTTRANSACTIONDATE(REVENUE.ID) as INSTALMENTENDDATE,
                    CONSTITUENTACCOUNT.ACCOUNTNAME as NAMEONACCOUNT,
          TRANSACTIONCURRENCY.ID as [TRANSACTIONCURRENCYID]
        from
                    dbo.REVENUESCHEDULESTANDINGORDERPAYMENT 
                        inner join REVENUESCHEDULE on REVENUESCHEDULESTANDINGORDERPAYMENT.ID = REVENUESCHEDULE.ID
                        inner join REVENUE on REVENUESCHEDULE.ID = REVENUE.ID
                        inner join dbo.CONSTITUENTACCOUNT on REVENUESCHEDULESTANDINGORDERPAYMENT.CONSTITUENTACCOUNTID = CONSTITUENTACCOUNT.ID
                        inner join dbo.FINANCIALINSTITUTION on CONSTITUENTACCOUNT.FINANCIALINSTITUTIONID = FINANCIALINSTITUTION.ID
                        inner join dbo.CONSTITUENT on CONSTITUENTACCOUNT.CONSTITUENTID = CONSTITUENT.ID
                        left join dbo.CURRENCY as TRANSACTIONCURRENCY on TRANSACTIONCURRENCY.ID = REVENUE.TRANSACTIONCURRENCYID  
                where 
                    REVENUESCHEDULESTANDINGORDERPAYMENT.STANDINGORDERSETUP = 0 and
          (TRANSACTIONCURRENCY.ISO4217 = 'GBP' or
           dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('97d98e59-5b0b-446f-bf48-de8709f50afe') = 0) and
                    (
                        (dbo.UFN_APPUSER_ISSYSADMIN(@APPUSERID) = 1)
                         or
                        (
                            (
                                (
                                    (
                    --JamesWill WI138606 2011-01-25 Avoid calling in to UFN_SITEID_MAPFROM_REVENUEID which has 

                    --rather poor performance by getting the sites straight from the designation for these records. 

                    --The revenue records which support standing orders will always be secured via the designation

                    --so some of the special processing that UFN_SITEID_MAPFROM_REVENUEID does is unnecessary.

                                        select count(*) from dbo.REVENUESPLIT
                    where REVENUESPLIT.REVENUEID = REVENUE.ID 
                                        and
                                        dbo.UFN_SECURITY_APPUSER_GRANTED_BUSINESSPROCESS_FORSITE
                                        (
                                            /*userid*/ @APPUSERID,
                                            /*businessprocesscatalogid*/ 'E55B96E9-7FDA-4B19-AC2C-D38FE75469AF',
                                            /*siteid*/ dbo.UFN_SITEID_MAPFROM_DESIGNATIONID(REVENUESPLIT.DESIGNATIONID)
                                        ) = 1
                                    ) > 0
                                )
                            )
                        )
                    )
            )