changeset 1974:bb56988563bd

task #13334: Add related invoice, separate view of created invoices
author Chris Zimmerman <siv@riseup.net>
date Sun, 07 Jun 2015 20:55:25 -0700
parents 87be956933f9
children 5975bdb2ad4b
files tryton/health_services/health_services_view.xml tryton/health_services/invoice.py
diffstat 2 files changed, 35 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/tryton/health_services/health_services_view.xml
+++ b/tryton/health_services/health_services_view.xml
@@ -72,6 +72,32 @@
             action="gnuhealth_action_health_service"
             id="gnuhealth_health_service_menu" icon="gnuhealth-list"/>
 
+<!-- Simple view of created health service invoices -->
+
+        <record model="ir.action.act_window" id="gnuhealth_action_health_service_invoices">
+            <field name="name">Created invoices</field>
+            <field name="res_model">account.invoice</field>
+            <field name="domain">[('health_service', '!=', None)]</field>
+        </record>
+
+        <menuitem parent="gnuhealth_services_menu"
+            action="gnuhealth_action_health_service_invoices"
+            id="gnuhealth_health_service_invoices_menu" icon="gnuhealth-list"/>
+
+<!-- Shortcut to created invoice from health services -->
+
+        <record model="ir.action.act_window" id="act_invoice_related_form1">
+            <field name="name">Related Invoice</field>
+            <field name="res_model">account.invoice</field>
+            <field name="domain">[('health_service', '=', Eval('active_id'))]</field>
+        </record>
+        <record model="ir.action.keyword"
+                id="act_open_invoice_related_keyword1">
+            <field name="keyword">form_relate</field>
+            <field name="model">gnuhealth.health_service,-1</field>
+            <field name="action" ref="act_invoice_related_form1"/>
+        </record>
+
 
     </data>
 </tryton>
--- a/tryton/health_services/invoice.py
+++ b/tryton/health_services/invoice.py
@@ -20,7 +20,7 @@
     health_service = fields.Function(
             fields.Many2One('gnuhealth.health_service', 'Health Service',
                 help="The service entry"),
-                'get_health_service')
+                'get_health_service', searcher='search_health_service')
 
     def get_patient(self, name):
         try:
@@ -35,6 +35,14 @@
             return None
 
     @classmethod
+    def search_health_service(cls, name, clause):
+        return [('lines.origin.name.id',
+                    clause[1],
+                    clause[2],
+                    'gnuhealth.health_service.line')]
+
+
+    @classmethod
     def __setup__(cls):
         super(Invoice, cls).__setup__()