def send_clinic_reports(period): ''' handle sending of clinic report by given period ''' clinics = Clinic.objects.all() for clinic in clinics: clinic_report_settings = _get_clinic_report_setting( period=period, clinic=clinic) logger.info('**** clinic: %s - Handling %s clinic_report_settings...', clinic, len(clinic_report_settings)) reports_map = {} for report_setting in clinic_report_settings: clinic_user = report_setting.clinic_user email = clinic_user.user.email if not email: logger.warn('No entity_email for [%s]!', clinic_user) continue report = reports_map.get(report_setting.report_name, None) if not report: try: ReportClass = ReportManager.get_report_cls( CLINIC_REPORT_TYPE, name=report_setting.report_name) except InvalidReportException: logger.warn('Unknown report [%s]!', report_setting.report_name) continue report = ReportClass(clinic=clinic, logger=logger) reports_map[report_setting.report_name] = report _send_report(report, email)
def send_referring_reports(period): ''' handle sending of referring report by given report settings objects ''' referring_report_settings = _get_referring_report_setting(period) logger.info('**** Handling %s referring_report_settings...', len(referring_report_settings)) for report_setting in referring_report_settings: referring_entity = report_setting.referring_entity email = referring_entity.entity_email if not email: logger.warn('No entity_email for [%s]!', referring_entity) continue try: ReportClass = ReportManager.get_report_cls( REFERRING_REPORT_TYPE, name=report_setting.report_name) except InvalidReportException: logger.warn('Unknown report [%s]!', report_setting.report_name) continue report = ReportClass(referring_entity=report_setting.referring_entity, logger=logger) _send_report(report, email)