add tax field on account.tax.line for issue1401

This commit is contained in:
Korbinian Preisler
2010-02-03 18:10:27 +01:00
parent 2905a5efbf
commit 5bd9127443
4 changed files with 38 additions and 17 deletions
+1
View File
@@ -1,3 +1,4 @@
* Add tax field on account.tax.line
* Remove unique constraint on tax group code column
* Add default search value on account move
* Remove egenix-mx-base and replace it by python-dateutil
+23 -14
View File
@@ -634,16 +634,17 @@ class Line(ModelSQL, ModelView):
code_id = tax.credit_note_tax_code.id
account_id = tax.credit_note_account.id
if base_id in line_code_taxes or not base_id:
taxes.setdefault((account_id, code_id), False)
taxes.setdefault((account_id, code_id, tax.id), False)
for tax_line in line.tax_lines:
taxes[(line.account.id, tax_line.code.id)] = True
taxes[(line.account.id, tax_line.code.id,
tax_line.tax.id)] = True
if not line.tax_lines and line.account.taxes:
if line.account.id in no_code_taxes:
taxes[(line.account.id, False)] = True
taxes[(line.account.id, False, False)] = True
else:
no_code_taxes.append(line.account.id)
elif not line.tax_lines:
taxes[(line.account.id, False)] = True
taxes[(line.account.id, False, False)] = True
if 'account' in fields:
if total >= Decimal('0.0'):
@@ -658,8 +659,8 @@ class Line(ModelSQL, ModelView):
values.setdefault('credit', total > 0 and total or False)
if move.journal.type in ('expense', 'revenue'):
for account_id, code_id in taxes:
if taxes[(account_id, code_id)]:
for account_id, code_id, tax_id in taxes:
if taxes[(account_id, code_id, tax_id)]:
continue
for line in move.lines:
if move.journal.type == 'revenue':
@@ -679,8 +680,9 @@ class Line(ModelSQL, ModelView):
line.debit or line.credit, 1, context=context):
if (tax_line['tax'][key + '_account'].id \
or line.account.id) == account_id \
and tax_line['tax'][key + '_tax_code'].id \
== code_id:
and tax_line['tax'][key + '_tax_code'].id \
== code_id \
and tax_line['tax'].id == tax_id:
if line.debit:
line_amount += tax_line['amount']
else:
@@ -709,6 +711,9 @@ class Line(ModelSQL, ModelView):
'code': code_id,
'code.rec_name': tax_code_obj.browse(cursor,
user, code_id, context=context).rec_name,
'tax': tax_id,
'tax.rec_name': tax_obj.browse(cursor, user,
tax_id, context=context).rec_name
},
]
return values
@@ -820,18 +825,22 @@ class Line(ModelSQL, ModelView):
[x.id for x in account.taxes],
debit or credit, 1, context=context):
code_id = tax_line['tax'][key + '_base_code'].id
base_amounts.setdefault(code_id, Decimal('0.0'))
base_amounts[code_id] += tax_line['base'] * \
tax_id = tax_line['tax'].id
base_amounts.setdefault((code_id, tax_id), Decimal('0.0'))
base_amounts[code_id, tax_id] += tax_line['base'] * \
tax_line['tax'][key + '_tax_sign']
for code_id in base_amounts:
if not code_id:
for code_id, tax_id in base_amounts:
if not base_amounts[code_id, tax_id]:
continue
res.setdefault('add', []).append({
'amount': base_amounts[code_id],
'amount': base_amounts[code_id, tax_id],
'currency_digits': account.currency_digits,
'code': code_id,
'code.rec_name': tax_code_obj.browse(cursor, user,
code_id, context=context).rec_name,
code_id, context=context).rec_name,
'tax': tax_id,
'tax.rec_name': tax_obj.browse(cursor, user,
tax_id, context=context).rec_name
})
return res
+8
View File
@@ -941,6 +941,8 @@ class Line(ModelSQL, ModelView):
amount = fields.Numeric('Amount', digits=(16, Eval('currency_digits', 2)),
depends=['currency_digits'])
code = fields.Many2One('account.tax.code', 'Code', select=1, required=True)
tax = fields.Many2One('account.tax', 'Tax', select=1, ondelete='RESTRICT',
on_change=['tax'])
move_line = fields.Many2One('account.move.line', 'Move Line',
required=True, select=1, ondelete='CASCADE')
@@ -959,6 +961,12 @@ class Line(ModelSQL, ModelView):
res[line.id] = line.move_line.currency_digits
return res
def on_change_tax(self, cursor, user, ids, vals, context=None):
res = {
'code': False,
}
return res
Line()
+6 -3
View File
@@ -563,10 +563,12 @@ this repository contains the full copyright notices and license terms. -->
<field name="arch" type="xml">
<![CDATA[
<form string="Account Tax Line">
<label name="amount"/>
<field name="amount"/>
<label name="tax"/>
<field name="tax"/>
<label name="code"/>
<field name="code"/>
<label name="amount"/>
<field name="amount"/>
</form>
]]>
</field>
@@ -577,8 +579,9 @@ this repository contains the full copyright notices and license terms. -->
<field name="arch" type="xml">
<![CDATA[
<tree string="Account Tax Lines" editable="bottom">
<field name="amount" select="1"/>
<field name="tax" select="1"/>
<field name="code" select="1"/>
<field name="amount" select="1"/>
</tree>
]]>
</field>