L10N_CHART_UK_MINIMAL: add module from seathsolutions

bzr revid: ced-e27f1869415edba70b3468a1f157272a065c8bb0
This commit is contained in:
ced 2007-06-08 11:16:00 +00:00
parent a132a11a7c
commit 774d583a48
4 changed files with 519 additions and 0 deletions

View File

@ -0,0 +1,28 @@
##############################################################################
#
# Copyright (c) 2007 Seath Solutions Ltd. All Rights Reserved.
# Geoff Gardiner, Seath Solutions Ltd (http://www.seathsolutions.com/)
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################

View File

@ -0,0 +1,50 @@
#
# This module provides a minimal UK chart of accounts for building upon further
# Tiny ERP's default currency and accounts are remapped to this chart
#
# This module works for TinyERP 4.1.0 (and, assumed, onwards).
# This module does not work for TinyERP 4.0.2 and before.
#
# VAT is structured thus:
# - the user company is assumed to be non-VAT exempt (easy to modify, however)
# - categories OVATS (Standard), OVATR (Reduced), OVATZ (Zero) should be
# assigned to the customer taxes section of products (depending on the product)
# - categories IVATS (Standard), IVATR (Reduced), IVATZ (Zero) should be
# assigned to the supplier taxes section of products (depending on the product)
# - categories OVATX (eXempt), OVATO (Out of scope), or nothing at all should be
# assigned to default tax field of customers (depending on the customer)
# - customer categorization trumps product categorization (unchanged Tiny functionality)
# - on purchases, upon invoicing
# - the base amount (ex-VAT) appears in the appropriate input base category (S, R, Z)
# - the VAT amount appears in the appropriate input VAT category (S, R)
# - invoice lines can be traced in these VAT categories
# - refunds of invoices are deducted from the input category
# - on sales, upon invoicing
# - the base amount (ex-VAT) appears in the appropriate output base category (S, R, Z, X, O)
# - the VAT amount appears in the appropriate output VAT category (S, R)
# - invoice lines can be traced in these VAT categories
# - refunds of invoices are deducted from the output category
#
# This forms a basis for accrual tax accounting
# Cash tax accounting can be accommodated with further processing in TinyERP
#
# Status beta 0.92 - tested on TinyERP 4.1.0
# Status beta 0.93 - tested on TinyERP 4.1.0
# - trivial change to depend only on 'account'
# (seemed to be important for importing with no demo data)
# Status 1.0 - tested on TinyERP 4.1.0, 4.0.3
# - COGS account type fixed
#
{
"name" : "United Kingdom - minimal",
"version" : "1.0",
"author" : "Seath Solutions Ltd",
"website": "http://www.seathsolutions.com",
"category" : "Localisation/Account charts",
"depends" : ["base", "account"],
"init_xml" : [],
"demo_xml" : [],
"update_xml" : ["account_chart.xml","account_tax.xml"],
"active": False,
"installable": True
}

View File

@ -0,0 +1,217 @@
<?xml version="1.0"?>
<terp>
<data noupdate="1">
<!-- Change default currency to GB Pounds -->
<record model="res.currency" id="GBP">
<field name="name">GBP</field>
<field name="code">GBP</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
</record>
<record model="res.company" id="base.main_company">
<field name="currency_id" ref="GBP"/>
</record>
<!-- Top level of main chart -->
<record id="chart0" model="account.account">
<field name="code">0</field>
<field name="name">Account Chart UK</field>
<field name="close_method">none</field>
<field name="parent_id" eval="[]" />
<field name="type">view</field>
<field name="sign">1</field>
</record>
<!-- Balance Sheet -->
<record id="bal" model="account.account">
<field name="name">Balance Sheet</field>
<field name="close_method">none</field>
<field name="parent_id" eval="[(6, 0, [ref('chart0')])]" />
<field name="type">view</field>
<field name="sign">1</field>
</record>
<record id="fas" model="account.account">
<field name="name">Fixed Assets</field>
<field name="close_method">none</field>
<field name="parent_id" eval="[(6, 0, [ref('bal')])]" />
<field name="type">view</field>
<field name="sign">1</field>
</record>
<record id="xfa" model="account.account">
<field name="name">Fixed Asset Account</field>
<field name="close_method">balance</field>
<field name="parent_id" eval="[(6, 0, [ref('fas')])]" />
<field name="type">asset</field>
<field name="sign">1</field>
</record>
<record id="nca" model="account.account">
<field name="name">Net Current Assets</field>
<field name="close_method">none</field>
<field name="parent_id" eval="[(6, 0, [ref('bal')])]" />
<field name="type">view</field>
<field name="sign">1</field>
</record>
<record id="cas" model="account.account">
<field name="name">Current Assets</field>
<field name="close_method">none</field>
<field name="parent_id" eval="[(6, 0, [ref('nca')])]" />
<field name="type">view</field>
<field name="sign">1</field>
</record>
<record id="stk" model="account.account">
<field name="code"></field>
<field name="name">Purchased Stocks</field>
<field name="close_method">unreconciled</field>
<field name="parent_id" eval="[(6, 0, [ref('cas')])]" />
<field name="type">asset</field>
<field name="sign">1</field>
</record>
<record id="a_recv" model="account.account">
<field name="code"></field>
<field name="name">Debtors</field>
<field name="close_method">balance</field>
<field name="parent_id" eval="[(6, 0, [ref('cas')])]" />
<field name="type">receivable</field>
<field name="sign">1</field>
</record>
<record model="ir.property" id="account.property_account_receivable">
<field name="value" eval="'account.account,'+str(a_recv)"/>
</record>
<record id="ova" model="account.account">
<field name="name">Output VAT</field>
<field name="close_method">balance</field>
<field name="parent_id" eval="[(6, 0, [ref('cas')])]" />
<field name="type">tax</field>
<field name="sign">1</field>
</record>
<record id="bnk" model="account.account">
<field name="name">Bank Current Account</field>
<field name="close_method">balance</field>
<field name="parent_id" eval="[(6, 0, [ref('cas')])]" />
<field name="type">cash</field>
<field name="sign">1</field>
</record>
<record id="cash" model="account.account">
<field name="code"></field>
<field name="name">Cash</field>
<field name="close_method">balance</field>
<field name="parent_id" eval="[(6, 0, [ref('cas')])]" />
<field name="type">cash</field>
<field name="sign">1</field>
</record>
<record id="cli" model="account.account">
<field name="name">Current Liabilities</field>
<field name="close_method">none</field>
<field name="parent_id" eval="[(6, 0, [ref('nca')])]" />
<field name="type">view</field>
<field name="sign">1</field>
</record>
<record id="a_pay" model="account.account">
<field name="code"></field>
<field name="name">Creditors</field>
<field name="close_method">balance</field>
<field name="parent_id" eval="[(6, 0, [ref('cli')])]" />
<field name="type">payable</field>
<field name="sign">1</field>
</record>
<record model="ir.property" id="account.property_account_payable">
<field name="value" eval="'account.account,'+str(a_pay)"/>
</record>
<record id="iva" model="account.account">
<field name="name">Input VAT</field>
<field name="close_method">balance</field>
<field name="parent_id" eval="[(6, 0, [ref('cli')])]" />
<field name="type">tax</field>
<field name="sign">1</field>
</record>
<!-- Profit and Loss -->
<record id="gpf" model="account.account">
<field name="name">Profit and Loss</field>
<field name="close_method">none</field>
<field name="parent_id" eval="[(6, 0, [ref('chart0')])]" />
<field name="type">view</field>
<field name="sign">1</field>
</record>
<record id="rev" model="account.account">
<field name="name">Revenue</field>
<field name="close_method">none</field>
<field name="parent_id" eval="[(6, 0, [ref('gpf')])]" />
<field name="type">view</field>
<field name="sign">1</field>
</record>
<record id="a_sale" model="account.account">
<field name="code"></field>
<field name="name">Product Sales</field>
<field name="close_method">unreconciled</field>
<field name="parent_id" eval="[(6, 0, [ref('rev')])]" />
<field name="type">income</field>
<field name="sign">1</field>
</record>
<record model="ir.property" id="account.property_account_income_categ">
<field name="value" eval="'account.account,'+str(a_sale)"/>
</record>
<record id="cos" model="account.account">
<field name="name">Cost of Sales</field>
<field name="close_method">none</field>
<field name="parent_id" eval="[(6, 0, [ref('gpf')])]" />
<field name="type">view</field>
<field name="sign">1</field>
</record>
<record id="cog" model="account.account">
<field name="code"></field>
<field name="name">Cost of Goods Sold</field>
<field name="close_method">unreconciled</field>
<field name="parent_id" eval="[(6, 0, [ref('cos')])]" />
<field name="type">expense</field>
<field name="sign">1</field>
</record>
<record id="ovr" model="account.account">
<field name="name">Overheads</field>
<field name="close_method">none</field>
<field name="parent_id" eval="[(6, 0, [ref('gpf')])]" />
<field name="type">view</field>
<field name="sign">1</field>
</record>
<record id="a_expense" model="account.account">
<field name="code"></field>
<field name="name">Expenses</field>
<field name="close_method">unreconciled</field>
<field name="parent_id" eval="[(6, 0, [ref('ovr')])]" />
<field name="type">expense</field>
<field name="sign">1</field>
</record>
<record model="ir.property" id="account.property_account_expense_categ">
<field name="value" eval="'account.account,'+str(a_expense)"/>
</record>
</data>
</terp>

View File

@ -0,0 +1,224 @@
<?xml version="1.0"?>
<terp>
<data noupdate="True">
<!-- VAT Code Definitions -->
<!-- Invoiced VAT -->
<!-- Input VAT -->
<record model="account.tax.code" id="vat_code_balance_net">
<field name="name">VAT balance to pay</field>
</record>
<record model="account.tax.code" id="vat_code_input">
<field name="name">Input VAT</field>
<field name="parent_id" ref="vat_code_balance_net" />
</record>
<record model="account.tax.code" id="vat_code_input_S">
<field name="name">Input VAT rate S (17.5%)</field>
<field name="parent_id" ref="vat_code_input" />
</record>
<record model="account.tax.code" id="vat_code_input_R">
<field name="name">Input VAT rate R (5%)</field>
<field name="parent_id" ref="vat_code_input" />
</record>
<!-- Output VAT -->
<record model="account.tax.code" id="vat_code_output">
<field name="name">Output VAT</field>
<field name="parent_id" ref="vat_code_balance_net" />
</record>
<record model="account.tax.code" id="vat_code_output_S">
<field name="name">Output VAT rate S (17.5%)</field>
<field name="parent_id" ref="vat_code_output" />
</record>
<record model="account.tax.code" id="vat_code_output_R">
<field name="name">Output VAT rate R (5%)</field>
<field name="parent_id" ref="vat_code_output" />
</record>
<!-- Invoiced Base of VAT -->
<!-- Purchases -->
<record model="account.tax.code" id="vat_code_base_net">
<field name="name">Tax bases</field>
</record>
<record model="account.tax.code" id="vat_code_base_purchases">
<field name="name">Taxable purchases base</field>
<field name="parent_id" ref="vat_code_base_net" />
</record>
<record model="account.tax.code" id="vat_code_purch_S">
<field name="name">Taxable purchases rated S (17.5%)</field>
<field name="parent_id" ref="vat_code_base_purchases" />
</record>
<record model="account.tax.code" id="vat_code_purch_R">
<field name="name">Taxable purchases rated R (5%)</field>
<field name="parent_id" ref="vat_code_base_purchases" />
</record>
<record model="account.tax.code" id="vat_code_purch_Z">
<field name="name">Taxable purchases rated Z (0%)</field>
<field name="parent_id" ref="vat_code_base_purchases" />
</record>
<record model="account.tax.code" id="vat_code_purch_X">
<field name="name">Taxable purchases type X (Exempt)</field>
<field name="parent_id" ref="vat_code_base_purchases" />
</record>
<record model="account.tax.code" id="vat_code_purch_O">
<field name="name">Taxable purchases type O (Out of scope)</field>
<field name="parent_id" ref="vat_code_base_purchases" />
</record>
<!-- Sales -->
<record model="account.tax.code" id="vat_code_base_sales">
<field name="name">Base of taxable sales</field>
<field name="parent_id" ref="vat_code_base_net" />
</record>
<record model="account.tax.code" id="vat_code_sales_S">
<field name="name">Taxable sales rated S (17.5%)</field>
<field name="parent_id" ref="vat_code_base_sales" />
</record>
<record model="account.tax.code" id="vat_code_sales_R">
<field name="name">Taxable sales rated R (5%)</field>
<field name="parent_id" ref="vat_code_base_sales" />
</record>
<record model="account.tax.code" id="vat_code_sales_Z">
<field name="name">Taxable sales rated Z (0%)</field>
<field name="parent_id" ref="vat_code_base_sales" />
</record>
<record model="account.tax.code" id="vat_code_sales_X">
<field name="name">Taxable sales type X (Exempt)</field>
<field name="parent_id" ref="vat_code_base_sales" />
</record>
<record model="account.tax.code" id="vat_code_sales_O">
<field name="name">Taxable sales type O (Out of scope)</field>
<field name="parent_id" ref="vat_code_base_sales" />
</record>
<!-- VAT Codes -->
<!-- Purchases + Input VAT -->
<record model="account.tax" id="ivats">
<field name="name">IVAT S</field>
<field name="amount" eval="0.175"/>
<field name="type">percent</field>
<field name="account_collected_id" ref="iva"/>
<field name="account_paid_id" ref="iva"/>
<field name="base_code_id" ref="vat_code_purch_S"/>
<field name="tax_code_id" ref="vat_code_input_S"/>
<field name="ref_base_code_id" ref="vat_code_purch_S"/>
<field name="ref_tax_code_id" ref="vat_code_input_S"/>
</record>
<record model="account.tax" id="ivatr">
<field name="name">IVAT R</field>
<field name="amount" eval="0.005"/>
<field name="type">percent</field>
<field name="account_collected_id" ref="iva"/>
<field name="account_paid_id" ref="iva"/>
<field name="base_code_id" ref="vat_code_purch_R"/>
<field name="tax_code_id" ref="vat_code_input_R"/>
<field name="ref_base_code_id" ref="vat_code_purch_R"/>
<field name="ref_tax_code_id" ref="vat_code_input_R"/>
</record>
<record model="account.tax" id="ivatz">
<field name="name">IVAT Z</field>
<field name="amount" eval="0.0"/>
<field name="type">percent</field>
<field name="base_code_id" ref="vat_code_purch_Z"/>
<field name="ref_base_code_id" ref="vat_code_purch_Z"/>
</record>
<record model="account.tax" id="ivatx">
<field name="name">IVAT X</field>
<field name="amount" eval="0.0"/>
<field name="type">percent</field>
<field name="base_code_id" ref="vat_code_purch_X"/>
<field name="ref_base_code_id" ref="vat_code_purch_X"/>
</record>
<record model="account.tax" id="ivato">
<field name="name">IVAT O</field>
<field name="amount" eval="0.0"/>
<field name="type">percent</field>
<field name="base_code_id" ref="vat_code_purch_O"/>
<field name="ref_base_code_id" ref="vat_code_purch_O"/>
</record>
<!-- Sales + Output VAT -->
<record model="account.tax" id="ovats">
<field name="name">OVAT S</field>
<field name="amount" eval="0.175"/>
<field name="type">percent</field>
<field name="account_collected_id" ref="ova"/>
<field name="account_paid_id" ref="ova"/>
<field name="base_code_id" ref="vat_code_sales_S"/>
<field name="tax_code_id" ref="vat_code_output_S"/>
<field name="ref_base_code_id" ref="vat_code_sales_S"/>
<field name="ref_tax_code_id" ref="vat_code_output_S"/>
</record>
<record model="account.tax" id="ovatr">
<field name="name">OVAT R</field>
<field name="amount" eval="0.005"/>
<field name="type">percent</field>
<field name="account_collected_id" ref="ova"/>
<field name="account_paid_id" ref="ova"/>
<field name="base_code_id" ref="vat_code_sales_R"/>
<field name="tax_code_id" ref="vat_code_output_R"/>
<field name="ref_base_code_id" ref="vat_code_sales_R"/>
<field name="ref_tax_code_id" ref="vat_code_output_R"/>
</record>
<record model="account.tax" id="ovatz">
<field name="name">OVAT Z</field>
<field name="amount" eval="0.0"/>
<field name="type">percent</field>
<field name="base_code_id" ref="vat_code_sales_Z"/>
<field name="ref_base_code_id" ref="vat_code_sales_Z"/>
</record>
<record model="account.tax" id="ovatx">
<field name="name">OVAT X</field>
<field name="amount" eval="0.0"/>
<field name="type">percent</field>
<field name="base_code_id" ref="vat_code_sales_X"/>
<field name="ref_base_code_id" ref="vat_code_sales_X"/>
</record>
<record model="account.tax" id="ovato">
<field name="name">OVAT O</field>
<field name="amount" eval="0.0"/>
<field name="type">percent</field>
<field name="base_code_id" ref="vat_code_sales_O"/>
<field name="ref_base_code_id" ref="vat_code_sales_O"/>
</record>
</data>
</terp>