diff --git a/models/scop_cotisation.py b/models/scop_cotisation.py
index 2232df73767cf6ae0e0182c020150c82e7e14e24..bfc64d76b0acae0ac2c9d3bd2040f4397631021c 100644
--- a/models/scop_cotisation.py
+++ b/models/scop_cotisation.py
@@ -69,30 +69,48 @@ class ScopCotisation(models.AbstractModel):
                             liasse=None, amount=0):
         Invoice = self.env['account.invoice']
         InvoiceLine = self.env['account.invoice.line']
-        member_invoice = Invoice.create({
-            'partner_id': partner.id,
-            'liasse_fiscale_id': liasse.id,
-            'type': 'out_invoice',
-            'year': self.year,
-            'is_contribution': True,
-            'type_contribution_id': type_contribution,
-            'journal_id': self.company_id.contribution_journal_id.id,
-            'state': 'draft',
-            'account_id': partner.property_account_receivable_id.id,
-            'payment_term_id': self.payment_term_id.id,
-            'payment_mode_id': partner.customer_payment_mode_id.id,
-            'date_invoice': self.date_cotisation,
-        })
+
+        exisiting_invoice = Invoice.search([
+            ('partner_id', '=', partner.id),
+            ('year', '=', self.year),
+            ('type_contribution_id', '=', type_contribution)
+        ])
+        if not exisiting_invoice:
+            member_invoice = Invoice.create({
+                'partner_id': partner.id,
+                'liasse_fiscale_id': liasse.id,
+                'type': 'out_invoice',
+                'year': self.year,
+                'is_contribution': True,
+                'type_contribution_id': type_contribution,
+                'journal_id': self.company_id.contribution_journal_id.id,
+                'state': 'draft',
+                'account_id': partner.property_account_receivable_id.id,
+                'payment_term_id': self.payment_term_id.id,
+                'payment_mode_id': partner.customer_payment_mode_id.id,
+                'date_invoice': self.date_cotisation,
+            })
+        else:
+            member_invoice = exisiting_invoice
 
         # Création de la ligne CG Scop
-        InvoiceLine.create({
-            'invoice_id': member_invoice.id,
-            'product_id': product.id,
-            'account_id': product.property_account_income_id.id,
-            'invoice_line_tax_ids': [(6, 0, product.taxes_id.ids)],
-            'name': product.name,
-            'price_unit': amount
-        })
+        exisiting_invoice_line_ids = InvoiceLine.search([
+            ('invoice_id', '=', member_invoice.id),
+            ('product_id', '=', product.id)
+        ])
+        if not exisiting_invoice_line_ids:
+            InvoiceLine.create({
+                'invoice_id': member_invoice.id,
+                'product_id': product.id,
+                'account_id': product.property_account_income_id.id,
+                'invoice_line_tax_ids': [(6, 0, product.taxes_id.ids)],
+                'name': product.name,
+                'price_unit': amount
+            })
+        else:
+            exisiting_invoice_line_ids[0].write({
+                'price_unit': amount
+            })
 
         return member_invoice