Add test wizard for taxes

issue6001
review31671002
This commit is contained in:
Cédric Krier committed 2016-10-31 17:34:27 +01:00
1 parent 445aa290e0
commit 751f33d27d
6 files changed
+139 -1

No files matched your search

+1
View File
@@ -1,3 +1,4 @@
* Add test wizard for taxes
* Remove journal view
* Add amount second currency on Account
* Enforce second currency on Account
+3
View File
@@ -69,6 +69,8 @@ def register():
AccountTemplate2,
AccountTax,
Account2,
TestTaxView,
TestTaxViewResult,
MoveTemplate,
MoveTemplateKeyword,
MoveLineTemplate,
@@ -98,6 +100,7 @@ def register():
CreateMove,
OpenChartTaxCode,
OpenTaxCode,
TestTax,
PartyReplace,
module='account', type_='wizard')
Pool.register(
+82 -1
View File
@@ -20,7 +20,8 @@ __all__ = ['TaxGroup', 'TaxCodeTemplate', 'TaxCode',
'TaxTemplate', 'Tax', 'TaxLine', 'TaxRuleTemplate', 'TaxRule',
'TaxRuleLineTemplate', 'TaxRuleLine',
'OpenTaxCode',
'AccountTemplateTaxTemplate', 'AccountTemplate2', 'AccountTax', 'Account2']
'AccountTemplateTaxTemplate', 'AccountTemplate2', 'AccountTax', 'Account2',
'TestTax', 'TestTaxView', 'TestTaxViewResult']
KINDS = [
('sale', 'Sale'),
@@ -1607,3 +1608,83 @@ class Account2:
help=('Default tax for manual encoding of move lines \n'
'for journal types: "expense" and "revenue"'),
depends=['company'])
class TestTax(Wizard):
"Test Tax"
__name__ = 'account.tax.test'
start_state = 'test'
test = StateView(
'account.tax.test', 'account.tax_test_view_form',
[Button('Close', 'end', 'tryton-close', default=True)])
def default_test(self, fields):
context = Transaction().context
default = {}
if context['active_model'] == 'account.tax':
default['taxes'] = context['active_ids']
return default
class TestTaxView(ModelView, TaxableMixin):
"Test Tax"
__name__ = 'account.tax.test'
tax_date = fields.Date("Date")
taxes = fields.One2Many('account.tax', None, "Taxes",
domain=[
('parent', '=', None),
])
unit_price = fields.Numeric("Unit Price")
quantity = fields.Numeric("Quantity")
currency = fields.Many2One('currency.currency', 'Currency')
result = fields.One2Many(
'account.tax.test.result', None, "Result", readonly=True)
@classmethod
def default_tax_date(cls):
pool = Pool()
Date = pool.get('ir.date')
return Date.today()
@classmethod
def default_quantity(cls):
return 1
@classmethod
def default_currency(cls):
pool = Pool()
Company = pool.get('company.company')
company_id = Transaction().context.get('company')
if company_id:
company = Company(company_id)
return company.currency.id
@property
def taxable_lines(self):
return [(self.taxes, self.unit_price, self.quantity)]
@fields.depends(
'tax_date', 'taxes', 'unit_price', 'quantity', 'currency', 'result')
def on_change_with_result(self):
pool = Pool()
Result = pool.get('account.tax.test.result')
result = []
if all([self.tax_date, self.unit_price, self.quantity, self.currency]):
for taxline in self._get_taxes():
result.append(Result(**taxline))
self.result = result
return self._changed_values.get('result', [])
class TestTaxViewResult(ModelView):
"Test Tax"
__name__ = 'account.tax.test.result'
tax = fields.Many2One('account.tax', "Tax")
description = fields.Char("Description")
account = fields.Many2One('account.account', "Account")
base = fields.Numeric("Base")
base_code = fields.Many2One('account.tax.code', "Base Code")
base_sign = fields.Numeric("Base Sign", digits=(2, 0))
amount = fields.Numeric("Amount")
tax_code = fields.Many2One('account.tax.code', "Tax Code")
tax_sign = fields.Numeric("Tax Sign", digits=(2, 0))
+24
View File
@@ -294,6 +294,30 @@ this repository contains the full copyright notices and license terms. -->
<field name="rule_group" ref="rule_group_tax"/>
</record>
<record model="ir.action.wizard" id="wizard_tax_test">
<field name="name">Test Tax</field>
<field name="wiz_name">account.tax.test</field>
</record>
<record model="ir.action.keyword" id="wizard_tax_test_keyword1">
<field name="keyword">form_action</field>
<field name="model">account.tax,-1</field>
<field name="action" ref="wizard_tax_test"/>
</record>
<menuitem parent="menu_taxes" action="wizard_tax_test"
id="menu_tax_test"/>
<record model="ir.ui.view" id="tax_test_view_form">
<field name="model">account.tax.test</field>
<field name="type">form</field>
<field name="name">tax_test_form</field>
</record>
<record model="ir.ui.view" id="tax_test_result_view_list">
<field name="model">account.tax.test.result</field>
<field name="type">tree</field>
<field name="name">tax_test_result_list</field>
</record>
<record model="ir.ui.view" id="tax_line_view_form">
<field name="model">account.tax.line</field>
<field name="type">form</field>
+15
View File
@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form cursor="unit_price">
<label name="quantity"/>
<field name="quantity"/>
<label name="unit_price"/>
<field name="unit_price"/>
<field name="taxes" widget="many2many" colspan="4"/>
<label name="tax_date"/>
<field name="tax_date"/>
<label name="currency"/>
<field name="currency"/>
<field name="result" mode="tree" colspan="4"/>
</form>
+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tree>
<field name="base"/>
<field name="base_sign"/>
<field name="base_code"/>
<field name="amount"/>
<field name="tax_sign"/>
<field name="tax_code"/>
<field name="account"/>
<field name="tax"/>
<field name="description"/>
</tree>