def get_total_adm_for(hc_code, cap, age, period=None, year=None, month=None): from database import Period, Report if not period: period = Period.from_date(date(year, month, 1)) # return real data from report if it exist in DB. if Report.filter(period=period, hc_code=hc_code, status=Report.STATUS_VALIDATED).count(): report = Report.filter(period=period, hc_code=hc_code).get() return getattr(report.get_pec_report(cap), '%s_admitted' % age) else: # if not a report not in DB if not hc_code in gao_data.PEC_ADM: return None # retrieve value from flat data try: if period.year in (2009, 2010, 2011): return gao_data.PEC_ADM[hc_code][period.year][period.month][cap][age] else: return get_avg_adm_for(hc_code, period.month, cap, age) except KeyError: return None # TODO
def confirm(self): period_date = self.date_field.date().toPyDate() period = Period.from_date(period_date) # a report exist for that period. if Report.filter(period=period).count() == 1: report = Report.filter(period=period).get() else: report = Report.create_safe(period=period, user=self.user) self.parent.view_widget.report = report self.close()