Files
odoo_source/addons/sales_team/tests/common.py
T
Touati Djamel (otd) 43e1d21e0e [FIX] base: fix the VAT verification
Steps to reproduce the bug:

- Go to settings > create a new company :
	- Choose the country : `Mexico`
	- fill in the VAT field : ESA2005273X1
	- save
- Validation error is triggered

Problem:

The Mexican VAT can be on the format: "MXESA2005273X1" or "ESA2005273X1".
But only the "MX .." format is accepted for the moment,
and it fails in the case of "ES.." because the function checks if it is a valid Espganol VAT number.

In the case of failure, we use the `partner.commercial_partner_id.country_id` to get the country code.
The problem is when creating the res.company, we also create a res.partner
with a few fields within `VAT` except `country_id` field
while we use it in the `check_vat` function : https://github.com/odoo/odoo/blob/7a7aacedde81998ec0f1a7f3283337236e56de42/addons/base_vat/models/res_partner.py#L167

Opw-2573557

closes odoo/odoo#72633

X-original-commit: a6a46c95e4947997892b21f407132574da1c7ff1
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Djamel Touati <DjamelTouati@users.noreply.github.com>
2021-06-23 12:45:07 +00:00

106 lines
3.9 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.addons.mail.tests.common import mail_new_test_user
from odoo.tests.common import TransactionCase
class TestSalesCommon(TransactionCase):
@classmethod
def setUpClass(cls):
super(TestSalesCommon, cls).setUpClass()
cls.env['ir.config_parameter'].set_param('sales_team.membership_multi', False)
# Salesmen organization
# ------------------------------------------------------------
# Role: M (team member) R (team manager)
# SALESMAN---------------sales_team_1
# admin------------------M-----------
# user_sales_manager-----R-----------
# user_sales_leads-------M-----------
# user_sales_salesman----/-----------
# Sales teams organization
# ------------------------------------------------------------
# SALESTEAM-----------SEQU-----COMPANY
# sales_team_1--------5--------False
# data----------------9999-----??
cls.company_main = cls.env.user.company_id
cls.user_admin = cls.env.ref('base.user_admin')
cls.user_sales_manager = mail_new_test_user(
cls.env, login='user_sales_manager',
name='Martin Sales Manager', email='crm_manager@test.example.com',
company_id=cls.company_main.id,
notification_type='inbox',
groups='sales_team.group_sale_manager,base.group_partner_manager',
)
cls.user_sales_leads = mail_new_test_user(
cls.env, login='user_sales_leads',
name='Laetitia Sales Leads', email='crm_leads@test.example.com',
company_id=cls.company_main.id,
notification_type='inbox',
groups='sales_team.group_sale_salesman_all_leads,base.group_partner_manager',
)
cls.user_sales_salesman = mail_new_test_user(
cls.env, login='user_sales_salesman',
name='Orteil Sales Own', email='crm_salesman@test.example.com',
company_id=cls.company_main.id,
notification_type='inbox',
groups='sales_team.group_sale_salesman',
)
cls.user_admin = cls.env.ref('base.user_admin')
cls.env['crm.team'].search([]).write({'sequence': 9999})
cls.sales_team_1 = cls.env['crm.team'].create({
'name': 'Test Sales Team',
'sequence': 5,
'company_id': False,
'user_id': cls.user_sales_manager.id,
})
cls.sales_team_1_m1 = cls.env['crm.team.member'].create({
'user_id': cls.user_sales_leads.id,
'crm_team_id': cls.sales_team_1.id,
})
cls.sales_team_1_m2 = cls.env['crm.team.member'].create({
'user_id': cls.user_admin.id,
'crm_team_id': cls.sales_team_1.id,
})
class TestSalesMC(TestSalesCommon):
""" Multi Company / Multi Sales Team environment """
@classmethod
def setUpClass(cls):
""" Teams / Company
* sales_team_1: False
* team_c2: company_2
* team_mc: company_main
"""
super(TestSalesMC, cls).setUpClass()
cls.company_2 = cls.env['res.company'].create({
'name': 'New Test Company',
'email': 'company.2@test.example.com',
'country_id': cls.env.ref('base.fr').id,
})
cls.team_c2 = cls.env['crm.team'].create({
'name': 'C2 Team1',
'sequence': 1,
'user_id': False,
'company_id': cls.company_2.id,
})
cls.team_mc = cls.env['crm.team'].create({
'name': 'MainCompany Team',
'user_id': cls.user_admin.id,
'sequence': 3,
'company_id': cls.company_main.id
})
# admin and sale manager belong to new company also
(cls.user_admin | cls.user_sales_manager).write({
'company_ids': [(4, cls.company_2.id)]
})