<?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ão ou o tamanho do arquivo não são vá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áximo ".round(($tammaxfile/1048576), 2)." MB. <br /> <br /><strong>Detalhes do seu arquivo:</strong> ".$nome_ficheiro." [ ".$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 /> <br />
<? if ($encaminharpraratodos) echo '<font color="navy"><strong>Agora você pode encaminhar este chamado para qualquer andamento. Acesse o formulário de encaminhamento novamente<br />no rodapé desta tela para encaminhar o chamado selecionando uma dentre todas as opções disponíveis de andamentos.</strong></font><br /> <br />' ?>
<?php
if (!empty($resultup)) echo '<font color="Navy"><strong>'.$resultup.'</strong></font><br /> <br /> <br />';
if (!empty($erroup)) echo '<font color="Red">'.$erroup.'</font><br /> <br /> <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)?> - <?=utf8_encode($reg["titulo"])?></div>
<br />
<strong>Andamento: </strong><?=utf8_encode($reg["s_andamento"])?> <strong>Data: </strong><? echo substr($reg["data"], 8, 2)."/".substr($reg["data"], 5, 2)."/".substr($reg["data"], 0, 4); ?> <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 /> <br /><font color="#<?=getCorPrioridade($reg["nivel"])?>"><strong>Prioridade: </strong><?=utf8_encode($reg["s_prioridade"])?></font> <strong>Tipo:</strong> <?=utf8_encode($reg["s_tipo"])?> <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 /> <br />
<strong>Solicitante/Cliente: </strong><?=utf8_encode($reg["nome"])?><br /> <br />
<strong>Sistema:</strong> <?=utf8_encode($reg["s_sistema"])?> <strong>Módulo:</strong> <? if (empty($reg["s_modulo"])) echo "Indeterminado"; else echo utf8_encode($reg["s_modulo"]); ?> <strong>Versão:</strong> <? if (empty($reg["s_versao"])) echo "Indeterminada"; else echo utf8_encode($reg["s_versao"]); ?> <strong>Usuário:</strong> <?=utf8_encode($reg["username"])?>
<br /> <br />
<hr size="1" />
<br /><em><strong>Descrição inicial: </strong><br /> <br /><?=utf8_encode(nl2br($reg["descricao_inicial"]))?></em><br /> <br />
<!-- ARQUIVOS ANEXADOS -->
<hr size="1" />
<br /><em><strong>Arquivos anexados</strong></em><br /> <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 /> <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'>» <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> <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">
Aguarde... Enviando arquivo pro servidor...<br />
Não atualize, feche ou deixe esta página até o fim do processo.<br />
<input type="text" id="focoup" />
</td>
</tr>
</table>
</div>
<?php
}
else
{
echo 'Não é possível anexar arquivos a um chamado fechado.';
}
?>
</form>
<br />
<em>* Tamanho má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 /> <br />
<!-- FIM DE ARQUIVOS ANEXADOS -->
<hr size="1" />
<br /><em><strong>Históricos</strong></em><br /> <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órico</td>
<td align="center" width="150">Usuá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ão há históricos de processamento deste chamado</em></td><td align="center" width="150">-</td></tr>';
}
?>
</table>
<!-- FIM DA TABELA DE HISTORICOS -->
<div id="divEncaminhar">
<br /> <br /><em><strong>Encaminhar chamado</strong></em><br /> <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:
<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 ' [ <a href="'.$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&encall=true">Encaminhar este chamado para qualquer andamento</a> ]';
}
}
?>
<br /> <br />
Histórico:<br />
<textarea cols="100" rows="7" id="txtHist" name="txtHist"></textarea>
<br /> <br />
Alterar prioridade do chamado: <font size="1">(só altere se for <u>realmente</u> necessá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 /> <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ê não pode encaminhar este chamado pois no momento ele se encontra em processamento por outro departamento.</em>";
}
else
{
echo "<em>Não há mais opções de encaminhamento para este chamado.</em>";
}
echo '<br /> <br /><input type="button" value="Cancelar" onclick="window.open(\'chamados.php\', \'_self\');" />';
}
?>
<br /> <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();
?>