Initial commit: Odoo 18.0-20251222 extra-addons
This commit is contained in:
2
account_fiscal_position_vat_check/models/__init__.py
Executable file
2
account_fiscal_position_vat_check/models/__init__.py
Executable file
@@ -0,0 +1,2 @@
|
||||
from . import account_move
|
||||
from . import res_partner
|
||||
36
account_fiscal_position_vat_check/models/account_move.py
Executable file
36
account_fiscal_position_vat_check/models/account_move.py
Executable file
@@ -0,0 +1,36 @@
|
||||
# Copyright 2013-2020 Akretion France (https://akretion.com/)
|
||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import _, models
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class AccountMove(models.Model):
|
||||
_inherit = "account.move"
|
||||
|
||||
def _post(self, soft=True):
|
||||
"""Check that the customer has VAT set if required by the
|
||||
fiscal position"""
|
||||
for move in self:
|
||||
if (
|
||||
move.move_type in ("out_invoice", "out_refund")
|
||||
and move.fiscal_position_id.vat_required
|
||||
and not move.commercial_partner_id.vat
|
||||
):
|
||||
raise UserError(
|
||||
_(
|
||||
"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 partner '%(rp)s' "
|
||||
"doesn't have a VAT number in Odoo. "
|
||||
"Please add the VAT number of this partner in Odoo "
|
||||
"and try to validate again."
|
||||
)
|
||||
% {
|
||||
"fp": move.fiscal_position_id.display_name,
|
||||
"rp": move.commercial_partner_id.display_name,
|
||||
}
|
||||
)
|
||||
return super()._post(soft=soft)
|
||||
23
account_fiscal_position_vat_check/models/res_partner.py
Executable file
23
account_fiscal_position_vat_check/models/res_partner.py
Executable file
@@ -0,0 +1,23 @@
|
||||
# Copyright 2013-2022 Akretion France (https://akretion.com/)
|
||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class ResPartner(models.Model):
|
||||
_inherit = "res.partner"
|
||||
|
||||
show_warning_vat_required = fields.Boolean(
|
||||
compute="_compute_show_warning_vat_required"
|
||||
)
|
||||
|
||||
@api.depends("property_account_position_id", "vat")
|
||||
@api.depends_context("company")
|
||||
def _compute_show_warning_vat_required(self):
|
||||
for partner in self:
|
||||
show = False
|
||||
fp = partner.property_account_position_id
|
||||
if fp and fp.vat_required and not partner.vat:
|
||||
show = True
|
||||
partner.show_warning_vat_required = show
|
||||
Reference in New Issue
Block a user