Better accounting taxes computation based on sign

Reviewed tax code structure for l10n_be

bzr revid: fp@tinyerp.com-8d212d9f4741423496494be0eddf0f63e6672dbc
This commit is contained in:
Fabien Pinckaers 2007-08-06 14:02:20 +00:00
parent 2b9ec4d5c0
commit 99dbeb2a8a
3 changed files with 33 additions and 14 deletions

View File

@ -824,14 +824,13 @@ class account_tax_code(osv.osv):
WHERE line.tax_code_id in ('+acc_set+') '+where+' \
GROUP BY line.tax_code_id')
res=dict(cr.fetchall())
for id in ids:
ids3 = self.search(cr, uid, [('parent_id', 'child_of', [id])])
for idx in ids3:
if idx <> id:
res.setdefault(id, 0.0)
res[id] += res.get(idx, 0.0)
for id in ids:
res[id] = round(res.get(id,0.0), 2)
for record in self.browse(cr, uid, ids, context):
def _rec_get(record):
amount = res.get(record.id, 0.0)
for rec in record.child_ids:
amount += _rec_get(rec) * rec.sign
return amount
res[record.id] = round(_rec_get(record), 2)
return res
def _sum_period(self, cr, uid, ids, name, args, context):
@ -857,6 +856,7 @@ class account_tax_code(osv.osv):
'child_ids': fields.one2many('account.tax.code', 'parent_id', 'Childs Codes'),
'line_ids': fields.one2many('account.move.line', 'tax_code_id', 'Lines'),
'company_id': fields.many2one('res.company', 'Company', required=True),
'sign': fields.float('Sign for parent', required=True),
}
def name_get(self, cr, uid, ids, context={}):
if not len(ids):
@ -871,6 +871,7 @@ class account_tax_code(osv.osv):
return self.pool.get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
_defaults = {
'company_id': _default_company,
'sign': lambda *args: 1.0,
}
def _check_recursion(self, cr, uid, ids):
level = 100
@ -952,8 +953,8 @@ class account_tax(osv.osv):
'active': lambda *a: 1,
'sequence': lambda *a: 1,
'tax_group': lambda *a: 'vat',
'ref_tax_sign': lambda *a: -1,
'ref_base_sign': lambda *a: -1,
'ref_tax_sign': lambda *a: 1,
'ref_base_sign': lambda *a: 1,
'tax_sign': lambda *a: 1,
'base_sign': lambda *a: 1,
'include_base_amount': lambda *a: False,

View File

@ -507,6 +507,7 @@
<field name="company_id"/>
<field name="code" select="1"/>
<field name="parent_id" select="1"/>
<field name="sign"/>
<newline/>
<field name="sum"/>
<field name="sum_period"/>

View File

@ -6367,8 +6367,13 @@
#
# Tax Code Configuration
#
<record model="account.tax.code" id="vat_code_op_base">
<field name="name">I. Valeur des operations</field>
</record>
<record model="account.tax.code" id="vat_code_out">
<field name="name">II. Operations a la sortie</field>
<field name="parent_id" ref="vat_code_op_base"/>
</record>
<record model="account.tax.code" id="vat_code_a00">
@ -6415,11 +6420,13 @@
<record model="account.tax.code" id="vat_code_a48">
<field name="name">Notes de credit aux operations grille 46</field>
<field name="code">48</field>
<field name="sign">-1</field>
<field name="parent_id" ref="vat_code_a4X"/>
</record>
<record model="account.tax.code" id="vat_code_a49">
<field name="name">Notes de credit aux operations du point II</field>
<field name="code">49</field>
<field name="sign">-1</field>
<field name="parent_id" ref="vat_code_a4X"/>
</record>
@ -6493,9 +6500,10 @@
<field name="parent_id" ref="vat_code_tax_in"/>
</record>
<record model="account.tax.code" id="vat_code_in">
<field name="name">III. Operations a l'entree</field>
<field name="sign">-1</field>
<field name="parent_id" ref="vat_code_op_base"/>
</record>
<record model="account.tax.code" id="vat_code_a81">
<field name="code">81</field>
@ -6512,15 +6520,24 @@
<field name="name">Biens d'investissement</field>
<field name="parent_id" ref="vat_code_in"/>
</record>
<record model="account.tax.code" id="vat_code_in_nc">
<field name="code"></field>
<field name="name">Notes de credits</field>
<field name="parent_id" ref="vat_code_in"/>
</record>
<record model="account.tax.code" id="vat_code_a84">
<field name="code">84</field>
<field name="sign">-1</field>
<field name="name">Notes de credits sur operations case 86</field>
<field name="parent_id" ref="vat_code_in"/>
<field name="parent_id" ref="vat_code_in_nc"/>
</record>
<record model="account.tax.code" id="vat_code_a85">
<field name="code">85</field>
<field name="sign">-1</field>
<field name="name">Notes de credits autres operations</field>
<field name="parent_id" ref="vat_code_in"/>
<field name="parent_id" ref="vat_code_in_nc"/>
</record>
<record model="account.tax.code" id="vat_code_a86">
<field name="code">86</field>
@ -6580,7 +6597,7 @@
<field name="ref_base_code_id" ref="vat_code_a85"/>
<field name="ref_tax_code_id" ref="vat_code_a63"/>
</record>
<record model="account.tax" id="vat_0">
<field name="name">VAT 0%</field>
<field name="amount" eval="0.00"/>