queri 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +41 -0
- data/lib/queri/composite_by_hour_report_helpers.rb +22 -0
- data/lib/queri/stats/agents_and_sessions/agent_billable_time_by_hour.rb +22 -0
- data/lib/queri/stats/agents_and_sessions/agent_occupancy_report.rb +29 -0
- data/lib/queri/stats/agents_and_sessions/agent_payable_time_by_hour.rb +22 -0
- data/lib/queri/stats/agents_and_sessions/agent_performance_by_acd_group.rb +35 -0
- data/lib/queri/stats/agents_and_sessions/agent_session_detail.rb +25 -0
- data/lib/queri/stats/agents_and_sessions/agent_session_time_by_hour.rb +22 -0
- data/lib/queri/stats/agents_and_sessions/answered_calls_by_custom_group.rb +26 -0
- data/lib/queri/stats/agents_and_sessions/answered_calls_by_location.rb +26 -0
- data/lib/queri/stats/agents_and_sessions/answered_calls_by_service_group.rb +25 -0
- data/lib/queri/stats/agents_and_sessions/answered_calls_for_selected_queues.rb +27 -0
- data/lib/queri/stats/agents_and_sessions/session_and_pause_durations.rb +28 -0
- data/lib/queri/stats/call_distribution_by_day_of_week/answered_call_distribution_per_day_of_week.rb +28 -0
- data/lib/queri/stats/call_distribution_by_day_of_week/answered_call_wait_time_per_day_of_week.rb +28 -0
- data/lib/queri/stats/call_distribution_by_day_of_week/inclusive_service_level_agreement_per_day_of_week.rb +36 -0
- data/lib/queri/stats/call_distribution_by_day_of_week/queue_length_per_day_of_week.rb +29 -0
- data/lib/queri/stats/call_distribution_by_day_of_week/sales_per_day_of_week.rb +30 -0
- data/lib/queri/stats/call_distribution_by_day_of_week/schedule_adherence_per_day_of_week.rb +24 -0
- data/lib/queri/stats/call_distribution_by_day_of_week/traffic_analysis_by_period_per_day_of_week.rb +39 -0
- data/lib/queri/stats/call_distribution_by_day_of_week/unanswered_call_wait_time_per_day_of_week.rb +28 -0
- data/lib/queri/stats/call_distribution_by_day_of_week.rb +11 -0
- data/lib/queri/version.rb +1 -1
- data/spec/stats/agents_and_sessions/agent_billable_time_by_hour_spec.rb +20 -0
- data/spec/stats/agents_and_sessions/agent_occupancy_report_spec.rb +20 -0
- data/spec/stats/agents_and_sessions/agent_payable_time_by_hour_spec.rb +20 -0
- data/spec/stats/agents_and_sessions/agent_performance_by_acd_group_spec.rb +20 -0
- data/spec/stats/agents_and_sessions/agent_session_detail_spec.rb +20 -0
- data/spec/stats/agents_and_sessions/agent_session_time_by_hour_spec.rb +20 -0
- data/spec/stats/agents_and_sessions/answered_calls_by_custom_group_spec.rb +20 -0
- data/spec/stats/agents_and_sessions/answered_calls_by_location_spec.rb +20 -0
- data/spec/stats/agents_and_sessions/answered_calls_by_service_group_spec.rb +20 -0
- data/spec/stats/agents_and_sessions/answered_calls_for_selected_queues_spec.rb +20 -0
- data/spec/stats/agents_and_sessions/session_and_pause_durations_spec.rb +21 -0
- data/spec/stats/call_distribution_by_day_of_week/answered_call_distribution_per_day_of_week_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day_of_week/answered_call_wait_time_per_day_of_week_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day_of_week/call_distribution_by_day_of_week_spec.rb +7 -0
- data/spec/stats/call_distribution_by_day_of_week/inclusive_service_level_agreement_per_day_of_week_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day_of_week/queue_length_per_day_of_week_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day_of_week/sales_per_day_of_week_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day_of_week/schedule_adherence_per_day_of_week_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day_of_week/traffic_analysis_by_period_per_day_of_week_spec.rb +20 -0
- data/spec/stats/call_distribution_by_day_of_week/unanswered_call_wait_time_per_day_of_week_spec.rb +20 -0
- metadata +63 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b2bfc52dce63366d10f7b59134d9f67b9762bcf
|
4
|
+
data.tar.gz: 47f40f2442ebdaaafca33e6f034d9b694b04a2eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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, " ",
|
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
|
data/lib/queri/stats/call_distribution_by_day_of_week/answered_call_distribution_per_day_of_week.rb
ADDED
@@ -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, " ",
|
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
|
data/lib/queri/stats/call_distribution_by_day_of_week/answered_call_wait_time_per_day_of_week.rb
ADDED
@@ -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, " ",
|
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, "< 10",
|
19
|
+
:percentage_of_calls_answered_under_20_sec, "< 20",
|
20
|
+
:percentage_of_calls_answered_under_30_sec, "< 30",
|
21
|
+
:percentage_of_calls_answered_under_40_sec, "< 40",
|
22
|
+
:percentage_of_calls_answered_under_50_sec, "< 50",
|
23
|
+
:percentage_of_calls_answered_under_60_sec, "< 60",
|
24
|
+
:percentage_of_calls_answered_under_70_sec, "< 70",
|
25
|
+
:percentage_of_calls_answered_under_80_sec, "< 80",
|
26
|
+
:percentage_of_calls_answered_under_90_sec, "< 90",
|
27
|
+
:percentage_of_calls_answered_under_100_sec, "< 100",
|
28
|
+
:percentage_of_calls_answered_under_110_sec, "< 110",
|
29
|
+
:percentage_of_calls_answered_under_120_sec, "< 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, " ",
|
17
|
+
:minimum_queue_length, "Min",
|
18
|
+
:maximum_queue_length, "Max",
|
19
|
+
:another_bar_graph, " ",
|
20
|
+
:coverage_percentage, "Cover.",
|
21
|
+
:rate_of_throughput_per_hour, "Steps",
|
22
|
+
:empty, " "
|
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, " ",
|
19
|
+
:placeholder_for_sales_bar_graph, " ",
|
20
|
+
:qcont, "QCont.",
|
21
|
+
:contacts, "Contacts",
|
22
|
+
:contacts_percentage, " ",
|
23
|
+
:placeholder_for_contacts_bar_graph, " "
|
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, " ",
|
17
|
+
:placeholder_for_bar_graph, " "
|
18
|
+
]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/queri/stats/call_distribution_by_day_of_week/traffic_analysis_by_period_per_day_of_week.rb
ADDED
@@ -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
|
data/lib/queri/stats/call_distribution_by_day_of_week/unanswered_call_wait_time_per_day_of_week.rb
ADDED
@@ -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, " ",
|
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
|
data/lib/queri/version.rb
CHANGED
@@ -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
|
+
|
data/spec/stats/call_distribution_by_day_of_week/answered_call_distribution_per_day_of_week_spec.rb
ADDED
@@ -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
|
data/spec/stats/call_distribution_by_day_of_week/answered_call_wait_time_per_day_of_week_spec.rb
ADDED
@@ -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,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
|
data/spec/stats/call_distribution_by_day_of_week/traffic_analysis_by_period_per_day_of_week_spec.rb
ADDED
@@ -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
|
data/spec/stats/call_distribution_by_day_of_week/unanswered_call_wait_time_per_day_of_week_spec.rb
ADDED
@@ -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.
|
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-
|
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
|