REVENUEGLDISTRIBUTIONAUDIT

Fields

Field Field Type Null Description
AUDITID uniqueidentifier
AUDITRECORDID uniqueidentifier
AUDITKEY uniqueidentifier
AUDITCHANGEAGENTID uniqueidentifier
AUDITDATE datetime
AUDITTYPECODE tinyint
AUDITTYPE nvarchar(13) yes
REVENUEID uniqueidentifier yes
GLPAYMENTMETHODREVENUETYPEMAPPINGID uniqueidentifier yes
PROJECT nvarchar(100) yes
REFERENCE nvarchar(255) yes
AMOUNT money yes
ADDEDBYID uniqueidentifier yes
CHANGEDBYID uniqueidentifier yes
DATEADDED datetime yes
DATECHANGED datetime yes
ACCOUNT nvarchar(100) yes
TRANSACTIONTYPECODE tinyint yes
GLTRANSACTIONID uniqueidentifier yes
OUTDATED bit yes
BASECURRENCYID uniqueidentifier yes
ORGANIZATIONAMOUNT money yes
ORGANIZATIONEXCHANGERATEID uniqueidentifier yes
TRANSACTIONAMOUNT money yes
TRANSACTIONCURRENCYID uniqueidentifier yes
BASEEXCHANGERATEID uniqueidentifier yes

Definition

Copy

CREATE view dbo.REVENUEGLDISTRIBUTIONAUDIT as 
        WITH Audit_CTE 
    as (
        select T.AUDITID
            ,T.AUDITRECORDID
            ,T.AUDITKEY
            ,T.AUDITTYPECODE
            ,T.FT_COUNT
            ,T.RE_COUNT
            ,DENSE_RANK() over (PARTITION by T.AUDITRECORDID order by T.RE_RECORDID asc) [RANK]
            ,T.AUDITCHANGEAGENTID
            ,T.AUDITDATE
            ,T.AUDITTYPE
            ,T.REVENUEID
            ,T.GLPAYMENTMETHODREVENUETYPEMAPPINGID
            ,T.PROJECT
            ,T.REFERENCE
            ,T.AMOUNT
            ,T.ADDEDBYID
            ,T.CHANGEDBYID
            ,T.DATEADDED
            ,T.DATECHANGED
            ,T.ACCOUNT
            ,T.TRANSACTIONTYPECODE
            ,T.GLTRANSACTIONID
            ,T.OUTDATED
            ,T.BASECURRENCYID
            ,T.ORGANIZATIONAMOUNT
            ,T.ORGANIZATIONEXCHANGERATEID
            ,T.TRANSACTIONAMOUNT
            ,T.TRANSACTIONCURRENCYID
            ,T.BASEEXCHANGERATEID
        from (
            select JE.AUDITID
                ,null [RE_RECORDID]
                ,JE.AUDITRECORDID
                ,JE.AUDITTYPECODE
                ,ROW_NUMBER() over (PARTITION by JE.AUDITRECORDID order by JE.AUDITDATE, JE.AUDITTYPECODE asc) [FT_COUNT]
                ,ROW_NUMBER() over (PARTITION by JE.AUDITRECORDID order by JE.AUDITDATE, JE.AUDITTYPECODE desc) [RE_COUNT]
                ,JE.AUDITKEY
                ,JE.AUDITCHANGEAGENTID
                ,JE.AUDITDATE
                ,JE.AUDITTYPE
                ,FTLI.FINANCIALTRANSACTIONID as REVENUEID
                ,null as GLPAYMENTMETHODREVENUETYPEMAPPINGID
                ,null as PROJECT
                ,JE.COMMENT as REFERENCE
                ,JE.BASEAMOUNT as AMOUNT
                ,JE.ADDEDBYID
                ,JE.CHANGEDBYID
                ,JE.DATEADDED
                ,JE.DATECHANGED
                ,null as ACCOUNT
                ,JE.TRANSACTIONTYPECODE
                ,JE.AUDITRECORDID as GLTRANSACTIONID
                ,null OUTDATED
                ,V.BASECURRENCYID
                ,JE.ORGAMOUNT as ORGANIZATIONAMOUNT
                ,null as ORGANIZATIONEXCHANGERATEID
                ,JE.TRANSACTIONAMOUNT as TRANSACTIONAMOUNT
                ,JE.TRANSACTIONCURRENCYID
                ,null BASEEXCHANGERATEID
            from dbo.JOURNALENTRYAUDIT JE
            left join dbo.FINANCIALTRANSACTIONLINEITEM FTLI on JE.FINANCIALTRANSACTIONLINEITEMID = FTLI.ID
            left join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I V with (noexpand) on FTLI.FINANCIALTRANSACTIONID = V.FINANCIALTRANSACTIONID

            union all

            select JE.AUDITID
                ,JE.AUDITRECORDID [RE_RECORDID]
                ,JE.AUDITRECORDID
                ,JE.AUDITTYPECODE
                ,ROW_NUMBER() over (PARTITION by JE.AUDITRECORDID order by JE.AUDITDATE, JE.AUDITTYPECODE asc) [FT_COUNT]
                ,ROW_NUMBER() over (PARTITION by JE.AUDITRECORDID order by JE.AUDITDATE, JE.AUDITTYPECODE desc) [RE_COUNT]
                ,JE.AUDITKEY
                ,JE.AUDITCHANGEAGENTID
                ,JE.AUDITDATE
                ,JE.AUDITTYPE
                ,null as REVENUEID
                ,JE.GLPAYMENTMETHODREVENUETYPEMAPPINGID
                ,JE.PROJECT
                ,null as REFERENCE
                ,null as AMOUNT
                ,JE.ADDEDBYID
                ,JE.CHANGEDBYID
                ,JE.DATEADDED
                ,JE.DATECHANGED
                ,JE.ACCOUNT
                ,null as TRANSACTIONTYPECODE
                ,null as GLTRANSACTIONID
                ,JE.OUTDATED
                ,V.BASECURRENCYID
                ,null as ORGANIZATIONAMOUNT
                ,JE.PRECALCORGANIZATIONEXCHANGERATEID as ORGANIZATIONEXCHANGERATEID
                ,null as TRANSACTIONAMOUNT
                ,null as TRANSACTIONCURRENCYID
                ,JE.PRECALCBASEEXCHANGERATEID BASEEXCHANGERATEID
            from dbo.JOURNALENTRY_EXTAUDIT JE
            left join dbo.JOURNALENTRY on JE.AUDITRECORDID = JOURNALENTRY.ID
            left join dbo.FINANCIALTRANSACTIONLINEITEM FTLI on JOURNALENTRY.FINANCIALTRANSACTIONLINEITEMID = FTLI.ID
            left join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I V with (noexpand) on FTLI.FINANCIALTRANSACTIONID = V.FINANCIALTRANSACTIONID
            where JE.TABLENAMECODE = 1
        ) T
    )

    select CTE1.AUDITID
        ,CTE1.AUDITRECORDID
        ,CTE1.AUDITKEY
        ,CTE1.AUDITCHANGEAGENTID
        ,CTE1.AUDITDATE
        ,CTE1.AUDITTYPECODE
        ,CTE1.AUDITTYPE
        ,coalesce(CTE1.REVENUEID, CTE2.REVENUEID, CASE WHEN CTE2.AUDITID is null THEN FT.FINANCIALTRANSACTIONID ELSE NULL END) REVENUEID
        ,coalesce(CTE1.GLPAYMENTMETHODREVENUETYPEMAPPINGID, CTE2.GLPAYMENTMETHODREVENUETYPEMAPPINGID, CASE WHEN CTE2.AUDITID is null THEN RE.GLPAYMENTMETHODREVENUETYPEMAPPINGID ELSE NULL END) GLPAYMENTMETHODREVENUETYPEMAPPINGID
        ,coalesce(CTE1.PROJECT, CTE2.PROJECT, CASE WHEN CTE2.AUDITID is null THEN RE.PROJECT ELSE null end) PROJECT
        ,coalesce(CTE1.REFERENCE, CTE2.REFERENCE, CASE WHEN CTE2.AUDITID is null THEN JE.COMMENT ELSE null end) REFERENCE
        ,coalesce(CTE1.AMOUNT, CTE2.AMOUNT, CASE WHEN CTE2.AUDITID is null THEN JE.BASEAMOUNT ELSE NULL END) AMOUNT
        ,CTE1.ADDEDBYID
        ,CTE1.CHANGEDBYID
        ,CTE1.DATEADDED
        ,CTE1.DATECHANGED
        ,coalesce(CTE1.ACCOUNT, CTE2.ACCOUNT, CASE WHEN CTE2.AUDITID is null THEN RE.ACCOUNT ELSE NULL END) ACCOUNT
        ,coalesce(CTE1.TRANSACTIONTYPECODE, CTE2.TRANSACTIONTYPECODE, CASE WHEN CTE2.AUDITID is null THEN JE.TRANSACTIONTYPECODE ELSE NULL END) TRANSACTIONTYPECODE
        ,coalesce(CTE1.GLTRANSACTIONID, CTE2.GLTRANSACTIONID, CASE WHEN CTE2.AUDITID is null THEN JE.ID ELSE NULL END) GLTRANSACTIONID
        ,coalesce(CTE1.OUTDATED, CTE2.OUTDATED, CASE WHEN CTE2.AUDITID is null THEN RE.OUTDATED ELSE NULL END) OUTDATED
        ,coalesce(CTE1.BASECURRENCYID, CTE2.BASECURRENCYID) BASECURRENCYID
        ,coalesce(CTE1.ORGANIZATIONAMOUNT, CTE2.ORGANIZATIONAMOUNT, CASE WHEN CTE2.AUDITID is null THEN JE.ORGAMOUNT ELSE NULL END) ORGANIZATIONAMOUNT
        ,coalesce(CTE1.ORGANIZATIONEXCHANGERATEID, CTE2.ORGANIZATIONEXCHANGERATEID, CASE WHEN CTE2.AUDITID is null THEN RE.PRECALCORGANIZATIONEXCHANGERATEID ELSE NULL END) ORGANIZATIONEXCHANGERATEID
        ,coalesce(CTE1.TRANSACTIONAMOUNT, CTE2.TRANSACTIONAMOUNT, CASE WHEN CTE2.AUDITID is null THEN JE.TRANSACTIONAMOUNT ELSE NULL END) TRANSACTIONAMOUNT
        ,coalesce(CTE1.TRANSACTIONCURRENCYID, CTE2.TRANSACTIONCURRENCYID, CASE WHEN CTE2.AUDITID is null THEN JE.TRANSACTIONCURRENCYID ELSE NULL END) TRANSACTIONCURRENCYID
        ,coalesce(CTE1.BASEEXCHANGERATEID, CTE2.BASEEXCHANGERATEID, CASE WHEN CTE2.AUDITID is null THEN RE.PRECALCBASEEXCHANGERATEID ELSE NULL END) BASEEXCHANGERATEID
    from Audit_CTE [CTE1]
    left join Audit_CTE [CTE2] on (CTE1.AUDITRECORDID = CTE2.AUDITRECORDID) and (CTE1.AUDITTYPECODE != 2 and (((CTE1.[RANK] - 1 = CTE2.[RANK]) and (CTE2.RE_COUNT = 1)) or ((CTE1.[RANK] + 1 = CTE2.[RANK]) and (CTE2.FT_COUNT = 1))) or (CTE1.AUDITTYPECODE = 2 and CTE2.AUDITTYPECODE = 2 and CTE1.AUDITID != CTE2.AUDITID))
    left join dbo.JOURNALENTRY JE on JE.ID = CTE1.AUDITRECORDID
    left join dbo.FINANCIALTRANSACTIONLINEITEM FT on FT.ID = JE.FINANCIALTRANSACTIONLINEITEMID
    left join dbo.JOURNALENTRY_EXT RE on RE.ID = CTE1.AUDITRECORDID;