From f451a9280702280ef930fb9308a4637fe290b827 Mon Sep 17 00:00:00 2001 From: "chayut.s" Date: Wed, 8 Oct 2014 11:36:22 +0700 Subject: [PATCH] test report --- .../actions/clinic_print_visit.xml.old | 6 ++ netforce_clinic/actions/clinic_round.xml | 6 ++ .../actions/report_clinic_round.xml | 6 ++ netforce_clinic/actions/report_visit_form.xml | 5 ++ .../layouts/clinic_hd_case_form.xml | 81 +++++++++--------- netforce_clinic/layouts/clinic_menu.xml | 2 +- netforce_clinic/layouts/clinic_visit_form.xml | 2 +- netforce_clinic/models/__init__.py | 1 + netforce_clinic/models/clinic_round.py | 27 ++++++ netforce_clinic/models/hd_case.py | 15 +++- netforce_clinic/models/visit.py | 11 +++ netforce_clinic/reports/round.odt | Bin 0 -> 11232 bytes netforce_clinic/reports/visit_form.odt | Bin 0 -> 11284 bytes netforce_clinic/templates/round.hbs | 1 + 14 files changed, 117 insertions(+), 46 deletions(-) create mode 100644 netforce_clinic/actions/clinic_print_visit.xml.old create mode 100644 netforce_clinic/actions/clinic_round.xml create mode 100644 netforce_clinic/actions/report_clinic_round.xml create mode 100644 netforce_clinic/actions/report_visit_form.xml create mode 100644 netforce_clinic/models/clinic_round.py create mode 100644 netforce_clinic/reports/round.odt create mode 100644 netforce_clinic/reports/visit_form.odt create mode 100644 netforce_clinic/templates/round.hbs diff --git a/netforce_clinic/actions/clinic_print_visit.xml.old b/netforce_clinic/actions/clinic_print_visit.xml.old new file mode 100644 index 0000000..8c205b0 --- /dev/null +++ b/netforce_clinic/actions/clinic_print_visit.xml.old @@ -0,0 +1,6 @@ + + report_odt + clinic.visit + get_visit_demo + visit_demo + diff --git a/netforce_clinic/actions/clinic_round.xml b/netforce_clinic/actions/clinic_round.xml new file mode 100644 index 0000000..d0f1103 --- /dev/null +++ b/netforce_clinic/actions/clinic_round.xml @@ -0,0 +1,6 @@ + + Nationalities + multi_view + clinic.round + clinic_menu + diff --git a/netforce_clinic/actions/report_clinic_round.xml b/netforce_clinic/actions/report_clinic_round.xml new file mode 100644 index 0000000..23d58f7 --- /dev/null +++ b/netforce_clinic/actions/report_clinic_round.xml @@ -0,0 +1,6 @@ + + report_odt + clinic.round + get_data + round + diff --git a/netforce_clinic/actions/report_visit_form.xml b/netforce_clinic/actions/report_visit_form.xml new file mode 100644 index 0000000..b4d0107 --- /dev/null +++ b/netforce_clinic/actions/report_visit_form.xml @@ -0,0 +1,5 @@ + + report_odt2 + clinic.visit + visit_form + diff --git a/netforce_clinic/layouts/clinic_hd_case_form.xml b/netforce_clinic/layouts/clinic_hd_case_form.xml index c8cc40b..623dedf 100644 --- a/netforce_clinic/layouts/clinic_hd_case_form.xml +++ b/netforce_clinic/layouts/clinic_hd_case_form.xml @@ -5,43 +5,31 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -53,13 +41,22 @@ - - - - - + + + + + + + + + + + + + + diff --git a/netforce_clinic/layouts/clinic_menu.xml b/netforce_clinic/layouts/clinic_menu.xml index ea97292..bcbd254 100644 --- a/netforce_clinic/layouts/clinic_menu.xml +++ b/netforce_clinic/layouts/clinic_menu.xml @@ -9,7 +9,7 @@ - + diff --git a/netforce_clinic/layouts/clinic_visit_form.xml b/netforce_clinic/layouts/clinic_visit_form.xml index dd03a20..e11120f 100644 --- a/netforce_clinic/layouts/clinic_visit_form.xml +++ b/netforce_clinic/layouts/clinic_visit_form.xml @@ -1,7 +1,7 @@
- diff --git a/netforce_clinic/models/__init__.py b/netforce_clinic/models/__init__.py index 07648b8..09f9fb8 100644 --- a/netforce_clinic/models/__init__.py +++ b/netforce_clinic/models/__init__.py @@ -18,3 +18,4 @@ from . import graduation from . import nation from . import race from . import cause_chronic +from . import clinic_round diff --git a/netforce_clinic/models/clinic_round.py b/netforce_clinic/models/clinic_round.py new file mode 100644 index 0000000..40854ec --- /dev/null +++ b/netforce_clinic/models/clinic_round.py @@ -0,0 +1,27 @@ +from netforce.model import Model, fields + +class ClinicRound(Model): + _name="clinic.round" + _string="Round" + + _fields={ + "name": fields.Char("Name",required=True,search=True), + } + + def get_data(self,context={}): + lines=[] + for i in range(10): + line={ + 'no': i, + 'doctor': 'Doctor %s'%i, + #...... + } + lines.append(line) + + data={ + 'lines': lines, + } + print('data ', data) + return data + +ClinicRound.register() diff --git a/netforce_clinic/models/hd_case.py b/netforce_clinic/models/hd_case.py index 9485b0b..29201b4 100644 --- a/netforce_clinic/models/hd_case.py +++ b/netforce_clinic/models/hd_case.py @@ -28,7 +28,7 @@ class HDcase(Model): "doctor_id": fields.Many2One("clinic.doctor","Doctor", required=True,search=True), "nurse_id": fields.Many2One("clinic.nurse","Nurse", required=True,search=True), "date_start": fields.DateTime("Time start",required=True,search=True), - "date_stop": fields.DateTime("Time stop",required=True,search=True), + "date_stop": fields.DateTime("Time stop",required=True,search=True), "department_id": fields.Many2One("clinic.department", "Department",search=True), "wh_start": fields.Float("Wt.Kg start"), "wh_stop": fields.Float("Wt.Kg stop"), @@ -36,7 +36,11 @@ class HDcase(Model): "per_bp_start": fields.Integer("/Per start"), "bp_stop": fields.Integer("BP mmHG stop"), "per_bp_stop": fields.Integer("/Per stop"), - "hct": fields.Integer("HCT %"), + "epo_tn" : fields.Char("EpoTn (Drug name)"), + "epo_unit" : fields.Integer("EpoUnit (Unit of Used drug)"), + "hct": fields.Integer("HCT %", required=True), + "check_goverment_pay" : fields.Boolean("The Government Pay"), + "check_personal_pay" : fields.Boolean("Pay yourself"), "state": fields.Selection([("draft","Draft"),("confirmed","Confirmed"),("approved","Approved"),("cancelled","Cancelled"),("paid","Paid")],"Status",required=True), "dialyzers": fields.One2Many("clinic.hd.case.dialyzer","hd_case_id","Dializers"), "lines": fields.One2Many("clinic.hd.case.line","hd_case_id","Lines"), @@ -150,6 +154,13 @@ class HDcase(Model): data['total']=total return data + def onchange_htc(self,context={}): + data=context['htc'] + total=0.0 + if (htc > 39): + data['htc']=total + return data + def cancelled(self,ids,context={}): obj=self.browse(ids)[0] obj.write({"state":"cancelled"}) diff --git a/netforce_clinic/models/visit.py b/netforce_clinic/models/visit.py index f3a54c6..a38c367 100644 --- a/netforce_clinic/models/visit.py +++ b/netforce_clinic/models/visit.py @@ -169,6 +169,17 @@ class Visit(Model): }, 'flash': 'Visit %s is copy to %s'%(obj.number,new_obj.number), } + + + def get_visit_demo(self,context={}): + if not context.get('number'): + return {} + visit_id=int(context['number']) + visit=self.browse(visit_id) + data={ + 'number' : visit.number + } + return data Visit.register() diff --git a/netforce_clinic/reports/round.odt b/netforce_clinic/reports/round.odt new file mode 100644 index 0000000000000000000000000000000000000000..1aee72550cb4d06f82e421453d4802ff1940d6f0 GIT binary patch literal 11232 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 HBS