- Go to the Contacts app
- Click on the Azure Interior company, or any other company with multiple associated people
- Set the country to Mexico
- Edit the VAT field and enter the following string: UAC070620MB3
Traceback will happen after hitting save.
It happens because `self` is a recordset in this case. Moreover, while
the VAT number starts with `UA`, the country is Mexico so the check is
incorrct.
opw-2348045
closesodoo/odoo#59260
X-original-commit: 3dbdc62b3458e9af2e74d8552a17d629dc7e2393
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
- removed simple check vat for columbia
- removed document type field from partner
- document type will be managed by latam type
- updated city name for colombia
- added data for for latam identification type
- Added depdencies
- base_address_city
- account_debit_note
- l10n_latam_base
task- 2190843closesodoo/odoo#53040
Related: odoo/upgrade#1589
Related: odoo/enterprise#9567
Signed-off-by: Josse Colpaert <jco@openerp.com>
- Install Contacts and Belgium - Accounting (l10n_be)
- Go to Contacts and create a new Contact:
* Select Switzerland as Country
* Enter "CHE-123.456.788 TVA" ad VAT
The VAT is auto-updated to "CHE123456788TVA", removing all special characters.
The entered VAT is converted to its minimal representation, stripping whitespaces and seperators.
And it is this compacted value that is stored.
As defined here (https://www.estv.admin.ch/estv/fr/home/mehrwertsteuer/fachinformationen/steuerpflicht/unternehmens-identifikationsnummer--uid-.html),
the Swiss VAT format should be CHE-XXX.XXX.XXX TVA.
Therefore, the VAT will be automatically formated to the official format.
opw-2291581
closesodoo/odoo#55582
X-original-commit: d75614e22f5b0b72e6bebd9cafba36fe32b9eb51
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
When more than one parameter is present in a message, it helps the
translation to use named placeholder. This way, the order can be
changed. It also helps the comprehension of the message.
Create a contact:
- Company
- Country: Ukranian
- VAT: UA1234567890
Error will raise because the VAT is detected as invalid. This occur
because vatnumber package for Ukranian VAT check the length to be 8
while according to various sources [1][2] the number is
- 12 for companies
- 9 or 10 for individuals
[1] https://vat.international/ukraine/
[2] https://interbuh.com.ua/ru/documents/oneanalytics/123926
opw-2266940
closesodoo/odoo#52956
X-original-commit: 0f4c3b6a9930614397c61cef8b138985f2e2b708
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
The main classes of partners and users support batch creation, but
the majority of their overrides doesn't support creation in batch.
Adapting those overrides to support records creation in batch shows
great performance gains:
* On `res_partner` : 2 to 3 times faster
* On `res_users`, with the inherited `res_partner` created in batch:
up to 10 times faster.
Tests done with 500 to 4k records:
* `res_partner` with only a name provided
* `res_users` with a name and login
X-original-commit: 9c3c5f161580039c1fe50f68acac808c18817997
We should only check the consistency between the vat number and country code in
case we have one country involved in the recordset.
closesodoo/odoo#49530
X-original-commit: 23771ef7fcadfc0022d278c2e3436a7befc9e5b8
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Before this commit, a lot of leftover import shims existed in the
codebase for py2-py3 compatibility, these are no longer needed since
Odoo 13.0+ doesn't support Python 2 anymore and is (finally) in EOL.
With this commit, these shims are dropped, making the code cleaner,
easier to read and with one less dependency.
Queue -> queue -> py2-py3 compatibility
xmlrpclib -> xmlrpc.client -> py2-py3 compatibility
ConfigParser -> configparser -> py2-py3 compatibility
itertools.izip_longest -> itertools.zip_longest -> py2-py3 compatibility
urllib -> urllib.request -> py2-py3 compatibility
__builtins__ -> builtins -> py2-py3 compatibility
_winreg -> winreg -> py2-py3 compatibility
mock -> unittest.mock -> merged into CPython
The debian/fedora packages and requirements.txt have been updated accordingly
closesodoo/odoo#44601
Related: odoo/enterprise#8141
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Create a new contact with:
- Name [DEMO]
- VAT RORO790707I47
- Country Mexico
An error inform the user that the vat is not valid, this happens because
the vat number is recognized as romanian and compacted before passing
to actual vat checking. Skip the check if the country of the new
partner does not match what is detected on the vat, assuming the user
know what he/she is doing
opw-2218491
closesodoo/odoo#48273
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
PURPOSE
Remove dead views to clean dead records
SPECIFICATIONS
Find unused views and remove them, notably specific views that are not used
anymore because generic one is always taken. Notably
* view_partner_short_form: a short form view on partner that is not used
anywhere anymore. Indeed it has a priority of 2 whereas default form view
has a priority of 1 (lower better). It is not referenced in actions
anymore. It is therefore dead.
LINKS
Task ID 2196317 (Social/Marketing specific)
The synchronisation of commercial_partner_id was introduced at
0d68acff8e as a way to ensure the value is always correct.
The order or the operation was not important though.
This synchronisation has a side effect in the following scenario:
0. install base_vat
1. disable vat_check_vies in the settings
2. set an invalid VAT number on a company with at least one contact
3. enable vat_check_vies in the settings
4. correct the VAT number on the company with a valid one
--> an error was raised for an invalid VAT number on the contact
This is because the commercial_partner_id synchronisation is done
before the update of the VAT number. Even if the value has not
changed, this triggers the check_vat method.
Invert both instructions
Courtesy of Wolfgang Taferner
Closesodoo/odoo#43065Closesodoo/odoo#42973closesodoo/odoo#47543
X-original-commit: d9b2605eadc129924d085fffc4056d777cfbbbeb
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
VAT, NIF in Spanish, is translated NIT in Spanish from Bolivia
Clean and translate the files with the correct translation.
opw-2197155
closesodoo/odoo#45533
X-original-commit: 641c14f08435b1df1d89184cc00855416bf40bc5
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
- Activate the VIES online check
- Create a partner of type Company and add several contacts
- Set the VAT number, save
A call to VIES is done for each contact.
The field VAT is propagated from the parent company to the children,
triggering the check on all partners. This is not problematic for local
checks since those are fast. However, online checks take time which can
lead to a timeout of the request if there are many contacts.
Since the check is triggered through a constraint (`check_vat`), only
one record at a time is checked. Therefore, it is not possible to build
a local list of the VAT numbers to avoid duplicated verifications inside
a single transaction.
The solution is to store the result in cache. Since the call to the
external API may fail (e.g. timeout), we extract the check to store only
the successful calls.
Closes#43939
opw-2181744
closesodoo/odoo#44298
X-original-commit: 0c7a3e95df41d4e12c2c5913c2f39e46f96fe77c
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Followup of a425695e
The terms were back in 12.0
Courtesy of Juan José Scarafía
closesodoo/odoo#41624
X-original-commit: 85d0c7001a997748d7691205bbb8d066597591a5
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
base_vat: Correct management of the check of peruvian VAT without prefix.
l10n_pe: Correct income account the last one is not correct.
l10n_pe: Forced Round globally for peruvian companies once l10n_pe is
installed, and with the onchange.
l10n_pe: For peruvian companies it does not make sense a sequence per
year and the year in the prefix is incorrect, we must force XXX- as
a sequence prefix.
closes odoo/odoo#38854
Forward-port-of: #38764
Signed-off-by: Josse Colpaert <jco@openerp.com>
The goal is to be coherent with the user property.
Actually, company_id and company_ids on the environment are no fields.
Calling env.company_id returns a browse record, not an id.