diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..75bb2042901930f807a588241612a29dd75e34d5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+.*
+*.pyc
+!.gitignore
diff --git a/__manifest__.py b/__manifest__.py
index 7fcc52ee63a6be8d80473efa1279ca24192455ac..4eb8bf1c88887951a87fd75e3fdd5e28403189ad 100755
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -17,6 +17,8 @@
         # Security
         "security/security_rules.xml",
         "security/ir.model.access.csv",
+        # Datas
+        "datas/bordereau_refund_wizard_quarter_data.xml",
         "datas/mail_data.xml",
         "datas/queue_job_data.xml",
         "datas/ir_sequence_data.xml",
diff --git a/datas/bordereau_refund_wizard_quarter_data.xml b/datas/bordereau_refund_wizard_quarter_data.xml
new file mode 100644
index 0000000000000000000000000000000000000000..213e9e1c3c7d87a3994aa33dae104d47dce78123
--- /dev/null
+++ b/datas/bordereau_refund_wizard_quarter_data.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!-- Copyright 2021 Le Filament (<https://www.le-filament.com>)
+     License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). -->
+<odoo>
+    <data noupdate="1">
+
+        <record id="bordereau_wizard_quarter1" model="scop.bordereau.refund.wizard.quarter">
+            <field name="quarter">1</field>
+        </record>
+
+        <record id="bordereau_wizard_quarter2" model="scop.bordereau.refund.wizard.quarter">
+            <field name="quarter">2</field>
+        </record>
+        
+        <record id="bordereau_wizard_quarter3" model="scop.bordereau.refund.wizard.quarter">
+            <field name="quarter">3</field>
+        </record>
+        
+        <record id="bordereau_wizard_quarter4" model="scop.bordereau.refund.wizard.quarter">
+            <field name="quarter">4</field>
+        </record>
+        
+    </data>
+</odoo>
\ No newline at end of file
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index 1f7f053e9fad6a1ce6120f4fd73a3503d117e271..c818bf483c207071f88543f2bbaaaaa8363dda9a 100755
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -7,3 +7,5 @@ access_scop_bordereau,access_scop_bordereau,model_scop_bordereau,account.group_a
 admin_access_scop_bordereau,admin_access_scop_bordereau,model_scop_bordereau,cgscop_partner.group_cg_administrator,1,1,1,1
 access_scop_bordereau_version,access_scop_bordereau_version,model_scop_bordereau_version,account.group_account_manager,1,1,1,1
 admin_access_scop_bordereau_version,admin_access_scop_bordereau_version,model_scop_bordereau_version,cgscop_partner.group_cg_administrator,1,1,1,1
+access_scop_bordereau_refund_wizard_quarter,access_scop_bordereau_refund_wizard_quarter,model_scop_bordereau_refund_wizard_quarter,account.group_account_manager,1,1,1,1
+admin_access_scop_bordereau_refund_wizard_quarter,admin_access_scop_bordereau_refund_wizard_quarter,model_scop_bordereau_refund_wizard_quarter,cgscop_partner.group_cg_administrator,1,1,1,1
diff --git a/wizard/scop_bordereau_refund_wizard.py b/wizard/scop_bordereau_refund_wizard.py
index 02786d52404f1f83736e67a47c0a9833384c2db9..e8c8fe0dee944028bbbbde594f25a694f2c841fb 100644
--- a/wizard/scop_bordereau_refund_wizard.py
+++ b/wizard/scop_bordereau_refund_wizard.py
@@ -2,7 +2,7 @@
 # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
 
 from odoo import fields, models, api
-from odoo.exceptions import ValidationError
+from odoo.exceptions import ValidationError, UserError
 
 
 class ScopBordereauRefundWizard(models.TransientModel):
@@ -23,10 +23,10 @@ class ScopBordereauRefundWizard(models.TransientModel):
         string='Type de cotisation',
         selection=lambda self: self._selection_type_cotiz(),
         required=1)
-    cotiz_quarter = fields.Selection(
-        string='Trimestre',
-        selection=[(1, 1), (2, 2), (3, 3), (4, 4)],
-        required=1, )
+    quarter_ids = fields.Many2many(
+        relation='scop_bordereau_refund_wizard_quarter_rel',
+        comodel_name='scop.bordereau.refund.wizard.quarter',
+        string='Trimestres')
 
     # ------------------------------------------------------
     # Constrains
@@ -100,6 +100,12 @@ class ScopBordereauRefundWizard(models.TransientModel):
         """
         Create refund
         """
+        if len(self.quarter_ids) == 0:
+            raise UserError('Vous devez sélectionner au moins un trimestre.')
+        if self.amount_refund <= 0:
+            raise UserError('Le montant de l\'avoir doit être supérieur à 0.')
+        if not self.type_cotiz:
+            raise UserError('Vous devez sélectionner un type de cotisation.')
         bordereau_id = self.bordereau_id
         partner_id = bordereau_id.partner_id
         ur_hdf = self.env.ref('cgscop_partner.riga_14232').id
@@ -148,30 +154,45 @@ class ScopBordereauRefundWizard(models.TransientModel):
                  account_ur],
         }
         product = cotiz_type.get(int(self.type_cotiz))[0]
-        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,
-            'type': 'out_refund',
-            'date_invoice': self.date_refund,
-            'date': self.date_refund,
-            'state': 'draft',
-            'number': False,
-            'origin': bordereau_id.name,
-            'reference': False,
-            'bordereau_id': bordereau_id.id,
-            'is_contribution': True,
-            'year': bordereau_id.year,
-            'cotiz_quarter': self.cotiz_quarter,
-            'liasse_fiscale_id': bordereau_id.liasse_fiscale_id.id,
-            'type_contribution_id': self.type_cotiz,
-            'payment_mode_id': bordereau_id.payment_mode_id.id,
-            'date_due': self.date_refund,
-        })
-        self.env['account.invoice.line'].create({
-            'name': self.comment,
-            'invoice_id': refund.id,
-            'product_id': product.id,
-            'account_id': product.property_account_income_id.id,
-            'price_unit': self.amount_refund
-        })
+
+        for quarter_id in self.quarter_ids:
+            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,
+                'type': 'out_refund',
+                'date_invoice': self.date_refund,
+                'date': self.date_refund,
+                'state': 'draft',
+                'number': False,
+                'origin': bordereau_id.name,
+                'reference': False,
+                'bordereau_id': bordereau_id.id,
+                'is_contribution': True,
+                'year': bordereau_id.year,
+                'cotiz_quarter': quarter_id.quarter,
+                'liasse_fiscale_id': bordereau_id.liasse_fiscale_id.id,
+                'type_contribution_id': self.type_cotiz,
+                'payment_mode_id': bordereau_id.payment_mode_id.id,
+                'date_due': self.date_refund,
+            })
+            self.env['account.invoice.line'].create({
+                'name': self.comment,
+                'invoice_id': refund.id,
+                'product_id': product.id,
+                'account_id': product.property_account_income_id.id,
+                'price_unit': self.amount_refund
+            })
+
+
+class ScopBordereauRefundWizardQuarer(models.Model):
+    _name = 'scop.bordereau.refund.wizard.quarter'
+    _description = 'Trimestres pour échéance de cotisation'
+
+    name = fields.Char('Nom', compute='_compute_name')
+    quarter = fields.Integer('Trismestre', required=1)
+
+    @api.multi
+    def _compute_name(self):
+        for r in self:
+            r.name = str(r.quarter)
diff --git a/wizard/scop_bordereau_refund_wizard.xml b/wizard/scop_bordereau_refund_wizard.xml
index a75e53d5150479e45b0d282f1b6c24c45d127c28..faac159b56a86c4e6a0b10094b66ccf3cf9c7d87 100644
--- a/wizard/scop_bordereau_refund_wizard.xml
+++ b/wizard/scop_bordereau_refund_wizard.xml
@@ -15,7 +15,7 @@
                             <field name="date_refund"/>
                             <separator/>
                             <field name="amount_refund"/>
-                            <field name="cotiz_quarter"/>
+                            <field name="quarter_ids" widget="many2many_checkboxes"/>
                             <field name="comment"/>
                         </group>
                     </sheet>