Add test wizard for taxes
issue6001 review31671002
This commit is contained in:
1 parent
445aa290e0
commit
751f33d27d
6 files changed
+139
-1
No files matched your search
@@ -1,3 +1,4 @@
|
||||
* Add test wizard for taxes
|
||||
* Remove journal view
|
||||
* Add amount second currency on Account
|
||||
* Enforce second currency on Account
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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))
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
Reference in new issue
Block a user