[IMP] sale_crm: after sale confim, opportunity should be win stageand sale cancel, opportunity should be in lost stage

bzr revid: hmo@tinyerp.com-20100908092957-o86hiv6j33h4tvj6
This commit is contained in:
Harry (OpenERP) 2010-09-08 14:59:57 +05:30
parent effbcee60e
commit a5bb2c643c
1 changed files with 33 additions and 2 deletions

View File

@ -26,7 +26,38 @@ class sale_order(osv.osv):
_columns = {
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
}
def action_cancel(self, cr, uid, ids, context=None):
res = super(sale_order, self).action_cancel(cr, uid, ids, context=context)
case_pool = self.pool.get('crm.lead')
data_pool = self.pool.get('ir.model.data')
data = data_pool._get_id(cr, uid, 'crm', 'stage_lead6')
res_data = data_pool.read(cr, uid, data, ['res_id'])
lost_stage_id = False
if res_data and res_data.get('res_id'):
lost_stage_id = res_data.get('res_id', False)
if not lost_stage_id:
return res
# After sale cancel, lead also lost
for sale_id in ids:
lead_ids = case_pool.search(cr, uid, [('ref','=','sale.order,%s'%(sale_id))])
case_pool.write(cr, uid, lead_ids, {'stage_id': lost_stage_id})
return res
def action_ship_create(self, cr, uid, ids, *args):
res = super(sale_order, self).action_ship_create(cr, uid, ids, *args)
case_pool = self.pool.get('crm.lead')
data_pool = self.pool.get('ir.model.data')
data = data_pool._get_id(cr, uid, 'crm', 'stage_lead5')
res_data = data_pool.read(cr, uid, data, ['res_id'])
win_stage_id = False
if res_data and res_data.get('res_id'):
win_stage_id = res_data.get('res_id', False)
if not win_stage_id:
return res
# After sale confimed, lead also win
for sale_id in ids:
lead_ids = case_pool.search(cr, uid, [('ref','=','sale.order,%s'%(sale_id))])
case_pool.write(cr, uid, lead_ids, {'stage_id': win_stage_id})
return res
def _get_section(self, cr, uid, context=None):
return context.get('context_section_id', False)
@ -36,4 +67,4 @@ class sale_order(osv.osv):
sale_order()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: