" . $horaAnterior . " HC -> " . FormataDBDataHora($dados["inicio_operacao"]) . " DIF " . $data->difDataHora($horaAnterior, substr(FormataDBDataHora($dados["inicio_operacao"]), 0, 19), 's') . "\n"; $dadosAgt[$dados["matricula"]]["quantidade"] += 1; $dadosAgt[$dados["matricula"]]["tempo_atende"] += $dados["tempo_operacao"]; if ($dataAtu != $dataAnt) { //$dif = $data->difDataHora(FormataDBDataHora($dataAnt), FormataDBDataHora($dataAtu), 's'); //$dadosAgt[$dados["matricula"]]["tempo_livre"] -= $dif; $dataAnt = substr($dados["inicio_operacao"], 0, 10); } else { $dadosAgt[$dados["matricula"]]["tempo_livre"] += $data->difDataHora($horaAnterior, substr(FormataDBDataHora($dados["inicio_operacao"]), 0, 19), 's'); } $horaAnterior = substr(FormataDBDataHora($rows[$i]["inicio_operacao"]), 0, 19); } } else { $dadosAgt[$dados["matricula"]][$operacao]["tempo_livre"] = 0; if (($agtAnteriorPausa != $dados["matricula"])) { $dadosAgt[$dados["matricula"]]["tempo_pausa"] = $dados["tempo_operacao"]; $agtAnteriorPausa = $dados["matricula"]; $dadosAgt[$dados["matricula"]]["quantidade_pausa"] = 1; $dataPausaAnt = substr($dados["inicio_operacao"], 0, 10); } else { $dadosAgt[$dados["matricula"]]["tempo_pausa"] += $dados["tempo_operacao"]; $dadosAgt[$dados["matricula"]]["quantidade_pausa"] += 1; } } } echo $contAgt; // print_r($dadosAgt); exit; $dados = array(); //print_r($dadosAgt); foreach ($dadosAgt as $dados) { $dataIni = $_SESSION["dataIni"]; $dataFim = $_SESSION["dataFim"]; $dacs = $cmpId . "-" . $dados["dac"]; $listas = $listId ? ($listId . "-" . $dados["list_nome"]) : "Todas"; $agente = $dados["apelido"] . "/" . $matricula; $matricula = $dados["matricula"]; $quantAtende = $dados["quantidade"]; $quantPausa = !$dados["quantidade_pausa"] ? 0 : $dados["quantidade_pausa"]; $tempoAtende = SecondToStrTime(round($dados["tempo_atende"] / $quantAtende)); $tempoPausa = SecondToStrTime(round($dados["tempo_pausa"] / $quantAtende)); if ($quantAtende <= 1) { $tempoLivre = SecondToStrTime(0); } else { $tempoLivre = $dados["tempo_livre"] - ($dados["tempo_pausa"] + $dados["tempo_atende"]); $tempoLivre = SecondToStrTime(round($tempoLivre / $quantAtende), 0); } $data = substr($dados[data_operacao], 0, 19); $linkPausa = !$quantPausa ? 0 : "$quantPausa"; // $data $linha = " $dados[dac] $dados[apelido]/$dados[matricula] $quantAtende $tempoAtende $linkPausa $tempoPausa $tempoLivre "; $linhas .= $linha; } } //$jsJQuery[] = "\$('#listaDacs').change(function(){GetCampanhaLista();}) "; $jsJQuery[] = "\$('#dataIni').keypress(function(){formataData(this);});"; $jsJQuery[] = "\$('#dataFim').keypress(function(){formataData(this);}); "; $jsJQuery[] = "\$('#dataIni').change(function(){GetCampanha();}); "; $jsJQuery[] = "\$('#dataFim').change(function(){GetCampanha();}); "; $jsJQuery[] = "\$('#dataFim').focus(function(){this.value = '';}); "; $jsJQuery[] = "\$('#dataIni').focus(function(){this.value = '';}); "; $dacs = GetCampanhas($dbcon, $cmpId, 0, $_SESSION["dataIni"], $_SESSION["dataFim"]); $listas = GetListaCampanha($dbcon, $cmpId, $listId, FormatDtMssql($_SESSION["dataIni"]), FormatDtMssql($_SESSION["dataFim"])); //Atualiza template $smarty->assign("dacs", $dacs); $smarty->assign("listas", $listas); $smarty->assign('dataIni', $_SESSION["dataIni"]); $smarty->assign('dataFim', $_SESSION["dataFim"]); $smarty->assign("linha", $linhas); //Seta o template GetTemplate($smarty, $templateName); } function GetQuery($cmpId) { $listId = $_POST["listId"]; $dtIni = is_date($_SESSION["dataIni"]) ? FormatDtMssql($_SESSION["dataIni"]) : ''; $dtFim = is_date($_SESSION["dataFim"]) ? FormatDtMssql($_SESSION["dataFim"]) : ''; $dddpadrao = GetDddPadrao(); $tipoChamada = $_SESSION["tipoChamada"]; $matricula = '0'; $ret = ""; $ret = "CREATE TEMPORARY TABLE agente_operacao (matricula varchar(4) not null, data date not null, inicio_operacao timestamp not null, final_operacao timestamp, apelido varchar(20), id_dac int not null, dac varchar(120), list_id int, list_nome varchar(100), operacao varchar(20), tempo_operacao bigint, CONSTRAINT \"pkAnaliseDacOpera\" PRIMARY KEY( id_dac, inicio_operacao, matricula)); CREATE INDEX \"idxAnaliseDacOpera\" ON agente_operacao (id_dac, data, matricula ); CREATE INDEX \"idxAnaliseDacOperaOrd\" ON agente_operacao (matricula, inicio_operacao ); CREATE TEMPORARY TABLE agente_pausa (matricula varchar(4) not null, data date not null, inicio_operacao timestamp not null, final_operacao timestamp, apelido varchar(20), id_dac int not null, dac varchar(120), list_id int, list_nome varchar(100), operacao varchar(20), tempo_operacao bigint, CONSTRAINT \"pkAnaliseOpera\" PRIMARY KEY( id_dac, inicio_operacao, matricula)); CREATE INDEX \"idxAnaliseOpera\" ON agente_pausa (id_dac, data, matricula); insert into agente_operacao select i.matricula, conf_data::date, a.conf_data as inicio_operacao, a.conf_data as final_oepracao, i.apelido, a.cmp_id as id_dac, b.cmp_descricao as dac, a.list_id, j.list_nome, cast('atendimento' as varchar(30)) as operacao, sum(case when(h.evento in('COMPLETECALLER', 'COMPLETEAGENT', 'CONNECT'))then case when(h.evento <> 'CONNECT') then h.param2::int else param1::int end else 0 end) as tempo_operacao from pbx_campanha_contato_fone a inner join pbx_campanha b on b.cmp_id = a.cmp_id inner join pbx_bilhetes g on g.src = a.conf_fone and g.calldate::date = a.conf_data::date and date_part('hour', g.calldate) = date_part('hour', a.conf_data) inner join pbx_eventos_dacs h on h.uid2 = g.accountcode and h.evento in('COMPLETEAGENT', 'COMPLETECALLER', 'CONNECT') and h.fila = b.cmp_descricao inner join pbx_usuarios i on i.matricula::int = a.agente inner join pbx_campanha_lista j on j.list_id = a.list_id where a.cmp_id = '$cmpId' and a.list_id = case when($listId = 0)then a.list_id else $listId end and a.conf_data::date >= '$dtIni' and a.conf_data::date <= '$dtFim' and g.lastapp <> 'Transferred Call' and i.matricula = case when('$matricula' = '0')then i.matricula else '$matricula' end group by 1, 2, 3, 4, 5, 6, 7, 8, 9; insert into agente_pausa select matricula, entrada_pausa::date, entrada_pausa, saida_pausa, cast('' as varchar(20)) as apelido, id_dac, cast('' as varchar(100)) as dac, 0 as id_lista,cast('' as varchar(100)) as list_nome, b.motivo, extract(epoch from ((saida_pausa - entrada_pausa))) as tempo_operacao from pbx_eventos_agentes a, pbx_motivos_pausas b where b.id = a.id_motivo_pausa and coalesce(login, a.entrada_pausa) >= (select min(inicio_operacao) from agente_operacao) and coalesce(login,a.entrada_pausa) <= (select max(inicio_operacao) from agente_operacao) and id_dac = '$cmpId' and a.matricula = case when('$matricula' = '0')then a.matricula else '$matricula' end; insert into agente_operacao select * from agente_pausa a where exists( select '' from agente_operacao b where b.id_dac = a.id_dac and b.data = a.data::date and b.matricula = a.matricula ); select * from agente_operacao order by 1, 3 "; //if(IsAdmin ()){ echo $ret; exit;}//and motivo = 'acw' return $ret; } ?>