mirror of
https://github.com/bringout/oca-ocb-sale.git
synced 2026-04-27 11:12:02 +02:00
Initial commit: Sale packages
This commit is contained in:
commit
14e3d26998
6469 changed files with 2479670 additions and 0 deletions
|
|
@ -0,0 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import test_crm_lead_convert_quotation
|
||||
from . import test_crm_lead_merge
|
||||
|
|
@ -0,0 +1,120 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
|
||||
from odoo.addons.crm.tests import common as crm_common
|
||||
from odoo.tests.common import tagged, users
|
||||
|
||||
|
||||
@tagged('lead_manage')
|
||||
class TestLeadConvertToTicket(crm_common.TestCrmCommon):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestLeadConvertToTicket, cls).setUpClass()
|
||||
cls.lead_1.write({
|
||||
'user_id': cls.user_sales_salesman.id,
|
||||
})
|
||||
|
||||
@users('user_sales_salesman')
|
||||
def test_lead_convert_to_quotation_create(self):
|
||||
""" Test partner creation while converting """
|
||||
# Perform initial tests, do not repeat them at each test
|
||||
lead = self.lead_1.with_user(self.env.user)
|
||||
self.assertEqual(lead.partner_id, self.env['res.partner'])
|
||||
new_partner = self.env['res.partner'].search([('email_normalized', '=', 'amy.wong@test.example.com')])
|
||||
self.assertEqual(new_partner, self.env['res.partner'])
|
||||
|
||||
# invoke wizard and apply it
|
||||
convert = self.env['crm.quotation.partner'].with_context({
|
||||
'active_model': 'crm.lead',
|
||||
'active_id': lead.id
|
||||
}).create({})
|
||||
|
||||
self.assertEqual(convert.action, 'create')
|
||||
self.assertEqual(convert.partner_id, self.env['res.partner'])
|
||||
|
||||
action = convert.action_apply()
|
||||
|
||||
# test lead update
|
||||
new_partner = self.env['res.partner'].search([('email_normalized', '=', 'amy.wong@test.example.com')])
|
||||
self.assertEqual(lead.partner_id, new_partner)
|
||||
|
||||
# test wizard action (does not create anything, just returns action)
|
||||
self.assertEqual(action['res_model'], 'sale.order')
|
||||
self.assertEqual(action['context']['default_partner_id'], new_partner.id)
|
||||
|
||||
@users('user_sales_salesman')
|
||||
def test_lead_convert_to_quotation_exist(self):
|
||||
""" Test taking only existing customer while converting """
|
||||
lead = self.lead_1.with_user(self.env.user)
|
||||
|
||||
# invoke wizard and apply it
|
||||
convert = self.env['crm.quotation.partner'].with_context({
|
||||
'active_model': 'crm.lead',
|
||||
'active_id': lead.id
|
||||
}).create({'action': 'exist'})
|
||||
|
||||
self.assertEqual(convert.action, 'exist')
|
||||
self.assertEqual(convert.partner_id, self.env['res.partner'])
|
||||
|
||||
action = convert.action_apply()
|
||||
|
||||
# test lead update
|
||||
new_partner = self.env['res.partner'].search([('email_normalized', '=', 'amy.wong@test.example.com')])
|
||||
self.assertEqual(new_partner, self.env['res.partner'])
|
||||
|
||||
convert.write({'partner_id': self.contact_2.id})
|
||||
action = convert.action_apply()
|
||||
|
||||
# test lead update
|
||||
new_partner = self.env['res.partner'].search([('email_normalized', '=', 'amy.wong@test.example.com')])
|
||||
self.assertEqual(new_partner, self.env['res.partner'])
|
||||
self.assertEqual(lead.partner_id, self.contact_2)
|
||||
# TDE TODO: have a real sync assert for lead / contact
|
||||
self.assertEqual(lead.email_from, self.contact_2.email)
|
||||
self.assertEqual(lead.mobile, self.contact_2.mobile)
|
||||
self.assertEqual(action['context']['default_partner_id'], self.contact_2.id)
|
||||
|
||||
@users('user_sales_salesman')
|
||||
def test_lead_convert_to_quotation_false_match_create(self):
|
||||
lead = self.lead_1.with_user(self.env.user)
|
||||
|
||||
# invoke wizard and apply it
|
||||
convert = self.env['crm.quotation.partner'].with_context({
|
||||
'active_model': 'crm.lead',
|
||||
'active_id': lead.id,
|
||||
}).create({'action': 'create'})
|
||||
|
||||
convert.write({'partner_id': self.contact_2.id})
|
||||
|
||||
self.assertEqual(convert.action, 'create')
|
||||
|
||||
# ignore matching partner and create a new one
|
||||
convert.action_apply()
|
||||
|
||||
self.assertTrue(bool(lead.partner_id.id))
|
||||
self.assertNotEqual(lead.partner_id, self.contact_2)
|
||||
|
||||
@users('user_sales_salesman')
|
||||
def test_lead_convert_to_quotation_nothing(self):
|
||||
""" Test doing nothing about customer while converting """
|
||||
lead = self.lead_1.with_user(self.env.user)
|
||||
|
||||
# invoke wizard and apply it
|
||||
convert = self.env['crm.quotation.partner'].with_context({
|
||||
'active_model': 'crm.lead',
|
||||
'active_id': lead.id,
|
||||
'default_action': 'nothing',
|
||||
}).create({})
|
||||
|
||||
self.assertEqual(convert.action, 'nothing')
|
||||
self.assertEqual(convert.partner_id, self.env['res.partner'])
|
||||
|
||||
action = convert.action_apply()
|
||||
|
||||
# test lead update
|
||||
new_partner = self.env['res.partner'].search([('email_normalized', '=', 'amy.wong@test.example.com')])
|
||||
self.assertEqual(new_partner, self.env['res.partner'])
|
||||
self.assertEqual(lead.partner_id, self.env['res.partner'])
|
||||
self.assertEqual(action['context']['default_partner_id'], False)
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.addons.crm.tests.test_crm_lead_merge import TestLeadMergeCommon
|
||||
from odoo.tests.common import tagged, users
|
||||
|
||||
|
||||
@tagged('lead_manage')
|
||||
class TestLeadSaleMerge(TestLeadMergeCommon):
|
||||
|
||||
@users('user_sales_manager')
|
||||
def test_merge_method_dependencies(self):
|
||||
""" Test if dependences for leads are not lost while merging leads. In
|
||||
this test leads are ordered as
|
||||
|
||||
lead_w_contact -----------lead---seq=30
|
||||
lead_w_email -------------lead---seq=3
|
||||
lead_1 -------------------lead---seq=1
|
||||
lead_w_partner_company ---lead---seq=1----------------orders
|
||||
lead_w_partner -----------lead---seq=False------------orders
|
||||
"""
|
||||
TestLeadMergeCommon.merge_fields.append('order_ids')
|
||||
|
||||
orders = self.env['sale.order'].sudo().create([
|
||||
{'partner_id': self.contact_1.id,
|
||||
'opportunity_id': self.lead_w_partner_company.id,
|
||||
},
|
||||
{'partner_id': self.contact_1.id,
|
||||
'opportunity_id': self.lead_w_partner.id,
|
||||
}
|
||||
])
|
||||
self.assertEqual(self.lead_w_partner_company.order_ids, orders[0])
|
||||
self.assertEqual(self.lead_w_partner.order_ids, orders[1])
|
||||
|
||||
leads = self.env['crm.lead'].browse(self.leads.ids)._sort_by_confidence_level(reverse=True)
|
||||
with self.assertLeadMerged(self.lead_w_contact, leads,
|
||||
name=self.lead_w_contact.name,
|
||||
order_ids=orders
|
||||
):
|
||||
leads._merge_opportunity(auto_unlink=False, max_length=None)
|
||||
Loading…
Add table
Add a link
Reference in a new issue