Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# @author: Alexis de Lattre <[email protected]>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import models
from odoo import api, models


class AccountInvoiceImport(models.TransientModel):
Expand All @@ -23,3 +23,26 @@ def prepare_facturx_xpath_dict(self):
"/ram:ID[@schemeID='0002']"
]
return xpathd

# If one day we have a module l10n_fr_account_invoice_import
# we could move the inherit of _prepare_new_partner_context() there
@api.model
def _prepare_create_invoice_no_partner(self, parsed_inv, import_config, vals):
res = super()._prepare_create_invoice_no_partner(
parsed_inv, import_config, vals
)
if (
vals.get("import_partner_data")
and isinstance(vals["import_partner_data"], dict)
and parsed_inv.get("partner")
):
if parsed_inv["partner"].get("siren"):
vals["import_partner_data"]["siren"] = parsed_inv["partner"]["siren"]
elif parsed_inv["partner"].get("siret"):
vals["import_partner_data"]["siren"] = parsed_inv["partner"]["siret"][
:9
]
vals["import_partner_data"]["nic"] = parsed_inv["partner"]["siret"][
9:14
]
return res
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,14 @@ def _check_company(
):
if not company_dict:
company_dict = {}
rco = self.env["res.company"]
if company is None:
if self._context.get("force_company"):
company = rco.browse(self._context["force_company"])
if (
self._context.get("allowed_company_ids")
and len(self._context["allowed_company_ids"]) == 1
):
company = self.env["res.company"].browse(
self._context["allowed_company_ids"][0]
)
else:
company = self.env.company
siren = False
Expand All @@ -79,7 +83,7 @@ def _check_company(
if siren and siren_is_valid(siren):
if company.siren:
if company.siren != siren:
raise self.user_error_wrap(
self.user_error_wrap(
"_check_company",
company_dict,
_(
Expand All @@ -100,9 +104,9 @@ def _check_company(
and company.country_id.code
in self.env["res.company"]._get_france_country_codes()
):
chatter_msg.append(
_("Missing SIRET on company '%s'.") % company.display_name
)
msg = _("Missing SIRET on company '%s'.") % company.display_name
if msg not in chatter_msg:
chatter_msg.append(msg)
return super()._check_company(
company_dict, chatter_msg, company=company, raise_exception=raise_exception
)