diff --git a/models/scop_bordereau_cg.py b/models/scop_bordereau_cg.py index f4297fa61ff5f355baba70d858aeb58fd7bda06c..90a79adc7d81fd1f426eae1e525a5b443e1d2c5a 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 1ec5959ac3114442dfe348d12b7a247799bd458f..7f92e9045726b9973c54df99fce20cf550f0302b 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 2740f1b337eb5605249d6af7e68bdf667a97719a..ccc978037e1c80975d8f876a63eaee589e4ec37f 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,