diff --git a/addons/sale_crm/sale_crm.py b/addons/sale_crm/sale_crm.py index e9ab87e54a4..4b73c3b25e8 100644 --- a/addons/sale_crm/sale_crm.py +++ b/addons/sale_crm/sale_crm.py @@ -21,21 +21,6 @@ from openerp.osv import osv, fields -class sale_order(osv.osv): - _inherit = 'sale.order' - _columns = { - 'section_id': fields.many2one('crm.case.section', 'Sales Team'), - 'categ_ids': fields.many2many('crm.case.categ', 'sale_order_category_rel', 'order_id', 'category_id', 'Categories', \ - domain="['|',('section_id','=',section_id),('section_id','=',False), ('object_id.model', '=', 'crm.lead')]", context="{'object_name': 'crm.lead'}") - } - - def _prepare_invoice(self, cr, uid, order, lines, context=None): - invoice_vals = super(sale_order, self)._prepare_invoice(cr, uid, order, lines, context=context) - if order.section_id and order.section_id.id: - invoice_vals['section_id'] = order.section_id.id - return invoice_vals - - class res_users(osv.Model): _inherit = 'res.users' _columns = { @@ -49,6 +34,31 @@ class res_users(osv.Model): self.SELF_WRITEABLE_FIELDS.extend(['default_section_id']) return init_res +class sale_order(osv.osv): + _inherit = 'sale.order' + _columns = { + 'section_id': fields.many2one('crm.case.section', 'Sales Team'), + 'categ_ids': fields.many2many('crm.case.categ', 'sale_order_category_rel', 'order_id', 'category_id', 'Categories', \ + domain="['|',('section_id','=',section_id),('section_id','=',False), ('object_id.model', '=', 'crm.lead')]", context="{'object_name': 'crm.lead'}") + } + + def _get_default_section_id(self, cr, uid, context=None): + """ Gives default section by checking if present in the context """ + section_id = self.pool.get('crm.lead')._resolve_section_id_from_context(cr, uid, context=context) or False + if not section_id: + section_id = self.pool.get('res.users').browse(cr, uid, uid, context).default_section_id.id or False + return section_id + + _defaults = { + 'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c), + } + + def _prepare_invoice(self, cr, uid, order, lines, context=None): + invoice_vals = super(sale_order, self)._prepare_invoice(cr, uid, order, lines, context=context) + if order.section_id and order.section_id.id: + invoice_vals['section_id'] = order.section_id.id + return invoice_vals + class sale_crm_lead(osv.Model): _inherit = 'crm.lead'