As part of the handling of Australian Good and Services Tax (GST), Microsoft Dynamics GP needs to be able to track if a Tax Invoice has been received for payables transactions.
This is important as a company must have a Tax Invoice for a purchase before they are allowed to claim the Input Tax Credit for that purchase. The Input Tax Credits are balanced against the tax they have collected from sales and only the balance is due to the Australian Taxation Office (ATO).
So what are the requirements for a Tax Invoice in Australia? This information is not specifically needed for this article, but the accounting geeks out there might find it interesting.
Below are some guidelines, but as I am not a Tax Accountant, please get advice from a Tax professional if you have questions.
Supplies of less than $1000
Tax invoices for taxable supplies totalling less than $1000 must include:
Tax Invoice example for less than $1000
Supplies of $1000 or more
Tax invoices for taxable supplies totalling $1000 or more must include:
Tax Invoice examples for $1000 or more
To handle the tracking of this requirement (once Australian GST is enabled in Company Options), there will be a Tax Invoice Required checkbox added to the Tax Detail Maintenance window, and a Tax Invoice Received checkbox added to the Creditor Maintenance Options (Vendor Maintenance Options) window. These two checkboxes are used to identify when a transaction using specific Tax Details requires a Tax Invoice and which Creditors/Vendors always provide Tax Invoices.
On the Transaction, there is a Tax Invoice Required checkbox which will be set if any of the Tax Details used on the transaction have their Tax Invoice Required checkbox selected. There is also a Tax Invoice Received checkbox which defaults to the value stored on the Creditor/Vendor and is tracked in the PM_Tax_Invoices (PM30800) table. If the transaction is not marked as Tax Invoice Received during the original data entry, it can be marked as received after the fact using the Track Tax Invoice Received window (under Purchasing Routines).
Now that we have the background information all sorted, here is the problem:
eConnect does not have any of the handling for Tax Invoices for Australian GST added to its code. I have raised this issue as Problem Report 69941. However, as this can be resolved with a custom post integration stored procedure, the fix will not be a high priority.
For this custom code to work I needed to solve a couple of issues:
For the solutions to these issues please see the articles listed under More Information.
The code below is an excerpt of the body of the taPMTransactionInsertPost stored procedure. The complete code with the parameter list is attached to the bottom of this article.
SET NOCOUNT ON
SELECT @O_iErrorState = 0
-- Check that Australian GST is enabled in Company Options for current companydeclare @Opt10 INTdeclare @SQLCode NVARCHAR(4000)declare @SYSDBNAME CHAR(80)if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SY00100]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) select top 1 @SYSDBNAME = DBNAME from SY00100else set @SYSDBNAME = 'DYNAMICS'set @SQLCode = N'select @pOpt10 = CASE WHEN Company_Options & 65536 * 2 > 0 THEN 1 ELSE 0 END -- Bit 17: Australian GST from ' + rtrim(@SYSDBNAME) + '..SY01500 (nolock) where INTERID = DB_NAME()'exec sp_executesql @SQLCode, N'@pOpt10 int output', @Opt10 output
IF @Opt10 = 1 BEGIN -- Update Transaction's Tax Invoice Required Flag based on Tax Details IF exists (select * from PM10000 (nolock) where VCHNUMWK = @I_vVCHNUMWK) BEGIN update PM10000 set TaxInvReqd = (select max(D.TaxInvReqd) as TaxInvReqd from PM10500 T (nolock) join TX00201 D on D.TAXDTLID = T.TAXDTLID where T.VCHRNMBR = VCHNUMWK) where VCHNUMWK = @I_vVCHNUMWK END
-- Update Tax Invoice Received Table, default in value from Vendor table IF not exists (select * from PM30800 (nolock) where VCHRNMBR = @I_vVCHNUMWK) BEGIN insert into PM30800 (VENDORID, VCHRNMBR, DOCTYPE, DOCNUMBR, POPRCTNM, Tax_Date, TaxInvRecvd, GSTDSAMT) values (@I_vVENDORID, @I_vVCHNUMWK, @I_vDOCTYPE, @I_vDOCNUMBR, '', @I_vTax_Date , (select TaxInvRecvd from PM00200 (nolock) where VENDORID = @I_vVENDORID) , (select sum(TAXAMNT) as GSTDSAMT from PM10500 (nolock) where VCHRNMBR = @I_vVCHNUMWK)) END
/* Copyright © Microsoft Corporation. All Rights Reserved. *//* This code released under the terms of the *//* Microsoft Public License (MS-PL, http://opensource.org/licenses/ms-pl.html.) */
Hope you find this information useful, even if not working with Australian GST.
PLEASE READ BEFORE POSTING
Please only post comments relating to the topic of this page.
If you wish to ask a technical question, please use the links in the links section (scroll down, on right hand side) to ask on the Newsgroups or Forums. If you ask on the Newsgroups or Forums, others in the community can respond and the answers are available for everyone in the future.