Advertisement
pseudosupport

Untitled

Feb 4th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.05 KB | None | 0 0
  1. def planetacash_hourly(from_date, to_date, cc_sql):
  2.     form_name = '61.Planetacash'
  3.     q_id_lst = [cc_sql.get_form_id(form_name)]
  4.     status_col = 'Результат звонка(61.Planetacash)'
  5.     bnum_pattern = r'^[78]?(8005004000)$'
  6.     bnum_pattern_all = r'^([78]|008)?(8005004000)$'
  7.     bnum_pattern_missed = r'^008(8005004000)$'
  8.     bnum_pattern_out = r'^610[0-9]*'
  9.     statuses = {
  10.         'col': status_col,
  11.         'values': cc_sql.get_answers_variants_for_question(form_name, status_col),
  12.         'append_empty': False, 'append_unknown': True, 'append_oper_empty': True
  13.     }
  14.     d_report = daily_report(from_date, to_date, q_id_lst, r'.*', bnum_pattern, cc_sql)
  15.     d_report_missed = daily_report(from_date, to_date, q_id_lst, r'.*', bnum_pattern_missed, cc_sql)
  16.     d_report_all = daily_report(from_date, to_date, q_id_lst, r'.*', bnum_pattern_all, cc_sql)
  17.     calls_report = standard_qcalls_report(from_date, to_date, q_id_lst, r'.*', bnum_pattern, cc_sql, total_row=True)
  18.  
  19.     calls_report_missed = standard_qcalls_report(from_date, to_date, q_id_lst, r'.*', bnum_pattern_missed, cc_sql,
  20.                                                  total_row=True)
  21.     calls_report_out = standard_qcalls_report(from_date, to_date, q_id_lst, r'.*', bnum_pattern_out, cc_sql,
  22.                                               total_row=True, calls_type='OUT')
  23.     stat_report = daily_report_custom(count_predifined_values_in_col, statuses, from_date, to_date, q_id_lst, '.*',
  24.                                      bnum_pattern_all, cc_sql=cc_sql, date_format='%Y.%m.%d', type='IN')
  25.     out_recall_report = cc_sql.get_outbound_calls_tries(from_date, to_date)
  26.     report_hours_avg = daily_report_custom(hours_avg, {}, from_date, to_date, q_id_lst, r'.*', bnum_pattern, cc_sql,
  27.                                            date_format='%Y.%m.%d')
  28.     report_missed_stat = daily_report_custom(missed_calls_stat, {'recall_report_dict': out_recall_report}, from_date,
  29.                                              to_date, q_id_lst, r'^[0-9]{10}$', bnum_pattern, cc_sql,
  30.                                              date_format='%Y.%m.%d')
  31.     d_report_recalc = total_missed_cover(d_report, report_missed_stat)
  32.  
  33.     rb = xlsx.ReportBook()
  34.     rb.add_sheet('Итого')
  35.     rb.add_block_to_sheet(d_report['count_opername'], 'Итого', 'Количественные характеристики')
  36.     rb.add_block_to_sheet(d_report_recalc['count'], 'Итого', 'Количественные характеристики с учетом обратных звонков')
  37.     rb.add_block_to_sheet(report_missed_stat['missed_stat'], 'Итого', 'Данные по пропущенным вызовам')
  38.     rb.add_block_to_sheet(d_report['time_minutes'], 'Итого', 'Временные характеристики')
  39.     rb.add_block_to_sheet(d_report['sl'], 'Итого', 'Service Level')
  40.     rb.add_block_to_sheet(report_hours_avg['hours_avg_all'], 'Итого', 'Среднее количество вызовов по часам')
  41.     rb.add_block_to_sheet(report_hours_avg['hours_total_all'], 'Итого', 'Количество вызовов по часам')
  42.     rb.add_joined_daily_block(
  43.         [d_report['billing'], d_report_missed['billing'],
  44.         d_report_all['billing']],
  45.         'Итого', 'Биллинг',
  46.         first_header=['Дата', 'Входящие вызовы, мин', 'Прозвон по пропущенным, мин', 'Обработка заказов с сайта, мин',
  47.                       'Заказ обратного звонка, мин', 'Общий, мин']
  48.     )
  49.     rb.add_block_to_sheet(d_report['operators'], 'Итого', 'Операторы')
  50.     rb.add_block_to_sheet(stat_report['statuses'], 'Итого', 'Статусы')
  51.     rb.add_calls_sheet(calls_report, 'Входящие звонки')
  52.     rb.add_calls_sheet(calls_report_missed, 'Прозвон по пропущенным')
  53.     rb.add_calls_sheet(calls_report_out, 'Исходящие')
  54.  
  55.     rb.save('planetacash_hourly_{}.xlsx'.format(to_date.strftime('%Y%m%d')))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement