Skip to content
Extraits de code Groupes Projets
Valider 253bfaf6 rédigé par Julien - Le Filament's avatar Julien - Le Filament
Parcourir les fichiers

[UPD] handle date parution on period

parent 857ee502
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -21,8 +21,7 @@ class ResPartner(models.Model): ...@@ -21,8 +21,7 @@ class ResPartner(models.Model):
string="Dirigeants", string="Dirigeants",
) )
last_inpi_update_date = fields.Datetime( last_inpi_update_date = fields.Datetime(
string="Dernière mise à jours INPI", string="Dernière mise à jours INPI", tracking=True
tracking=True
) )
first_company_closeout = fields.Date(string="Date de première cloture") first_company_closeout = fields.Date(string="Date de première cloture")
...@@ -136,7 +135,7 @@ class ResPartner(models.Model): ...@@ -136,7 +135,7 @@ class ResPartner(models.Model):
# Fonctions update générale # Fonctions update générale
# -------------------------------------------------- # --------------------------------------------------
def update_from_inpi(self, update_type="all"): def update_from_inpi(self, update_type="all", date_parution=None):
""" """
MAJ from inpi MAJ from inpi
""" """
...@@ -167,7 +166,9 @@ class ResPartner(models.Model): ...@@ -167,7 +166,9 @@ class ResPartner(models.Model):
sirens=[self.siren.replace(" ", "")] sirens=[self.siren.replace(" ", "")]
) )
if inpi_data: if inpi_data:
update_methods.get(update_type)(inpi_data=inpi_data) update_methods.get(update_type)(
inpi_data=inpi_data, date_parution=date_parution
)
else: else:
logger.error(_(f"No INPI response for {self.name}: {self.siren}")) logger.error(_(f"No INPI response for {self.name}: {self.siren}"))
...@@ -175,7 +176,9 @@ class ResPartner(models.Model): ...@@ -175,7 +176,9 @@ class ResPartner(models.Model):
# Denomination # Denomination
# -------------------------------------------------- # --------------------------------------------------
def _update_denomination_from_inpi(self, inpi_data, new_period=True): def _update_denomination_from_inpi(
self, inpi_data, new_period=True, date_parution=None
):
""" """
MAJ denomination MAJ denomination
""" """
...@@ -193,10 +196,12 @@ class ResPartner(models.Model): ...@@ -193,10 +196,12 @@ class ResPartner(models.Model):
logger.info( logger.info(
_(f"Up denomination :Period creation for {self.name}: {self.siren}") _(f"Up denomination :Period creation for {self.name}: {self.siren}")
) )
period.write( if date_parution:
{"end": datetime.datetime.now().date(), "end_reason": "nom"} period_date = date_parution
) else:
period_values["start"] = fields.Date.today() period_date = fields.Date.today()
period.write({"end": period_date, "end_reason": "adr"})
period_values["start"] = period_date
period_values["name"] = inpi_name period_values["name"] = inpi_name
period_values["partner_id"] = self.id period_values["partner_id"] = self.id
if new_period: if new_period:
...@@ -209,7 +214,7 @@ class ResPartner(models.Model): ...@@ -209,7 +214,7 @@ class ResPartner(models.Model):
# NAF # NAF
# -------------------------------------------------- # --------------------------------------------------
def _update_naf_from_inpi(self, inpi_data, new_period=True): def _update_naf_from_inpi(self, inpi_data, new_period=True, date_parution=None):
""" """
MAJ code naf MAJ code naf
""" """
...@@ -224,10 +229,12 @@ class ResPartner(models.Model): ...@@ -224,10 +229,12 @@ class ResPartner(models.Model):
if inpi_naf_id != period.naf_id: if inpi_naf_id != period.naf_id:
if new_period: if new_period:
period.write( if date_parution:
{"end": datetime.datetime.now().date(), "end_reason": "acti"} period_date = date_parution
) else:
period_values["start"] = fields.Date.today() period_date = fields.Date.today()
period.write({"end": period_date, "end_reason": "adr"})
period_values["start"] = period_date
period_values["naf_id"] = inpi_naf_id period_values["naf_id"] = inpi_naf_id
period_values["partner_id"] = self.id period_values["partner_id"] = self.id
...@@ -337,7 +344,9 @@ class ResPartner(models.Model): ...@@ -337,7 +344,9 @@ class ResPartner(models.Model):
facility_values.update(inpi_adress) facility_values.update(inpi_adress)
facility.write(facility_values) facility.write(facility_values)
def _update_etablissement_from_inpi(self, inpi_data, new_period=True): def _update_etablissement_from_inpi(
self, inpi_data, new_period=True, date_parution=None
):
""" """
MAJ établissements MAJ établissements
Les nouveaux sont créées on ne fait rien pour ceux qui ne sont plus dans INPI Les nouveaux sont créées on ne fait rien pour ceux qui ne sont plus dans INPI
...@@ -383,7 +392,9 @@ class ResPartner(models.Model): ...@@ -383,7 +392,9 @@ class ResPartner(models.Model):
# FORME JURIDIQUE # FORME JURIDIQUE
# -------------------------------------------------- # --------------------------------------------------
def _update_forme_juridique_from_inpi(self, inpi_data, new_period=True): def _update_forme_juridique_from_inpi(
self, inpi_data, new_period=True, date_parution=None
):
""" """
MAJ forme juridique MAJ forme juridique
on essai de faire correspondre le code de FJ reçu avec un on essai de faire correspondre le code de FJ reçu avec un
...@@ -396,23 +407,30 @@ class ResPartner(models.Model): ...@@ -396,23 +407,30 @@ class ResPartner(models.Model):
if not inpi_data.formality.content.personneMorale: if not inpi_data.formality.content.personneMorale:
return current_period return current_period
inpi_forme_juridique = inpi_data.formality.content.personneMorale.identite.entreprise.formeJuridique inpi_forme_juridique = (
inpi_data.formality.content.personneMorale.identite.entreprise.formeJuridique
)
# check if full code in base # check if full code in base
cj_id = self.env["res.partner.company.type"].search([("code_forme_juridique", "=", inpi_forme_juridique)]) cj_id = self.env["res.partner.company.type"].search(
[("code_forme_juridique", "=", inpi_forme_juridique)]
)
# if not check if there is a "niveau 2" code in base, CG use only a few CJ code # if not check if there is a "niveau 2" code in base, CG use only a few CJ code
if not cj_id: if not cj_id:
cj_id = self.env["res.partner.company.type"].search([ cj_id = self.env["res.partner.company.type"].search(
("code_forme_juridique", "=", inpi_forme_juridique[:2])]) [("code_forme_juridique", "=", inpi_forme_juridique[:2])]
)
if cj_id and cj_id.id != self.partner_company_type_id.id: if cj_id and cj_id.id != self.partner_company_type_id.id:
self.partner_company_type_id = cj_id.id self.partner_company_type_id = cj_id.id
period_values = self._get_values_from_period(current_period) period_values = self._get_values_from_period(current_period)
if new_period: if new_period:
current_period.write( if date_parution:
{"end": datetime.datetime.now().date(), "end_reason": "adr"} period_date = date_parution
) else:
period_values["start"] = fields.Date.today() period_date = fields.Date.today()
current_period.write({"end": period_date, "end_reason": "adr"})
period_values["start"] = period_date
period_values["partner_id"] = self.id period_values["partner_id"] = self.id
period_values["res_partner_company_type"] = cj_id.id period_values["res_partner_company_type"] = cj_id.id
...@@ -423,7 +441,6 @@ class ResPartner(models.Model): ...@@ -423,7 +441,6 @@ class ResPartner(models.Model):
return self._get_current_period() return self._get_current_period()
# -------------------------------------------------- # --------------------------------------------------
# DIRIGEANTS # DIRIGEANTS
# -------------------------------------------------- # --------------------------------------------------
...@@ -434,7 +451,10 @@ class ResPartner(models.Model): ...@@ -434,7 +451,10 @@ class ResPartner(models.Model):
Les dirigants sont créées via le modele cgscop.inpi.director Les dirigants sont créées via le modele cgscop.inpi.director
""" """
logger.info(_(f"Update dirigeants for {self.name}: {self.siren}")) logger.info(_(f"Update dirigeants for {self.name}: {self.siren}"))
if inpi_data.formality.content.personneMorale and inpi_data.formality.content.personneMorale.composition: if (
inpi_data.formality.content.personneMorale
and inpi_data.formality.content.personneMorale.composition
):
inpi_pouvoirs = ( inpi_pouvoirs = (
inpi_data.formality.content.personneMorale.composition.pouvoirs inpi_data.formality.content.personneMorale.composition.pouvoirs
) )
...@@ -466,7 +486,7 @@ class ResPartner(models.Model): ...@@ -466,7 +486,7 @@ class ResPartner(models.Model):
# ADRESSE # ADRESSE
# -------------------------------------------------- # --------------------------------------------------
def _update_address_from_inpi(self, inpi_data, new_period=True): def _update_address_from_inpi(self, inpi_data, new_period=True, date_parution=None):
""" """
MAJ de l adresse du siege MAJ de l adresse du siege
""" """
...@@ -497,10 +517,12 @@ class ResPartner(models.Model): ...@@ -497,10 +517,12 @@ class ResPartner(models.Model):
if changing_period_values: if changing_period_values:
if new_period: if new_period:
period.write( if date_parution:
{"end": datetime.datetime.now().date(), "end_reason": "adr"} period_date = date_parution
) else:
period_values["start"] = fields.Date.today() period_date = fields.Date.today()
period.write({"end": period_date, "end_reason": "adr"})
period_values["start"] = period_date
period_values["partner_id"] = self.id period_values["partner_id"] = self.id
for value in changing_period_values: for value in changing_period_values:
...@@ -522,13 +544,22 @@ class ResPartner(models.Model): ...@@ -522,13 +544,22 @@ class ResPartner(models.Model):
""" """
MAJ de la date de premiere cloture des comptes MAJ de la date de premiere cloture des comptes
""" """
logger.info(_(f"Update company first closeout date for {self.name}: {self.siren}")) logger.info(
if inpi_data.formality.content.personneMorale and inpi_data.formality.content.personneMorale.identite: _(f"Update company first closeout date for {self.name}: {self.siren}")
description = inpi_data.formality.content.personneMorale.identite.description )
if (
inpi_data.formality.content.personneMorale
and inpi_data.formality.content.personneMorale.identite
):
description = (
inpi_data.formality.content.personneMorale.identite.description
)
if description.datePremiereCloture: if description.datePremiereCloture:
self.first_company_closeout = description.datePremiereCloture self.first_company_closeout = description.datePremiereCloture
else: else:
logger.info(_(f"No company first closeout date found for {self.name}: {self.siren}")) logger.info(
_(f"No company first closeout date found for {self.name}: {self.siren}")
)
# -------------------------------------------------- # --------------------------------------------------
# UPDATE # UPDATE
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter