diff --git a/models/company_share_line.py b/models/company_share_line.py
index e2b8284a3f1d905d51e1c5d7d8b6deb2767e930b..f1a8dc9fa0dd5b6890725cd2ff2d01616b9e79e9 100644
--- a/models/company_share_line.py
+++ b/models/company_share_line.py
@@ -13,9 +13,7 @@ class CompanyShareLine(models.Model):
     # ------------------------------------------------------
     # Fields declaration
     # ------------------------------------------------------
-    share_number = fields.Integer(
-        string="Number of Share", required=True
-    )
+    share_number = fields.Integer(string="Number of Share", required=True)
     share_unit_price = fields.Monetary(
         string="Share price",
         currency_field="company_currency_id",
diff --git a/models/res_company.py b/models/res_company.py
index 888d9ba9e1d3fff468c56b7bf3be68f5891450a3..423ab2ea2f91b466eca5e768345b6b2638b0a94b 100644
--- a/models/res_company.py
+++ b/models/res_company.py
@@ -19,16 +19,20 @@ class ResCompany(models.Model):
     # ------------------------------------------------------
     # Constraints
     # ------------------------------------------------------
-    @api.constrains(
-        "company_share_line_ids",
-        "company_share_line_ids.share_count",
-        "company_share_line_ids.company_id",
-    )
+    @api.constrains("company_share_line_ids",)
     def _check_share_line(self):
         for company in self:
             company_share_line = company.company_share_line_ids
-            share_in = sum(company_share_line(lambda s: s.share_action == "purchase"))
-            share_out = sum(company_share_line(lambda s: s.share_action == "refund"))
+            share_in = sum(
+                company_share_line.filtered(
+                    lambda s: s.share_action == "purchase"
+                ).mapped("share_number")
+            )
+            share_out = sum(
+                company_share_line.filtered(
+                    lambda s: s.share_action == "refund"
+                ).mapped("share_number")
+            )
             if share_out > share_in:
                 raise ValidationError(_("You cannot refund more shares that you have."))