From d669778a7325ef6e9beaaab55489ba32600c9873 Mon Sep 17 00:00:00 2001 From: benjamin <benjamin@le-filament.com> Date: Mon, 22 Jan 2024 16:05:50 +0100 Subject: [PATCH] [UPD] Fede Indus contribution --- models/scop_bordereau_cg.py | 10 ++++---- models/scop_cotisation_cg.py | 6 ++++- models/scop_liasse_fiscale.py | 45 ++++++++++++++++++++++++----------- 3 files changed, 42 insertions(+), 19 deletions(-) diff --git a/models/scop_bordereau_cg.py b/models/scop_bordereau_cg.py index f4297fa..90a79ad 100644 --- a/models/scop_bordereau_cg.py +++ b/models/scop_bordereau_cg.py @@ -834,15 +834,17 @@ class Bordereau(models.Model): type_cotisation_fede_indus = self.env.ref( "cgscop_partner.cotiz_fede_indus" ).id - + # Calcul de la cotisation de la fédé de l'industrie if liasse: amount_fede_indus = base_cotiz.round_to_closest_multiple( liasse.contribution_indus, 4 ) else: - amount_fede_indus = self.env[ - "scop.liasse.fiscale" - ].get_plancher_cotiz()["fede_indus"] + amount_fede_indus = 100 + # Ajout d'un forfait de 4 € si pas de salariés + if partner.staff_last == 0: + amount_fede_indus += 4 + # Création des factures associées self.create_contribution( product=product_fede_indus_id, type_contribution=type_cotisation_fede_indus, diff --git a/models/scop_cotisation_cg.py b/models/scop_cotisation_cg.py index 1ec5959..7f92e90 100644 --- a/models/scop_cotisation_cg.py +++ b/models/scop_cotisation_cg.py @@ -773,7 +773,11 @@ class ScopCotisation(models.Model): ) else: contrib_fede_indus = 100 - # Calcul cotisation N-1 + # Ajout d'un forfait de 4 € si pas de salariés + if m.staff_last == 0: + contrib_fede_indus += 4 + + # Calcul cotisation N-1 contribution_last_year = sum( line_ids.filtered( lambda l: l.product_id == product_indus_id diff --git a/models/scop_liasse_fiscale.py b/models/scop_liasse_fiscale.py index 2740f1b..ccc9780 100644 --- a/models/scop_liasse_fiscale.py +++ b/models/scop_liasse_fiscale.py @@ -76,16 +76,7 @@ class ScopLiasseFiscale(models.Model): """ for liasse in self: liasse.read(["av_lf", "av_cg", "L2052_FL"]) - - # Calcul VA la plus avantageuse - if liasse.av_lf != 0: - if liasse.av_lf > liasse.av_cg: - va = liasse.av_cg - else: - va = liasse.av_lf - else: - va = liasse.av_cg - + va = liasse.get_va() ca = liasse.L2052_FL if liasse.dureeExercice and liasse.dureeExercice not in (0, 12): @@ -215,7 +206,7 @@ class ScopLiasseFiscale(models.Model): # Calcul Cotisation contribution_med = ( - (liasse.contribution_cg * 1/3) + (net_results * net_results_rate) + (liasse.contribution_cg * 1 / 3) + (net_results * net_results_rate) ) * abatt_rate final_contribution_med = ( contribution_med if contribution_med >= 0 else 0 @@ -312,12 +303,22 @@ class ScopLiasseFiscale(models.Model): @api.depends("is_federation_indus") def _compute_contribution_indus(self): """ - Calcule la cotisation Fédé Industrie : 100 € par an - @return float : cotisation + Calcule la cotisation Fédé Industrie : + - plancher de 120 € par an + - plafond de 1000 € par an + - cotisation = 0,03% de la VA + @return float : cotisation """ for liasse in self: if liasse.is_federation_indus: - liasse.contribution_indus = 100 + va = liasse.get_va() + contrib = round(va * 0.0003, 2) + if contrib < 120: + liasse.contribution_indus = 120 + elif contrib >= 1000: + liasse.contribution_indus = 1000 + else: + liasse.contribution_indus = contrib @api.depends("contribution_cg") def _compute_contribution_idf(self): @@ -343,6 +344,22 @@ class ScopLiasseFiscale(models.Model): # ------------------------------------------------------ # Business Function # ------------------------------------------------------ + def get_va(self): + """ + Calcul VA la plus avantageuse + @returns float va + """ + self.ensure_one() + self.read(["av_lf", "av_cg"]) + if self.av_lf != 0: + if self.av_lf > self.av_cg: + va = self.av_cg + else: + va = self.av_lf + else: + va = self.av_cg + return va + def get_plancher_cotiz(self): return { "fede_com": 108, -- GitLab