From 1da7c956f057a7838f0c6561e8050b18f159c68b Mon Sep 17 00:00:00 2001 From: SPP Date: Mon, 15 Jan 2018 16:59:59 +0700 Subject: [PATCH] [improve] report hdcase expense summary --- .../models/report_hdcase_expense_summary.py | 5 +++-- .../report_hdcase_expense_summary_pdf.odt | Bin 14549 -> 14355 bytes 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/netforce_clinic/models/report_hdcase_expense_summary.py b/netforce_clinic/models/report_hdcase_expense_summary.py index d1a3325..3ca637a 100644 --- a/netforce_clinic/models/report_hdcase_expense_summary.py +++ b/netforce_clinic/models/report_hdcase_expense_summary.py @@ -316,7 +316,8 @@ class ReportHDCaseExpenseSummary(Model): no+=1 types=[] total_qty=0 - for name, vals in ptypes.items(): + for name in sorted(ptypes.keys()): + vals=ptypes[name] qty=vals['qty'] or 0 total_qty+=qty color=vals['color'] or "default" @@ -332,7 +333,7 @@ class ReportHDCaseExpenseSummary(Model): 'date': date, 'date_from': date_from, 'date_to': date_to, - 'lines': slines, + 'lines': sorted(slines, key=lambda a: (a.get('ptype',''), a.get('epo_name',''))), 'total_fee': total_fee and '{:,}'.format(total_fee) or "", 'total_srv': total_srv and '{:,}'.format(total_srv) or "", 'total_epo': total_epo and '{:,}'.format(total_epo) or "", diff --git a/netforce_clinic/reports/report_hdcase_expense_summary_pdf.odt b/netforce_clinic/reports/report_hdcase_expense_summary_pdf.odt index e0df4afd1180049525d595f0fe2d7fcf3d88c5e6..c81571eb303b132b75a7d60f905bcab3131934fd 100644 GIT binary patch delta 12434 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

(!J10 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