From a2ebdd459b799106f23db9269ca079e2c9f328a3 Mon Sep 17 00:00:00 2001 From: Vincent Renaville Date: Wed, 23 Oct 2013 10:35:47 +0200 Subject: [PATCH] [FIX] Port of the module --- account_tax_update/__init__.py | 2 +- account_tax_update/model/__init__.py | 6 +-- account_tax_update/model/update_tax_config.py | 54 ++++++++++++++----- account_tax_update/view/account_tax.xml | 2 +- account_tax_update/view/select_taxes.xml | 6 +-- account_tax_update/view/update_tax_config.xml | 12 +++-- 6 files changed, 57 insertions(+), 25 deletions(-) diff --git a/account_tax_update/__init__.py b/account_tax_update/__init__.py index 16e8b082f..36ec7207a 100644 --- a/account_tax_update/__init__.py +++ b/account_tax_update/__init__.py @@ -1 +1 @@ -import model +from . import model \ No newline at end of file diff --git a/account_tax_update/model/__init__.py b/account_tax_update/model/__init__.py index b8ad2f121..95f69e8e6 100644 --- a/account_tax_update/model/__init__.py +++ b/account_tax_update/model/__init__.py @@ -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 diff --git a/account_tax_update/model/update_tax_config.py b/account_tax_update/model/update_tax_config.py index 21c406014..6e5af4d27 100644 --- a/account_tax_update/model/update_tax_config.py +++ b/account_tax_update/model/update_tax_config.py @@ -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, diff --git a/account_tax_update/view/account_tax.xml b/account_tax_update/view/account_tax.xml index 037030171..87817a6fd 100644 --- a/account_tax_update/view/account_tax.xml +++ b/account_tax_update/view/account_tax.xml @@ -6,7 +6,7 @@ account.tax tree - + diff --git a/account_tax_update/view/select_taxes.xml b/account_tax_update/view/select_taxes.xml index 56959145c..0e1015ebb 100644 --- a/account_tax_update/view/select_taxes.xml +++ b/account_tax_update/view/select_taxes.xml @@ -6,12 +6,10 @@ account.update.tax.select_taxes form -
+