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.
- 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
|