vendidas int not null default 0, chamadas_realizadas_atendidas int not null default 0,
CONSTRAINT \"pkAgtOpera\" PRIMARY KEY( fila, matricula, data ));
insert into agente_operacao select c.id as id_dac, c.nome as fila, b.apelido, a.matricula,
cast(a.login as date) as data, min(login) as login, max(logoff) as logoff, sum(EXTRACT(epoch from ((logoff) - (login)))) as tempoLogin,
0 as chamadas_atendidas, 0 as num_indisponivel , null as tempo_indisponivel, 0 as num_pausa, 0 as tempo_espera, 0 as tempo_entrada, 0 as chamadas_realizadas, 0 as tempo_saida,
0 as tempo_pausa, 0 as num_pausa_prod, 0 as tempo_pausa_prod
from pbx_eventos_agentes a, pbx_usuarios b,
pbx_dacs c
where b.matricula = a.matricula
and c.id = a.id_dac
and a.id_dac = coalesce('$dac', a.id_dac)
and cast(a.login as date) >= '$dataIni'
and cast(a.login as date) <= '$dataFim'
and b.matricula = coalesce($agente, b.matricula) group by 1, 2, 3, 4, 5;
insert into agente_operacao select c.id as id_dac, c.nome as fila, b.apelido, a.matricula,
cast(a.login as date) as data, min(login) as login, max(logoff) as logoff, sum(EXTRACT(epoch from ((logoff) - (login)))) as tempoLogin,
0 as chamadas_atendidas, 0 as num_indisponivel , null as tempo_indisponivel, 0 as num_pausa, 0 as tempo_espera, 0 as tempo_entrada, 0 as chamadas_realizadas, 0 as tempo_saida,
0 as tempo_pausa, 0 as num_pausa_prod, 0 as tempo_pausa_prod
from pbx_eventos_agentes a, pbx_usuarios b,
pbx_dacs c
where b.matricula = a.matricula
and c.id = a.id_dac " ;
$query .= $dac ? "and a.id_dac = '$dac'" : '';
$query .= "and cast(a.login as date) >= '$dataIni'
and cast(a.login as date) <= '$dataFim'
and b.matricula = coalesce($agente, b.matricula) group by 1, 2, 3, 4, 5;
CREATE TEMPORARY TABLE agente_pausa AS
select a.id_dac, b.apelido, cast(a.entrada_pausa as date) as data,
sum(case when(a.pausa_produtiva = 0)then 1 else 0 end) as num_pausa,
sum(case when(a.pausa_produtiva = 1)then 1 else 0 end) as num_pausa_prod,
sum(EXTRACT(epoch from (case when(a.pausa_produtiva = 0)then saida_pausa - entrada_pausa else '00:00:00' end ))) as tempo_pausa,
sum(EXTRACT(epoch from (case when(a.pausa_produtiva = 1)then saida_pausa - entrada_pausa else '00:00:00' end ))) as tempo_pausa_prod
from pbx_eventos_agentes a, pbx_usuarios b
where b.matricula = a.matricula
and a.id_dac = coalesce('$dac', a.id_dac)
and cast(a.entrada_pausa as date) >= '$dataIni'
and cast(a.entrada_pausa as date) <= '$dataFim'
and b.matricula = coalesce($agente, b.matricula)
group by a.id_dac, b.apelido, cast(a.entrada_pausa as date);
select a.id_dac, b.apelido, cast(a.entrada_pausa as date) as data,
sum(case when(a.pausa_produtiva = 0)then 1 else 0 end) as num_pausa,
sum(case when(a.pausa_produtiva = 1)then 1 else 0 end) as num_pausa_prod,
sum(EXTRACT(epoch from (case when(a.pausa_produtiva = 0)then saida_pausa - entrada_pausa else '00:00:00' end ))) as tempo_pausa,
sum(EXTRACT(epoch from (case when(a.pausa_produtiva = 1)then saida_pausa - entrada_pausa else '00:00:00' end ))) as tempo_pausa_prod
from pbx_eventos_agentes a, pbx_usuarios b
where b.matricula = a.matricula ";
$query .= $dac ? "and a.id_dac = '$dac'" : '';
$query .= "and cast(a.entrada_pausa as date) >= '$dataIni'
and cast(a.entrada_pausa as date) <= '$dataFim'
and b.matricula = coalesce($agente, b.matricula)
group by a.id_dac, b.apelido, cast(a.entrada_pausa as date);
CREATE TEMPORARY TABLE agente_indisponivel AS
select idf_entrada::date as data,id_dac, matricula, sum(case when(idf_saida is not null)then idf_saida - idf_entrada else
(select logoff from pbx_eventos_agentes where matricula = matricula and logoff > idf_entrada limit 1) - idf_entrada::timestamp end) as tempo_indisponivel,
count(idf_entrada) as numero_indisponivel from pbx_indisponivel_fila
where idf_entrada::date >= '$dataIni'
and idf_saida::date <= '$dataFim'
group by 1,2,3;
select idf_entrada::date as data,id_dac, matricula, sum(case when(idf_saida is not null)then idf_saida - idf_entrada else
(select logoff from pbx_eventos_agentes where matricula = matricula and logoff > idf_entrada limit 1) - idf_entrada::timestamp end) as tempo_indisponivel,
count(idf_entrada) as numero_indisponivel from pbx_indisponivel_fila
where idf_entrada::date >= '$dataIni'
and idf_saida::date <= '$dataFim'
group by 1,2,3;
update agente_operacao set num_indisponivel = b.numero_indisponivel, tempo_indisponivel = b.tempo_indisponivel
from agente_indisponivel as b
where agente_operacao.matricula = b.matricula
@ -233,8 +244,6 @@
chamadas_realizadas as chamadas_realizadas_vendas,chamadas_realizadas, tempo_saida, tempo_pausa, num_pausa_prod, tempo_pausa_prod,
vendidas, chamadas_realizadas_atendidas from agente_operacao order by apelido,data";