queri 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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