From d50fed4b0a85c8014a1e9f8133f2fed9e2d88eb6 Mon Sep 17 00:00:00 2001
From: benjamin <benjamin@le-filament.com>
Date: Thu, 12 May 2022 17:44:59 +0200
Subject: [PATCH] [update] refactor contribution

---
 controllers/main.py                    | 17 +++++-
 models/res_company.py                  | 36 +++++-------
 models/res_config_settings.py          | 47 +++++++---------
 models/scop_bordereau_cg.py            | 77 ++++++++++++++------------
 models/scop_cotisation_cg.py           | 14 +++--
 models/scop_liasse_fiscale.py          | 18 +++---
 views/res_config_settings.xml          | 37 ++++++++-----
 views/scop_bordereau_cg.xml            |  1 +
 views/scop_cotisation_cg.xml           |  4 +-
 wizard/scop_bordereau_refund_wizard.py | 38 ++++++++-----
 wizard/scop_cotisation_cg_regul.py     | 47 +++++++++-------
 11 files changed, 188 insertions(+), 148 deletions(-)

diff --git a/controllers/main.py b/controllers/main.py
index 3b6dc84..6920ec5 100644
--- a/controllers/main.py
+++ b/controllers/main.py
@@ -41,7 +41,20 @@ class ExportJournalCg(http.Controller):
         company_id = request.env['res.company'].browse(int(company_id))
         default_receivable_account_id = request.env.ref('l10n_fr.1_fr_pcg_recv')
         contribution_cg_id = company_id.contribution_cg_id
-        contribution_ur_or_fede_journal_id = company_id.contribution_ur_or_fede_journal_id
+
+        # Journaux des UR et Fédé
+        # TODO: vérifier l'export des comptes de banque en sortie pour UR et Fédé
+        journal_fede_com_id = company_id.company_id.journal_fede_com_id
+        journal_fede_cae_id = company_id.company_id.journal_fede_cae_id
+        journal_ur_hdf_id = company_id.company_id.journal_ur_hdf_id
+        journal_ur_med_id = company_id.company_id.journal_ur_med_id
+        journal_ids = [
+            journal_fede_com_id.id,
+            journal_fede_cae_id.id,
+            journal_ur_hdf_id.id,
+            journal_ur_med_id.id,
+        ]
+
         product_adhesion_id = company_id.product_adhesion_id
         journal_adhesion_id = company_id.journal_adhesion_id
         contribution_journal_id = company_id.contribution_journal_id
@@ -49,7 +62,7 @@ class ExportJournalCg(http.Controller):
         # Selection des dates + pas d'export du journal UR / FEDE
         domain = [
             ('partner_id', '!=', False),
-            ('journal_id', '!=', contribution_ur_or_fede_journal_id.id),
+            ('journal_id', 'not in', journal_ids),
         ]
         if date_start and date_end:
             domain += [
diff --git a/models/res_company.py b/models/res_company.py
index 459f8dd..f951733 100644
--- a/models/res_company.py
+++ b/models/res_company.py
@@ -20,44 +20,38 @@ class ScopCotisationCGCompany(models.Model):
         string='Article de cotisation Fédé de la Com',
         domain="[('sale_ok', '=', True), ('company_id', '=', company_id)]"
     )
-    receivable_account_fede_com_id = fields.Many2one(
-        comodel_name='account.account',
-        string="Compte de tiers Fédération de la com",
-        domain="[('internal_type', '=', 'receivable')]",
+    journal_fede_com_id = fields.Many2one(
+        comodel_name="account.journal",
+        string="Journal Fédération de la com",
+        domain="[('type', '=', 'sale')]",
     )
     contribution_fede_cae_id = fields.Many2one(
         comodel_name='product.product',
         string='Article de cotisation Fédé CAE',
         domain="[('sale_ok', '=', True), ('company_id', '=', company_id)]"
     )
-    receivable_account_fede_cae_id = fields.Many2one(
-        comodel_name='account.account',
-        string="Compte de tiers Fédération CAE",
-        domain="[('internal_type', '=', 'receivable')]",
+    journal_fede_cae_id = fields.Many2one(
+        comodel_name="account.journal",
+        string="Journal Fédération CAE",
+        domain="[('type', '=', 'sale')]",
     )
     contribution_hdf_id = fields.Many2one(
         comodel_name='product.product',
         string='Article de cotisation UR HDF',
         domain="[('sale_ok', '=', True), ('company_id', '=', company_id)]"
     )
-    receivable_account_ur_hdf_id = fields.Many2one(
-        comodel_name='account.account',
-        string="Compte de tiers UR HDF",
-        domain="[('internal_type', '=', 'receivable')]",
+    journal_ur_hdf_id = fields.Many2one(
+        comodel_name="account.journal",
+        string="Journal UR HDF",
+        domain="[('type', '=', 'sale')]",
     )
     contribution_med_id = fields.Many2one(
         comodel_name='product.product',
         string='Article de cotisation UR Méditerranée',
         domain="[('sale_ok', '=', True), ('company_id', '=', company_id)]"
     )
-    receivable_account_ur_med_id = fields.Many2one(
-        comodel_name='account.account',
-        string="Compte de tiers UR Med",
-        domain="[('internal_type', '=', 'receivable')]",
-    )
-
-    contribution_ur_or_fede_journal_id = fields.Many2one(
-        comodel_name='account.journal',
-        string='Journal des cotisations UR ou Fédérations',
+    journal_ur_med_id = fields.Many2one(
+        comodel_name="account.journal",
+        string="Journal UR Med",
         domain="[('type', '=', 'sale')]",
     )
diff --git a/models/res_config_settings.py b/models/res_config_settings.py
index a6b6e01..6ccf40e 100644
--- a/models/res_config_settings.py
+++ b/models/res_config_settings.py
@@ -25,12 +25,12 @@ class CotisationsConfigSettings(models.TransientModel):
         string='Article de cotisation Fédé de la Com',
         domain="[('sale_ok', '=', True), ('company_id', '=', company_id)]"
     )
-    receivable_account_fede_com_id = fields.Many2one(
-        comodel_name='account.account',
-        related="company_id.receivable_account_fede_com_id",
+    journal_fede_com_id = fields.Many2one(
+        comodel_name="account.journal",
+        related="company_id.journal_fede_com_id",
         readonly=False,
-        string="Compte de tiers Fédération de la com",
-        domain="[('internal_type', '=', 'receivable')]",
+        string="Journal Fédération de la com",
+        domain="[('type', '=', 'sale')]",
     )
     contribution_fede_cae_id = fields.Many2one(
         comodel_name='product.product',
@@ -39,12 +39,12 @@ class CotisationsConfigSettings(models.TransientModel):
         string='Article de cotisation Fédé CAE',
         domain="[('sale_ok', '=', True), ('company_id', '=', company_id)]"
     )
-    receivable_account_fede_cae_id = fields.Many2one(
-        comodel_name='account.account',
-        related="company_id.receivable_account_fede_cae_id",
+    journal_fede_cae_id = fields.Many2one(
+        comodel_name="account.journal",
+        related="company_id.journal_fede_cae_id",
         readonly=False,
-        string="Compte de tiers Fédération CAE",
-        domain="[('internal_type', '=', 'receivable')]",
+        string="Journal Fédération CAE",
+        domain="[('type', '=', 'sale')]",
     )
     contribution_hdf_id = fields.Many2one(
         comodel_name='product.product',
@@ -53,12 +53,12 @@ class CotisationsConfigSettings(models.TransientModel):
         string='Article de cotisation UR HDF',
         domain="[('sale_ok', '=', True), ('company_id', '=', company_id)]"
     )
-    receivable_account_ur_hdf_id = fields.Many2one(
-        comodel_name='account.account',
-        related="company_id.receivable_account_ur_hdf_id",
+    journal_ur_hdf_id = fields.Many2one(
+        comodel_name="account.journal",
+        related="company_id.journal_ur_hdf_id",
         readonly=False,
-        string="Compte de tiers UR HDF",
-        domain="[('internal_type', '=', 'receivable')]",
+        string="Journal UR HDF",
+        domain="[('type', '=', 'sale')]",
     )
     contribution_med_id = fields.Many2one(
         comodel_name='product.product',
@@ -67,21 +67,14 @@ class CotisationsConfigSettings(models.TransientModel):
         string='Article de cotisation UR Méditerranée',
         domain="[('sale_ok', '=', True), ('company_id', '=', company_id)]"
     )
-    receivable_account_ur_med_id = fields.Many2one(
-        comodel_name='account.account',
-        related="company_id.receivable_account_ur_med_id",
+    journal_ur_med_id = fields.Many2one(
+        comodel_name="account.journal",
+        related="company_id.journal_ur_med_id",
         readonly=False,
-        string="Compte de tiers UR Med",
-        domain="[('internal_type', '=', 'receivable')]",
+        string="Journal UR Med",
+        domain="[('type', '=', 'sale')]",
     )
 
-    contribution_ur_or_fede_journal_id = fields.Many2one(
-        comodel_name='account.journal',
-        related="company_id.contribution_ur_or_fede_journal_id",
-        readonly=False,
-        string='Journal des cotisations UR ou Fédération',
-        domain="[('type', '=', 'sale')]")
-
     @api.onchange('is_contribution')
     def _onchange_is_contribution_cg(self):
         if not self.is_contribution:
diff --git a/models/scop_bordereau_cg.py b/models/scop_bordereau_cg.py
index 013adf0..1d7e7ab 100644
--- a/models/scop_bordereau_cg.py
+++ b/models/scop_bordereau_cg.py
@@ -112,7 +112,9 @@ class Bordereau(models.Model):
     amount_total_cg = fields.Monetary(
         string='Cotisation CG Scop',
         currency_field='company_currency_id',
-        compute='_compute_amount_cg',)
+        compute='_compute_amount_cg',
+        store=True
+    )
     amount_residual = fields.Monetary(
         string='Montant dû',
         currency_field='company_currency_id',
@@ -212,7 +214,7 @@ class Bordereau(models.Model):
         for r in self:
             if r.liasse_fiscale_id:
                 liasse = r.liasse_fiscale_id
-                r.ca = liasse.revenue_cgsubv
+                r.ca = liasse.L2052_FL
                 r.va = r.base_cotisation_cg.get_va(liasse)
                 r.net_results = liasse.L2053_HN \
                     if liasse.L2053_HN > 0 else liasse.L2051_DI
@@ -261,7 +263,6 @@ class Bordereau(models.Model):
             r.liasse_count = len(r.partner_id.liasse_fiscale_ids)
 
     @api.depends(
-        "invoice_count",
         "invoice_ids",
         "invoice_ids.amount_total_signed"
     )
@@ -275,7 +276,7 @@ class Bordereau(models.Model):
     @api.multi
     def _compute_amount_residual(self):
         for r in self:
-            r.amount_total_cotiz = sum(
+            r.amount_residual = sum(
                 r.invoice_ids.mapped('residual_signed'))
 
     @api.multi
@@ -340,6 +341,7 @@ class Bordereau(models.Model):
             else:
                 r.has_outstanding = False
 
+    @api.depends("invoice_ids", "invoice_ids.amount_total")
     @api.multi
     def _compute_amount_cg(self):
         type_cotisation_cg = self.env.ref('cgscop_partner.riga_14397')
@@ -680,17 +682,15 @@ class Bordereau(models.Model):
         self.create_contribution(
             product_cg_id, type_cotisation_cg, amount_cg
         )
-        self.env.cr.commit()
 
         # Invoice UR et Fédé
         type_cotisation_ur = self.env.ref('cgscop_partner.riga_14399').id
-        journal_ur_or_fede = self.company_id.contribution_ur_or_fede_journal_id
 
         # Invoice cotiz Fede Com
         #
         if partner.is_federation_com:
             product_fede_com_id = self.company_id.contribution_fede_com_id
-            account_id = self.company_id.receivable_account_fede_com_id
+            journal_fede_com_id = self.company_id.journal_fede_com_id
             type_cotisation_fede_com = self.env.ref(
                 'cgscop_partner.riga_14398').id
 
@@ -701,37 +701,39 @@ class Bordereau(models.Model):
                 amount_fede_com = self.env['scop.liasse.fiscale']. \
                     get_plancher_cotiz()['fede_com']
             self.create_contribution(
-                product_fede_com_id, type_cotisation_fede_com, amount_fede_com,
-                journal_ur_or_fede, account_id
+                product=product_fede_com_id,
+                type_contribution=type_cotisation_fede_com,
+                amount=amount_fede_com,
+                journal_id=journal_fede_com_id,
             )
-            self.env.cr.commit()
 
         # Invoice cotiz Fede CAE
+        # TODO: décommenter et modifier après la validation des cotisations CAE
+        # if partner.cae:
+        #     product_fede_cae_id = self.company_id.contribution_fede_cae_id
+        #     journal_fede_cae_id = self.company_id.journal_fede_cae_id
+        #     type_cotisation_fede_cae = self.env.ref(
+        #         'cgscop_partner.cotiz_fede_cae').id
         #
-        if partner.cae:
-            product_fede_cae_id = self.company_id.contribution_fede_cae_id
-            account_id = self.company_id.receivable_account_fede_cae_id
-            type_cotisation_fede_cae = self.env.ref(
-                'cgscop_partner.cotiz_fede_cae').id
-
-            if liasse:
-                amount_fede_cae = base_cotiz.round_to_closest_multiple(
-                    liasse.contribution_cae, 4)
-            else:
-                amount_fede_cae = self.env['scop.liasse.fiscale']. \
-                    get_plancher_cotiz()['fede_cae']
-            self.create_contribution(
-                product_fede_cae_id, type_cotisation_fede_cae, amount_fede_cae,
-                journal_ur_or_fede, account_id
-            )
-            self.env.cr.commit()
+        #     if liasse:
+        #         amount_fede_cae = base_cotiz.round_to_closest_multiple(
+        #             liasse.contribution_cae, 4)
+        #     else:
+        #         amount_fede_cae = self.env['scop.liasse.fiscale']. \
+        #             get_plancher_cotiz()['fede_cae']
+        #     self.create_contribution(
+        #         product=product_fede_cae_id,
+        #         type_contribution=type_cotisation_fede_cae,
+        #         amount=amount_fede_cae,
+        #         journal_id=journal_fede_cae_id,
+        #     )
 
         # Invoice cotiz UR HDF
         #
         ur_hdf = self.env.ref('cgscop_partner.riga_14232').id
         if partner.ur_id.id == ur_hdf:
             product_hdf_id = self.company_id.contribution_hdf_id
-            account_id = self.company_id.receivable_account_ur_hdf_id
+            journal_hdf_id = self.company_id.journal_ur_hdf_id
 
             if liasse:
                 amount_hdf = base_cotiz.round_to_closest_multiple(
@@ -740,17 +742,18 @@ class Bordereau(models.Model):
                 amount_hdf = self.env['scop.liasse.fiscale']. \
                     get_plancher_cotiz()['ur_hdf']
             self.create_contribution(
-                product_hdf_id, type_cotisation_ur, amount_hdf,
-                journal_ur_or_fede, account_id
+                product=product_hdf_id,
+                type_contribution=type_cotisation_ur,
+                amount=amount_hdf,
+                journal_id=journal_hdf_id,
             )
-            self.env.cr.commit()
 
         # Invoice cotiz UR Med
         #
         ur_med = self.env.ref('cgscop_partner.riga_14243').id
         if partner.ur_id.id == ur_med:
             product_med_id = self.company_id.contribution_med_id
-            account_id = self.company_id.receivable_account_ur_med_id
+            journal_ur_med_id = self.company_id.journal_ur_med_id
 
             if liasse:
                 amount_med = base_cotiz.round_to_closest_multiple(
@@ -759,11 +762,13 @@ class Bordereau(models.Model):
                 amount_med = self.env['scop.liasse.fiscale']. \
                     get_plancher_cotiz()['ur_med']
             self.create_contribution(
-                product_med_id, type_cotisation_ur, amount_med,
-                journal_ur_or_fede, account_id
+                product=product_med_id,
+                type_contribution=type_cotisation_ur,
+                amount=amount_med,
+                journal_id=journal_ur_med_id,
             )
-            self.env.cr.commit()
 
+    # TODO: supprimer account_id si pas nécessaire
     def create_contribution(
             self, product, type_contribution, amount=0,
             journal_id=False, account_id=False, type_invoice='out_invoice'):
@@ -812,7 +817,7 @@ class Bordereau(models.Model):
                         ' - ' + type_contrib_name,
                 'journal_id': journal_id.id,
                 'state': 'draft',
-                'account_id': account_id.id,
+                # 'account_id': account_id.id,
                 'payment_mode_id': partner.customer_payment_mode_id.id,
                 'date_invoice': self.date_cotisation,
                 'date_due': quarters[cotiz_quarter - 1],
diff --git a/models/scop_cotisation_cg.py b/models/scop_cotisation_cg.py
index 64b10fb..8478a6f 100644
--- a/models/scop_cotisation_cg.py
+++ b/models/scop_cotisation_cg.py
@@ -433,11 +433,14 @@ class ScopCotisation(models.Model):
             'Montant Assiette',
             'Année Liasse',
             'Durée Exercice',
+            'CA (L2052 FL)',
             'CA sens CG Scop',
             'VABDF sens CG Scop',
+            'Masse Salariale (L2052 FY)',
             'Salaires sens CG Scop',
             'Résultat',
             'Dernier effectif connu',
+            'Dernier effectif associé connu',
             'Moyen de paiement'
         ]
 
@@ -468,7 +471,7 @@ class ScopCotisation(models.Model):
                 'price_subtotal_signed'))
 
             # Construction Tableau
-            liasse.read(['revenue_cg', 'av_cg', 'wage_cg'])
+            liasse.read(['L2052_FL', 'av_cg', 'wage_cg'])
             datas_contrib = [
                 m.member_number,
                 m.ur_id.name,
@@ -481,11 +484,14 @@ class ScopCotisation(models.Model):
                 liasse.contribution_base_amount,
                 liasse.year,
                 liasse.dureeExercice,
+                liasse.L2052_FL,
                 liasse.revenue_cg,
                 liasse.av_cg,
+                liasse.L2052_FY,
                 liasse.wage_cg,
                 net_results,
                 m.staff_last,
+                m.staff_shareholder_last,
                 m.customer_payment_mode_id.name if m.customer_payment_mode_id else 'Virement/Chèque',
             ]
 
@@ -599,8 +605,8 @@ class ScopCotisation(models.Model):
         worksheet1.set_column(4, 4, 25, None)
         worksheet1.set_column(5, 6, 20, format_monetary)
         worksheet1.set_column(8, 8, 20, format_monetary)
-        worksheet1.set_column(11, 14, 20, format_monetary)
-        worksheet1.set_column(16, 16, 20, None)
+        worksheet1.set_column(11, 16, 20, format_monetary)
+        worksheet1.set_column(19, 19, 20, None)
 
         # Enregistrement du fichier dans la base
         workbook.close()
@@ -642,7 +648,7 @@ class ScopCotisation(models.Model):
             ('partner_id', '=', member.id),
             ('is_qualified', '=', True),
             '|', '|',
-            ('revenue_cgsubv', '>', 0),
+            ('L2052_FL', '>', 0),
             ('av_lf', '>', 0),
             ('av_cg', '>', 0),
         ], order="year desc")
diff --git a/models/scop_liasse_fiscale.py b/models/scop_liasse_fiscale.py
index a736ec9..12740ca 100644
--- a/models/scop_liasse_fiscale.py
+++ b/models/scop_liasse_fiscale.py
@@ -41,7 +41,7 @@ class ScopLiasseFiscale(models.Model):
     # ------------------------------------------------------
     # Compute fields
     # ------------------------------------------------------
-    @api.depends('av_lf', 'av_cg', 'revenue_cg', 'dureeExercice')
+    @api.depends('av_lf', 'av_cg', 'L2052_FL', 'dureeExercice')
     @api.multi
     def _compute_contribution_cg(self):
         """
@@ -56,9 +56,9 @@ class ScopLiasseFiscale(models.Model):
         """
         for liasse in self:
             # Calcul VA
-            liasse.read(['av_lf', 'av_cg', 'revenue_cg'])
+            liasse.read(['av_lf', 'av_cg', 'L2052_FL'])
             va = liasse.av_lf if liasse.av_lf > 0 else liasse.av_cg
-            ca = liasse.revenue_cg
+            ca = liasse.L2052_FL
             if liasse.dureeExercice and liasse.dureeExercice not in (0, 12):
                 va = va * (12 / liasse.dureeExercice)
                 ca = ca * (12 / liasse.dureeExercice)
@@ -150,8 +150,8 @@ class ScopLiasseFiscale(models.Model):
                 (soit 1/3 de la cotisation CGSCOP sans plancher)
             - Complément de cotisation : 1% du résultat net si positif
             - Abattement pour sociétariat :
-                Taux de sociétariat =   nombre de salariés sociétaires /
-                                        nombre de salariés
+                Taux de sociétariat = nombre de salariés sociétaires /
+                                      nombre de salariés
                 Abattement 20 % si >= 50 %
                 Abattement 30 % si >= 80 %
             - Calcul cotisations :
@@ -322,10 +322,10 @@ class ScopLiasseFiscale(models.Model):
         if partner.cooperative_form_id in (
                 self.env.ref('cgscop_partner.form_coop47'),
                 self.env.ref('cgscop_partner.form_lamaneur')):
-            plancher1 = 1 / 3 * plancher1
-            plancher2 = 1 / 3 * plancher2
-            plancher3 = 1 / 3 * plancher3
-            plafond = 1 / 3 * plafond
+            plancher1 = 2 / 3 * plancher1
+            plancher2 = 2 / 3 * plancher2
+            plancher3 = 2 / 3 * plancher3
+            plafond = 2 / 3 * plafond
 
         return {
             'plancher1': plancher1,
diff --git a/views/res_config_settings.xml b/views/res_config_settings.xml
index 77a1f0e..669b4ff 100644
--- a/views/res_config_settings.xml
+++ b/views/res_config_settings.xml
@@ -26,18 +26,17 @@
                             <field name="contribution_cg_id" options="{'no_open': True, 'no_create': True}" attrs="{'required': [('is_contribution_cg', '=', True)]}"/>
                         </div>
                         <hr attrs="{'invisible': [('is_contribution_cg', '=', False)]}"/>
-                        <div class="o_setting_right_pane" attrs="{'invisible': [('is_contribution_cg', '=', False)]}">
-                            <div><label for="contribution_ur_or_fede_journal_id"/></div>
-                            <field name="contribution_ur_or_fede_journal_id" options="{'no_open': True, 'no_create': True}" attrs="{'required': [('is_contribution_cg', '=', True)]}"/>
-                        </div>
-                        <hr attrs="{'invisible': [('is_contribution_cg', '=', False)]}"/>
                         <div class="o_setting_right_pane" attrs="{'invisible': [('is_contribution_cg', '=', False)]}">
                             <div><label for="contribution_fede_com_id"/></div>
                             <field name="contribution_fede_com_id" options="{'no_open': True, 'no_create': True}" attrs="{'required': [('is_contribution_cg', '=', True)]}"/>
                         </div>
                         <div class="o_setting_right_pane" attrs="{'invisible': [('is_contribution_cg', '=', False)]}">
-                            <div><label for="receivable_account_fede_com_id"/></div>
-                            <field name="receivable_account_fede_com_id" options="{'no_open': True, 'no_create': True}" attrs="{'required': [('is_contribution_cg', '=', True)]}"/>
+                            <div><label for="journal_fede_com_id" /></div>
+                            <field
+                                name="journal_fede_com_id"
+                                options="{'no_open': True, 'no_create': True}"
+                                attrs="{'required': [('is_contribution_cg', '=', True)]}"
+                            />
                         </div>
                         <hr attrs="{'invisible': [('is_contribution_cg', '=', False)]}"/>
                         <div class="o_setting_right_pane" attrs="{'invisible': [('is_contribution_cg', '=', False)]}">
@@ -45,8 +44,12 @@
                             <field name="contribution_fede_cae_id" options="{'no_open': True, 'no_create': True}" attrs="{'required': [('is_contribution_cg', '=', True)]}"/>
                         </div>
                         <div class="o_setting_right_pane" attrs="{'invisible': [('is_contribution_cg', '=', False)]}">
-                            <div><label for="receivable_account_fede_cae_id"/></div>
-                            <field name="receivable_account_fede_cae_id" options="{'no_open': True, 'no_create': True}" attrs="{'required': [('is_contribution_cg', '=', True)]}"/>
+                            <div><label for="journal_fede_cae_id" /></div>
+                            <field
+                                name="journal_fede_cae_id"
+                                options="{'no_open': True, 'no_create': True}"
+                                attrs="{'required': [('is_contribution_cg', '=', True)]}"
+                            />
                         </div>
                         <hr attrs="{'invisible': [('is_contribution_cg', '=', False)]}"/>
                         <div class="o_setting_right_pane" attrs="{'invisible': [('is_contribution_cg', '=', False)]}">
@@ -54,8 +57,12 @@
                             <field name="contribution_hdf_id" options="{'no_open': True, 'no_create': True}" attrs="{'required': [('is_contribution_cg', '=', True)]}"/>
                         </div>
                         <div class="o_setting_right_pane" attrs="{'invisible': [('is_contribution_cg', '=', False)]}">
-                            <div><label for="receivable_account_ur_hdf_id"/></div>
-                            <field name="receivable_account_ur_hdf_id" options="{'no_open': True, 'no_create': True}" attrs="{'required': [('is_contribution_cg', '=', True)]}"/>
+                            <div><label for="journal_ur_hdf_id" /></div>
+                            <field
+                                name="journal_ur_hdf_id"
+                                options="{'no_open': True, 'no_create': True}"
+                                attrs="{'required': [('is_contribution_cg', '=', True)]}"
+                            />
                         </div>
                         <hr attrs="{'invisible': [('is_contribution_cg', '=', False)]}"/>
                         <div class="o_setting_right_pane" attrs="{'invisible': [('is_contribution_cg', '=', False)]}">
@@ -63,8 +70,12 @@
                             <field name="contribution_med_id" options="{'no_open': True, 'no_create': True}" attrs="{'required': [('is_contribution_cg', '=', True)]}"/>
                         </div>
                         <div class="o_setting_right_pane" attrs="{'invisible': [('is_contribution_cg', '=', False)]}">
-                            <div><label for="receivable_account_ur_med_id"/></div>
-                            <field name="receivable_account_ur_med_id" options="{'no_open': True, 'no_create': True}" attrs="{'required': [('is_contribution_cg', '=', True)]}"/>
+                            <div><label for="journal_ur_med_id" /></div>
+                            <field
+                                name="journal_ur_med_id"
+                                options="{'no_open': True, 'no_create': True}"
+                                attrs="{'required': [('is_contribution_cg', '=', True)]}"
+                            />
                         </div>
                     </div>
                 </xpath>
diff --git a/views/scop_bordereau_cg.xml b/views/scop_bordereau_cg.xml
index 374c5db..7095fa3 100644
--- a/views/scop_bordereau_cg.xml
+++ b/views/scop_bordereau_cg.xml
@@ -226,6 +226,7 @@
                     <filter name="is_va" string="Assiette VA" domain="[('type_assiette', '=', 'va')]"/>
                     <group string="Group By">
                         <filter name="by_year" string="Année de cotisation" context="{'group_by':'year'}"/>
+                        <filter name="by_ur" string="UR Adhérent" context="{'group_by':'partner_ur_id'}"/>
                     </group>
                 </search>
             </field>
diff --git a/views/scop_cotisation_cg.xml b/views/scop_cotisation_cg.xml
index cead779..1df5c47 100644
--- a/views/scop_cotisation_cg.xml
+++ b/views/scop_cotisation_cg.xml
@@ -62,8 +62,8 @@
                         </group>
                         <notebook>
                             <page name="simulation" string="Simulations">
-                                <h5 attrs="{'invisible': [('state', '!=', 'new')]}">Ajouter une simulation :</h5>
-                                <hr attrs="{'invisible': [('state', '!=', 'new')]}"/>
+                                <h5>Ajouter une simulation :</h5>
+                                <hr/>
                                 <button name="add_simul" class="btn btn-outline-info" style="margin-right: 20px; width: 250px;"
                                         type="object" string="Globale : CG, UR et Fédération"
                                         attrs="{'invisible': [('state', '!=', 'new')]}" context="{'type_simul': 'all'}"/>
diff --git a/wizard/scop_bordereau_refund_wizard.py b/wizard/scop_bordereau_refund_wizard.py
index 53614d1..a400e38 100644
--- a/wizard/scop_bordereau_refund_wizard.py
+++ b/wizard/scop_bordereau_refund_wizard.py
@@ -132,28 +132,36 @@ class ScopBordereauRefundWizard(models.TransientModel):
         # CREATE REFUND
         if partner_id.ur_id.id == ur_hdf:
             product_ur = self.env.user.company_id.contribution_hdf_id
-            account_ur = self.env.user.company_id.receivable_account_ur_hdf_id
+            # account_ur = self.env.user.company_id.receivable_account_ur_hdf_id
         else:  # ur = ur_med
             product_ur = self.env.user.company_id.contribution_med_id
-            account_ur = self.env.user.company_id.receivable_account_ur_med_id
+            # account_ur = self.env.user.company_id.receivable_account_ur_med_id
 
         cotiz_type = {
             self.env.ref('cgscop_partner.riga_14397').id:
-                [self.env.user.company_id.contribution_cg_id,
-                 self.env.user.company_id.contribution_journal_id,
-                 partner_id.property_account_receivable_id],
+                [
+                    self.env.user.company_id.contribution_cg_id,
+                    self.env.user.company_id.contribution_journal_id,
+                    partner_id.property_account_receivable_id
+                ],
             self.env.ref('cgscop_partner.riga_14398').id:
-                [self.env.user.company_id.contribution_fede_com_id,
-                 self.env.user.company_id.contribution_ur_or_fede_journal_id,
-                 self.env.user.company_id.receivable_account_fede_com_id],
+                [
+                    self.env.user.company_id.contribution_fede_com_id,
+                    self.env.user.company_id.contribution_ur_or_fede_journal_id,
+                    # self.env.user.company_id.receivable_account_fede_com_id
+                ],
             self.env.ref('cgscop_partner.cotiz_fede_cae').id:
-                [self.env.user.company_id.contribution_fede_cae_id,
-                 self.env.user.company_id.contribution_ur_or_fede_journal_id,
-                 self.env.user.company_id.receivable_account_fede_cae_id],
+                [
+                    self.env.user.company_id.contribution_fede_cae_id,
+                    self.env.user.company_id.contribution_ur_or_fede_journal_id,
+                    # self.env.user.company_id.receivable_account_fede_cae_id
+                ],
             self.env.ref('cgscop_partner.riga_14399').id:
-                [product_ur,
-                 self.env.user.company_id.contribution_ur_or_fede_journal_id,
-                 account_ur],
+                [
+                    product_ur,
+                    self.env.user.company_id.contribution_ur_or_fede_journal_id,
+                    # account_ur
+                ],
         }
         product = cotiz_type.get(int(self.type_cotiz))[0]
 
@@ -161,7 +169,7 @@ class ScopBordereauRefundWizard(models.TransientModel):
             refund = self.env['account.invoice'].create({
                 'partner_id': partner_id.id,
                 'journal_id': cotiz_type.get(int(self.type_cotiz))[1].id,
-                'account_id': cotiz_type.get(int(self.type_cotiz))[2].id,
+                # 'account_id': cotiz_type.get(int(self.type_cotiz))[2].id,
                 'type': 'out_refund',
                 'date_invoice': self.date_refund,
                 'date': self.date_refund,
diff --git a/wizard/scop_cotisation_cg_regul.py b/wizard/scop_cotisation_cg_regul.py
index 5f0d6d7..95417ee 100644
--- a/wizard/scop_cotisation_cg_regul.py
+++ b/wizard/scop_cotisation_cg_regul.py
@@ -145,6 +145,7 @@ class ScopCotisationRegul(models.TransientModel):
             'amount_total_cotiz': bordereau_id.amount_total_cotiz,
         })
 
+        # TODO: supprimer le compte recevable UR et Fédé
         # CREATE REGUL
         contribs = bordereau_id.invoice_ids.read_group(
             [('id', 'in', bordereau_id.invoice_ids.ids)],
@@ -155,33 +156,41 @@ class ScopCotisationRegul(models.TransientModel):
         if partner_id.ur_id.id == ur_hdf:
             amount_ur = self.amount_ur_hdf
             product_ur = self.env.user.company_id.contribution_hdf_id
-            account_ur = self.env.user.company_id.receivable_account_ur_hdf_id
+            # account_ur = self.env.user.company_id.receivable_account_ur_hdf_id
         else:  # ur = ur_med
             amount_ur = self.amount_ur_med
             product_ur = self.env.user.company_id.contribution_med_id
-            account_ur = self.env.user.company_id.receivable_account_ur_med_id
+            # account_ur = self.env.user.company_id.receivable_account_ur_med_id
 
         cotiz_type = {
             self.env.ref('cgscop_partner.riga_14397').id:
-                [self.amount_cg,
-                 self.env.user.company_id.contribution_cg_id,
-                 self.env.user.company_id.contribution_journal_id,
-                 partner_id.property_account_receivable_id.id],
+                [
+                    self.amount_cg,
+                     self.env.user.company_id.contribution_cg_id,
+                     self.env.user.company_id.contribution_journal_id,
+                     partner_id.property_account_receivable_id.id
+                ],
             self.env.ref('cgscop_partner.riga_14398').id:
-                [self.amount_fede_com,
-                 self.env.user.company_id.contribution_fede_com_id,
-                 self.env.user.company_id.contribution_ur_or_fede_journal_id,
-                 self.env.user.company_id.receivable_account_fede_com_id],
+                [
+                    self.amount_fede_com,
+                     self.env.user.company_id.contribution_fede_com_id,
+                     self.env.user.company_id.contribution_ur_or_fede_journal_id,
+                     # self.env.user.company_id.receivable_account_fede_com_id
+                 ],
             self.env.ref('cgscop_partner.cotiz_fede_cae').id:
-                [self.amount_fede_cae,
-                 self.env.user.company_id.contribution_fede_cae_id,
-                 self.env.user.company_id.contribution_ur_or_fede_journal_id,
-                 self.env.user.company_id.receivable_account_fede_cae_id],
+                [
+                    self.amount_fede_cae,
+                    self.env.user.company_id.contribution_fede_cae_id,
+                    self.env.user.company_id.contribution_ur_or_fede_journal_id,
+                    # self.env.user.company_id.receivable_account_fede_cae_id
+                 ],
             self.env.ref('cgscop_partner.riga_14399').id:
-                [amount_ur,
-                 product_ur,
-                 self.env.user.company_id.contribution_ur_or_fede_journal_id,
-                 account_ur],
+                [
+                    amount_ur,
+                    product_ur,
+                    self.env.user.company_id.contribution_ur_or_fede_journal_id,
+                    # account_ur
+                 ],
         }
 
         quarters = [bordereau_id.base_cotisation_cg.trimester_1,
@@ -216,7 +225,7 @@ class ScopCotisationRegul(models.TransientModel):
                     refund = self.env['account.invoice'].create({
                         'partner_id': partner_id.id,
                         'journal_id': cotiz_type.get(type_cotiz)[2].id,
-                        'account_id': partner_id.property_account_receivable_id.id,
+                        # 'account_id': partner_id.property_account_receivable_id.id,
                         'type': type_invoice,
                         'date_invoice': self.date_regul,
                         'date': self.date_regul,
-- 
GitLab