$sql_ts_anterior = "select * from tempo_status where ts_ocorrencia = " . $rowABS['numero'] . " and ts_status = " . $rowABS['status_cod'] . " "; $exec_sql = mysql_query($sql_ts_anterior); if ($exec_sql == 0) { $error = " erro 1" . $sql_ts_anterior; } $achou = mysql_num_rows($exec_sql); if ($achou > 0) { //esse status já esteve setado em outro momento $row_ts = mysql_fetch_array($exec_sql); // if (array_key_exists($rowABS['sistema'],$H_horarios)){ //verifica se o código da área possui carga horária definida no arquivo config.inc.php // $areaT = $rowABS['sistema']; //Recebe o valor da área de atendimento do chamado // } else $areaT = 1; //Carga horária default definida no arquivo config.inc.php $areaT = ""; $areaT = testaArea($areaT, $rowABS['area_cod'], $H_horarios); $dt = new dateOpers(); $dt->setData1($row_ts['ts_data']); $dt->setData2(date('Y-m-d H:i:s')); $dt->tempo_valido($dt->data1, $dt->data2, $H_horarios[$areaT][0], $H_horarios[$areaT][1], $H_horarios[$areaT][2], $H_horarios[$areaT][3], "H"); $segundos = $dt->diff["sValido"]; //segundos válidos $sql_upd = "update tempo_status set ts_tempo = (ts_tempo+" . $segundos . ") , ts_data ='" . date('Y-m-d H:i:s') . "' where ts_ocorrencia = " . $rowABS['numero'] . " and\n\t\t\t\t\t\t\tts_status = " . $rowABS['status_cod'] . " "; $exec_upd = mysql_query($sql_upd); if ($exec_upd == 0) { $error .= " erro 2"; } } else { $sql_ins = "insert into tempo_status (ts_ocorrencia, ts_status, ts_tempo, ts_data) values (" . $rowABS['numero'] . ", " . $rowABS['status_cod'] . ", 0, '" . date('Y-m-d H:i:s') . "' )"; $exec_ins = mysql_query($sql_ins); if ($exec_ins == 0) { $error .= " erro 3 " . $sql_ins; }
} if ($row['status'] == 1) { $calcula = true; } else { $calcula = false; } $j++; $texto = trim($row['descricao']); $limite = 250; if (strlen($texto) > $limite) { $texto = substr($texto, 0, $limite - 3) . "..."; } if ($calcula) { $areaChamado = ""; $areaChamado = testaArea($areaChamado, $row['cod_area'], $H_horarios); $dtR->setData1($row['data_abertura']); if ($row['data_atendimento'] == "") { $dtR->setData2($hoje); } else { $dtR->setData2($row['data_atendimento']); } $dtR->tempo_valido($dtR->data1, $dtR->data2, $H_horarios[$areaChamado][0], $H_horarios[$areaChamado][1], $H_horarios[$areaChamado][2], $H_horarios[$areaChamado][3], "H"); $diffR = $dtR->tValido; $diff2R = $dtR->diff["hValido"]; $segundosR = $dtR->diff["sValido"]; //segundos válidos $diff = date_difference($row['data_abertura'], $hoje); $sep = explode("dias", $diff); if ($sep[0] > 20) { //Se o chamado estiver aberto a mais de 20 dias o tempo é mostrado em dias para não ficar muito pesado. $diff = $sep[0] . " dias";
$perc_ate_sla2 = round($sla_green * 100 / $linhas, 2); $perc_ate_sla3 = round($sla_yellow * 100 / $linhas, 2); $perc_mais_sla3 = round($sla_red * 100 / $linhas, 2); $perc_sla16 = round($c_slaS_16h * 100 / $linhas, 2); //MEDIAS DE RESPOSTA $perc_ate_slaR2 = round($slaR_green * 100 / $linhas, 2); $perc_ate_slaR3 = round($slaR_yellow * 100 / $linhas, 2); $perc_mais_slaR3 = round($slaR_red * 100 / $linhas, 2); $slaR2M = $slaR2 / 60; $slaR3M = $slaR3 / 60; ##################################################################################### //TOTAL DE HORAS VÁLIDAS NO PERÍODO: $area = 1; //Padrao $dt = new dateOpers(); $dt->setData1($d_ini_completa); $dt->setData2($d_fim_completa); $dt->tempo_valido($dt->data1, $dt->data2, $H_horarios[$area][0], $H_horarios[$area][1], $H_horarios[$area][2], $H_horarios[$area][3], "H"); $hValido = $dt->diff["hValido"] + 1; //Como o período passado não é arredondado (xx/xx/xx 23:59:59) é necessário arrendondar o total de horas. #################################################################################### print "</table>"; print "<table align='center'>"; print " <tr><td colspan =4></td><td class='line'></td></tr>"; print " <tr><td colspan=4 align=center><b>Período: " . $d_ini . " a " . $d_fim . "</b></td></tr>"; print " <tr><td colspan=4 align=center><b>Total de horas válidas no período: " . $hValido . "</b></td></tr>"; print " <tr><td colspan='4' align='center'><b>Total de chamados fechados no período: {$linhas}.</b></td></tr>"; print " <tr><td colspan =4></td></tr>"; print "<tr><td class='line'><b>Resposta em até " . $slaR2M . " minutos:</b></TD><td class='line'><font color=" . $corSla1 . "> {$slaR_green} chamados = </font></TD><td class='line'><font color=" . $corSla1 . ">{$perc_ate_slaR2}%</font></td><td class='line'></td></tr>"; print "<tr><td class='line'><b>Resposta em até " . $slaR3M . " minutos:</b></TD><td class='line'><font color=" . $corSla2 . "> {$slaR_yellow} chamados = </font></TD><td class='line'><font color=" . $corSla2 . ">{$perc_ate_slaR3}%</font></td><td class='line'></td></tr>"; print "<tr><td class='line'><b>Resposta em mais de " . $slaR3M . " minutos:</b></TD><td class='line'><font color=" . $corSla3 . "> {$slaR_red} chamados = </font></TD><td class='line'><font color=" . $corSla3 . ">{$perc_mais_slaR3}%</font></td><td class='line'></td></tr>";
print "<TD class='line' " . $valign . ">" . $rowAT['chamado_status'] . "</TD>"; // if (array_key_exists($rowAT['cod_area'],$H_horarios)){ //verifica se o código da área possui carga horária definida no arquivo config.inc.php //$areaChamado = $rowAT['cod_area']; //Recebe o valor da área de atendimento do chamado // } else $areaChamado = 1; //Carga horária default definida no arquivo config.inc.php $areaChamado = ""; $areaChamado = testaArea($areaChamado, $rowAT['area_cod'], $H_horarios); $data = $rowAT['data_abertura']; //$diff = date_diff($data,$hoje); $diff = date_difference($data, $hoje); $sep = explode("dias", $diff); if ($sep[0] > 20) { //Se o chamado estiver aberto a mais de 20 dias o tempo é mostrado em dias para não ficar muito pesado. $diff = $sep[0] . " dias"; $segundos = $sep[0] * 86400; } else { $dta->setData1($data); $dta->setData2($hoje); $dta->tempo_valido($dta->data1, $dta->data2, $H_horarios[$areaChamado][0], $H_horarios[$areaChamado][1], $H_horarios[$areaChamado][2], $H_horarios[$areaChamado][3], "H"); $diff = $dta->tValido; $diff2 = $dta->diff["hValido"]; $segundos = $dta->diff["sValido"]; //segundos válidos } print "<TD class='line' " . $valign . ">" . $diff . "</TD>"; if ($rowAT['data_atendimento'] == "") { //Controle das bolinhas de SLA de Resposta if ($segundos <= $rowAT['sla_resposta_tempo'] * 60) { $imgSlaR = 'sla1.png'; } else { if ($segundos <= $rowAT['sla_resposta_tempo'] * 60 + $rowAT['sla_resposta_tempo'] * 60 * $percLimit / 100) { $imgSlaR = 'sla2.png';
$areaT = ""; $areaT=testaArea($areaT,$row['area_cod'],$H_horarios); $data = $row['data_abertura']; //data de abertura do chamado $dataAtendimento = $row['data_atendimento']; //data da primeira resposta ao chamado $diff = date_difference($data,date("Y-m-d H:i:s")); $sep = explode ("dias",$diff); if ($sep[0]>20) { //Se o chamado estiver aberto a mais de 20 dias o tempo é mostrado em dias para não ficar muito pesado. $imgSlaR = 'checked.png'; $imgSlaS = 'checked.png'; print "<TD class='line' ".$valign."><font color='red'><a onClick=\"javascript:popup('mostra_hist_status.php?popup=true&numero=".$row['numero']."')\">".$sep[0]." dias</a></font>". "<br>".$row['chamado_status']."</TD>"; } else { $dt->setData1($data); $dt->setData2(date("Y-m-d H:i:s")); $dt->tempo_valido($dt->data1,$dt->data2,$H_horarios[$areaT][0],$H_horarios[$areaT][1],$H_horarios[$areaT][2],$H_horarios[$areaT][3],"H"); $horas = $dt->diff["hValido"]; //horas válidas $segundos = $dt->diff["sValido"]; //segundos válidos if ($dataAtendimento == ""){//Controle das bolinhas de SLA de Resposta if ($segundos<=($row['sla_resposta_tempo']*60)){ $imgSlaR = 'sla1.png'; } else if ($segundos <=(($row['sla_resposta_tempo']*60) + (($row['sla_resposta_tempo']*60) *$percLimit/100)) ){ $imgSlaR = 'sla2.png'; } else { $imgSlaR = 'sla3.png'; } } else
//MEDIAS DE SOLUÇÃO $perc_ate_sla2 = round($sla_green * 100 / $linhas, 2); $perc_ate_sla3 = round($sla_yellow * 100 / $linhas, 2); $perc_mais_sla3 = round($sla_red * 100 / $linhas, 2); //MEDIAS DE RESPOSTA $perc_ate_slaR2 = round($slaR_green * 100 / $linhas, 2); $perc_ate_slaR3 = round($slaR_yellow * 100 / $linhas, 2); $perc_mais_slaR3 = round($slaR_red * 100 / $linhas, 2); $slaR2M = $slaR2 / 60; $slaR3M = $slaR3 / 60; ##################################################################################### //TOTAL DE HORAS VÁLIDAS NO PERÍODO: $area_fixa = 1; //Padrao $dt = new dateOpers(); $dt->setData1($_GET['ini']); $dt->setData2($_GET['end']); $dt->tempo_valido($dt->data1, $dt->data2, $H_horarios[$area_fixa][0], $H_horarios[$area_fixa][1], $H_horarios[$area_fixa][2], $H_horarios[$area_fixa][3], "H"); $hValido = $dt->diff["hValido"] + 1; //Como o período passado não é arredondado (xx/xx/xx 23:59:59) é necessário arrendondar o total de horas. #################################################################################### print "</table>"; ##TRANSFORMAÇÕES DOS ARRAYS $numerosRed = putComma($chamadosSred); $numerosYellow = putComma($chamadosSyellow); $numerosGreen = putComma($chamadosSgreen); $numerosRred = putComma($chamadosRred); $numerosRyellow = putComma($chamadosRyellow); $numerosRgreen = putComma($chamadosRgreen); ## QUADROS DE ESTATÍSTICAS print "<table align='center' cellspacing='0'>";