33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import _
|
|
from odoo.exceptions import UserError
|
|
from odoo.http import request
|
|
|
|
from odoo.addons.website_sale.controllers.main import WebsiteSale
|
|
|
|
|
|
class L10nITWebsiteSale(WebsiteSale):
|
|
|
|
def _validate_address_values(self, address_values, *args, **kwargs):
|
|
invalid_fields, missing_fields, error_messages = super()._validate_address_values(
|
|
address_values, *args, **kwargs
|
|
)
|
|
|
|
if address_values.get('l10n_it_codice_fiscale'):
|
|
partner_dummy = request.env['res.partner'].new({
|
|
'l10n_it_codice_fiscale': address_values.get('l10n_it_codice_fiscale')
|
|
})
|
|
try:
|
|
partner_dummy.validate_codice_fiscale()
|
|
except UserError as e:
|
|
invalid_fields.add('l10n_it_codice_fiscale')
|
|
error_messages.append(e.name)
|
|
|
|
pa_index = address_values.get('l10n_it_pa_index')
|
|
if pa_index and (len(pa_index) < 6 or len(pa_index) > 7):
|
|
invalid_fields.add('l10n_it_pa_index')
|
|
error_messages.append(_("Destination Code (SDI) must have between 6 and 7 characters"))
|
|
|
|
return invalid_fields, missing_fields, error_messages
|