2020-10-11 00:22:05 +02:00
|
|
|
# Copyright 2013-2020 Akretion France (https://akretion.com/)
|
2019-01-31 23:21:17 +01:00
|
|
|
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
2016-10-11 12:09:26 +02:00
|
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
|
2020-10-11 00:23:33 +02:00
|
|
|
from odoo import _, models
|
2016-10-11 12:09:26 +02:00
|
|
|
from odoo.exceptions import UserError
|
|
|
|
|
|
|
|
|
2020-10-11 00:22:05 +02:00
|
|
|
class AccountMove(models.Model):
|
2020-10-11 00:23:33 +02:00
|
|
|
_inherit = "account.move"
|
2016-10-11 12:09:26 +02:00
|
|
|
|
2020-10-11 00:22:05 +02:00
|
|
|
def _post(self, soft=True):
|
2016-10-11 12:09:26 +02:00
|
|
|
"""Check that the customer has VAT set if required by the
|
|
|
|
fiscal position"""
|
2020-10-11 00:22:05 +02:00
|
|
|
for move in self:
|
2016-10-11 12:09:26 +02:00
|
|
|
if (
|
2020-10-11 00:23:33 +02:00
|
|
|
move.move_type in ("out_invoice", "out_refund")
|
|
|
|
and move.fiscal_position_id.vat_required
|
|
|
|
and not move.commercial_partner_id.vat
|
|
|
|
):
|
|
|
|
raise UserError(
|
|
|
|
_(
|
2022-06-08 15:44:28 +02:00
|
|
|
"You are trying to validate a customer "
|
|
|
|
"invoice/refund with the fiscal position '%(fp)s' "
|
|
|
|
"that require the customer to have a VAT number. "
|
|
|
|
"But the Customer '%(rp)s' "
|
|
|
|
"doesn't have a VAT number in Odoo. "
|
|
|
|
"Please add the VAT number of this Customer in Odoo "
|
|
|
|
"and try to validate again."
|
2020-10-11 00:23:33 +02:00
|
|
|
)
|
2022-06-08 15:44:28 +02:00
|
|
|
% {
|
|
|
|
"fp": move.fiscal_position_id.display_name,
|
|
|
|
"rp": move.commercial_partner_id.display_name,
|
|
|
|
}
|
2020-10-11 00:23:33 +02:00
|
|
|
)
|
2020-10-11 00:22:05 +02:00
|
|
|
return super()._post(soft=soft)
|