diff --git a/__manifest__.py b/__manifest__.py index 14ff5b70cd2c4777593d8f04979579a58215cbe2..b3925f841f21195add17548692019cd2d4f078a7 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -18,6 +18,7 @@ # security "security/ir.model.access.csv", # datas + "data/cron_data.xml", # views "views/menus.xml", "views/res_partner.xml", diff --git a/models/res_partner.py b/models/res_partner.py index 92db7d5f75d06d0e2d83202cc0eb27067a67c4f2..db359bf9a59ef94d21ca69fc98bb520b19bd4c05 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -98,7 +98,7 @@ class ResPartner(models.Model): # check si l etablissement principal est le siege ets_prin = inpi_data.formality.content.personneMorale.etablissementPrincipal - if ( + if ( ets_prin and ets_prin.descriptionEtablissement.rolePourEntreprise == inpi_models.RolePourEntreprise.SIEGE_ETS_PRIN.value ): @@ -117,6 +117,14 @@ class ResPartner(models.Model): ): return ets + # si dissolution on renvoi l adresse du siege fermé + for ets in ets_secondaires: + if ( + ets.descriptionEtablissement.rolePourEntreprise + == inpi_models.RolePourEntreprise.SIEGE_FERME.value + ): + return ets + # -------------------------------------------------- # Fonctions update générale # -------------------------------------------------- @@ -343,34 +351,35 @@ class ResPartner(models.Model): Met a jours l adresse du siege dans la periode """ siege = self._get_siege(inpi_data=inpi_data) - inpi_address = self._get_inpi_address(siege.adresse) + if siege: + inpi_address = self._get_inpi_address(siege.adresse) - adress_values = ["street", "cedex", "street2", "zip", "city"] - changing_values = [] + adress_values = ["street", "cedex", "street2", "zip", "city"] + changing_values = [] - period = self._get_current_period() - period_values = self._get_values_from_period(period) + period = self._get_current_period() + period_values = self._get_values_from_period(period) - for v in adress_values: - if v in period._fields and inpi_address.get(v) != getattr(period, v): - changing_values.append(v) + for v in adress_values: + if v in period._fields and inpi_address.get(v) != getattr(period, v): + changing_values.append(v) - if changing_values: - if new_period: - period.write( - {"end": datetime.datetime.now().date(), "end_reason": "adr"} - ) - period_values["start"] = fields.Date.today() - period_values["partner_id"] = self.id + if changing_values: + if new_period: + period.write( + {"end": datetime.datetime.now().date(), "end_reason": "adr"} + ) + period_values["start"] = fields.Date.today() + period_values["partner_id"] = self.id - for value in changing_values: - period_values[value] = inpi_address.get(value) + for value in changing_values: + period_values[value] = inpi_address.get(value) - if new_period: - return self.env["scop.period"].with_context().create(period_values) - else: - period.write(period_values) - return period + if new_period: + return self.env["scop.period"].with_context().create(period_values) + else: + period.write(period_values) + return period # -------------------------------------------------- # UPDATE @@ -385,6 +394,7 @@ class ResPartner(models.Model): self._update_etablissement_from_inpi(inpi_data=inpi_data) period = self._get_current_period() - period.write({"end": datetime.datetime.now().date(), "end_reason": "inpi"}) - period_values = self._get_values_from_period(period) - self.env["scop.period"].with_context().create(period_values) + if period: + period.write({"end": datetime.datetime.now().date(), "end_reason": "inpi"}) + period_values = self._get_values_from_period(period) + self.env["scop.period"].with_context().create(period_values) diff --git a/views/res_partner.xml b/views/res_partner.xml index 6335a811e37a71b911373e545915035e0ddb4d62..7276659b0753771289dfbd9173dfc73e31c350bb 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -15,14 +15,6 @@ ref="cgscop_liasse_fiscale.scop_liasse_fiscale_inherit_res_partner_view" /> <field name="arch" type="xml"> - <xpath expr="//header" position="inside"> - <button - name="update_from_inpi" - type="object" - class="btn-info" - string="Mettre à jours depuis INPI" - /> - </xpath> <xpath expr="//notebook" position="inside"> <page name="director_page" string="Dirigeants"> <field name="inpi_director_ids" /> diff --git a/wizard/inpi_update_wizard.py b/wizard/inpi_update_wizard.py index 5d77b96e15a002faaf045d63811d6401eb0e4096..40fa9ab7206e0bf820715c47bcf163a4474e4a5b 100644 --- a/wizard/inpi_update_wizard.py +++ b/wizard/inpi_update_wizard.py @@ -43,4 +43,4 @@ class InpiUpdateWizard(models.TransientModel): scop_to_update = self.partner_ids for scop in scop_to_update: - scop.sudo().update_from_inpi(update_type="all") + scop.sudo().with_delay().update_from_inpi(update_type="all")