Initial commit: OCA Technical packages (595 packages)

This commit is contained in:
Ernad Husremovic 2025-08-29 15:43:03 +02:00
commit 2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions

View file

@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from . import crm_lead

View file

@ -0,0 +1,84 @@
# Copyright 2015 Antiun Ingeniería, S.L.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models
class Lead(models.Model):
_inherit = "crm.lead"
vat = fields.Char(
string="TIN",
help="Tax Identification Number. The first 2 characters are the "
"country code.",
compute="_compute_vat",
inverse="_inverse_vat",
readonly=False,
store=True,
)
partner_vat_update = fields.Boolean(
"Partner VAT will Update", compute="_compute_partner_vat_update"
)
@api.depends("partner_id.vat", "partner_id.commercial_partner_id.vat")
def _compute_vat(self):
for lead in self:
if (
lead.partner_id.commercial_partner_id.vat
and lead._get_partner_vat_update()
):
lead.vat = lead.partner_id.commercial_partner_id.vat
elif lead.partner_id.vat and lead._get_partner_vat_update():
lead.vat = lead.partner_id.vat
def _inverse_vat(self):
for lead in self:
if lead._get_partner_vat_update():
if lead.partner_id.commercial_partner_id:
lead.partner_id.commercial_partner_id.vat = lead.vat
else:
lead.partner_id.vat = lead.vat
@api.depends("vat", "partner_id")
def _compute_partner_vat_update(self):
for lead in self:
lead.partner_vat_update = lead._get_partner_vat_update()
def _get_partner_vat_update(self):
"""Calculate if we should write the vat on the related partner. When
the vat of the lead / partner is an empty string, we force it to False
to not propagate a False on an empty string.
Done in a separate method so it can be used in both ribbon and inverse
and compute of vat update methods.
"""
self.ensure_one()
if (
self.partner_id.commercial_partner_id
and self.vat != self.partner_id.commercial_partner_id.vat
):
return self.vat != self.partner_id.commercial_partner_id.vat
elif self.partner_id and self.vat != self.partner_id.vat:
return self.vat != self.partner_id.vat
return False
def _prepare_customer_values(self, partner_name, is_company=False, parent_id=False):
"""Add VAT to partner."""
res = super(Lead, self)._prepare_customer_values(
partner_name, is_company, parent_id
)
res.update(
{
"vat": self.vat,
}
)
return res
def _prepare_values_from_partner(self, partner):
"""Recover VAT from partner if available."""
result = super(Lead, self)._prepare_values_from_partner(partner)
if not partner:
return result
if partner.vat:
result["vat"] = partner.vat
return result