From 8a8cf9b9a7e1eafec1a0f540e7c226c83f1a249c Mon Sep 17 00:00:00 2001 From: "rpa (Open ERP)" Date: Fri, 23 Oct 2009 17:39:46 +0530 Subject: [PATCH] [IMP]: Improvement in planning overlap constraint bzr revid: rpa@tinyerp.com-20091023120946-jv5gl2tu25qd7e39 --- .../report_analytic_planning.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/addons/report_analytic_planning/report_analytic_planning.py b/addons/report_analytic_planning/report_analytic_planning.py index b150fb32f99..cf15bde3456 100644 --- a/addons/report_analytic_planning/report_analytic_planning.py +++ b/addons/report_analytic_planning/report_analytic_planning.py @@ -70,8 +70,16 @@ class report_account_analytic_planning(osv.osv): for obj_plan in self.browse(cr,uid,ids): cr.execute(""" SELECT id FROM report_account_analytic_planning plan - WHERE ( user_id = %(uid)s - AND id <> %(id)s )""" % ({"uid": obj_plan.user_id.id,"id" : obj_plan.id})) + WHERE ( (%(date_from)s BETWEEN date_from AND date_to) + OR (%(date_to)s BETWEEN date_from AND date_to) + OR (%(date_from)s < date_from AND %(date_to)s > date_to) + ) AND user_id = %(uid)s AND id <> %(id)s""", + {"date_from": obj_plan.date_from, + "date_to": obj_plan.date_to, + "uid": obj_plan.user_id.id, + "id" : obj_plan.id} + ) + res = cr.fetchone() if res: return False @@ -101,7 +109,7 @@ class report_account_analytic_planning(osv.osv): _order = 'date_from desc' _constraints = [ - (_check_planning_responsible, 'Invalid planning ! Planning can\'t overlap for the same responsible. ', ['user_id']) + (_check_planning_responsible, 'Invalid planning ! Planning dates can\'t overlap for the same responsible. ', ['user_id']) ] def action_open(self, cr, uid, id, context={}):