This option will reset the home page of this site. Restoring any closed widgets or categories.

Reset

SQL View for Payables Transactions with AA Codes

Guys

There is a smartlist object for AP transactions, but this smartlist does not show the analytical accounting information in it.

So in this post, I have decided to post a SQL view to generate a view to show AP transaction information along with the analytical accounting information.


IF EXISTS ( SELECT  *
            FROM    sys.views
            WHERE   object_id = OBJECT_ID(N'[dbo].[vw_AAG20000]') )
    DROP VIEW  [dbo].[vw_AAG20000]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [dbo].[vw_AAG20000]
AS  SELECT  [aaSubLedgerHdrID],
            [SERIES],
            [DOCTYPE] = CASE WHEN [DOCTYPE] = 0 THEN 1
                             WHEN [DOCTYPE] = 1 THEN 6
                             ELSE 5
                        END,
            [DOCNUMBR],
            [Master_ID],
            [aaHdrErrors],
            [DEX_ROW_ID]
    FROM    [dbo].[AAG20000]

GO

IF EXISTS ( SELECT  *
            FROM    sys.views
            WHERE   object_id = OBJECT_ID(N'[dbo].[vw_APTransactions]') )
    DROP VIEW  [dbo].[vw_APTransactions]

GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [dbo].[vw_APTransactions]
AS  SELECT  *,
            'Open' AS STATUS
    FROM    dbo.PM20000
    UNION ALL
    SELECT  *,
            'History' AS STATUS
    FROM    dbo.PM30200

GO

IF EXISTS ( SELECT  *
            FROM    sys.views
            WHERE   object_id = OBJECT_ID(N'[dbo].[vw_APAAInformation]') )
    DROP VIEW  [dbo].[vw_APAAInformation]

GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [dbo].[vw_APAAInformation]
AS  SELECT  A.VENDORID,
            I.VENDNAME,
            I.VNDCLSID AS VENDORCLASS,
            J.VNDCLDSC AS VENDORCLASSDESC,
            A.VCHRNMBR AS VOUCHERNO,
            A.DOCNUMBR AS INVOICENO,
            A.DOCDATE AS DOCUMENTDATE,
            A.PSTGDATE AS POSTINGDATE,
            G.ACTNUMST AS GLACCOUNTNO,
            H.ACTDESCR AS GPACCOUNTDESC,
            F.aaTrxDimCode AS DIMCODE,
            F.aaTrxDimCodeDescr AS DIMCODEDESC,
            ( C.DEBITAMT - C.CRDTAMNT ) AS AMOUNT,
            YEAR(A.PSTGDATE) AS TRXYEAR,
            'Week ' + REPLICATE('0', 2 - LEN({fn WEEK(A.PSTGDATE)}))
            + LTRIM(RTRIM(STR({fn WEEK(A.PSTGDATE)}))) AS WEEKNO,
            REPLICATE('0', 2 - LEN(MONTH(A.PSTGDATE)))
            + ( LTRIM(RTRIM(STR(MONTH(A.PSTGDATE)))) + ':'
                + ( LEFT({fn  MONTHNAME(A.PSTGDATE)}, 3) ) + ''''
                + SUBSTRING(LTRIM(RTRIM(STR(YEAR(A.PSTGDATE)))), 3, 2) ) AS PERIOD,
            QUARTERNO = CASE {fn QUARTER(A.PSTGDATE)}
                          WHEN 1
                          THEN 'Q1:Jan' + ''''
                               + SUBSTRING(LTRIM(RTRIM(STR(YEAR(A.PSTGDATE)))),
                                           3, 2) + '-Mar' + ''''
                               + SUBSTRING(LTRIM(RTRIM(STR(YEAR(A.PSTGDATE)))),
                                           3, 2)
                          WHEN 2
                          THEN 'Q2:Apr' + ''''
                               + SUBSTRING(LTRIM(RTRIM(STR(YEAR(A.PSTGDATE)))),
                                           3, 2) + '-Jun' + ''''
                               + SUBSTRING(LTRIM(RTRIM(STR(YEAR(A.PSTGDATE)))),
                                           3, 2)
                          WHEN 3
                          THEN 'Q3:Jul' + ''''
                               + SUBSTRING(LTRIM(RTRIM(STR(YEAR(A.PSTGDATE)))),
                                           3, 2) + '-Sep' + ''''
                               + SUBSTRING(LTRIM(RTRIM(STR(YEAR(A.PSTGDATE)))),
                                           3, 2)
                          ELSE 'Q4:Oct' + ''''
                               + SUBSTRING(LTRIM(RTRIM(STR(YEAR(A.PSTGDATE)))),
                                           3, 2) + '-Dec' + ''''
                               + SUBSTRING(LTRIM(RTRIM(STR(YEAR(A.PSTGDATE)))),
                                           3, 2)
                        END,
            A.[STATUS] AS STATUS,
            DOCUMENTTYPE = CASE WHEN A.DOCTYPE = 1 THEN 'Invoices'
                                WHEN A.DOCTYPE = 5 THEN 'Credit Notes'
                                WHEN A.DOCTYPE = 6
                                     AND A.CHEKBKID = 'XXXXX' THEN 'Checks'
                                WHEN A.DOCTYPE = 6
                                     AND A.CHEKBKID = 'YYYYY' THEN 'ACH'
                                WHEN A.DOCTYPE = 6
                                     AND A.CHEKBKID = 'ZZZZZ' THEN 'Wires'
                                ELSE 'Miscellaneous'
                           END,
            A.CHEKBKID AS CHECKBOOK
    FROM    dbo.vw_APTransactions A
            INNER JOIN dbo.vw_AAG20000 B
                ON B.DOCNUMBR = A.VCHRNMBR
                   AND B.DOCTYPE = A.DOCTYPE
            INNER JOIN dbo.AAG20001 C
                ON B.aaSubLedgerHdrID = C.aaSubLedgerHdrID
            INNER JOIN dbo.AAG20002 D
                ON C.aaSubLedgerHdrID = D.aaSubLedgerHdrID
                   AND C.aaSubLedgerDistID = D.aaSubLedgerDistID
            INNER JOIN dbo.AAG20003 E
                ON D.aaSubLedgerHdrID = E.aaSubLedgerHdrID
                   AND D.aaSubLedgerDistID = E.aaSubLedgerDistID
                   AND D.aaSubLedgerAssignID = E.aaSubLedgerAssignID
            INNER JOIN dbo.AAG00401 F
                ON E.aaTrxDimID = F.aaTrxDimID
                   AND E.aaTrxCodeID = F.aaTrxDimCodeID
            INNER JOIN dbo.GL00105 G
                ON C.ACTINDX = G.ACTINDX
            INNER JOIN dbo.GL00100 H
                ON H.ACTINDX = G.ACTINDX
            INNER JOIN dbo.PM00200 I
                ON I.VENDORID = A.VENDORID
            LEFT OUTER JOIN dbo.PM00100 J
                ON I.VNDCLSID = J.VNDCLSID
    WHERE   A.VOIDED <> 1
            AND A.DOCTYPE <> 6

GO

GRANT SELECT, INSERT, UPDATE, DELETE ON vw_AAG20000 TO DYNGRP
GRANT SELECT, INSERT, UPDATE, DELETE ON vw_APTransactions TO DYNGRP
GRANT SELECT, INSERT, UPDATE, DELETE ON vw_APAAInformation TO DYNGRP

Hope this post was helpful to you.

Until next post…

1 Comment

  1. Thomas Ringsma

    Hi,

    I ran the script but nothing changes. How does this script update the smartlist view for AP with AA transactions? What I’m really trying to do is to add the Vendor name to a FRx AA report but have had no luck so far. Any ideas?

    Thanks,
    Thomas Ringsma

Leave a Reply