queri 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +41 -0
  3. data/lib/queri/composite_by_hour_report_helpers.rb +22 -0
  4. data/lib/queri/stats/agents_and_sessions/agent_billable_time_by_hour.rb +22 -0
  5. data/lib/queri/stats/agents_and_sessions/agent_occupancy_report.rb +29 -0
  6. data/lib/queri/stats/agents_and_sessions/agent_payable_time_by_hour.rb +22 -0
  7. data/lib/queri/stats/agents_and_sessions/agent_performance_by_acd_group.rb +35 -0
  8. data/lib/queri/stats/agents_and_sessions/agent_session_detail.rb +25 -0
  9. data/lib/queri/stats/agents_and_sessions/agent_session_time_by_hour.rb +22 -0
  10. data/lib/queri/stats/agents_and_sessions/answered_calls_by_custom_group.rb +26 -0
  11. data/lib/queri/stats/agents_and_sessions/answered_calls_by_location.rb +26 -0
  12. data/lib/queri/stats/agents_and_sessions/answered_calls_by_service_group.rb +25 -0
  13. data/lib/queri/stats/agents_and_sessions/answered_calls_for_selected_queues.rb +27 -0
  14. data/lib/queri/stats/agents_and_sessions/session_and_pause_durations.rb +28 -0
  15. data/lib/queri/stats/call_distribution_by_day_of_week/answered_call_distribution_per_day_of_week.rb +28 -0
  16. data/lib/queri/stats/call_distribution_by_day_of_week/answered_call_wait_time_per_day_of_week.rb +28 -0
  17. data/lib/queri/stats/call_distribution_by_day_of_week/inclusive_service_level_agreement_per_day_of_week.rb +36 -0
  18. data/lib/queri/stats/call_distribution_by_day_of_week/queue_length_per_day_of_week.rb +29 -0
  19. data/lib/queri/stats/call_distribution_by_day_of_week/sales_per_day_of_week.rb +30 -0
  20. data/lib/queri/stats/call_distribution_by_day_of_week/schedule_adherence_per_day_of_week.rb +24 -0
  21. data/lib/queri/stats/call_distribution_by_day_of_week/traffic_analysis_by_period_per_day_of_week.rb +39 -0
  22. data/lib/queri/stats/call_distribution_by_day_of_week/unanswered_call_wait_time_per_day_of_week.rb +28 -0
  23. data/lib/queri/stats/call_distribution_by_day_of_week.rb +11 -0
  24. data/lib/queri/version.rb +1 -1
  25. data/spec/stats/agents_and_sessions/agent_billable_time_by_hour_spec.rb +20 -0
  26. data/spec/stats/agents_and_sessions/agent_occupancy_report_spec.rb +20 -0
  27. data/spec/stats/agents_and_sessions/agent_payable_time_by_hour_spec.rb +20 -0
  28. data/spec/stats/agents_and_sessions/agent_performance_by_acd_group_spec.rb +20 -0
  29. data/spec/stats/agents_and_sessions/agent_session_detail_spec.rb +20 -0
  30. data/spec/stats/agents_and_sessions/agent_session_time_by_hour_spec.rb +20 -0
  31. data/spec/stats/agents_and_sessions/answered_calls_by_custom_group_spec.rb +20 -0
  32. data/spec/stats/agents_and_sessions/answered_calls_by_location_spec.rb +20 -0
  33. data/spec/stats/agents_and_sessions/answered_calls_by_service_group_spec.rb +20 -0
  34. data/spec/stats/agents_and_sessions/answered_calls_for_selected_queues_spec.rb +20 -0
  35. data/spec/stats/agents_and_sessions/session_and_pause_durations_spec.rb +21 -0
  36. data/spec/stats/call_distribution_by_day_of_week/answered_call_distribution_per_day_of_week_spec.rb +20 -0
  37. data/spec/stats/call_distribution_by_day_of_week/answered_call_wait_time_per_day_of_week_spec.rb +20 -0
  38. data/spec/stats/call_distribution_by_day_of_week/call_distribution_by_day_of_week_spec.rb +7 -0
  39. data/spec/stats/call_distribution_by_day_of_week/inclusive_service_level_agreement_per_day_of_week_spec.rb +20 -0
  40. data/spec/stats/call_distribution_by_day_of_week/queue_length_per_day_of_week_spec.rb +20 -0
  41. data/spec/stats/call_distribution_by_day_of_week/sales_per_day_of_week_spec.rb +20 -0
  42. data/spec/stats/call_distribution_by_day_of_week/schedule_adherence_per_day_of_week_spec.rb +20 -0
  43. data/spec/stats/call_distribution_by_day_of_week/traffic_analysis_by_period_per_day_of_week_spec.rb +20 -0
  44. data/spec/stats/call_distribution_by_day_of_week/unanswered_call_wait_time_per_day_of_week_spec.rb +20 -0
  45. metadata +63 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9ca946daa493674adb31abe0ab81ad8f7d74aad8
4
- data.tar.gz: e0edd54dc8da3c69e05d61bf95850d98399aca8d
3
+ metadata.gz: 8b2bfc52dce63366d10f7b59134d9f67b9762bcf
4
+ data.tar.gz: 47f40f2442ebdaaafca33e6f034d9b694b04a2eb
5
5
  SHA512:
6
- metadata.gz: 6905b3bf2a0044a1f9bcf098fc28407ff3c5dd605cd9323b56240e4a716222f42c3e3b212a4da080b85e439d081fd827e61ee0952b85e50fabecf363be5499a5
7
- data.tar.gz: 7c1a38f2123bd4d9af037eb0d34baf65b2800659a58bcaf4580bbbb87ea58a0381f6c9134d73aaf1cf60e5d719e19cb70dd9461e86a19e2c28b652d89c0b73a5
6
+ metadata.gz: f2468e3a03a56bc277780d0db1cc9168a0e37870ac800e3fc2ba3a4d7485fae1f6ee72ee8e86665ee9368dfa7bf87bcad1bbb0e42c231a7ea88d39a9d6fa8f82
7
+ data.tar.gz: 9b125de776536028f94c6b1b5217d3f5c7aa3dd0c16d734083a060bcca5fc991384dff909ffb625418b4b9f182af60fecd2c153a3091286a5a158b94d81d1da4
data/README.md CHANGED
@@ -49,6 +49,17 @@ Currently returns analyses from two methods: QM.stats and QM.realtime.
49
49
  * Stats
50
50
  * AgentsAndSessions
51
51
  * AgentAvailability
52
+ * AgentBillableTimeByHour
53
+ * AgentOccupancyReport
54
+ * AgentPayableTimeByHour
55
+ * AgentPerformanceByAcdGroup
56
+ * AgentSessionDetail
57
+ * AgentSessionTimeByHour
58
+ * AnsweredCallsByCustomGroup
59
+ * AnsweredCallsByLocation
60
+ * AnsweredCallsByServiceGroup
61
+ * AnsweredCallsForSelectedQueues
62
+ * SessionAndPauseDurations
52
63
  * AnsweredCalls
53
64
  * AgentsOnQueue
54
65
  * AllCalls
@@ -72,6 +83,15 @@ Currently returns analyses from two methods: QM.stats and QM.realtime.
72
83
  * ScheduleAdherencePerDay
73
84
  * TrafficAnalysisByPeriodPerDay
74
85
  * UnansweredCallWaitTimePerDay
86
+ * CallDistributionByDayOfWeek
87
+ * AnsweredCallDistributionPerDayOfWeek
88
+ * AnsweredCallWaitTimePerDayOfWeek
89
+ * InclusiveServiceLevelAgreementPerDayOfWeek
90
+ * QueueLengthPerDayOfWeek
91
+ * SalesPerDayOfWeek
92
+ * ScheduleAdherencePerDayOfWeek
93
+ * TrafficAnalysisByPeriodPerDayOfWeek
94
+ * UnansweredCallWaitTimePerDayOfWeek
75
95
  * CallDistributionByHour
76
96
  * AnsweredCallDistributionPerHour
77
97
  * AnsweredCallWaitTimePerHour
@@ -134,6 +154,16 @@ Composite aggregate reports return an Array of Hashes, each Hash corresponding t
134
154
  * Stats
135
155
  * AgentsAndSessions
136
156
  * AgentAvailability
157
+ * AgentBillableTimeByHour
158
+ * AgentOccupancyReport
159
+ * AgentSessionTimeByHour
160
+ * AgentPayableTimeByHour
161
+ * AgentPerformanceByAcdGroup
162
+ * AnsweredCallsByCustomGroup
163
+ * AnsweredCallsByLocation
164
+ * AnsweredCallsByServiceGroup
165
+ * AnsweredCallsForSelectedQueues
166
+ * SessionAndPauseDurations
137
167
  * AnsweredCalls
138
168
  * AgentsOnQueue
139
169
  * MusicOnHoldByAgent
@@ -154,6 +184,8 @@ Composite aggregate reports return an Array of Hashes, each Hash corresponding t
154
184
  * DetailOfAgentPauses
155
185
  * Aggregate reports
156
186
  * Stats
187
+ * AgentsAndSessions
188
+ * AgentSessionDetail
157
189
  * AnsweredCalls
158
190
  * AllCalls
159
191
  * CallsFullyWithinTheGivenTimeInterval
@@ -183,6 +215,15 @@ Composite aggregate reports return an Array of Hashes, each Hash corresponding t
183
215
  * ScheduleAdherencePerDay
184
216
  * TrafficAnalysisByPeriodPerDay
185
217
  * UnansweredCallWaitTimePerDay
218
+ * CallDistributionByDayOfWeek
219
+ * AnsweredCallDistributionPerDayOfWeek
220
+ * AnsweredCallWaitTimePerDayOfWeek
221
+ * InclusiveServiceLevelAgreementPerDayOfWeek
222
+ * QueueLengthPerDayOfWeek
223
+ * SalesPerDayOfWeek
224
+ * ScheduleAdherencePerDayOfWeek
225
+ * TrafficAnalysisByPeriodPerDayOfWeek
226
+ * UnansweredCallWaitTimePerDayOfWeek
186
227
  * CallDistributionByHour
187
228
  * AnsweredCallDistributionPerHour
188
229
  * AnsweredCallWaitTimePerHour
@@ -0,0 +1,22 @@
1
+ module CompositeByHourReportHelpers
2
+ private
3
+
4
+ def parse_response
5
+ r = Queri.send_request(@queues, self, @period_start, @period_end)
6
+ k_t = self.class.key_translations
7
+ column_headers = r.shift
8
+ new_headers = []
9
+ column_headers.each_with_index do |h,i|
10
+ if i == 0
11
+ new_headers << k_t.to_a[i][0]
12
+ elsif i == column_headers.length-1
13
+ new_headers << k_t.to_a[-1][0]
14
+ else
15
+ new_headers << (h + ":00 hour time").to_sym
16
+ end
17
+ end
18
+ r.map do |agent|
19
+ Hash[new_headers.zip(agent)]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ module Queri
2
+ class Stats
3
+ class AgentsAndSessions
4
+ class AgentBillableTimeByHour < Queri::Stats
5
+ include CompositeByHourReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ AgentsAndSessions.xml_code + ".AgentBillableTimeByHour"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :agent, "Agent",
15
+ :total_billable_session_time, "Total"
16
+ ]
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,29 @@
1
+ module Queri
2
+ class Stats
3
+ class AgentsAndSessions
4
+ class AgentOccupancyReport < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ AgentsAndSessions.xml_code + ".AgentOccupancy"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :level, "Level",
15
+ :agent, "Agent",
16
+ :total_session_duration, "Sessions",
17
+ :time_on_billable_pause, "Pau Bill",
18
+ :time_on_nonbillable_pause, "Pau N/Bill",
19
+ :total_pause_duration, "Pauses",
20
+ :billable_non_billable_overlap_time, "Overlapping",
21
+ :total_talk_time, "Total call time",
22
+ :talk_time_to_session_time_plus_pause_time, "Occupancy %"
23
+ ]
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,22 @@
1
+ module Queri
2
+ class Stats
3
+ class AgentsAndSessions
4
+ class AgentPayableTimeByHour < Queri::Stats
5
+ include CompositeByHourReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ AgentsAndSessions.xml_code + ".AgentPayableTimeByHour"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :agent, "Agent",
15
+ :total_payable_session_time, "Total"
16
+ ]
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,35 @@
1
+ module Queri
2
+ class Stats
3
+ class AgentsAndSessions
4
+ class AgentPerformanceByAcdGroup < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ AgentsAndSessions.xml_code + ".PerformanceAcdGroups"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :level, "Level",
15
+ :agent, "Agent",
16
+ :session_login_time, "Login",
17
+ :session_duration, "Dur.",
18
+ :number_of_inbound_calls, "Calls in",
19
+ :number_of_outbound_calls, "Calls out",
20
+ :total_calls_processed, "Tot calls",
21
+ :average_talk_time_for_inbound_calls, "Avg in",
22
+ :average_talk_time_for_outbound_calls, "Avg out",
23
+ :average_talk_time, "Avg dur",
24
+ :percentage_of_idle_time, "Avail.",
25
+ :percentage_of_time_on_inbound_calls, "On call in",
26
+ :percentage_of_time_on_outbound_calls, "On call out",
27
+ :percentage_of_time_on_a_billable_pause, "Pau Bill",
28
+ :percentage_of_time_on_a_nonbillable_pause, "Pau N/Bill"
29
+ ]
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,25 @@
1
+ module Queri
2
+ class Stats
3
+ class AgentsAndSessions
4
+ class AgentSessionDetail < Queri::Stats
5
+ include AggregateReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ AgentsAndSessions.xml_code + ".ReportAgents"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :number_of_available_agents, "N. of agents available:",
15
+ :average_agent_available_time, "Average agent time:",
16
+ :minimum_agent_available_time, "Min agent time:",
17
+ :maximum_agent_available_time, "Max agent time:",
18
+ :total_agent_available_time, "Total agent time:"
19
+ ]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,22 @@
1
+ module Queri
2
+ class Stats
3
+ class AgentsAndSessions
4
+ class AgentSessionTimeByHour < Queri::Stats
5
+ include CompositeByHourReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ AgentsAndSessions.xml_code + ".AgentBillableTimeByHour"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :agent, "Agent",
15
+ :total_session_duration, "Total"
16
+ ]
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,26 @@
1
+ module Queri
2
+ class Stats
3
+ class AgentsAndSessions
4
+ class AnsweredCallsByCustomGroup < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ AgentsAndSessions.xml_code + ".AnsCallsCG"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :agent_group, "Agent groups",
15
+ :empty, "&nbsp;",
16
+ :number_of_answered_calls_by_agent_group, "N. calls",
17
+ :total_talk_time_for_agent_group, "Total call time",
18
+ :average_talk_time_for_agent_group, "Avg call time",
19
+ :percentage_of_taken_calls_to_queue_calls_by_agent_group, "% of queue"
20
+ ]
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ module Queri
2
+ class Stats
3
+ class AgentsAndSessions
4
+ class AnsweredCallsByLocation < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ AgentsAndSessions.xml_code + ".AnsCallsLocation"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :location, "Location",
15
+ :number_of_answered_calls_for_location, "N. calls",
16
+ :total_call_time_for_location, "Total call time",
17
+ :average_call_time_for_location, "Avg call time",
18
+ :average_wait_time_for_location, "Avg wait time",
19
+ :percentage_of_taken_calls_to_queue_calls_for_location, "% of queue"
20
+ ]
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,25 @@
1
+ module Queri
2
+ class Stats
3
+ class AgentsAndSessions
4
+ class AnsweredCallsByServiceGroup < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ AgentsAndSessions.xml_code + ".AnsCallsSG"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :level, "Level",
15
+ :number_of_calls_for_service_group, "N. calls",
16
+ :total_talk_time_for_service_group, "Total call time",
17
+ :average_talk_time_for_service_group, "Avg call time",
18
+ :percentage_of_taken_calls_to_queue_calls_for_service_group, "% of queue"
19
+ ]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,27 @@
1
+ module Queri
2
+ class Stats
3
+ class AgentsAndSessions
4
+ class AnsweredCallsForSelectedQueues < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ AgentsAndSessions.xml_code + ".AnsCallsQueues"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :level, "Level",
15
+ :agent, "Agent",
16
+ :number_of_calls, "N. calls",
17
+ :total_call_time, "Total call time",
18
+ :average_call_time, "Avg call time",
19
+ :average_wait_time, "Avg wait time",
20
+ :percentage_of_taken_calls_to_queue_calls, "% of queue"
21
+ ]
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,28 @@
1
+ module Queri
2
+ class Stats
3
+ class AgentsAndSessions
4
+ class SessionAndPauseDurations < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ AgentsAndSessions.xml_code + ".SessionPauseDur"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :level, "Level",
15
+ :agent, "Agent",
16
+ :number_of_sessions, "Sessions",
17
+ :average_session_duration, "Avg Session",
18
+ :number_of_pauses, "Pauses",
19
+ :average_pause_duration, "Avg Pause",
20
+ :percentage_between_pause_time_and_available_time, "Pause %",
21
+ :number_of_pauses_per_session, "Pauses per session"
22
+ ]
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ module Queri
2
+ class Stats
3
+ class CallDistributionByDayOfWeek
4
+ class AnsweredCallDistributionPerDayOfWeek < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ CallDistributionByDayOfWeek.xml_code + ".AnsDistrPerDOW"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :day_of_week, "DayOfWeek",
15
+ :number_of_calls, "Num",
16
+ :percentage_of_answered_calls_within_period, "&nbsp;",
17
+ :placeholder_for_num_calls_bar_graph, "Answered calls",
18
+ :average_call_duration, "Avg",
19
+ :minimum_call_duration, "Min",
20
+ :maximum_call_duration, "Max",
21
+ :placeholder_for_call_duration_bar_graph, "Avg duration"
22
+ ]
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ module Queri
2
+ class Stats
3
+ class CallDistributionByDayOfWeek
4
+ class AnsweredCallWaitTimePerDayOfWeek < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ CallDistributionByDayOfWeek.xml_code + ".AnsWaitPerDOW"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :day_of_week, "DayOfWeek",
15
+ :number_of_calls, "Num",
16
+ :percentage_of_answered_calls_within_period, "&nbsp;",
17
+ :placeholder_for_num_calls_bar_graph, "Answered calls",
18
+ :average_call_wait_time, "Avg",
19
+ :minimum_call_wait_time, "Min",
20
+ :maximum_call_wait_time, "Max",
21
+ :placeholder_for_avg_wait_bar_graph, "Avg wait"
22
+ ]
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,36 @@
1
+ module Queri
2
+ class Stats
3
+ class CallDistributionByDayOfWeek
4
+ class InclusiveServiceLevelAgreementPerDayOfWeek < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ CallDistributionByDayOfWeek.xml_code + ".InclSlaPerDOW"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :day_of_week, "DayOfWeek",
15
+ :number_of_answered_calls, "Ans.",
16
+ :number_of_unanswered_calls, "Unans.",
17
+ :number_of_processed_calls, "Num",
18
+ :percentage_of_calls_answered_under_10_sec, "&lt; 10",
19
+ :percentage_of_calls_answered_under_20_sec, "&lt; 20",
20
+ :percentage_of_calls_answered_under_30_sec, "&lt; 30",
21
+ :percentage_of_calls_answered_under_40_sec, "&lt; 40",
22
+ :percentage_of_calls_answered_under_50_sec, "&lt; 50",
23
+ :percentage_of_calls_answered_under_60_sec, "&lt; 60",
24
+ :percentage_of_calls_answered_under_70_sec, "&lt; 70",
25
+ :percentage_of_calls_answered_under_80_sec, "&lt; 80",
26
+ :percentage_of_calls_answered_under_90_sec, "&lt; 90",
27
+ :percentage_of_calls_answered_under_100_sec, "&lt; 100",
28
+ :percentage_of_calls_answered_under_110_sec, "&lt; 110",
29
+ :percentage_of_calls_answered_under_120_sec, "&lt; 120"
30
+ ]
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,29 @@
1
+ module Queri
2
+ class Stats
3
+ class CallDistributionByDayOfWeek
4
+ class QueueLengthPerDayOfWeek < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ CallDistributionByDayOfWeek.xml_code + ".QPosPerDOW"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :day_of_week, "DayOfWeek",
15
+ :average_queue_length_during_period, "Avg",
16
+ :placeholder_for_length_avg_bar_graph, "&nbsp;",
17
+ :minimum_queue_length, "Min",
18
+ :maximum_queue_length, "Max",
19
+ :another_bar_graph, "&nbsp;",
20
+ :coverage_percentage, "Cover.",
21
+ :rate_of_throughput_per_hour, "Steps",
22
+ :empty, "&nbsp;"
23
+ ]
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,30 @@
1
+ module Queri
2
+ class Stats
3
+ class CallDistributionByDayOfWeek
4
+ class SalesPerDayOfWeek < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ CallDistributionByDayOfWeek.xml_code + ".SalesPerDOW"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :day_of_week, "DayOfWeek",
15
+ :conv, "Conv.",
16
+ :qconv, "QConv.",
17
+ :sales, "Sales",
18
+ :sales_percentage, "&nbsp;",
19
+ :placeholder_for_sales_bar_graph, "&nbsp;",
20
+ :qcont, "QCont.",
21
+ :contacts, "Contacts",
22
+ :contacts_percentage, "&nbsp;",
23
+ :placeholder_for_contacts_bar_graph, "&nbsp;"
24
+ ]
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,24 @@
1
+ module Queri
2
+ class Stats
3
+ class CallDistributionByDayOfWeek
4
+ class ScheduleAdherencePerDayOfWeek < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ CallDistributionByDayOfWeek.xml_code + ".StaffPerDOW"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :day_of_week, "DayOfWeek",
15
+ :number_of_agents, "Agents",
16
+ :percentage_of_all_agents_detected_within_period, "&nbsp;",
17
+ :placeholder_for_bar_graph, "&nbsp;"
18
+ ]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,39 @@
1
+ module Queri
2
+ class Stats
3
+ class CallDistributionByDayOfWeek
4
+ class TrafficAnalysisByPeriodPerDayOfWeek < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ CallDistributionByDayOfWeek.xml_code + ".TrafficAnPerDOW"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :day_of_week, "DayOfWeek",
15
+ :average_agents_logged_in_per_period_vs_total_period, "Avg ag",
16
+ :number_of_incoming_calls_per_period_vs_available_agents, "Calls/Ag",
17
+ :incoming_calls_sla, "Svc Lvl",
18
+ :number_of_lost_calls, "Unans",
19
+ :percentage_of_lost_calls_below_x_seconds, "Unans short",
20
+ :number_of_outgoing_calls_per_period_vs_available_agents, "Avg out",
21
+ :outbound_to_inbound_ratio, "Out/in",
22
+ :average_incoming_call_wait_time, "Avg ans",
23
+ :average_incoming_call_talk_time, "Avg talk",
24
+ :maximum_answered_incoming_call_wait_time, "Max wait ans",
25
+ :maximum_lost_incoming_call_wait_time, "Max wait lost",
26
+ :maximum_incoming_call_talk_time, "Max dur",
27
+ :maximum_outgoing_call_talk_time, "Max dur out",
28
+ :number_of_incoming_calls, "Off.",
29
+ :number_of_answered_incoming_calls, "Ans.",
30
+ :number_of_answered_outgoing_calls, "Ans. out",
31
+ :minimum_logged_on_agents_for_period, "Min Ag.",
32
+ :maximum_logged_on_agents_for_period, "Max Ag."
33
+ ]
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,28 @@
1
+ module Queri
2
+ class Stats
3
+ class CallDistributionByDayOfWeek
4
+ class UnansweredCallWaitTimePerDayOfWeek < Queri::Stats
5
+ include CompositeReportHelpers
6
+
7
+ class << self
8
+ def xml_code
9
+ CallDistributionByDayOfWeek.xml_code + ".UnansWaitPerDOW"
10
+ end
11
+
12
+ def key_translations
13
+ ActiveSupport::OrderedHash[
14
+ :day_of_week, "DayOfWeek",
15
+ :number_of_calls, "Num",
16
+ :percentage_of_unanswered_calls_within_period, "&nbsp;",
17
+ :placeholder_for_num_calls_bar_graph, "Unanswered calls",
18
+ :average_call_wait_time, "Avg",
19
+ :minimum_call_wait_time, "Min",
20
+ :maximum_call_wait_time, "Max",
21
+ :placeholder_for_avg_wait_bar_graph, "Avg wait"
22
+ ]
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,11 @@
1
+ module Queri
2
+ class Stats
3
+ class CallDistributionByDayOfWeek
4
+ @@xml_code = "CallDistrDO"
5
+
6
+ def self.xml_code
7
+ @@xml_code
8
+ end
9
+ end
10
+ end
11
+ end
data/lib/queri/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Queri
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::AgentsAndSessions::AgentBillableTimeByHour do
4
+ let(:report_class) { Queri::Stats::AgentsAndSessions::AgentBillableTimeByHour }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::AgentsAndSessions::AgentBillableTimeByHour do
18
+ it_behaves_like "an agent-level report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::AgentsAndSessions::AgentOccupancyReport do
4
+ let(:report_class) { Queri::Stats::AgentsAndSessions::AgentOccupancyReport }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::AgentsAndSessions::AgentOccupancyReport do
18
+ it_behaves_like "an agent-level report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::AgentsAndSessions::AgentPayableTimeByHour do
4
+ let(:report_class) { Queri::Stats::AgentsAndSessions::AgentPayableTimeByHour }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::AgentsAndSessions::AgentPayableTimeByHour do
18
+ it_behaves_like "an agent-level report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::AgentsAndSessions::AgentPerformanceByAcdGroup do
4
+ let(:report_class) { Queri::Stats::AgentsAndSessions::AgentPerformanceByAcdGroup }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::AgentsAndSessions::AgentPerformanceByAcdGroup do
18
+ it_behaves_like "an agent-level report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::AgentsAndSessions::AgentSessionDetail do
4
+ let(:report_class) { Queri::Stats::AgentsAndSessions::AgentSessionDetail }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::AgentsAndSessions::AgentSessionDetail do
18
+ it_behaves_like "an aggregate report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::AgentsAndSessions::AgentSessionTimeByHour do
4
+ let(:report_class) { Queri::Stats::AgentsAndSessions::AgentSessionTimeByHour }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::AgentsAndSessions::AgentSessionTimeByHour do
18
+ it_behaves_like "an agent-level report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::AgentsAndSessions::AnsweredCallsByCustomGroup do
4
+ let(:report_class) { Queri::Stats::AgentsAndSessions::AnsweredCallsByCustomGroup }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::AgentsAndSessions::AnsweredCallsByCustomGroup do
18
+ it_behaves_like "an agent-level report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::AgentsAndSessions::AnsweredCallsByLocation do
4
+ let(:report_class) { Queri::Stats::AgentsAndSessions::AnsweredCallsByLocation }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::AgentsAndSessions::AnsweredCallsByLocation do
18
+ it_behaves_like "an agent-level report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::AgentsAndSessions::AnsweredCallsByServiceGroup do
4
+ let(:report_class) { Queri::Stats::AgentsAndSessions::AnsweredCallsByServiceGroup }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::AgentsAndSessions::AnsweredCallsByServiceGroup do
18
+ it_behaves_like "an agent-level report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::AgentsAndSessions::AnsweredCallsForSelectedQueues do
4
+ let(:report_class) { Queri::Stats::AgentsAndSessions::AnsweredCallsForSelectedQueues }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::AgentsAndSessions::AnsweredCallsForSelectedQueues do
18
+ it_behaves_like "an agent-level report instance"
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::AgentsAndSessions::SessionAndPauseDurations do
4
+ let(:report_class) { Queri::Stats::AgentsAndSessions::SessionAndPauseDurations }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::AgentsAndSessions::SessionAndPauseDurations do
18
+ it_behaves_like "an agent-level report instance"
19
+ end
20
+ end
21
+
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::CallDistributionByDayOfWeek::AnsweredCallDistributionPerDayOfWeek do
4
+ let(:report_class) { Queri::Stats::CallDistributionByDayOfWeek::AnsweredCallDistributionPerDayOfWeek }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::CallDistributionByDayOfWeek::AnsweredCallDistributionPerDayOfWeek do
18
+ it_behaves_like "a composite aggregate report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::CallDistributionByDayOfWeek::AnsweredCallWaitTimePerDayOfWeek do
4
+ let(:report_class) { Queri::Stats::CallDistributionByDayOfWeek::AnsweredCallWaitTimePerDayOfWeek }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::CallDistributionByDayOfWeek::AnsweredCallWaitTimePerDayOfWeek do
18
+ it_behaves_like "a composite aggregate report instance"
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::CallDistributionByDayOfWeek do
4
+ let(:report_class) { Queri::Stats::CallDistributionByDayOfWeek }
5
+
6
+ it_behaves_like "a report class"
7
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::CallDistributionByDayOfWeek::InclusiveServiceLevelAgreementPerDayOfWeek do
4
+ let(:report_class) { Queri::Stats::CallDistributionByDayOfWeek::InclusiveServiceLevelAgreementPerDayOfWeek }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::CallDistributionByDayOfWeek::InclusiveServiceLevelAgreementPerDayOfWeek do
18
+ it_behaves_like "a composite aggregate report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::CallDistributionByDayOfWeek::QueueLengthPerDayOfWeek do
4
+ let(:report_class) { Queri::Stats::CallDistributionByDayOfWeek::QueueLengthPerDayOfWeek }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::CallDistributionByDayOfWeek::QueueLengthPerDayOfWeek do
18
+ it_behaves_like "a composite aggregate report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::CallDistributionByDayOfWeek::SalesPerDayOfWeek do
4
+ let(:report_class) { Queri::Stats::CallDistributionByDayOfWeek::SalesPerDayOfWeek }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::CallDistributionByDayOfWeek::SalesPerDayOfWeek do
18
+ it_behaves_like "a composite aggregate report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::CallDistributionByDayOfWeek::ScheduleAdherencePerDayOfWeek do
4
+ let(:report_class) { Queri::Stats::CallDistributionByDayOfWeek::ScheduleAdherencePerDayOfWeek }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::CallDistributionByDayOfWeek::ScheduleAdherencePerDayOfWeek do
18
+ it_behaves_like "a composite aggregate report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::CallDistributionByDayOfWeek::TrafficAnalysisByPeriodPerDayOfWeek do
4
+ let(:report_class) { Queri::Stats::CallDistributionByDayOfWeek::TrafficAnalysisByPeriodPerDayOfWeek }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::CallDistributionByDayOfWeek::TrafficAnalysisByPeriodPerDayOfWeek do
18
+ it_behaves_like "a composite aggregate report instance"
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Queri::Stats::CallDistributionByDayOfWeek::UnansweredCallWaitTimePerDayOfWeek do
4
+ let(:report_class) { Queri::Stats::CallDistributionByDayOfWeek::UnansweredCallWaitTimePerDayOfWeek }
5
+ let(:xml_code) { report_class.xml_code }
6
+
7
+ before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', '..', 'config.yml')) }
8
+
9
+ it_behaves_like "a report class"
10
+
11
+ it_behaves_like "a report method"
12
+
13
+ it_behaves_like "a queuemetrics report"
14
+
15
+ it_behaves_like "a stats report"
16
+
17
+ describe "An instance of", Queri::Stats::CallDistributionByDayOfWeek::UnansweredCallWaitTimePerDayOfWeek do
18
+ it_behaves_like "a composite aggregate report instance"
19
+ end
20
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: queri
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brad Rice
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-02 00:00:00.000000000 Z
11
+ date: 2014-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -83,6 +83,7 @@ files:
83
83
  - lib/queri/aggregate_report_helpers.rb
84
84
  - lib/queri/arg_helpers.rb
85
85
  - lib/queri/composite_agent_level_report_helpers.rb
86
+ - lib/queri/composite_by_hour_report_helpers.rb
86
87
  - lib/queri/composite_report_helpers.rb
87
88
  - lib/queri/realtime.rb
88
89
  - lib/queri/realtime/agents.rb
@@ -90,6 +91,17 @@ files:
90
91
  - lib/queri/stats.rb
91
92
  - lib/queri/stats/agents_and_sessions.rb
92
93
  - lib/queri/stats/agents_and_sessions/agent_availability.rb
94
+ - lib/queri/stats/agents_and_sessions/agent_billable_time_by_hour.rb
95
+ - lib/queri/stats/agents_and_sessions/agent_occupancy_report.rb
96
+ - lib/queri/stats/agents_and_sessions/agent_payable_time_by_hour.rb
97
+ - lib/queri/stats/agents_and_sessions/agent_performance_by_acd_group.rb
98
+ - lib/queri/stats/agents_and_sessions/agent_session_detail.rb
99
+ - lib/queri/stats/agents_and_sessions/agent_session_time_by_hour.rb
100
+ - lib/queri/stats/agents_and_sessions/answered_calls_by_custom_group.rb
101
+ - lib/queri/stats/agents_and_sessions/answered_calls_by_location.rb
102
+ - lib/queri/stats/agents_and_sessions/answered_calls_by_service_group.rb
103
+ - lib/queri/stats/agents_and_sessions/answered_calls_for_selected_queues.rb
104
+ - lib/queri/stats/agents_and_sessions/session_and_pause_durations.rb
93
105
  - lib/queri/stats/answered_calls.rb
94
106
  - lib/queri/stats/answered_calls/agents_on_queue.rb
95
107
  - lib/queri/stats/answered_calls/all_calls.rb
@@ -113,6 +125,15 @@ files:
113
125
  - lib/queri/stats/call_distribution_by_day/schedule_adherence_per_day.rb
114
126
  - lib/queri/stats/call_distribution_by_day/traffic_analysis_by_period_per_day.rb
115
127
  - lib/queri/stats/call_distribution_by_day/unanswered_call_wait_time_per_day.rb
128
+ - lib/queri/stats/call_distribution_by_day_of_week.rb
129
+ - lib/queri/stats/call_distribution_by_day_of_week/answered_call_distribution_per_day_of_week.rb
130
+ - lib/queri/stats/call_distribution_by_day_of_week/answered_call_wait_time_per_day_of_week.rb
131
+ - lib/queri/stats/call_distribution_by_day_of_week/inclusive_service_level_agreement_per_day_of_week.rb
132
+ - lib/queri/stats/call_distribution_by_day_of_week/queue_length_per_day_of_week.rb
133
+ - lib/queri/stats/call_distribution_by_day_of_week/sales_per_day_of_week.rb
134
+ - lib/queri/stats/call_distribution_by_day_of_week/schedule_adherence_per_day_of_week.rb
135
+ - lib/queri/stats/call_distribution_by_day_of_week/traffic_analysis_by_period_per_day_of_week.rb
136
+ - lib/queri/stats/call_distribution_by_day_of_week/unanswered_call_wait_time_per_day_of_week.rb
116
137
  - lib/queri/stats/call_distribution_by_hour.rb
117
138
  - lib/queri/stats/call_distribution_by_hour/answered_call_distribution_per_hour.rb
118
139
  - lib/queri/stats/call_distribution_by_hour/answered_call_wait_time_per_hour.rb
@@ -160,7 +181,18 @@ files:
160
181
  - spec/realtime/realtime_spec.rb
161
182
  - spec/spec_helper.rb
162
183
  - spec/stats/agents_and_sessions/agent_availability_spec.rb
184
+ - spec/stats/agents_and_sessions/agent_billable_time_by_hour_spec.rb
185
+ - spec/stats/agents_and_sessions/agent_occupancy_report_spec.rb
186
+ - spec/stats/agents_and_sessions/agent_payable_time_by_hour_spec.rb
187
+ - spec/stats/agents_and_sessions/agent_performance_by_acd_group_spec.rb
188
+ - spec/stats/agents_and_sessions/agent_session_detail_spec.rb
189
+ - spec/stats/agents_and_sessions/agent_session_time_by_hour_spec.rb
163
190
  - spec/stats/agents_and_sessions/agents_and_sessions_spec.rb
191
+ - spec/stats/agents_and_sessions/answered_calls_by_custom_group_spec.rb
192
+ - spec/stats/agents_and_sessions/answered_calls_by_location_spec.rb
193
+ - spec/stats/agents_and_sessions/answered_calls_by_service_group_spec.rb
194
+ - spec/stats/agents_and_sessions/answered_calls_for_selected_queues_spec.rb
195
+ - spec/stats/agents_and_sessions/session_and_pause_durations_spec.rb
164
196
  - spec/stats/answered_calls/agents_on_queue_spec.rb
165
197
  - spec/stats/answered_calls/all_calls_spec.rb
166
198
  - spec/stats/answered_calls/answered_calls_by_direction_spec.rb
@@ -184,6 +216,15 @@ files:
184
216
  - spec/stats/call_distribution_by_day/schedule_adherence_per_day_spec.rb
185
217
  - spec/stats/call_distribution_by_day/traffic_analysis_by_period_per_day_spec.rb
186
218
  - spec/stats/call_distribution_by_day/unanswered_call_wait_time_per_day_spec.rb
219
+ - spec/stats/call_distribution_by_day_of_week/answered_call_distribution_per_day_of_week_spec.rb
220
+ - spec/stats/call_distribution_by_day_of_week/answered_call_wait_time_per_day_of_week_spec.rb
221
+ - spec/stats/call_distribution_by_day_of_week/call_distribution_by_day_of_week_spec.rb
222
+ - spec/stats/call_distribution_by_day_of_week/inclusive_service_level_agreement_per_day_of_week_spec.rb
223
+ - spec/stats/call_distribution_by_day_of_week/queue_length_per_day_of_week_spec.rb
224
+ - spec/stats/call_distribution_by_day_of_week/sales_per_day_of_week_spec.rb
225
+ - spec/stats/call_distribution_by_day_of_week/schedule_adherence_per_day_of_week_spec.rb
226
+ - spec/stats/call_distribution_by_day_of_week/traffic_analysis_by_period_per_day_of_week_spec.rb
227
+ - spec/stats/call_distribution_by_day_of_week/unanswered_call_wait_time_per_day_of_week_spec.rb
187
228
  - spec/stats/call_distribution_by_hour/answered_call_distribution_per_hour_spec.rb
188
229
  - spec/stats/call_distribution_by_hour/answered_call_wait_time_per_hour_spec.rb
189
230
  - spec/stats/call_distribution_by_hour/call_distribution_by_hour_spec.rb
@@ -267,7 +308,18 @@ test_files:
267
308
  - spec/realtime/realtime_spec.rb
268
309
  - spec/spec_helper.rb
269
310
  - spec/stats/agents_and_sessions/agent_availability_spec.rb
311
+ - spec/stats/agents_and_sessions/agent_billable_time_by_hour_spec.rb
312
+ - spec/stats/agents_and_sessions/agent_occupancy_report_spec.rb
313
+ - spec/stats/agents_and_sessions/agent_payable_time_by_hour_spec.rb
314
+ - spec/stats/agents_and_sessions/agent_performance_by_acd_group_spec.rb
315
+ - spec/stats/agents_and_sessions/agent_session_detail_spec.rb
316
+ - spec/stats/agents_and_sessions/agent_session_time_by_hour_spec.rb
270
317
  - spec/stats/agents_and_sessions/agents_and_sessions_spec.rb
318
+ - spec/stats/agents_and_sessions/answered_calls_by_custom_group_spec.rb
319
+ - spec/stats/agents_and_sessions/answered_calls_by_location_spec.rb
320
+ - spec/stats/agents_and_sessions/answered_calls_by_service_group_spec.rb
321
+ - spec/stats/agents_and_sessions/answered_calls_for_selected_queues_spec.rb
322
+ - spec/stats/agents_and_sessions/session_and_pause_durations_spec.rb
271
323
  - spec/stats/answered_calls/agents_on_queue_spec.rb
272
324
  - spec/stats/answered_calls/all_calls_spec.rb
273
325
  - spec/stats/answered_calls/answered_calls_by_direction_spec.rb
@@ -291,6 +343,15 @@ test_files:
291
343
  - spec/stats/call_distribution_by_day/schedule_adherence_per_day_spec.rb
292
344
  - spec/stats/call_distribution_by_day/traffic_analysis_by_period_per_day_spec.rb
293
345
  - spec/stats/call_distribution_by_day/unanswered_call_wait_time_per_day_spec.rb
346
+ - spec/stats/call_distribution_by_day_of_week/answered_call_distribution_per_day_of_week_spec.rb
347
+ - spec/stats/call_distribution_by_day_of_week/answered_call_wait_time_per_day_of_week_spec.rb
348
+ - spec/stats/call_distribution_by_day_of_week/call_distribution_by_day_of_week_spec.rb
349
+ - spec/stats/call_distribution_by_day_of_week/inclusive_service_level_agreement_per_day_of_week_spec.rb
350
+ - spec/stats/call_distribution_by_day_of_week/queue_length_per_day_of_week_spec.rb
351
+ - spec/stats/call_distribution_by_day_of_week/sales_per_day_of_week_spec.rb
352
+ - spec/stats/call_distribution_by_day_of_week/schedule_adherence_per_day_of_week_spec.rb
353
+ - spec/stats/call_distribution_by_day_of_week/traffic_analysis_by_period_per_day_of_week_spec.rb
354
+ - spec/stats/call_distribution_by_day_of_week/unanswered_call_wait_time_per_day_of_week_spec.rb
294
355
  - spec/stats/call_distribution_by_hour/answered_call_distribution_per_hour_spec.rb
295
356
  - spec/stats/call_distribution_by_hour/answered_call_wait_time_per_hour_spec.rb
296
357
  - spec/stats/call_distribution_by_hour/call_distribution_by_hour_spec.rb