Location: PHPKode > projects > SolBT > SolBT-1.3.0.11/ver_chamado.php
<?php
  include("../sol/sessao.php");
  
  //Conecta ao banco e abre query
  $dados = new dados();
  $dados->get_conexao();
  
  VerificaModuloSuporte();
  
  #Permite gerentes e administradores ancaminhar pra qualuqer andamento
  $encaminharpraratodos = false;
  if ($_GET['encall'] == 'true') $encaminharpraratodos = true;
?>
<!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 Encaminhar()
      {
        document.getElementById('divEncaminhar').style.display = '';
        document.getElementById('divBotao').style.display = 'none';
        if (document.getElementById('btnSalvar') != null)
        {
          document.getElementById('btnSalvar').focus();
          document.getElementById('cmbEncaminhar').focus();
        }
        window.open('#encaminhar', '_self');
      }
      
      function Salvar()
      {
        String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
        
        document.getElementById('txtHist').value = document.getElementById('txtHist').value.trim();
        
        if (document.getElementById('txtHist').value.length == 0)
        {
          alert('Informe um texto com detalhes do encaminhamento.');
          document.getElementById('txtHist').focus();
          return;
        }
        
        //Posta
        document.forms.frmEncaminhar.submit();
      }
      
      function cfgfile()
      {
        //document.getElementById('userfile').disabled = 'disabled';
        document.getElementById('gofile').disabled = 'disabled';
        document.getElementById('enviando_file').style.display = '';
        document.getElementById('focoup').focus();
        document.getElementById('focoup').style.display = 'none';
      }
      -->
    </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">
          <?php
            $chamado = str_replace("#", "", $_GET["id"]);
            
            $tammaxfile = 1048576 * $maxMBupload;
            
            //Upload de arquivos
            if ($_GET['acao'] == 'upload')
            {
              $nome_ficheiro = $_FILES['userfile']['name'];
              $cadeiatexto = strtolower($chamado.'-'.$nome_ficheiro);
              
              //dados do ficheiro
              $tipo_ficheiro = $_FILES['userfile']['type'];
              
              $tamanho_ficheiro = $_FILES['userfile']['size'];
              
              $tipo_ficheiro = strtolower($tipo_ficheiro);
              
              $tamfiledexibe = round(($tamanho_ficheiro/1048576), 2);
              if ($tamfiledexibe <= 0) $tamfiledexibe = 0.01;
              
              //vejo se as características do ficheiro sao as desejadas
              if (
                  (!(strpos($tipo_ficheiro, "gif") ||
                   strpos($tipo_ficheiro, "jpeg") ||
                   strpos($tipo_ficheiro, "png") ||
                   strpos($tipo_ficheiro, "pdf") ||
                   strpos($tipo_ficheiro, "zip") ||
                   strpos($tipo_ficheiro, "plain") ||
                   strpos($tipo_ficheiro, "rar"))) || ($tamanho_ficheiro > $tammaxfile))
              {
                $erroup = "A extens&atilde;o ou o tamanho do arquivo n&atilde;o s&atilde;o v&aacute;lidos.<br />Os arquivos devem ser do tipo <strong>.gif</strong>, <strong>.jpg</strong>, <strong>.png</strong>, <strong>.pdf</strong>, <strong>.zip</strong>, <strong>.tar.gz</strong>, <strong>.txt</strong> ou <strong>.rar</strong> e podem ter no m&aacute;ximo ".round(($tammaxfile/1048576), 2)." MB.&nbsp;<br />&nbsp;&nbsp;<br /><strong>Detalhes do seu arquivo:</strong> ".$nome_ficheiro."&nbsp; [ ".$tamfiledexibe." MB ]";
              }
              else
              {
                if (copy($_FILES['userfile']['tmp_name'], $_SERVER["DOCUMENT_ROOT"].'/sol/arquivos/'.$cadeiatexto))
                {
                  $resultup = "Arquivo enviado com sucesso.";
                  
                  //Grava no banco
                  $sql = "INSERT INTO arquivos
                            (id_chamado, arquivo, usuario, tamanho, data, tipo)
                          VALUES
                            (".$chamado.", '".TrataStr($cadeiatexto)."', ".$_SESSION['usuario'].",
                            ".$tamfiledexibe.", now(), '".$tipo_ficheiro."')";
                            
                  mysql_query($sql);
                }
                else
                {
                  $erroup = "Erro ao enviar o arquivo.";
                }
              }
            }
            
            //Lista chamados
            $sql = "SELECT
                      c.*, a.andamento as s_andamento, a.id_departamento, u.username, a.andamento_retorno,
                      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, a.andamento_prosseguimento
                    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 = ".$chamado;
                      
            $rs = mysql_query($sql);
            
            $reg = mysql_fetch_array($rs);
            
            $depto = $reg["id_departamento"];
            
            $andpro = $reg["andamento_prosseguimento"];
            $andret = $reg["andamento_retorno"];
            $sttatual = $reg['status'];
          ?>
          <br />
          <span class="Titulo"><? if ($_GET['origem'] == 'abertura') echo 'Chamado aberto'; else echo 'Visualizando chamado'; ?></span><br />&nbsp;<br />
          <? if ($encaminharpraratodos) echo '<font color="navy"><strong>Agora voc&ecirc; pode encaminhar este chamado para qualquer andamento. Acesse o formul&aacute;rio de encaminhamento novamente<br />no rodap&eacute; desta tela para encaminhar o chamado selecionando uma dentre todas as op&ccedil;&otilde;es dispon&iacute;veis de andamentos.</strong></font><br />&nbsp;<br />' ?>
          <?php
            if (!empty($resultup)) echo '<font color="Navy"><strong>'.$resultup.'</strong></font><br />&nbsp;<br />&nbsp;<br />';
            if (!empty($erroup)) echo '<font color="Red">'.$erroup.'</font><br />&nbsp;<br />&nbsp;<br />';
          ?>
          <div class="Titulo" 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"; } } ?>; border: 1px solid #666666; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;"><strong>Chamado: </strong><?=str_pad($chamado, 7, "0", STR_PAD_LEFT)?>&nbsp; - <?=utf8_encode($reg["titulo"])?></div>
          <br />
          <strong>Andamento: </strong><?=utf8_encode($reg["s_andamento"])?>&nbsp; &nbsp; &nbsp;<strong>Data: </strong><? echo substr($reg["data"], 8, 2)."/".substr($reg["data"], 5, 2)."/".substr($reg["data"], 0, 4); ?>&nbsp; &nbsp; &nbsp;<span style="color:#<?php if ($reg["status"] != "F") { if (($reg["prazo"] != NULL) && ($reg["prazo"] < date("Y-m-d"))) echo "FF0000"; else echo "000000"; } else { echo "000000"; } ?>"><strong>Prazo: </strong><?php if ($reg["prazo"] == NULL) echo "Indeterminado"; else echo substr($reg["prazo"], 8, 2)."/".substr($reg["prazo"], 5, 2)."/".substr($reg["prazo"], 0, 4); ?></span>
          <br />&nbsp;<br /><font color="#<?=getCorPrioridade($reg["nivel"])?>"><strong>Prioridade: </strong><?=utf8_encode($reg["s_prioridade"])?></font>&nbsp; &nbsp; &nbsp;<strong>Tipo:</strong> <?=utf8_encode($reg["s_tipo"])?>&nbsp; &nbsp; &nbsp;<span style="color:#<? if ($reg["status"] == "A") echo "FF6600"; else { if ($reg["status"] == "N") echo "000000"; else echo "009900"; } ?>"><strong>Status: </strong><? if ($reg["status"] == "A") echo "Aberto"; else { if ($reg["status"] == "N") echo "Em processamento"; else echo "Fechado"; } ?></span>
          <br />&nbsp;<br />
          <strong>Solicitante/Cliente: </strong><?=utf8_encode($reg["nome"])?><br />&nbsp;<br />
          <strong>Sistema:</strong> <?=utf8_encode($reg["s_sistema"])?>&nbsp; &nbsp; &nbsp;<strong>M&oacute;dulo:</strong> <? if (empty($reg["s_modulo"])) echo "Indeterminado"; else echo utf8_encode($reg["s_modulo"]); ?>&nbsp; &nbsp; &nbsp;<strong>Vers&atilde;o:</strong> <? if (empty($reg["s_versao"])) echo "Indeterminada"; else echo utf8_encode($reg["s_versao"]); ?>&nbsp; &nbsp; &nbsp;<strong>Usu&aacute;rio:</strong> <?=utf8_encode($reg["username"])?>
          <br />&nbsp;<br />
          
          <hr size="1" />
          <br /><em><strong>Descri&ccedil;&atilde;o inicial: </strong><br />&nbsp;<br /><?=utf8_encode(nl2br($reg["descricao_inicial"]))?></em><br />&nbsp;<br />
          
          <!-- ARQUIVOS ANEXADOS -->
          <hr size="1" />
          <br /><em><strong>Arquivos anexados</strong></em><br />&nbsp;<br />
          <?php
            if ($reg['base_dados'] != '')
            {
              $minha_base = 'ftp://'.str_replace("http://", "", $_SERVER["HTTP_HOST"]).$reg['base_dados'];
          ?>
          <strong>Banco de dados em: </strong><a href="<?=$minha_base?>" target="_blank"><?=$minha_base?></a>
          <br />&nbsp;<br />
          <?php
            }
          ?>
          <form action="ver_chamado.php?id=<?=$chamado?>&acao=upload&me=1" method="post" enctype="multipart/form-data" onsubmit="cfgfile();">
            <?php
              $sql = "SELECT
                        a.*, u.username
                      FROM
                        arquivos AS a
                      INNER JOIN
                        usuarios AS u ON (u.id_usuario = a.usuario)
                      WHERE
                        a.id_chamado = ".$chamado."
                      ORDER BY
                        a.data ASC";
                        
              $rs = mysql_query($sql);
              
              if (mysql_num_rows($rs) > 0) echo '<table cellpadding="3" cellspacing="3">';
              
              while ($reg = mysql_fetch_array($rs))
              {
                $target = ' target="_blank"';
                echo "<tr>
                        <td>
                          <font face='courier'>&raquo; <a href='/sol/arquivos/".utf8_encode($reg['arquivo'])."'".$target.">".utf8_encode($reg['arquivo'])."</a></font>
                        </td>
                        <td align='center'><font face='courier'>".$reg['tipo']."</font></td>
                        <td align='right'><font face='courier'>".$reg['tamanho']." MB</font></td>
                        <td>
                          <font size=1>(enviado por ".utf8_encode($reg['username'])." em ".substr($reg["data"], 8, 2)."/".substr($reg["data"], 5, 2)."/".substr($reg["data"], 0, 4).")</font>
                        </td>
                      </tr>";
              }
              
              if (mysql_num_rows($rs) > 0) echo '</table>&nbsp;<br />';
              
              if ($sttatual != 'F')
                {
            ?>
            Anexar arquivo: <input name="userfile" type="file" id="userfile" size="50"> <input type="submit" value="OK" id="gofile" style="font-weight: bold;" />
            <div id="enviando_file" style="display:none;">
              <br />
              <table style="background-color:#FFFFFF; color:navy;" cellpadding="3" cellspacing="3">
                <tr>
                  <td width="30" align="right" valign="middle">
                    <img src="/sol/includes/carregando.gif" border="0" title="Enviando..." alt="Enviando...">
                  </td>
                  <td valign="middle">
                    &nbsp; Aguarde... Enviando arquivo pro servidor...<br />
                    &nbsp; N&atilde;o atualize, feche ou deixe esta p&aacute;gina at&eacute; o fim do processo.<br />
                    <input type="text" id="focoup" />
                  </td>
                </tr>
              </table>
            </div>
            <?php
              }
              else
              {
                echo 'N&atilde;o &eacute; poss&iacute;vel anexar arquivos a um chamado fechado.';
              }
            ?>
          </form>
          <br />
          <em>* Tamanho m&aacute;ximo para upload: <strong><?=round(($tammaxfile/1048576), 2)?> MB</strong>.<br />
          * Tipos aceitos: <strong>.gif</strong>, <strong>.jpg</strong>, <strong>.png</strong>, <strong>.pdf</strong>, <strong>.zip</strong>, <strong>.tar.gz</strong>, <strong>.txt</strong> ou <strong>.rar</strong>.</em>
          <br />&nbsp;<br />
          <!-- FIM DE ARQUIVOS ANEXADOS -->
          
          <hr size="1" />
          <br /><em><strong>Hist&oacute;ricos</strong></em><br />&nbsp;<br />
          
          <!-- TABELA DE HISTORICOS -->
          <table cellspacing="1" cellpadding="3" style="background-color:#666666;" width="100%">
            <tr style="color:#FFFFFF; font-weight:bold;">
              <td align="center" width="50">Data</td>
              <td align="center" width="250">Encaminhado para</td>
              <td>Hist&oacute;rico</td>
              <td align="center" width="150">Usu&aacute;rio</td>
            </tr>
            <?php
              //Lista historicos
              $sql = "SELECT
                        h.*, a.andamento as s_andamento, u.username, p.prioridade AS s_prioridade, p.nivel
                      FROM
                        chamados_historicos AS h
                      INNER JOIN
                        andamentos AS a ON (a.id_andamento = h.andamento)
                      INNER JOIN
                        usuarios AS u ON (u.id_usuario = h.usuario)
                      LEFT JOIN
                        prioridades AS p ON (p.id_prioridade = h.nova_prioridade)
                      WHERE id_chamado = ".$chamado."
                      ORDER BY
                        h.data ASC, h.id ASC";
              
              $rs = mysql_query($sql);
              
              $i = 1;
              
              if (mysql_num_rows($rs) > 0)
              {
                while ($reg = mysql_fetch_array($rs))
                {
            ?>
            <tr style="background-color:#<? if ($i % 2 == 0) echo "E8E8E8"; else echo "FFFFFF"; ?>;">
              <td align="center" width="50" valign="top"><? echo substr($reg["data"], 8, 2)."/".substr($reg["data"], 5, 2)."/".substr($reg["data"], 0, 4); ?></td>
              <td align="center" width="250" valign="top"><strong><?=utf8_encode($reg["s_andamento"])?></strong></td>
              <td>
                <?php
                  if ($reg['nova_prioridade'] > 0) echo '<strong>Prioridade alterada para <font color="#'.getCorPrioridade($reg["nivel"]).'">'.utf8_encode($reg['s_prioridade']).'</font></strong>. ';
                  
                  //Trata URLs internas
                  $URLservidor = str_replace("http://", "", $_SERVER["HTTP_HOST"]);
                  $HistWithBaseDados = str_replace($urlOnLine, $URLservidor, $reg['historico']);
                  $HistWithBaseDados = str_replace($urlRedeLocal, $URLservidor, $HistWithBaseDados);

                  echo utf8_encode(nl2br($HistWithBaseDados));
                ?>
              </td>
              <td align="center" width="150" valign="top"><?=utf8_encode($reg["username"])?></td>
            </tr>
            <?php
                  $i++;
                }
              }
              else
              {
                echo '<tr style="background-color:#FFFFFF;"><td align="center" width="75">-</td><td align="center" width="50">-</td><td align="center" width="150">-</td><td><em>N&atilde;o h&aacute; hist&oacute;ricos de processamento deste chamado</em></td><td align="center" width="150">-</td></tr>';
              }
            ?>
          </table>
          <!-- FIM DA TABELA DE HISTORICOS -->
          <div id="divEncaminhar">
            <br />&nbsp;<br /><em><strong>Encaminhar chamado</strong></em><br />&nbsp;<br />
            <?php
              $sql = "SELECT * FROM andamentos";
                        
              if (!$encaminharpraratodos)
              {
                $sql .= " WHERE id_andamento = ".$andpro." OR id_andamento = ".$andret;
                if ($andpro > $andret) $sql .= " ORDER BY id_andamento DESC"; else $sql .= " ORDER BY id_andamento ASC";
              }
              else
              {
                $sql .= " ORDER BY andamento ASC";
              }
                        
              $rs = mysql_query($sql);
            
              if (($_SESSION["departamento"] == $depto) && (mysql_num_rows($rs) > 0))
              {
            ?>
            <form action="encaminhar_chamado.php?chamado=<?=$chamado?>&r=<?=$andret?>" method="post" id="frmEncaminhar">
              Encaminhar para:&nbsp;
              <select id="cmbEncaminhar" name="cmbEncaminhar">
              <?php
                while ($reg = mysql_fetch_array($rs))
                {
                  $echo = '<option value="'.$reg["id_andamento"].'"';
                  if ($reg["id_andamento"] == $andpro) $echo .= ' selected';
                  $echo .= '>'.utf8_encode($reg["andamento"]);
                  if ($reg["id_andamento"] == $andret) $echo .= ' (retorno/retrabalho)';
                  if ($encaminharpraratodos) if ($reg["id_andamento"] == $andpro) $echo .= ' (prosseguir andamento)';
                  if ($reg["status"] == "F") $echo .= ' (fechar chamado)';
                  $echo .= '</option>';
                  echo $echo;
                }
              ?>
              </select>
              <?php
                //Permissao para mandar pra qualuqer andamento
                if ($_SESSION['univel'] <= 1)
                {
                  if (!$encaminharpraratodos)
                  {
                    echo '&nbsp; [ <a href="'.$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&encall=true">Encaminhar este chamado para qualquer andamento</a> ]';
                  }
                }
              ?>
              <br />&nbsp;<br />
              Hist&oacute;rico:<br />
              <textarea cols="100" rows="7" id="txtHist" name="txtHist"></textarea>
              <br />&nbsp;<br />
              Alterar prioridade do chamado: <font size="1">(s&oacute; altere se for <u>realmente</u> necess&aacute;rio)</font>
              <select id="nova_prioridade" name="nova_prioridade">
                <option value="0" selected>Manter a mesma</option>
                <?php
                  
                  $sql = "SELECT * FROM prioridades ORDER BY nivel DESC";
                  
                  $rs = mysql_query($sql);
                  
                  while ($reg = mysql_fetch_array($rs))
                  {
                    echo '<option value="'.$reg["id_prioridade"].'">'.utf8_encode($reg["prioridade"]).'</option>';
                  }
                ?>
              </select>
              <br />&nbsp;<br />
              <input type="button" name="btnSalvar" id="btnSalvar" value="Salvar" onclick="Salvar();" style="font-weight:bold;" />
              <input type="button" value="Cancelar" onclick="window.open('chamados.php', '_self');" />
            </form>
            <?php
              }
              else
              {
                if (mysql_num_rows($rs) > 0)
                {
                  echo "<em>Voc&ecirc; n&atilde;o pode encaminhar este chamado pois no momento ele se encontra em processamento por outro departamento.</em>";
                }
                else
                {
                  echo "<em>N&atilde;o há mais op&ccedil;&otilde;es de encaminhamento para este chamado.</em>";
                }
                echo '<br />&nbsp;<br /><input type="button" value="Cancelar" onclick="window.open(\'chamados.php\', \'_self\');" />';
              }
            ?>
            <br />&nbsp;<br />
          </div>
          <div align="right" id="divBotao">
            <br />
            <input type="button" name="btnEncaminhar" value="Encaminhar chamado" onclick="Encaminhar();" style="font-weight:bold;" />
            <input type="button" value="Cancelar" onclick="window.open('chamados.php', '_self');" />
          </div>
          <script language='JavaScript' type="text/javascript">
            document.getElementById('divEncaminhar').style.display = 'none';
          </script>
          <br />
        </td>
      </tr>
      <!-- FIM DE CONTEUDO DA PAGINA -->
      
      <?php
        include("../sol/includes/rp.php");
      ?>
    </table>
  </body>
</html>
<?php
  @mysql_close();
?>
Return current item: SolBT