Advertisement
pseudosupport

Untitled

Jan 21st, 2019
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.78 KB | None | 0 0
  1. def imd_knyazh_daily(from_date, to_date, cc_sql):
  2.     q_id_list = [195]
  3.     bnum_patterns = [r'^[78]?(0800308585)$', r'^[78]?(0800305858)$', r'^[78]?(0800305588)$', r'^[78]?(0443326556)$', r'^[78]?(0443326557)$',
  4.                      r'^0080000009600$']
  5.     bnum_patterns_all = [r'^([78]|008)?(0800308585)$', r'^([78]|008)?(0800305858)$', r'^([78]|008)?(0800305588)$',
  6.                          r'^([78]|008)?(0443326556)$', r'^([78]|008)?(0443326557)$', r'^0080000009600$']
  7.     bnums = [r'^0800308585', r'0800305858', r'0800305588', r'0443326556', r'0443326557', 'site_calls']
  8.     bnums_missed = [r'^0080800308585$', r'^0080800305858$', r'^0080800305588$', r'^0080443326556$', r'^0080000009600$', r'^0080443326557$']
  9.     for i, bnum_pattern in enumerate(bnum_patterns):
  10.         if i == 0:
  11.             out_report = standard_calls_report(from_date, to_date, 'OUT', r'.*', r'^(1658.*)$', cc_sql)
  12.         if bnums[i] != 'site_calls':
  13.             qcalls_miss_report = standard_qcalls_report(from_date, to_date, q_id_list, r'.*', bnums_missed[i], cc_sql,
  14.                                                         total_row=True)
  15.         qcalls_report = standard_qcalls_report(from_date, to_date, q_id_list, r'.*', bnum_pattern, cc_sql, total_row=True)
  16.         report_hours_avg = daily_report_custom(hours_avg, {}, from_date, to_date, q_id_list, r'.*', bnum_pattern, cc_sql,
  17.                                           date_format='%Y.%m.%d')
  18.         d_report = daily_report(from_date, to_date, q_id_list, r'.*', bnum_pattern, cc_sql)
  19.         d_report_statuses = daily_report_custom(
  20.             function=count_predifined_values_in_col,
  21.             arguments={
  22.                 'col': 'Результат звонка (ИМД - Княжий Двор)',
  23.                 'values': ['Оформлен заказ', 'Заказ+кросс', 'Кросс', 'Инфо по коллекции', 'Инфо по заказу, доставке',
  24.                            'Рекламация', 'Ошибка соединения'],
  25.                 'append_empty': False
  26.             },
  27.             from_date=from_date, to_date=to_date, q_id_list=q_id_list, anum_pattern=r'.*',
  28.             bnum_pattern=bnum_patterns_all[i], cc_sql=cc_sql, date_format='%Y.%m.%d'
  29.         )
  30.         rb = xlsx.ReportBook()
  31.         rb.add_sheet('Итого')
  32.         rb.add_sheet('Почасовая статистика')
  33.         rb.add_block_to_sheet(d_report['count'], 'Итого', 'Количественные характеристики')
  34.         rb.add_block_to_sheet(d_report['time'], 'Итого', 'Временные характеристики')
  35.         rb.add_block_to_sheet(d_report['sl'], 'Итого', 'Service Level')
  36.         rb.add_block_to_sheet(report_hours_avg['hours_avg_all'], 'Почасовая статистика', 'Среднее количество вызовов по часам (все вызовы)')
  37.         rb.add_block_to_sheet(report_hours_avg['hours_avg_queue'], 'Почасовая статистика', 'Среднее количество вызовов по часам (вызовы, вставшие в очередь)')
  38.         rb.add_block_to_sheet(d_report['billing'], 'Итого', 'Биллинг: входящие')
  39.         rb.add_block_to_sheet(d_report_statuses['statuses'], 'Итого', 'Статусы')
  40.         rb.add_block_to_sheet(d_report_statuses['unknown_statuses'], 'Итого', 'Неизвестные статусы')
  41.         rb.add_calls_sheet(qcalls_report, 'Входящие')
  42.         if i == 0:
  43.             rb.add_calls_sheet(out_report, 'Исходящие')
  44.         if bnums[i] != 'site_calls':
  45.             rb.add_calls_sheet(qcalls_miss_report, 'Прозвон по пропущенным')
  46.         rb.save('knyazh_daily_{}_{}.xlsx'.format(bnums[i], to_date.strftime('%Y%m%d')))
  47.     return bnums
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement