Location: PHPKode > projects > SolBT > sol/chamados.php
<?php
  include("../sol/sessao.php");

  //Conecta ao banco e abre query
  $dados = new dados();
  $dados->get_conexao();
  
  //Coloca meu departamento como padrao
  if (empty($_SERVER['QUERY_STRING'])) $_GET["filtro"] = "EncaminhadosAoMeuDepartamento";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>SolBT - <?=$sitenome?></title>
    <link rel="StyleSheet" type="text/css" href="../sol/includes/estilos.css" id="estilo" />
    <script language='JavaScript' src='../sol/includes/FuncoesTela.js' type="text/javascript"></script>
    
    <script language='JavaScript' type="text/javascript">
      <!--
      function BuscaID()
      {
        var er = /[0-9]{1,}/;
        b = document.getElementById('edtID').value;
        
        if (document.getElementById('edtID').value == '')
        {
          window.alert('Campo ID do chamado deve ser preenchido!');
          document.getElementById('edtID').focus();
        }
        else
        {
          if(!er.test(b))
          {
            window.alert('Campo ID do chamado inválido!');
            document.getElementById('edtID').value = '';
            document.getElementById('edtID').focus();
          }
          else
          {
            window.open('chamados.php?filtro=ID&id=' + document.getElementById('edtID').value, '_self');
          }
        }
      }
      -->
    </script>
  </head>
  
  <body>
    <?php
      include("../sol/includes/menus.php");
    ?>
    
    <table width="100%">
      <?php
        include("../sol/includes/top.php");
      ?>
      
      <!-- CONTEUDO DA PAGINA -->
      <tr>
        <td id="Conteudo">
          <br />
          
          <!-- FILTROS DO USUARIO -->
          <table width="100%" border="0">
            <tr>
              <td class="Titulo">Acompanhar chamados</td>
              <td align="right" valign="middle">
                Filtros simples: <input type="button" name="btnEncaminhadosAoMeuDepartamento" value="Meu departamento" onclick="window.open('chamados.php?filtro=EncaminhadosAoMeuDepartamento', '_self');" title="Ver chamados encaminhados ao meu departamento..." />
                <input type="button" name="btnAbertosPorMim" value="Abertos por mim" onclick="window.open('chamados.php?filtro=AbertosPorMim', '_self');" title="Ver chamados abertos por mim..." />
                <input type="button" name="btnAlteradosPorMim" value="Alterados por mim" onclick="window.open('chamados.php?filtro=AlteradosPorMim', '_self');" title="Ver chamados cuja &uacute;ltima altera&ccedil;&atilde;o foi feita por mim..." />
                &nbsp; &nbsp;ID: <input type="text" id="edtID" value="" maxlength="7" size="5" title="Localizar um chamado pelo c&oacute;digo." />
                <input type="button" name="btnID" value="OK" onclick="BuscaID();" />
                &nbsp; &nbsp;<input type="button" name="btnGeral" value="Geral" onclick="window.open('chamados.php?geral', '_self');" title="Ver &uacute;ltimos chamados lan&ccedil;ados no geral..." />
              </td>
            </tr>
          </table>
          <!-- FIM DE FILTROS DO USUARIO -->
          
          <br />
          <em><? if (!empty($_GET["id"])) echo "Localizando chamado "; else { if ($_GET["filtro"] != "pesquisa") echo "&Uacute;ltimos 30 chamados "; } ; switch ($_GET["filtro"]) { case "AbertosPorMim": echo "abertos por mim"; break; case "EncaminhadosAoMeuDepartamento": echo "encaminhados ao meu departamento"; break; case "pesquisa": echo "Resultados da pesquisa"; break; case "AlteradosPorMim": echo "alterados/processados recentemente por mim"; break; case "ID": echo " com o c&oacute;digo (ID) ".str_pad($_GET["id"], 7, "0", STR_PAD_LEFT); break; default: echo "(geral)"; } ?></em><br />&nbsp;<br />
          <div id="r_pesq"></div>
          <table cellspacing="1" cellpadding="3" style="background-color:#666666;" width="100%">
            <tr style="color:#FFFFFF; font-weight:bold;">
              <td align="center" width="50">ID</td>
              <td>T&iacute;tulo</td>
              <td align="center">Andamento</td>
              <td align="center" width="50">Data</td>
              <td align="center" width="50">Prazo</td>
              <td align="center">Solicitante/Cliente</td>
              <td align="center" width="50">Prioridade</td>
              <td align="center">Sistema</td>
              <td align="center" width="50">Tipo</td>
              <td align="center">M&oacute;dulo</td>
            </tr>
            <?php
              //Lista prioridades
              $sql = "SELECT * FROM prioridades ORDER BY nivel ASC";
              
              $rs = mysql_query($sql);
              
              $i = 0;
              
              $prioridades = array();
              $pricolor = array();
              
              $cnt = mysql_num_rows($rs);
            
              while ($reg = mysql_fetch_array($rs))
              {
                $prioridades[$i] = $reg["prioridade"];
                $pricolor[$i] = getCorPrioridade($i, $cnt);
                $i++;
              }
              
              //Lista chamados
              $sql = "SELECT
                        c.*, a.andamento as s_andamento, u.username, p.prioridade AS s_prioridade, p.nivel,
                        s.sistema AS s_sistema, t.tipo as s_tipo, i.nome, m.modulo AS s_modulo, v.versao AS s_versao
                      FROM
                        chamados AS c
                      INNER JOIN
                        andamentos AS a ON (a.id_andamento = c.andamento)
                      INNER JOIN
                        usuarios AS u ON (u.id_usuario = c.usuario)
                      INNER JOIN
                        prioridades AS p ON (p.id_prioridade = c.prioridade)
                      INNER JOIN
                        sistemas AS s ON (s.id_sistema = c.sistema)
                      INNER JOIN
                        tipos_de_chamado AS t ON (t.id_tipos = c.tipo)
                      INNER JOIN
                        instituicao AS i ON (i.id_inst = c.solicitante)
                      LEFT JOIN
                        modulo AS m ON (m.id_modulo = c.modulo)
                      LEFT JOIN
                        versoes AS v ON (v.id_versao = c.versao)
                      WHERE
                        c.id_chamado > 0";
                        
              $pesquisasemfiltro = false;
              
              $meus_filtros = '';
              
              switch ($_GET["filtro"])
              {
                case "AbertosPorMim": $sql .= " AND c.usuario = ".$_SESSION["usuario"]; break;
                case "EncaminhadosAoMeuDepartamento": $sql .= " AND a.id_departamento = ".$_SESSION["departamento"]; break;
                
                //Filtros de pesquisa
                case "pesquisa":
                  $sql_antes_pesquisa = $sql;
                  if (!empty($_POST["titulo"]))
                  {
                    $sql .= " AND c.titulo LIKE '%".TrataStr($_POST["titulo"])."%'";
                    $meus_filtros .= '<strong>T&iacute;tulo: </strong>'.$_POST["titulo"].' &nbsp; &nbsp; ';
                  }
                  
                  if (!empty($_POST["data"]))
                  {
                    $sql .= " AND c.data >= '".StrPraData($_POST["data"])."'";
                    $meus_filtros .= '<strong>Data cadastro inicial: </strong>'.$_POST["data"].' &nbsp; &nbsp; ';
                  }
                  
                  if (!empty($_POST["dataa"]))
                  {
                    $sql .= " AND c.data <= '".StrPraData($_POST["dataa"])."'";
                    $meus_filtros .= '<strong>Data cadastro final: </strong>'.$_POST["dataa"].' &nbsp; &nbsp; ';
                  }
                  
                  if (!empty($_POST["prazo"]))
                  {
                    $sql .= " AND (c.prazo >= '".StrPraData($_POST["prazo"])."' OR c.prazo IS null)";
                    $meus_filtros .= '<strong>Prazo inicial: </strong>'.$_POST["prazo"].' &nbsp; &nbsp; ';
                  }
                  
                  if (!empty($_POST["prazoa"]))
                  {
                    $sql .= " AND c.prazo <= '".StrPraData($_POST["prazoa"])."'";
                    $meus_filtros .= '<strong>Prazo final: </strong>'.$_POST["prazoa"].' &nbsp; &nbsp; ';
                  }
                  
                  if ($_POST["prioridade"] > -1)
                  {
                    $sql .= " AND p.nivel <= ".$_POST["prioridade"];
                    
                    $sqlft = "SELECT prioridade FROM prioridades WHERE nivel = ".$_POST["prioridade"];
                    $rsft = mysql_query($sqlft);
                    $regft = mysql_fetch_array($rsft);
                    
                    $meus_filtros .= '<strong>Prioridade inicial: </strong>'.utf8_encode($regft['prioridade']).' &nbsp; &nbsp; ';
                  }
                  
                  if ($_POST["prioridadea"] > -1)
                  {
                    $sql .= " AND p.nivel >= ".$_POST["prioridadea"];
                    
                    $sqlft = "SELECT prioridade FROM prioridades WHERE nivel = ".$_POST["prioridadea"];
                    $rsft = mysql_query($sqlft);
                    $regft = mysql_fetch_array($rsft);
                    
                    $meus_filtros .= '<strong>Prioridade final: </strong>'.utf8_encode($regft['prioridade']).' &nbsp; &nbsp; ';
                  }
                  
                  if ($_POST["tipo"] > 0)
                  {
                    $sql .= " AND c.tipo = ".$_POST["tipo"];
                    
                    $sqlft = "SELECT tipo FROM tipos_de_chamado WHERE id_tipos = ".$_POST["tipo"];
                    $rsft = mysql_query($sqlft);
                    $regft = mysql_fetch_array($rsft);
                    
                    $meus_filtros .= '<strong>Tipo de chamado: </strong>'.utf8_encode($regft['tipo']).' &nbsp; &nbsp; ';
                  }
                  
                  if ($_POST["cliente"] != '')
                  {
                    $sql .= " AND c.solicitante = ".$_POST["cliente"];
                    
                    $sqlft = "SELECT nome FROM instituicao WHERE id_inst = ".$_POST["cliente"];
                    $rsft = mysql_query($sqlft);
                    $regft = mysql_fetch_array($rsft);
                    
                    $meus_filtros .= '<strong>Solicitante/cliente: </strong>'.utf8_encode($regft['nome']).' &nbsp; &nbsp; ';
                  }
                  
                  if ($_POST["unidade"] > 0)
                  {
                    $sql .= " AND (i.vinculado_unidade = ".$_POST["unidade"]." OR c.solicitante = ".$_POST["unidade"].")";
                  
                    $sqlft = "SELECT nome FROM instituicao WHERE id_inst = ".$_POST["unidade"];
                    $rsft = mysql_query($sqlft);
                    $regft = mysql_fetch_array($rsft);
                    
                    $meus_filtros .= '<strong>Vinculado &agrave; unidade: </strong>'.utf8_encode($regft['nome']).' &nbsp; &nbsp; ';
                  }
                  
                  if ($_POST["status"] != "T")
                  {
                    $sql .= " AND c.status = '".$_POST["status"]."'";
                    
                    if ($_POST["status"] == 'A') $meustatus = 'Aberto/pendente';
                    if ($_POST["status"] == 'N') $meustatus = 'Em processamento';
                    if ($_POST["status"] == 'F') $meustatus = 'Fechado/resolvido';
                    
                    $meus_filtros .= '<strong>Status: </strong>'.$meustatus.' &nbsp; &nbsp; ';
                  }
                 
                  if ($_POST["sistema"] > 0)
                  {
                    $sql .= " AND c.sistema = ".$_POST["sistema"];
                    
                    $sqlft = "SELECT sistema FROM sistemas WHERE id_sistema = ".$_POST["sistema"];
                    $rsft = mysql_query($sqlft);
                    $regft = mysql_fetch_array($rsft);
                    
                    $meus_filtros .= '<strong>Sistema: </strong>'.utf8_encode($regft['sistema']).' &nbsp; &nbsp; ';
                  }
                    
                  if ($_POST["modulo"] > 0)
                  {
                    $sql .= " AND c.modulo = ".$_POST["modulo"];
                    
                    $sqlft = "SELECT modulo FROM modulo WHERE id_modulo = ".$_POST["modulo"];
                    $rsft = mysql_query($sqlft);
                    $regft = mysql_fetch_array($rsft);
                    
                    $meus_filtros .= '<strong>M&oacute;dulo: </strong>'.utf8_encode($regft['modulo']).' &nbsp; &nbsp; ';
                  }
                    
                  if ($_POST["versao"] > 0)
                  {
                    $sql .= " AND c.versao = ".$_POST["versao"];
                    
                    $sqlft = "SELECT versao FROM versoes WHERE id_versao = ".$_POST["versao"];
                    $rsft = mysql_query($sqlft);
                    $regft = mysql_fetch_array($rsft);
                    
                    $meus_filtros .= '<strong>Vers&atilde;o: </strong>'.utf8_encode($regft['versao']).' &nbsp; &nbsp; ';
                  }
                    
                  if ($_POST["andamento"] > 0)
                  {
                    $sql .= " AND c.andamento = ".$_POST["andamento"];
                    
                    $sqlft = "SELECT andamento FROM andamentos WHERE id_andamento = ".$_POST["andamento"];
                    $rsft = mysql_query($sqlft);
                    $regft = mysql_fetch_array($rsft);
                    
                    $meus_filtros .= '<strong>Andamento: </strong>'.utf8_encode($regft['andamento']).' &nbsp; &nbsp; ';
                  } 
                    
                  if ($_POST["departamento"] > 0)
                  {
                    $sql .= " AND a.id_departamento = ".$_POST["departamento"];
                    
                    $sqlft = "SELECT departamento FROM departamentos WHERE id = ".$_POST["departamento"];
                    $rsft = mysql_query($sqlft);
                    $regft = mysql_fetch_array($rsft);
                    
                    $meus_filtros .= '<strong>Atribu&iacute;do ao departamento: </strong>'.utf8_encode($regft['departamento']).' &nbsp; &nbsp; ';
                  }
                  
                  if ($_POST["usuario"] > 0)
                  {
                    $sql .= " AND c.usuario = ".$_POST["usuario"];
                    
                    $sqlft = "SELECT username FROM usuarios WHERE id_usuario = ".$_POST["usuario"];
                    $rsft = mysql_query($sqlft);
                    $regft = mysql_fetch_array($rsft);
                    
                    $meus_filtros .= '<strong>Aberto por: </strong>'.utf8_encode($regft['username']).' &nbsp; &nbsp; ';
                  }
                  
                  if ($_POST["ult_usuario"] > 0)
                  {
                    $sql .= " AND c.ult_usuario = ".$_POST["ult_usuario"];
                    
                    $sqlft = "SELECT username FROM usuarios WHERE id_usuario = ".$_POST["ult_usuario"];
                    $rsft = mysql_query($sqlft);
                    $regft = mysql_fetch_array($rsft);
                    
                    $meus_filtros .= '<strong>Alterado recentemente por: </strong>'.utf8_encode($regft['username']).' &nbsp; &nbsp; ';
                  }
                  
                  if ($sql_antes_pesquisa == $sql) $pesquisasemfiltro = true;
                  break;
                  
                case "AlteradosPorMim": $sql .= " AND c.ult_usuario = ".$_SESSION["usuario"]; break;
                case "ID": $sql .= " AND c.id_chamado = ".$_GET["id"]; break;
              }
                        
              $sql .= " ORDER BY c.data DESC, c.id_chamado DESC";
               
              if (($_GET["filtro"] != "pesquisa") || ($pesquisasemfiltro)) $sql .= " LIMIT 0,30";
              
              $rs = mysql_query($sql);
              
              if (mysql_num_rows($rs) > 0)
              {            
                while ($reg = mysql_fetch_array($rs))
                {
            ?>
            <tr style="background-color:#<? if (($reg["prazo"] != NULL) && ($reg["status"] != "F") && ($reg["prazo"] < date("Y-m-d"))) echo "FF9966"; else { if ($reg["status"] == "A") echo "FFFF66"; else { if ($reg["status"] == "N") echo "FFFFFF"; else echo "66FF33"; } } ?>; color:#<?=$pricolor[$reg["nivel"]]?>">
              <td align="center" width="50">
                <?=str_pad($reg["id_chamado"], 7, "0", STR_PAD_LEFT)?><br />
                <input type="button" name="btnVer<?=$reg["id_chamado"]?>" value="Acompanhar" onclick="window.open('ver_chamado.php?id=<?=$reg["id_chamado"]?>', '_self');" title="Acompanhar o chamado <?=str_pad($reg["id_chamado"], 7, "0", STR_PAD_LEFT)?>." />
              </td>
              <td>
                <table width="100%" border="0">
                  <tr valign="middle">
                    <td width="0">
                      <?php
                        $sqlf = "SELECT * FROM arquivos WHERE id_chamado = ".$reg["id_chamado"];
                        $rsf = mysql_query($sqlf);
                        if ((mysql_num_rows($rsf) > 0) || ($reg['base_dados'] != ''))
                        {
                      ?>
                      <img src="/sol/includes/anexo.png" border="0" title="Este chamado possui arquivos anexados." />
                      <?php
                        }
                      ?>
                    </td>
                    <td>
                      <strong><?=utf8_encode($reg["titulo"])?></strong>
                    </td>
                  </tr>
                </table>
              </td>
              <td align="center"><?=utf8_encode($reg["s_andamento"])?></td>
              <td align="center" width="50"><strong><? echo substr($reg["data"], 8, 2)."/".substr($reg["data"], 5, 2)."/".substr($reg["data"], 0, 4); ?></strong></td>
              <td align="center" width="50"><?php if ($reg["prazo"] == NULL) echo "Indeterminado"; else echo substr($reg["prazo"], 8, 2)."/".substr($reg["prazo"], 5, 2)."/".substr($reg["prazo"], 0, 4); ?></td>
              <td align="center"><?=utf8_encode($reg["nome"])?></td>
              <td align="center" width="50"><strong><?=utf8_encode($reg["s_prioridade"])?></strong></td>
              <td align="center"><?=utf8_encode($reg["s_sistema"])?></td>
              <td align="center" width="50"><strong><?=utf8_encode($reg["s_tipo"])?></strong></td>
              <td align="center"><? if (empty($reg["s_modulo"])) echo "Indeterminado"; else echo utf8_encode($reg["s_modulo"]); ?></td>
            </tr>
            <?php
                }
              }
              else
              {
                echo '<tr style="background-color:#FFFFFF;"><td align="center">-</td><td><em>N&atilde;o foram encontrados chamados com os par&acirc;metros indicados</em></td><td align="center">-</td><td align="center">-</td><td align="center">-</td><td align="center">-</td><td align="center">-</td><td align="center">-</td><td align="center">-</td><td align="center">-</td></tr>';
              }
            ?>
          </table>
          <?php
            if ($pesquisasemfiltro) echo "<br/ ><em><strong>Obs.:</strong> voc&ecirc; fez uma pesquisa sem filtros, por isso os resultados foram limitados a 30 para evitar sobrecarga no servidor.</em>";
          ?>
          <p align="right"><a href="pesquisar_chamado.php">Pesquisar...</a></p>
          <strong><em>Legenda</em></strong><br />&nbsp;<br /> 
          <table cellspacing="1" cellpadding="3" style="background-color:#666666;" width="500">
            <tr valign="middle">
              <td width="20" style="background-color:#FFFF66;">&nbsp;</td>
              <td style="background-color:#FFFFFF;">Chamado aberto (ou reaberto) ainda pendente&nbsp;</td>
            </tr>
            <tr valign="middle">
              <td width="20" style="background-color:#FFFFFF;">&nbsp;</td>
              <td style="background-color:#FFFFFF;">Chamado em processamento (sendo analisado/executado)&nbsp;</td>
            </tr>
            <tr valign="middle">
              <td width="20" style="background-color:#66FF33;">&nbsp;</td>
              <td style="background-color:#FFFFFF;">Chamado fechado (conclu&iacute;do/resolvido)&nbsp;</td>
            </tr>
            <tr valign="middle">
              <td width="20" style="background-color:#FF9966;">&nbsp;</td>
              <td style="background-color:#FFFFFF;">Chamado com prazo excedido&nbsp;</td>
            </tr>
          </table>
          <table cellspacing="1" cellpadding="3" style="background-color:#666666;" width="500">
            <?php
              for ($i = 0; $i < count($prioridades); $i++)
                {
            ?>
            <tr valign="middle">
              <td style="background-color:#FFFFFF; color:#<?=$pricolor[$i]?>">&nbsp;<strong><?=utf8_encode($prioridades[$i])?></strong></td>
            </tr>
            <?php
                }
            ?>
          </table>
          <?php
            if ($meus_filtros != '')
            {
          ?>
          <script language='JavaScript' type="text/javascript">
            document.getElementById('r_pesq').innerHTML = '<strong><u>Filtros:</u></strong><br />&nbsp;<br /><em><?=$meus_filtros?></em><br />&nbsp;<br />';
          </script>
          <?php
            }
          ?>
          <br />&nbsp;<br />
          
        </td>
      </tr>
      <!-- FIM DE CONTEUDO DA PAGINA -->
      
      <?php
        include("../sol/includes/rp.php");
      ?>
    </table>
    <? if (str_replace('&nbsp;', '', str_replace(' ', '', strip_tags($meus_filtros))) == "Status:") { ?>
          <script language="JavaScript" type="text/javascript">
            //POG Refaz pesquisa
            <?php
              if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') != 0) echo "history.go(-4);"; else echo "window.open('pesquisar_chamado.php', '_self');";
            ?>
          </script>
          <? } ?>
  </body>
</html>
<?php
  @mysql_close();
?>
Return current item: SolBT