diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py index 36e8fdb4d1e..05ed350bea1 100644 --- a/addons/crm/__openerp__.py +++ b/addons/crm/__openerp__.py @@ -123,7 +123,7 @@ Creates a dashboard for CRM that includes: 'test/process/cancle_crm_lead.yml', 'test/process/process_crm_meeting.yml', 'test/test_crm_opportunity.yml', - 'test/test_crm_phonecall.yml', + 'test/process/process_crm_phonecall.yml', 'test/test_crm_recurrent_meeting.yml', 'test/test_crm_stage_changes.yml', 'test/test_crm_recurrent_meeting_case2.yml', diff --git a/addons/crm/test/process/process_crm_phonecall.yml b/addons/crm/test/process/process_crm_phonecall.yml new file mode 100644 index 00000000000..25f3069fac6 --- /dev/null +++ b/addons/crm/test/process/process_crm_phonecall.yml @@ -0,0 +1,73 @@ +- | + For customer or partner purpose, I called to him/her for discussion about openerp. +- + !record {model: crm.phonecall, id: crm_phonecall_disc_openerp}: + date: !eval time.strftime('%Y-%m-%d 08:00:00') + name: Discussion About Openerp + duration: 2.0 + section_id: crm.section_sales_department +- + After called to Customer/partner, So creating record to merge with exiting partner +- + !record {model: crm.phonecall2partner, id: crm_phonecall2partner_existed}: + action: exist + partner_id: base.res_partner_9 + +- + We are going to create partner. +- + !python {model: crm.phonecall2partner}: | + + self._select_partner(cr, uid,{"active_ids": [ref("crm_phonecall_disc_openerp")]}) + self.open_create_partner(cr, uid, [ref("crm_phonecall2partner_existed")], {"active_ids": [ref("crm_phonecall_disc_openerp")]}) + self.make_partner(cr, uid, [ref("crm_phonecall2partner_existed")], {"active_ids": [ref("crm_phonecall_disc_openerp")]}) + +- | + As the success of phonecall seems to be a real business opportunity, It will convert + it to opportunity. +- + !record {model: crm.phonecall2opportunity, id: crm_phonecall2opportunity_disc_openerp}: + name: Discussion About Openerp + partner_id: base.res_partner_9 + planned_revenue: 0.0 + probability: 0.0 +- | + Business opportunity is now assigned to this phonecall. +- + !assert {model: crm.phonecall, id: crm_phonecall_disc_openerp}: + - opportunity_id != False +- + Succeed phonecall, it will be convert into on opportunity. +- + !python {model: crm.phonecall2opportunity}: | + self.action_apply(cr, uid, [ref("crm_phonecall2opportunity_disc_openerp")], {"active_id": ref("crm_phonecall_disc_openerp")}) +- | + For business And I check that the phonecall and the newly created business + opportunity is linked to same partner. +- + !python {model: crm.phonecall}: | + obj_phonecall = self.browse(cr, uid, ref('crm_phonecall_disc_openerp')) + ids = self.pool.get('crm.lead').search(cr, uid, [('name', '=', obj_phonecall.opportunity_id.name)]) + obj_opp = self.pool.get('crm.lead').browse(cr, uid, ids)[0] + assert obj_phonecall.partner_id == obj_opp.partner_id +- | + Customer/partner intested with our product, so we will call back to him/her +- + !record {model: crm.phonecall2phonecall, id: crm_phonecall2phonecall_disc_openerp}: + date: !eval "'%s-%s-%s 19:49:00' %(datetime.now().year,datetime.now().month,datetime.now().day)" + name: interest with openerp + section_id: crm.section_sales_department + user_id: base.user_root + action: schedule + categ_id: crm.categ_phone1 +- | + Create other sedular call which is interested customer/partner. +- + !python {model: crm.phonecall2phonecall}: | + self.action_apply(cr, uid, [ref('crm_phonecall2phonecall_disc_openerp')], {'active_id': ref('crm_phonecall_disc_openerp')}) +- | + Completion of phonecall, Cheking for phonecall summary is close or not. +- + !python {model: crm.phonecall}: | + phonecall_rec = self.browse(cr, uid, ref('crm_phonecall_disc_openerp')) + assert phonecall_rec.state == 'done', "Phonecall is not in done state" diff --git a/addons/crm/test/test_crm_phonecall.yml b/addons/crm/test/test_crm_phonecall.yml deleted file mode 100644 index 0754a5b9544..00000000000 --- a/addons/crm/test/test_crm_phonecall.yml +++ /dev/null @@ -1,116 +0,0 @@ -- | - I start by creating a new phonecall. -- - !record {model: crm.phonecall, id: crm_phonecall_interviewcall0}: - date: !eval time.strftime('%Y-%m-%d 08:00:00') - name: Interview call - duration: 2.0 - section_id: crm.section_sales_department -- - I select partner by click on "Create a Partner" button. -- - !record {model: crm.phonecall2partner, id: crm_phonecall2partner_1}: - action: exist - partner_id: base.res_partner_9 - -- - I click on "Continue" button of this wizard and make partner. -- - !python {model: crm.phonecall2partner}: | - - self._select_partner(cr, uid,{"active_ids": [ref("crm_phonecall_interviewcall0")]}) - self.open_create_partner(cr, uid, [ref("crm_phonecall2partner_1")], {"active_ids": [ref("crm_phonecall_interviewcall0")]}) - self.make_partner(cr, uid, [ref("crm_phonecall2partner_1")], {"active_ids": [ref("crm_phonecall_interviewcall0")]}) - -- | - As the success of phonecall seems to be a real business opportunity, I will convert - it to opportunity by clicking on the "Convert to Opportunity" button. -- - !record {model: crm.phonecall2opportunity, id: crm_phonecall2opportunity_interviewcall0}: - name: Interview call - partner_id: base.res_partner_9 - planned_revenue: 0.0 - probability: 0.0 -- | - I can see that a business opportunity is now assigned to this phonecall -- - !assert {model: crm.phonecall, id: crm_phonecall_interviewcall0}: - - opportunity_id != False -- - I click on "Convert" button of this wizard. -- - !python {model: crm.phonecall2opportunity}: | - self.action_apply(cr, uid, [ref("crm_phonecall2opportunity_interviewcall0")], {"active_id": ref("crm_phonecall_interviewcall0")}) -- | - And I check that the phonecall and the newly created business opportunity is linked - to same partner. -- - !python {model: crm.phonecall}: | - obj_phonecall = self.browse(cr, uid, ref('crm_phonecall_interviewcall0')) - ids = self.pool.get('crm.lead').search(cr, uid, [('name', '=', obj_phonecall.opportunity_id.name)]) - obj_opp = self.pool.get('crm.lead').browse(cr, uid, ids)[0] - assert obj_phonecall.partner_id == obj_opp.partner_id -- | - I schedule Meeting on this current phonecall by clicking on "schedule - Meeting". -- - !python {model: crm.phonecall}: | - self.action_make_meeting(cr, uid, [ref('crm_phonecall_interviewcall0')]) - -- | - I can see that Meeting's calendar view is shown. - then I click on the date on which I want schedule meeting. - I fill proper data for that meeting and save it. -- - !record {model: crm.meeting, id: crm_meeting_interviewcall0}: - alarm_id: base_calendar.alarm3 - date: !eval "'%s-%s-%s 09:00:00' %(datetime.now().year,datetime.now().month,datetime.now().day)" - date_deadline: !eval "'%s-%s-%s 17:00:00' %(datetime.now().year,datetime.now().month,datetime.now().day)" - duration: 8.0 - email_from: info@balmerinc.be - name: Interview call - partner_address_id: base.res_partner_address_1 - partner_id: base.res_partner_9 - phonecall_id: 'crm_phonecall_interviewcall0' - state: open - -- | - In order to schedule other phonecall to the partner - I click on "schedule other call" button. and plan for other call - I can see that it will open other phonecall view with some data same as current - phonecall. -- - !record {model: crm.phonecall2phonecall, id: crm_phonecall2phonecall_interviewcall0}: - date: !eval "'%s-%s-%s 19:49:00' %(datetime.now().year,datetime.now().month,datetime.now().day)" - name: Interview call - section_id: crm.section_sales_department - user_id: base.user_root - action: schedule - categ_id: crm.categ_phone1 -- - I click on "schedule other call" button. and plan for other call. -- - !record {model: crm.phonecall2phonecall, id: crm_phonecall2phonecall_interviewcall1}: - date: !eval "'%s-%s-%s 19:49:00' %(datetime.now().year,datetime.now().month,datetime.now().day)" - name: Interview call - section_id: crm.section_sales_department - user_id: base.user_root - action: log - categ_id: crm.categ_phone1 -- | - I click on "Schedule" button of this wizard. -- - !python {model: crm.phonecall2phonecall}: | - fields = { - 'name': 'Interview call', - 'section_id': ref('crm.section_sales_department'), - 'user_id': ref('base.user_root'), - 'categ_id': ref('crm.categ_phone1') - } - self.default_get(cr, uid, fields,{'active_id': ref('crm_phonecall_interviewcall0')}) - self.action_apply(cr, uid, [ref('crm_phonecall2phonecall_interviewcall0')], {'active_id': ref('crm_phonecall_interviewcall0')}) -- | - I click on "Schedule" button of this wizard with log option. -- - !python {model: crm.phonecall2phonecall}: | - self.action_apply(cr, uid, [ref('crm_phonecall2phonecall_interviewcall1')], {'active_id': ref('crm_phonecall_interviewcall0')})