From be61c5ee47bb58853189d013352e7865cee170fd Mon Sep 17 00:00:00 2001
From: Marco Folco <marcofolco28@gmail.com>
Date: Thu, 4 Feb 2021 15:30:54 -0300
Subject: [PATCH] [MOD] medical benefit and report

Modified domain update while filling benefits
Improved report template
---
 models/medical_benefit.py           | 31 ++++++++++++++++++++---------
 report/benefits_report_template.xml |  2 +-
 2 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/models/medical_benefit.py b/models/medical_benefit.py
index d742d52..583c439 100644
--- a/models/medical_benefit.py
+++ b/models/medical_benefit.py
@@ -480,15 +480,28 @@ class MedicalBenefit(models.Model):
         }
         if self.insurance_plan_id:
             res['domain'] = {}
-            for partner in rp.search([('partner_type','=','patient')]):
-                for insurance in partner.health_insurance_ids:
-                    if self.insurance_plan_id.insurance_id.id != self.env.ref('health_insurance.res_partner_pami').id:
-                        if insurance.insurance_plan_id.id == self.insurance_plan_id.id:
-                            partner_ids.append(partner.id)
-                            break
-                    elif insurance.insurance_plan_id.insurance_id.id == self.insurance_plan_id.insurance_id.id:
-                            partner_ids.append(partner.id)
-                            break
+            query = ""
+            param_id = []
+            if self.insurance_plan_id.insurance_id.id == self.env.ref('health_insurance.res_partner_pami').id:
+                query = """
+                SELECT DISTINCT ON(rp.id) rp.id
+                FROM res_partner rp JOIN
+                res_partner_insurance rpi ON rpi.patient_id = rp.id JOIN
+                health_insurance_plan hip ON rpi.insurance_plan_id = hip.id
+                WHERE hip.insurance_id = %s """
+                param_id.append(self.env.ref('health_insurance.res_partner_pami').id)
+            else:
+                query = """
+                SELECT DISTINCT ON(rp.id) rp.id
+                FROM res_partner rp JOIN
+                res_partner_insurance rpi ON rpi.patient_id = rp.id JOIN
+                health_insurance_plan hip ON rpi.insurance_plan_id = hip.id
+                WHERE rpi.insurance_plan_id = %s """
+                param_id.append(self.insurance_plan_id.id)
+            self.env.cr.execute(query,param_id)
+            partner_ids = []
+            for l in self.env.cr.dictfetchall():
+                partner_ids.append(l['id'])
             res['domain']['patient_id'] = [('id','in',partner_ids)]
             for professional in rp.search([('partner_type','=','professional')]):
                 if self.insurance_plan_id.insurance_id.id in professional.attended_insurance_ids.ids:
diff --git a/report/benefits_report_template.xml b/report/benefits_report_template.xml
index defcbf3..1973479 100644
--- a/report/benefits_report_template.xml
+++ b/report/benefits_report_template.xml
@@ -5,7 +5,7 @@
             <t t-call="web.external_layout" t-lang="user.lang">
                 <div class="page">
                     <div style="text-align:left;color:black!important;"><strong><h1>Benefits report</h1></strong></div><br/>
-                    <table class="table table-stripped">
+                    <table class="table table-sm o_main_table">
                         <tr>
                             <td>Insurance</td>
                             <td>Lot number</td>
-- 
GitLab