'Transferred Call' AND CAST(CALLDATE AS DATE) > coalesce((select max(mat_data) from pbx_media_atendimento), '2006-01-01') AND NOT EXISTS(SELECT '' FROM PBX_MEDIA_ATENDIMENTO WHERE mat_data = cast(a.calldate as date)) GROUP BY D.id, CAST((CALLDATE) AS DATE) ORDER BY 1, 2 "; // --((CAST(NOW() AS DATE) - (DATE_PART('DOW', NOW()) + 1)::INT) - (52 * 7)) // --AND CAST(CALLDATE AS DATE) <= (CAST(NOW() AS DATE) - (DATE_PART('DOW', NOW()) + 1)::INT) $_SESSION["SSatuDesvio"] = pg_query($dbcon, $query); } } function ImportaDadosDesvioDia($dbcon) { if (!$_SESSION["SSatuDesvioDia"]) { $query = "insert into pbx_media_atendimento_dia ( mat_dac, mat_data, mat_periodo, mat_hora_ini, mat_hora_fim, mat_dia_semana, mat_num_ca, mat_num_opr, mat_med_ca_opr ) SELECT d.id, CAST((CALLDATE) AS DATE) AS DATA, c.periodo, hora_ini, hora_fim, DATE_PART('DOW', CAST((CALLDATE) AS DATE)) + 1 AS DIA_SEMANA, COUNT(*) AS CHAMADAS, COUNT(DISTINCT DSTCHANNEL) AS OPR, (COUNT(*) / COUNT(DISTINCT DSTCHANNEL)) AS MEDIA FROM pbx_hora_dia c INNER JOIN pbx_bilhetes a on cast(a.calldate as time) >= c.hora_ini and cast(a.calldate as time) < c.hora_fim and a.lastapp <> 'Transferred Call' INNER JOIN pbx_eventos_dacs b on b.uid2 = a.uniqueid INNER JOIN pbx_dacs d on d.nome = b.fila WHERE b.evento = 'ENTERQUEUE' AND a.calldate IS NOT NULL AND CAST(CALLDATE AS DATE) > coalesce((select max(mat_data) from PBX_MEDIA_ATENDIMENTO_DIA), '2006-01-01') AND NOT EXISTS(SELECT '' FROM PBX_MEDIA_ATENDIMENTO_DIA WHERE mat_data = cast(a.calldate as date)) group by d.id, CAST((CALLDATE) AS DATE), c.periodo, hora_ini, hora_fim order by periodo "; $_SESSION["SSatuDesvioDia"] = pg_query($dbcon, $query); } } function GetDadosMes($dbcon, $dac, $dt) { $query = " select (DATE_PART('DOW', cast('$dt' as date)) + 1) as diaSemana, ((CAST('$dt' AS DATE) - (52 * 7))) as dataIni, (cast('$dt' AS DATE) - (DATE_PART('DOW', cast('$dt' as date)) + 1)::INT) as dataFim"; $result = pg_query($dbcon, $query); $row = pg_fetch_row($result); $diaSemana = $row[0]; $dataIni = $row[1]; $dataFim = $row[2]; $query = "select mat_data, mat_dia_semana, mat_num_ca from pbx_media_atendimento where mat_dac = $dac and mat_data <= '$dataFim' and mat_dia_semana = $diaSemana order by mat_data desc limit 52"; $result = pg_query($dbcon, $query); return $result; } function GetDadosDia($dbcon, $dac, $dt, $periodo) { $query = " select (DATE_PART('DOW', cast('$dt' as date)) + 1) as diaSemana, ((CAST('$dt' AS DATE) - (52 * 7))) as dataIni, (cast('$dt' AS DATE) - (DATE_PART('DOW', cast('$dt' as date)) + 1)::INT) as dataFim"; $result = pg_query($dbcon, $query); $row = pg_fetch_row($result); $diaSemana = $row[0]; $dataIni = $row[1]; $dataFim = $row[2]; $query = "select mat_data, mat_dia_semana, mat_num_ca from pbx_media_atendimento_dia where mat_dac = $dac and mat_data <= '$dataFim' and mat_dia_semana = $diaSemana and mat_periodo = $periodo order by mat_data desc, mat_periodo desc limit 52 "; //print $query; exit; $result = pg_query($dbcon, $query); return $result; } function GetDesvio($result, &$mediaCalc) { $media = array(); $totalSemnas = 0; while ($row = pg_fetch_array($result)) { $media[$totalSemnas] = $row["mat_num_ca"]; $totalSemnas++; } //calcula a media das semanas $mediaSemanas = 0; for ($i = 0; $i < $totalSemnas; $i++) $mediaSemanas += $media[$i]; $mediaSemanas = $totalSemnas == 0 ? 0 : $mediaSemanas / $totalSemnas; $mediaCalc = $mediaSemanas; //calcula variancia $variancia = 0; for ($i = 0; $i < $totalSemnas; $i++) { //echo "Media: $media[$i]" . " - " . $mediaSemanas . " = " . ($media[$i] - $mediaSemanas) . " Quadrado = " . Quadrado(($media[$i] - $mediaSemanas)) . "
" ; $variancia += Quadrado(($media[$i] - $mediaSemanas)); } $variancia = ($totalSemnas - 1) == 0 ? 0 : round($variancia / ($totalSemnas - 1)); $_SESSION[SS_DESVIO_PADRAO] = round(sqrt($variancia), 4); return $_SESSION[SS_DESVIO_PADRAO]; } function Quadrado($num) { return pow($num, 2); } ?>