From 65652235c672cdc129e27f2e82be18b7bedbf928 Mon Sep 17 00:00:00 2001 From: Jay Vora Date: Thu, 20 Nov 2008 16:33:41 +0530 Subject: [PATCH 1/2] Account_analytic_plans:Corrected analytic line creation/modification behaviour from move line creation/modification based on Analytic Distribution,Bugfix on model creation. bzr revid: jvo@tinyerp.com-20081120110341-ylg9biphgfdnigym --- .../account_analytic_plans/account_analytic_plans.py | 12 ++++++++++-- .../account_analytic_plans_view.xml | 8 ++++---- addons/account_analytic_plans/wizard/create_model.py | 7 +++++-- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py index 73b5f4bc815..b1e61d29cd7 100644 --- a/addons/account_analytic_plans/account_analytic_plans.py +++ b/addons/account_analytic_plans/account_analytic_plans.py @@ -191,6 +191,9 @@ class account_analytic_plan_instance(osv.osv): if total_per_plan < item.min_required or total_per_plan > item.max_required: raise osv.except_osv("Value Error" ,"The Total Should be Between " + str(item.min_required) + " and " + str(item.max_required)) + if not vals['name'] and not vals['code']: + raise osv.except_osv('Error', 'Make sure You have entered Name and Code for the model !') + return super(account_analytic_plan_instance, self).create(cr, uid, vals, context) def write(self, cr, uid, ids, vals, context={}, check=True, update_check=True): @@ -207,9 +210,9 @@ class account_analytic_plan_instance(osv.osv): #and finally modify the old model to be not a model anymore vals['plan_id'] = False if not vals.has_key('name'): - vals['name'] = this.name+'*' + vals['name'] = this.name and (str(this.name)+'*') or "*" if not vals.has_key('code'): - vals['code'] = this.code+'*' + vals['code'] = this.code and (str(this.code)+'*') or "*" return self.write(cr, uid, [this.id],vals, context) else: #this plan instance isn't a model, so a simple write is fine @@ -311,6 +314,11 @@ class account_move_line(osv.osv): def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True): self.called=False + if ('analytics_id' in vals) and (not vals['analytics_id']): + for line in self.browse(cr, uid, ids, context): + toremove = self.pool.get('account.analytic.line').search(cr, uid, [('move_id','=',line.id)], context=context) + if toremove: + self.pool.get('account.analytic.line').unlink(cr, uid, toremove, context=context) result = super(account_move_line, self).write(cr, uid, ids, vals, context, check, update_check) self._analytic_update(cr, uid, ids, context) return result diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml index a211f633e9b..4bb55187891 100644 --- a/addons/account_analytic_plans/account_analytic_plans_view.xml +++ b/addons/account_analytic_plans/account_analytic_plans_view.xml @@ -95,10 +95,10 @@ tree - - - - + + + + diff --git a/addons/account_analytic_plans/wizard/create_model.py b/addons/account_analytic_plans/wizard/create_model.py index 2efdf19800f..a0bae6059a6 100644 --- a/addons/account_analytic_plans/wizard/create_model.py +++ b/addons/account_analytic_plans/wizard/create_model.py @@ -1,7 +1,7 @@ # -*- encoding: utf-8 -*- ############################################################################## # -# OpenERP, Open Source Management Solution +# OpenERP, Open Source Management Solution # Copyright (C) 2004-2008 Tiny SPRL (). All Rights Reserved # $Id$ # @@ -29,6 +29,7 @@ info = '''