REVENUESPLITAUDIT

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
DESIGNATIONID uniqueidentifier yes
AMOUNT money yes
ADDEDBYID uniqueidentifier yes
CHANGEDBYID uniqueidentifier yes
DATEADDED datetime yes
DATECHANGED datetime yes
TYPECODE tinyint yes
APPLICATIONCODE tinyint yes
BASECURRENCYID uniqueidentifier yes
ORGANIZATIONAMOUNT money yes
ORGANIZATIONEXCHANGERATEID uniqueidentifier yes
TRANSACTIONAMOUNT money yes
TRANSACTIONCURRENCYID uniqueidentifier yes
BASEEXCHANGERATEID uniqueidentifier yes
OVERRIDEBUSINESSUNITS bit yes
REVENUESPLITBUSINESSUNITOVERRIDECODEID uniqueidentifier yes

Definition

Copy

CREATE view dbo.REVENUESPLITAUDIT as 
    WITH Audit_CTE 
    as (
        select 
          -- Audit booking
          T.AUDITID
      ,T.AUDITRECORDID
      ,T.AUDITKEY
      ,T.AUDITCHANGEAGENTID
      ,T.AUDITDATE
      ,T.AUDITTYPECODE
      ,T.AUDITTYPE
      -- Audited Columns
      ,T.REVENUEID
      ,T.DESIGNATIONID
      ,T.AMOUNT
      ,T.ADDEDBYID
      ,T.CHANGEDBYID
      ,T.DATEADDED
      ,T.DATECHANGED
      ,T.TYPECODE
      ,T.APPLICATIONCODE
      ,T.BASECURRENCYID
      ,T.ORGANIZATIONAMOUNT
      ,T.ORGANIZATIONEXCHANGERATEID
      ,T.TRANSACTIONAMOUNT
      ,T.TRANSACTIONCURRENCYID
      ,T.BASEEXCHANGERATEID
      ,T.OVERRIDEBUSINESSUNITS
      ,T.REVENUESPLITBUSINESSUNITOVERRIDECODEID
            -- Counters
            ,T.FT_COUNT
            ,T.RE_COUNT
            ,DENSE_RANK() over (PARTITION by T.AUDITRECORDID order by T.RE_RECORDID asc) [RANK]
        from (
            select -- history from FINANCIALLINEITEM audit tables
              -- Audit booking
              FTLIA.AUDITID
                ,null [RE_RECORDID]
                ,FTLIA.AUDITRECORDID
                ,FTLIA.AUDITTYPECODE
                ,FTLIA.AUDITKEY
                ,FTLIA.AUDITCHANGEAGENTID
                ,FTLIA.AUDITDATE
                ,FTLIA.AUDITTYPE
                -- Audited Columns
                ,FTLIA.FINANCIALTRANSACTIONID [REVENUEID]
        ,null [DESIGNATIONID] -- Comes from the EXT history
        ,FTLIA.TRANSACTIONAMOUNT as AMOUNT
        ,FTLIA.ADDEDBYID
        ,FTLIA.CHANGEDBYID
        ,FTLIA.DATEADDED
        ,FTLIA.DATECHANGED
        ,null [TYPECODE]
        ,null [APPLICATIONCODE] -- Comes from the EXT history
        ,CS.BASECURRENCYID
        ,FTLIA.ORGAMOUNT [ORGANIZATIONAMOUNT]
        ,FT.ORGEXCHANGERATEID [ORGANIZATIONEXCHANGERATEID]
        ,FTLIA.BASEAMOUNT [TRANSACTIONAMOUNT]
        ,FT.TRANSACTIONCURRENCYID
        ,FT.BASEEXCHANGERATEID
        ,null [OVERRIDEBUSINESSUNITS]
        ,null [REVENUESPLITBUSINESSUNITOVERRIDECODEID]
                --
                ,ROW_NUMBER() over (PARTITION by FTLIA.AUDITRECORDID order by FTLIA.AUDITDATE, FTLIA.AUDITTYPECODE asc) [FT_COUNT]
                ,ROW_NUMBER() over (PARTITION by FTLIA.AUDITRECORDID order by FTLIA.AUDITDATE, FTLIA.AUDITTYPECODE desc) [RE_COUNT]

            from dbo.FINANCIALTRANSACTIONLINEITEMAUDIT FTLIA
            left outer join dbo.FINANCIALTRANSACTION as FT on FTLIA.FINANCIALTRANSACTIONID = FT.ID
            left outer join dbo.PDACCOUNTSYSTEM S on FT.PDACCOUNTSYSTEMID = S.ID
            left outer join dbo.CURRENCYSET CS on CS.ID = S.CURRENCYSETID
        where FTLIA.TYPECODE = 0    --these should always have entries
            -- If there is an entry in the extension table it would show up in the RevenueSplit view so get these too.
            --or exists (select 1 from dbo.REVENUESPLIT_EXTAUDIT where AUDITRECORDID = FTLIA.AUDITRECORDID)

            union all

            select -- history from REVENUESPLIT_EXT audit tables
              -- Audit booking
            RSEA.AUDITID
        ,RSEA.AUDITRECORDID RE_RECORDID
        ,RSEA.AUDITRECORDID
        ,RSEA.AUDITTYPECODE
        ,RSEA.AUDITKEY
        ,RSEA.AUDITCHANGEAGENTID
        ,RSEA.AUDITDATE
        ,RSEA.AUDITTYPE
        -- Audited columns
        ,null [REVENUEID]
        ,RSEA.DESIGNATIONID
        ,null [AMOUNT]
        ,RSEA.ADDEDBYID
        ,RSEA.CHANGEDBYID
        ,RSEA.DATEADDED
        ,RSEA.DATECHANGED
        ,RSEA.TYPECODE
        ,RSEA.APPLICATIONCODE
        ,null [BASECURRENCYID]
        ,null [ORGANIZATIONAMOUNT]
        ,null [ORGANIZATIONEXCHANGERATEID]
        ,null [TRANSACTIONAMOUNT]
        ,null [TRANSACTIONCURRENCYID]
        ,null [BASEEXCHANGERATEID]
        ,RSEA.OVERRIDEBUSINESSUNITS
        ,RSEA.REVENUESPLITBUSINESSUNITOVERRIDECODEID
                -- counters
                ,ROW_NUMBER() over (PARTITION by RSEA.AUDITRECORDID order by RSEA.AUDITDATE, RSEA.AUDITTYPECODE asc) [FT_COUNT]
                ,ROW_NUMBER() over (PARTITION by RSEA.AUDITRECORDID order by RSEA.AUDITDATE, RSEA.AUDITTYPECODE desc) [RE_COUNT]
            from dbo.REVENUESPLIT_EXTAUDIT RSEA
        ) T
    )  

  select 
      -- Audit booking
      CTE1.AUDITID
        ,CTE1.AUDITRECORDID
        ,CTE1.AUDITKEY
        ,CTE1.AUDITCHANGEAGENTID
        ,CTE1.AUDITDATE
        ,CTE1.AUDITTYPECODE
        ,CTE1.AUDITTYPE
        -- Audited columns
        ,coalesce(CTE1.REVENUEID, CTE2.REVENUEID, case when CTE2.AUDITID is null then FT.FINANCIALTRANSACTIONID else null end ) REVENUEID
    ,coalesce(CTE1.DESIGNATIONID, CTE2.DESIGNATIONID, case when CTE2.AUDITID is null then RE.DESIGNATIONID else null end ) DESIGNATIONID
    ,coalesce(CTE1.TRANSACTIONAMOUNT, CTE2.TRANSACTIONAMOUNT, case when CTE2.AUDITID is null then FT.TRANSACTIONAMOUNT else null end ) AMOUNT
    ,coalesce(CTE1.ADDEDBYID, CTE2.ADDEDBYID, case when CTE2.AUDITID is null then FT.ADDEDBYID else null end ) ADDEDBYID
    ,coalesce(CTE1.CHANGEDBYID, CTE2.CHANGEDBYID, case when CTE2.AUDITID is null then FT.CHANGEDBYID else null end ) CHANGEDBYID
    ,coalesce(CTE1.DATEADDED, CTE2.DATEADDED, case when CTE2.AUDITID is null then FT.DATEADDED else null end ) DATEADDED
    ,coalesce(CTE1.DATECHANGED, CTE2.DATECHANGED, case when CTE2.AUDITID is null then FT.DATECHANGED else null end ) DATECHANGED
    ,coalesce(CTE1.TYPECODE, CTE2.TYPECODE, case when CTE2.AUDITID is null then FT.TYPECODE else null end ) TYPECODE
    ,coalesce(CTE1.APPLICATIONCODE, CTE2.APPLICATIONCODE, case when CTE2.AUDITID is null then RE.APPLICATIONCODE else null end ) APPLICATIONCODE
    ,coalesce(CTE1.BASECURRENCYID, CTE2.BASECURRENCYID) BASECURRENCYID
    ,coalesce(CTE1.ORGANIZATIONAMOUNT, CTE2.ORGANIZATIONAMOUNT, case when CTE2.AUDITID is null then FT.ORGAMOUNT else null end ) ORGANIZATIONAMOUNT
    ,coalesce(CTE1.ORGANIZATIONEXCHANGERATEID, CTE2.ORGANIZATIONEXCHANGERATEID) ORGANIZATIONEXCHANGERATEID
    ,coalesce(CTE1.TRANSACTIONAMOUNT, CTE2.TRANSACTIONAMOUNT, case when CTE2.AUDITID is null then FT.TRANSACTIONAMOUNT else null end ) TRANSACTIONAMOUNT
    ,coalesce(CTE1.TRANSACTIONCURRENCYID, CTE2.TRANSACTIONCURRENCYID) TRANSACTIONCURRENCYID
    ,coalesce(CTE1.BASEEXCHANGERATEID, CTE2.BASEEXCHANGERATEID) BASEEXCHANGERATEID
    ,coalesce(CTE1.OVERRIDEBUSINESSUNITS, CTE2.OVERRIDEBUSINESSUNITS, case when CTE2.AUDITID is null then RE.OVERRIDEBUSINESSUNITS else null end ) OVERRIDEBUSINESSUNITS
    ,coalesce(CTE1.REVENUESPLITBUSINESSUNITOVERRIDECODEID, CTE2.REVENUESPLITBUSINESSUNITOVERRIDECODEID, case when CTE2.AUDITID is null then RE.REVENUESPLITBUSINESSUNITOVERRIDECODEID else null end ) REVENUESPLITBUSINESSUNITOVERRIDECODEID
    from Audit_CTE [CTE1]
    left outer 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 outer join dbo.FINANCIALTRANSACTIONLINEITEM FT on FT.ID = CTE1.AUDITRECORDID
    left outer join dbo.REVENUESPLIT_EXT RE on RE.ID = CTE1.AUDITRECORDID;