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,
            ( D.DEBITAMT - D.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…

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.13_1145]
Rating: 0 (from 0 votes)

March 1, 2010 · veeyeskay · 11 Comments
Tags: , , , ,  Â· Posted in: Accounts Payables, Analytical Accounting, Dynamics, Great Plains, SQL Server, SQL Server 2000, SQL Server 2005, SQL Server 2008 Total Views: 813

  • veeyeskay

    Lulu, Please take time to look at this post article which gives you the purchase order details with analytical accounting information. Hope this helps.
    http://msdynamicstips.com/2011/05/09/sql-view-for…

    VN:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  • veeyeskay

    Lulu, Regarding the PO Transaction details with dimension code information, I will work on the script and post it sometime this week. :)

    VN:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  • veeyeskay

    Lulu, I have updated the view for the Amount column. It was a small bug where I was picking the debit amount and credit amount from the AAG20001 table. However, it should have been picked up from AAG20002 table.

    Let me know if it works fine.

    VN:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  • Pingback: Interesting Findings & Knowledge Sharing » SQL View for Receivables Transactions with AA Codes

  • Lulu

    Sivakumar

    I had another quick look at the SQL view results. The field called "Amount" is not correct. When I entered my amount I split it against two Trx. Dim codes – A ($100) and B ($100) – however, the Amount field in view for both lines is $200. Can you look at the Amount side of things please?

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)