From 7b0fac508fb60918392ed83bf25a91eab17d745e Mon Sep 17 00:00:00 2001 From: "sbh (Open ERP)" Date: Sat, 10 Jul 2010 19:12:00 +0530 Subject: [PATCH] [IMP] project_mrp: Rename the file bzr revid: sbh@tinyerp.com-20100710134200-ziqqzyzx7fcax186 --- addons/project_mrp/__init__.py | 2 +- addons/project_mrp/mrp.py | 108 ----------------------------- addons/project_mrp/project_procurement.py | 108 +++++++++++++++++++++++++++++ addons/purchase/__openerp__.py | 3 +- 4 files changed, 111 insertions(+), 110 deletions(-) delete mode 100644 addons/project_mrp/mrp.py create mode 100644 addons/project_mrp/project_procurement.py diff --git a/addons/project_mrp/__init__.py b/addons/project_mrp/__init__.py index 766b70f..c2ef40b 100644 --- a/addons/project_mrp/__init__.py +++ b/addons/project_mrp/__init__.py @@ -18,6 +18,6 @@ # along with this program. If not, see . # ############################################################################## -import mrp +import project_procurement import project_mrp # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project_mrp/mrp.py b/addons/project_mrp/mrp.py deleted file mode 100644 index d4f703b..0000000 --- a/addons/project_mrp/mrp.py +++ /dev/null @@ -1,108 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from osv import fields, osv, orm - -import tools - -class procurement_order(osv.osv): - _name = "procurement.order" - _inherit = "procurement.order" - _columns = { - 'task_id': fields.many2one('project.task', 'Task') - } - - def action_produce_assign_service(self, cr, uid, ids, context=None): - if context is None: - context = {} - for procurement in self.browse(cr, uid, ids): - sline = self.pool.get('sale.order.line') - product_obj=self.pool.get('product.product') - content = '' - sale_order = self.pool.get('sale.order') - so_ref = procurement.name.split(':')[0] - order_ids = sale_order.search(cr, uid, [('name', '=', so_ref)], context) - - if order_ids: - sale_ids = sale_order.read(cr, uid, order_ids[0], ['order_line'], context=context)['order_line'] - else: - so_ref = procurement.origin.split(':')[0] - sale_ids = sline.search(cr, uid, [('procurement_id', '=',procurement.id)], context) - l = None - project_id = None - analytic_account_id = False - partner_id = False - - for line in sline.browse(cr, uid, sale_ids, context=context): - content += (line.notes or '') - l = line - partner_id = line.order_id.partner_id.id - if line.order_id.project_id: - analytic_account_id = line.order_id.project_id.id - partner_id = line.order_id.partner_id.id - content+="\n\n"+line.order_id.project_id.complete_name - break - - # Creating a project for task.Project is created from Procurement. - project_obj = self.pool.get('project.project') - proj_name = tools.ustr(so_ref) - product_project_id =procurement.product_id.project_id and procurement.product_id.project_id.id or False - proj_exist_id = project_obj.search(cr, uid, [('name', '=', proj_name)], context=context) - if not proj_exist_id: - project_id = project_obj.create(cr, uid, {'name': proj_name, 'partner_id': partner_id,'parent_id':product_project_id}) - else: - project_id = proj_exist_id[0] - - self.write(cr, uid, [procurement.id], {'state': 'running'}) - - name_task = ('','') - planned_hours=0.0 - if procurement.product_id.type == 'service': - proc_name = procurement.name - if procurement.origin == proc_name: - proc_name = procurement.product_id.name - - name_task = (procurement.origin, proc_name or '') - else: - name_task = (procurement.product_id.name or procurement.origin, procurement.name or '') - planned_hours= procurement.product_id.sale_delay +procurement.product_id. produce_delay - task_id = self.pool.get('project.task').create(cr, uid, { - 'name': '%s:%s' % name_task, - 'date_deadline': procurement.date_planned, - 'planned_hours':planned_hours, - 'remaining_hours': planned_hours, - 'user_id': procurement.product_id.product_manager.id, - 'notes': "b"+(l and l.order_id.note or ''), - 'procurement_id': procurement.id, - 'description': content, - 'date_deadline': procurement.date_planned, - 'state': 'draft', - 'partner_id': l and l.order_id.partner_id.id or False, - 'company_id': procurement.company_id.id, - 'project_id': project_id, - },context=context) - self.write(cr, uid, [procurement.id],{'task_id':task_id}) - product_obj.write(cr,uid,[procurement.product_id.id],{'project_id':project_id}) - return task_id - -procurement_order() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/project_mrp/project_procurement.py b/addons/project_mrp/project_procurement.py new file mode 100644 index 0000000..d4f703b --- /dev/null +++ b/addons/project_mrp/project_procurement.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from osv import fields, osv, orm + +import tools + +class procurement_order(osv.osv): + _name = "procurement.order" + _inherit = "procurement.order" + _columns = { + 'task_id': fields.many2one('project.task', 'Task') + } + + def action_produce_assign_service(self, cr, uid, ids, context=None): + if context is None: + context = {} + for procurement in self.browse(cr, uid, ids): + sline = self.pool.get('sale.order.line') + product_obj=self.pool.get('product.product') + content = '' + sale_order = self.pool.get('sale.order') + so_ref = procurement.name.split(':')[0] + order_ids = sale_order.search(cr, uid, [('name', '=', so_ref)], context) + + if order_ids: + sale_ids = sale_order.read(cr, uid, order_ids[0], ['order_line'], context=context)['order_line'] + else: + so_ref = procurement.origin.split(':')[0] + sale_ids = sline.search(cr, uid, [('procurement_id', '=',procurement.id)], context) + l = None + project_id = None + analytic_account_id = False + partner_id = False + + for line in sline.browse(cr, uid, sale_ids, context=context): + content += (line.notes or '') + l = line + partner_id = line.order_id.partner_id.id + if line.order_id.project_id: + analytic_account_id = line.order_id.project_id.id + partner_id = line.order_id.partner_id.id + content+="\n\n"+line.order_id.project_id.complete_name + break + + # Creating a project for task.Project is created from Procurement. + project_obj = self.pool.get('project.project') + proj_name = tools.ustr(so_ref) + product_project_id =procurement.product_id.project_id and procurement.product_id.project_id.id or False + proj_exist_id = project_obj.search(cr, uid, [('name', '=', proj_name)], context=context) + if not proj_exist_id: + project_id = project_obj.create(cr, uid, {'name': proj_name, 'partner_id': partner_id,'parent_id':product_project_id}) + else: + project_id = proj_exist_id[0] + + self.write(cr, uid, [procurement.id], {'state': 'running'}) + + name_task = ('','') + planned_hours=0.0 + if procurement.product_id.type == 'service': + proc_name = procurement.name + if procurement.origin == proc_name: + proc_name = procurement.product_id.name + + name_task = (procurement.origin, proc_name or '') + else: + name_task = (procurement.product_id.name or procurement.origin, procurement.name or '') + planned_hours= procurement.product_id.sale_delay +procurement.product_id. produce_delay + task_id = self.pool.get('project.task').create(cr, uid, { + 'name': '%s:%s' % name_task, + 'date_deadline': procurement.date_planned, + 'planned_hours':planned_hours, + 'remaining_hours': planned_hours, + 'user_id': procurement.product_id.product_manager.id, + 'notes': "b"+(l and l.order_id.note or ''), + 'procurement_id': procurement.id, + 'description': content, + 'date_deadline': procurement.date_planned, + 'state': 'draft', + 'partner_id': l and l.order_id.partner_id.id or False, + 'company_id': procurement.company_id.id, + 'project_id': project_id, + },context=context) + self.write(cr, uid, [procurement.id],{'task_id':task_id}) + product_obj.write(cr,uid,[procurement.product_id.id],{'project_id':project_id}) + return task_id + +procurement_order() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/purchase/__openerp__.py b/addons/purchase/__openerp__.py index 471f521..479155f 100644 --- a/addons/purchase/__openerp__.py +++ b/addons/purchase/__openerp__.py @@ -58,7 +58,8 @@ 'test/purchase_from_order.yml', 'test/purchase_from_manual.yml', # 'test/purchase_from_picking.yml', - 'purchase_unit_test.xml' + 'purchase_unit_test.xml', + 'test/procurement_buy.yml', ], 'demo': ['purchase_demo.xml'], 'installable': True, -- 1.7.10.4