##TRATANDO O STATUS ANTERIOR (atual) -antes da mudança //Verifica se o status 'atual' já foi gravado na tabela 'tempo_status' , em caso positivo, atualizo o tempo, senão devo gravar ele pela primeira vez. $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) {
$total_res_valido = 0; $total_sol_valido = 0; $dtS = new dateOpers(); //solução $dtR = new dateOpers(); //resposta $dtM = new dateOpers(); //tempo entre resposta e solução $cont = 0; while ($row = mysql_fetch_array($resultado)) { // if (array_key_exists($row['cod_area'],$H_horarios)){ //verifica se o código da área possui carga horária definida no arquivo config.inc.php // $area = $row['cod_area']; //Recebe o valor da área de atendimento do chamado // } else $area = 1; //Carga horária default definida no arquivo config.inc.php $areaReal = $row['cod_area']; $area = ""; $area = testaArea($row['cod_area'], $row['cod_area'], $H_horarios); #TRABALHA SOBRE O TEMPO DE RESPOSTA $data_atendimento = date("Y-m-d H:i:s"); if (isset($row['data_atendimento'])) { $data_atendimento = $row['data_atendimento']; } else { if (!isset($row['data_atendimento']) && isset($row['data_fechamento'])) { $data_atendimento = $row['data_fechamento']; } } if (isset($row['date_first_queued'])) { $dtR->setData1($row['date_first_queued']); } else { $dtR->setData1($row['data_abertura']); } $dtR->setData2($data_atendimento);
print "<TD class='line' " . $valign . ">" . NVL($rowAT['problema']) . "</TD>"; print "<TD class='line' " . $valign . "><b>" . $rowAT['contato'] . "</b><br>" . $rowAT['telefone'] . "</TD>"; print "<TD class='line' " . $valign . "><b>" . $rowAT['setor'] . "</b><br>"; $texto = trim($rowAT['descricao']); if (strlen($texto) > 200) { $texto = substr($texto, 0, 195) . " ..... "; } print $texto; print "</TD>"; print "<TD class='line' " . $valign . ">" . $rowAT['area'] . "</TD>"; 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"];
$color = "#F1FD4A"; } 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.
##TRATANDO O STATUS ANTERIOR //Verifica se o status 'atual' já foi gravado na tabela 'tempo_status' , em caso positivo, atualizo o tempo, senão devo gravar ele pela primeira vez. $sql_ts_anterior = "select * from tempo_status where ts_ocorrencia = " . $row['numero'] . " and ts_status = " . $_POST['antes'] . " "; $exec_sql = mysql_query($sql_ts_anterior); if ($exec_sql == 0) { $error = " erro 1"; } $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($row['sistema'],$H_horarios)){ //verifica se o código da área possui carga horária definida no arquivo config.inc.php // $areaT = $row['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, $row['sistema'], $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 = " . $row['numero'] . " and\n\t\t\t\t\t\t\t\tts_status = " . $_POST['antes'] . " "; $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 (" . $row['numero'] . ", " . $_POST['antes'] . ", 0, '" . date("Y-m-d H:i:s") . "' )"; $exec_ins = mysql_query($sql_ins); if ($exec_ins == 0) {