From d35fa2e11d2f386397fc8dc46bc8f1403dc500fb Mon Sep 17 00:00:00 2001 From: "watcha.h" Date: Wed, 18 Mar 2015 23:30:26 +0700 Subject: [PATCH] report claim/no claim --- .../clinic_report_account_hd_case_summary.xml | 2 +- .../layouts/clinic_account_menu.xml | 2 +- netforce_clinic/models/hd_case.py | 10 ++ .../models/report_account_hd_case_summary.py | 55 ++++++- .../report_account_hd_case_summary.xlsx | Bin 5305 -> 4965 bytes .../report_account_hd_case_summary.hbs | 150 ++++++++++++------ 6 files changed, 168 insertions(+), 51 deletions(-) diff --git a/netforce_clinic/actions/clinic_report_account_hd_case_summary.xml b/netforce_clinic/actions/clinic_report_account_hd_case_summary.xml index c1e7d3a..e220d99 100644 --- a/netforce_clinic/actions/clinic_report_account_hd_case_summary.xml +++ b/netforce_clinic/actions/clinic_report_account_hd_case_summary.xml @@ -1,5 +1,5 @@ - HD Case Report Summary + Report Claim/No Claim report clinic.report.account.hd.case.summary report_account_hd_case_summary diff --git a/netforce_clinic/layouts/clinic_account_menu.xml b/netforce_clinic/layouts/clinic_account_menu.xml index 5f789c0..92d7df7 100644 --- a/netforce_clinic/layouts/clinic_account_menu.xml +++ b/netforce_clinic/layouts/clinic_account_menu.xml @@ -7,7 +7,7 @@
- + diff --git a/netforce_clinic/models/hd_case.py b/netforce_clinic/models/hd_case.py index ea0977e..e5508b9 100644 --- a/netforce_clinic/models/hd_case.py +++ b/netforce_clinic/models/hd_case.py @@ -92,6 +92,8 @@ class HDCase(Model): dlz_name=','.join([dlz for dlz in dlz_name]) names=[] fee=0 + lab=0 + misc=0 #sign=1 #if obj.state=='waiting_payment': #sign=-1 @@ -112,9 +114,15 @@ class HDCase(Model): names.append(name) elif categ.code=='FEE': fee+=amt*sign + elif categ.code=="LAB": + lab+=amt + else: + misc+=amt res[obj.id]={ 'epo': ','.join([n for n in names]), 'fee': fee, + 'lab': lab, + 'misc': misc, 'dlz_id': dlz_id, 'dlz_name': dlz_name, 'dlz_use': dlz_use, @@ -127,6 +135,8 @@ class HDCase(Model): "number": fields.Char("Number",required=True,search=True), "epo": fields.Char("EPO",function="_get_expense",function_multi=True), "fee": fields.Float("Fee",function="_get_expense",function_multi=True), + "lab": fields.Float("Fee",function="_get_expense",function_multi=True), + "misc": fields.Float("Fee",function="_get_expense",function_multi=True), "dlz_name": fields.Float("DZ",function="_get_expense",function_multi=True), "dlz_use": fields.Float("DZ Use",function="_get_expense",function_multi=True), "dlz_max": fields.Float("DZ Max",function="_get_expense",function_multi=True), diff --git a/netforce_clinic/models/report_account_hd_case_summary.py b/netforce_clinic/models/report_account_hd_case_summary.py index 46cd7ed..c613528 100644 --- a/netforce_clinic/models/report_account_hd_case_summary.py +++ b/netforce_clinic/models/report_account_hd_case_summary.py @@ -17,7 +17,7 @@ class ReportAccountHDCaseSummary(Model): 'branch_id': fields.Many2One("clinic.branch","Branch"), 'department_id': fields.Many2One("clinic.department","Departments"), 'ptype_id': fields.Many2One("clinic.patient.type","Patient Type"), - 'reimbursable': fields.Selection([['yes','Yes'],['no','No']],'Reimbursable'), + 'reimbursable': fields.Selection([['yes','Yes'],['no','No']],'Claim'), } def default_get(self,field_names=None,context={},**kw): @@ -27,6 +27,10 @@ class ReportAccountHDCaseSummary(Model): weekday, total_day=monthrange(int(year), int(month)) date_from=defaults.get('date_from','%s-%s-01'%(year,month)) date_to=defaults.get('date_to',"%s-%s-%s"%(year,month,total_day)) + #XXX + date_from=defaults.get('date',date) + date_to=defaults.get('date',date) + branch_id=defaults.get('branch_id',None) print('defaults ', defaults) if branch_id: @@ -40,6 +44,7 @@ class ReportAccountHDCaseSummary(Model): 'date_to': date_to, 'branch_id': branch_id, 'department_id': department_id, + 'reimbursable': 'yes', } return res @@ -81,6 +86,7 @@ class ReportAccountHDCaseSummary(Model): dom.append(['state','in',['completed','waiting_payment','paid']]) print('dom ', dom) lines=[] + cycles={} for hdcase in get_model("clinic.hd.case").search_browse(dom): items={} mdc_name=(hdcase.epo or "").split("-") @@ -99,28 +105,43 @@ class ReportAccountHDCaseSummary(Model): for pm in hdcase.payments: pm_number+=pm.number or "" inv_number="" + inv_ref="" for inv in hdcase.invoices: inv_number+=inv.number or "" - + inv_ref+=inv.ref or "" patient=hdcase.patient_id ptype=hdcase.patient_type_id cycle=hdcase.cycle_id cycle_item=hdcase.cycle_item_id + if cycle.id not in cycles.keys(): + cycles[cycle.id]=[] + for line in cycle_item.lines: + nurse=line.nurse_id + cycles[cycle.id].append(nurse.name) vals={ 'hdcase_id': hdcase.id, 'number': hdcase.number or "", 'date': hdcase.date, 'hct': hdcase.hct or 0, + 'epo_name': hdcase.epo or 0, 'ptype': ptype.name or "", 'ptype_color': ptype.color or "default", 'dname': hdcase.doctor_id.name or "", 'cycle': cycle.name or "", + 'cid': cycle.id, 'pname': patient.name, + 'hn': patient.hn_no, + 'idcard': patient.card_no or "", 'cseq': cycle.sequence or 0, 'cycle_item_id': cycle_item.id, - 'pm_number': pm_number, - 'inv_number': inv_number, + 'pm_number': pm_number and pm_number or "-", + 'inv_number': inv_number and inv_number or "-", 'mdc_name': mdc_name, + 'dlz_name': hdcase.dlz_name, + 'dlz_id': hdcase.dlz_id.id, + 'lab': hdcase.lab, + 'misc': hdcase.misc, + 'inv_ref': inv_ref and inv_ref or "-", } for code, item in items.items(): vals.update({ @@ -135,9 +156,13 @@ class ReportAccountHDCaseSummary(Model): total_fee=0 total_srv=0 total_epo=0 + total_lab=0 + total_misc=0 slines=[] no=1 ptypes={} + index=0 + old=[] for line in sorted(lines, key=lambda x: (x['date'],x['cseq'])): ptype=line['ptype'] or "" if ptype not in ptypes.keys(): @@ -149,7 +174,20 @@ class ReportAccountHDCaseSummary(Model): total_fee+=line.get('fee',0) total_srv+=line.get('srv',0) total_epo+=line.get('epo',0) + total_lab+=line.get('lab',0) + total_misc+=line.get('misc',0) line['no']=no + + cid=line['cid'] + if not cid in old: + old.append(cid) + index=0 + else: + index+=1 + cres=cycles[cid] + line['nurse']='' + if index < len(cres): + line['nurse']=cres[index] slines.append(line) no+=1 types=[] @@ -174,10 +212,19 @@ class ReportAccountHDCaseSummary(Model): 'total_fee': total_fee, 'total_srv': total_srv, 'total_epo': total_epo, + 'total_lab': total_lab, + 'total_misc': total_misc, 'total_qty': total_qty, 'types': types, 'reimbursable': reimbursable, } + if not reimbursable: + data['title']='' + elif reimbursable=='yes': + data['title']='Report - Claim' + else: + data['title']='Report - No Claim' + print('>>', data['reimbursable']) return data def onchange_date(self,context={}): diff --git a/netforce_clinic/reports/report_account_hd_case_summary.xlsx b/netforce_clinic/reports/report_account_hd_case_summary.xlsx index 5e34291a62e626bf70a39a0ca02ebc35d383108c..4080997bd9b109de2f5ac5615faceb5865dfc131 100644 GIT binary patch delta 3957 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 F{{VnF1`hxL delta 4360 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

- HD Case Summary + {{title}}

{{company_name}}
@@ -12,7 +12,11 @@ - - - - - - - - - - - - {{#ifeq reimbursable "no"}} - - + + + + + + + + + + + + + + + + + {{else}} + + + + + + + + + + + + + + {{/ifeq}} - - {{#each lines}} - - - - - - - - - - - {{#ifeq ../reimbursable "no"}} + + + + + + + + + + + + + + + {{else}} + + + + + + + + + + + + + + {{/ifeq}} - - {{/each}} - - - - - - - - - - - + {{#ifeq reimbursable "no"}} + + + + + + + + + + + + + + + + + {{else}} + + + + + + + + + + + + + + + {{/ifeq}}
+ {{#ifeq reimbursable "no"}} + + {{else}} + + {{/ifeq}} {{#each types}} {{name}}: {{qty}} {{/each}} @@ -20,64 +24,120 @@
#วันที่รอบHD Caseชื่อ-นามสกุลสิทธิ์ค่าฟอกค่ายาค่าฉีดยาHCTยาRc.Inv.DateCycle#HD Case#NameHNID Cardสิทธิ์Receipt#Invoice#EPOค่าฟอกค่ายาLabMisc.DlzRef.Inv#DateCycle#HD Case#NameHNID Cardสิทธิ์HCT%EPOค่าฟอกค่ายาค่าบริการฉีดยาแพทย์พยาบาลแพทย์พยาบาล
{{no}}{{date}}{{cycle}} - {{view "link" string=number action="clinic_hd_case" action_options="mode=form" active_id=hdcase_id}} - {{pname}}{{ptype}}{{currency fee zero=""}}{{currency epo zero=""}}{{currency srv zero=""}}{{hct}}{{mdc_name}}{{date}}{{cycle}} + {{view "link" string=number action="clinic_hd_case" action_options="mode=form" active_id=hdcase_id}} + {{pname}}{{hn}}{{idcard}}{{ptype}} {{pm_number}} {{inv_number}}{{epo_name}}{{currency fee zero=""}}{{currency epo zero=""}}{{currency lab zero=""}}{{currency misc zero=""}}{{dlz_name}}{{inv_ref}}{{date}}{{cycle}} + {{view "link" string=number action="clinic_hd_case" action_options="mode=form" active_id=hdcase_id}} + {{pname}}{{hn}}{{idcard}}{{ptype}}{{hct}}{{epo_name}}{{currency fee zero=""}}{{currency epo zero=""}}{{currency srv zero=""}}{{dname}} + {{view "link" string="View" action="clinic_cycle_item" action_options="mode=form" active_id=cycle_item_id}} + {{dname}} - {{view "link" string="View" action="clinic_cycle_item" action_options="mode=form" active_id=cycle_item_id}} -
{{currency total_fee zero=""}}{{currency total_epo zero=""}}{{currency total_srv zero=""}}{{currency total_fee zero=""}}{{currency total_epo zero=""}}{{currency total_lab zero=""}}{{currency total_misc zero=""}}{{currency total_fee zero=""}}{{currency total_epo zero=""}}{{currency total_srv zero=""}}