Odoo18-Base/addons/l10n_it_edi_website_sale/controllers/main.py

33 lines
1.2 KiB
Python
Raw Permalink Normal View History

2025-01-06 10:57:38 +07:00
# 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