[FIX] sale: change sales team on sale.order if specified on res.partner

Current behavior: If new partner is chosen on sale.order, sales team remains the same.

This fix allows sales team from res.partner to be considered.

opw-3607442

closes odoo/odoo#147231

X-original-commit: ff5a2a419b89fc24b3fbc34edb88c31403484d94
Signed-off-by: Evgeniia Kotova (evko) <evko@odoo.com>
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
This commit is contained in:
Evgeniia Kotova
2024-01-22 19:00:56 +00:00
committed by Victor Feyens
parent f3d7a97f69
commit 2c5a856850
2 changed files with 30 additions and 1 deletions
+1 -1
View File
@@ -435,7 +435,7 @@ class SaleOrder(models.Model):
def _compute_team_id(self):
cached_teams = {}
for order in self:
default_team_id = self.env.context.get('default_team_id', False) or order.team_id.id or order.partner_id.team_id.id
default_team_id = self.env.context.get('default_team_id', False) or order.partner_id.team_id.id or order.team_id.id
user_id = order.user_id.id
company_id = order.company_id.id
key = (default_team_id, user_id, company_id)
+29
View File
@@ -637,3 +637,32 @@ class TestSalesTeam(SaleCommon):
self.sale_order.prepayment_percent = -1
with self.assertRaises(ValidationError):
self.sale_order.prepayment_percent = 1.01
def test_sales_team_defined_on_partner_user_no_team(self):
""" Test that sale order picks up a team from res.partner on change if user has no team specified """
crm_team0 = self.env['crm.team'].create({
'name':"Test Team A"
})
crm_team1 = self.env['crm.team'].create({
'name':"Test Team B"
})
partner_a = self.env['res.partner'].create({
'name': 'Partner A',
'team_id': crm_team0.id,
})
partner_b = self.env['res.partner'].create({
'name': 'Partner B',
'team_id': crm_team1.id,
})
sale_order = self.env['sale.order'].with_user(self.user_not_in_team).create({
'partner_id': partner_a.id,
})
self.assertEqual(sale_order.team_id, crm_team0, "Sales team should change to partner's")
sale_order.with_user(self.user_not_in_team).write({'partner_id': partner_b.id})
self.assertEqual(sale_order.team_id, crm_team1, "Sales team should change to partner's")