Logic Instinct

deliver the best, naturally...

  • Increase font size
  • Default font size
  • Decrease font size
Home User Guides CardosERP HOWTO HOWTO Switch from Accrual to Cash

HOWTO Switch from Accrual to Cash

HOWTO Switch from Accrual to Cash basis Accounting methods for GST Reporting


webERP produces general ledger transactions to record when the Purchase Order or Sales Invoice is created.

<Phil> webERP does not handle cash based tax reporting </Phil>

Currently the GST (Goods and Services Tax, a type of Sales Tax) Reporting module, will calulate the amounts of tax inputs and outputs based on accrued transactions, NOT allocated transactions. ie. Reporting will be based on an accrual method.

For Australian GST reporting, some businesses are recommended to use a "Cash Basis" reporting system. Under the cash method, income is not counted until cash (or any payment) is actually received, and expenses are not counted until actually paid.

In a nutshell, the two methods differ only in the timing of when transactions, including sales and purchases, are credited or debited to your accounts.

The report to modify is Tax.php

(<Phil> - NOTE: This would probably not be acceptable to the ATO since under a cash basis GST is payable based on all revenue received this statement only shows the tax on invoices that are fully paid. Also the date of the invoice is not relevant under a payments basis so the logic of this SQL is not appropriate to a cash basis of accounting this is really not reliable</Phil>)

The lines to change are:

change this statement from

$SQL = 'SELECT debtortrans.transno,
debtortrans.type,
systypes.typename,
debtortrans.trandate,
debtortrans.debtorno,
debtorsmaster.name,
debtortrans.branchcode,
debtortrans.order_,
(ovamount+ovfreight)/rate AS netamount,
ovfreight/rate AS freightamount,
ovgst/rate AS tax
FROM debtortrans
INNER JOIN debtorsmaster ON debtortrans.debtorno=debtorsmaster.debtorno
INNER JOIN systypes ON debtortrans.type=systypes.typeid
WHERE debtortrans.prd >= ' . ($_POST['ToPeriod'] - $_POST['NoOfPeriods'] + 1) . '
AND debtortrans.prd <= ' . $_POST['ToPeriod'] . '
AND (debtortrans.type=10 OR debtortrans.type=11)
ORDER BY debtortrans.id';


change to

$SQL = 'SELECT debtortrans.transno,
debtortrans.type,
systypes.typename,
debtortrans.trandate,
debtortrans.debtorno,
debtorsmaster.name,
debtortrans.branchcode,
debtortrans.order_,
(ovamount+ovfreight)/rate AS netamount,
ovfreight/rate AS freightamount,
ovgst/rate AS tax
FROM debtortrans
INNER JOIN debtorsmaster ON debtortrans.debtorno=debtorsmaster.debtorno
INNER JOIN systypes ON debtortrans.type=systypes.typeid
WHERE debtortrans.prd >= ' . ($_POST['ToPeriod'] - $_POST['NoOfPeriods'] + 1) . '
AND debtortrans.prd <= ' . $_POST['ToPeriod'] . '
AND (debtortrans.type=10 OR debtortrans.type=11)
AND debtortrans.alloc = (debtortrans.ovamount+debtortrans.ovgst)
ORDER BY debtortrans.id';


change this statement from

$SQL = "SELECT supptrans.type,
supptrans.suppreference,
systypes.typename,
supptrans.trandate,
suppliers.suppname,
supptrans.ovamount/supptrans.rate AS netamount,
supptrans.ovgst/supptrans.rate AS taxamt
FROM supptrans
INNER JOIN suppliers ON supptrans.supplierno=suppliers.supplierid
INNER JOIN systypes ON supptrans.type=systypes.typeid
WHERE supptrans.trandate >= '" . $StartDateSQL . "'
AND supptrans.trandate <= '" . FormatDateForSQL($PeriodEnd) . "'
AND (supptrans.type=20 OR supptrans.type=21)
ORDER BY supptrans.id";


change to

$SQL = "SELECT supptrans.type,
supptrans.suppreference,
systypes.typename,
supptrans.trandate,
suppliers.suppname,
supptrans.ovamount/supptrans.rate AS netamount,
supptrans.ovgst/supptrans.rate AS taxamt
FROM supptrans
INNER JOIN suppliers ON supptrans.supplierno=suppliers.supplierid
INNER JOIN systypes ON supptrans.type=systypes.typeid
WHERE supptrans.trandate >= '" . $StartDateSQL . "'
AND supptrans.trandate <= '" . FormatDateForSQL($PeriodEnd) . "'
AND (supptrans.type=20 OR supptrans.type=21)
AND supptrans.alloc = (supptrans.ovamount+supptrans.ovgst)
ORDER BY supptrans.id";


Now the GST report will exclude transactions where the money has not been allocated (ie. received or paid), and the GST reports will be "cash based".
 

MSC Status Company

Time Management System

If we are really serious about gaining control of our time we must first accept responsibility for its use.
by Harold Taylor