[FIX] Port of the module

This commit is contained in:
Vincent Renaville
2013-10-23 10:35:47 +02:00
parent c045a4796d
commit a2ebdd459b
6 changed files with 57 additions and 25 deletions

View File

@@ -1 +1 @@
import model
from . import model

View File

@@ -1,3 +1,3 @@
import update_tax_config
import select_taxes
import account_tax
from . import update_tax_config
from . import select_taxes
from . import account_tax

View File

@@ -75,6 +75,8 @@ class UpdateTaxConfig(orm.Model):
'purchase_set_inactive': fields.boolean(
'Purchase taxes have been set to inactive',
readonly=True),
'duplicate_tax_code': fields.boolean(
'Duplicate Tax code linked'),
}
_defaults = {
@@ -135,6 +137,7 @@ class UpdateTaxConfig(orm.Model):
"""
config = self.browse(cr, uid, ids[0], context=None)
tax_pool = self.pool.get('account.tax')
tax_code_pool = self.pool.get('account.tax.code')
line_pool = self.pool.get('account.update.tax.config.line')
tax_map = {}
log = (config.log or '') + (
@@ -149,7 +152,7 @@ class UpdateTaxConfig(orm.Model):
tax_old_name = line.source_tax_id.name
tax_pool.write(
cr, uid, line.source_tax_id.id,
{'name': '[legacy, %s] %s' % (config.name, tax_old_name)},
{'name': '[%s] %s' % (config.name, tax_old_name)},
context=context)
if line.source_tax_id.amount in [1.0, -1.0, 0]:
amount_new = line.source_tax_id.amount
@@ -158,6 +161,35 @@ class UpdateTaxConfig(orm.Model):
# 6.0 messes up the name change with copy + write, while
# 6.1 throws name uniqueness constraint violation
# So jumping some hoops with rewriting the new name
## We will check if we need to dupliace
cp_base_code_id = False
cp_ref_base_code_id = False
cp_tax_code_id = False
cp_ref_tax_code_id = False
if config.duplicate_tax_code:
if line.source_tax_id.base_code_id:
cp_base_code_id = tax_code_pool.copy(cr,uid,line.source_tax_id.base_code_id.id)
rename_old = '[%s] %s'%(config.name,line.source_tax_id.base_code_id.name)
tax_code_pool.write(cr, uid, line.source_tax_id.base_code_id.id, {'name':rename_old})
if line.source_tax_id.tax_code_id:
cp_tax_code_id = tax_code_pool.copy(cr,uid,line.source_tax_id.tax_code_id.id)
rename_old = '[%s] %s'%(config.name,line.source_tax_id.tax_code_id.name)
tax_code_pool.write(cr, uid, line.source_tax_id.tax_code_id.id, {'name':rename_old})
if line.source_tax_id.ref_base_code_id:
cp_ref_base_code_id = tax_code_pool.copy(cr,uid,line.source_tax_id.ref_base_code_id.id)
rename_old = '[%s] %s'%(config.name,line.source_tax_id.ref_base_code_id.name)
tax_code_pool.write(cr, uid, line.source_tax_id.ref_base_code_id.id, {'name':rename_old})
if line.source_tax_id.ref_tax_code_id:
cp_ref_tax_code_id = tax_code_pool.copy(cr,uid,line.source_tax_id.ref_tax_code_id.id)
rename_old = '[%s] %s'%(config.name,line.source_tax_id.ref_tax_code_id.name)
tax_code_pool.write(cr, uid, line.source_tax_id.ref_tax_code_id.id, {'name':rename_old})
else:
cp_base_code_id = line.source_tax_id.base_code_id and line.source_tax_id.base_code_id.id or False
cp_ref_base_code_id = line.source_tax_id.ref_base_code_id and line.source_tax_id.ref_base_code_id.id or False
cp_tax_code_id = line.source_tax_id.tax_code_id and line.source_tax_id.tax_code_id.id or False
cp_ref_tax_code_id = line.source_tax_id.ref_tax_code_id and line.source_tax_id.ref_tax_code_id.id or False
target_tax_id = tax_pool.copy(
cr, uid, line.source_tax_id.id,
{ 'name': '[update, %s] %s' % (config.name, tax_old_name),
@@ -166,7 +198,13 @@ class UpdateTaxConfig(orm.Model):
'child_ids': [(6, 0, [])],
}, context=context)
tax_pool.write(
cr, uid, target_tax_id, {'name': tax_old_name}, context=context)
cr, uid, target_tax_id, {'name': tax_old_name,
'base_code_id': cp_base_code_id ,
'ref_base_code_id' : cp_ref_base_code_id ,
'tax_code_id': cp_tax_code_id ,
'ref_tax_code_id': cp_ref_tax_code_id
}, context=context)
tax_map[line.source_tax_id.id] = target_tax_id
line_pool.write(
cr, uid, line.id,
@@ -395,21 +433,13 @@ class UpdateTaxConfigLine(orm.Model):
'Configuration'),
'source_tax_id': fields.many2one(
'account.tax', 'Source tax',
required=True, readonly=True),
'source_tax_name': fields.related(
'source_tax_id', 'name',
type='char', size=64,
string="Old tax name"),
required=True),
'source_tax_description': fields.related(
'source_tax_id', 'description',
type='char', size=32,
string="Old tax code"),
'target_tax_id': fields.many2one(
'account.tax', 'Target tax', readonly=True),
'target_tax_name': fields.related(
'target_tax_id', 'name',
type='char', size=64,
string="New tax name"),
'account.tax', 'Target tax'),
'target_tax_description': fields.related(
'target_tax_id', 'description',
type='char', size=32,

View File

@@ -6,7 +6,7 @@
<field name="model">account.tax</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree>
<tree string="Taxes">
<field name="name"/>
<field name="description"/>
<field name="amount"/>

View File

@@ -6,12 +6,10 @@
<field name="model">account.update.tax.select_taxes</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form>
<form string="Taxes">
<label colspan="4" string="Add the taxes that need to be replaced here. Any parent or child taxes will be added automatically when you close this window."/>
<field name="tax_ids" colspan="4" nolabel="1"
domain="[('type_tax_use', 'in',
['all'] +
(type_tax_use and [type_tax_use] or [])),
domain="[('type_tax_use','in',(['all']+(type_tax_use and [type_tax_use] or []))),
('id', 'not in', covered_tax_ids[0][2])]"
context="{'tree_view_ref': 'account_tax_update.tax_tree_view'}"
/>

View File

@@ -6,10 +6,13 @@
<field name="model">account.update.tax.config</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form>
<form string="Taxes">
<field name="name"
attrs="{'readonly': [('state', '!=', 'draft')]}"
/>
<field name="duplicate_tax_code"
attrs="{'readonly': [('state', '!=', 'draft')]}"
/>
<field name="state"/>
<field name="default_amount"
attrs="{'readonly': [('state', '!=', 'draft')]}"
@@ -86,11 +89,12 @@
<field name="model">account.update.tax.config.line</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="source_tax_name"/>
<tree string="Taxes" editable="bottom">
<field name="source_tax_id"/>
<field name="source_tax_description"/>
<field name="amount_old"/>
<field name="target_tax_name"/>
<field name="target_tax_id" attrs="{'readonly': [('state', '!=', 'confirm')]}" />
<field name="state" invisible='1'/>
<field name="target_tax_description"/>
<field name="amount_new"/>
</tree>