Suporte não-oficial ao OcoMon

Criado e mantido por usuários para usuários
 
InícioInício  PortalPortal  CalendárioCalendário  FAQFAQ  BuscarBuscar  MembrosMembros  GruposGrupos  Registrar-seRegistrar-se  Conectar-se  
Últimos assuntos
» Área e Problemas do Consultar igual ao de Abrir chamado
Ter Set 12, 2017 8:53 am por renatomdm

» FeedBack do usuario
Sex Jul 07, 2017 8:25 am por vafonseca

» Paramentrização Ocomon
Sex Maio 05, 2017 12:51 pm por cristiano.barbosa

» Erro OCOMON perfil criado não aparece
Qua Maio 03, 2017 12:29 pm por rodrigo.guimaraes

» Ocomon não conecta a base apos Servidor Desligar sozinho [Resolvido]
Ter Abr 25, 2017 5:25 pm por leonardocr

» Tela em branco após login no navegador IE
Ter Abr 11, 2017 8:52 am por FabioRK

» [Resolvido] Assentamento no Relatório
Sex Fev 17, 2017 12:39 pm por renatomdm

» Upload de base de dados com 2 Gb
Qua Fev 08, 2017 12:07 pm por alex.xavier

» Grupo Ocomon no telegram
Seg Jan 02, 2017 12:07 pm por leandroz3ta


Compartilhe | 
 

 [RESOLVIDO] Campo customizado - Abertura de chamados

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
orbfx



Mensagens : 8
Data de inscrição : 16/04/2014

MensagemAssunto: [RESOLVIDO] Campo customizado - Abertura de chamados   Qua Abr 16, 2014 7:00 pm

Boa noite,

Fiz uma função básica em PHP pra obter o endereço do usuário na rede e mesmo com proxy habilitado na rede pra exibir o IP correto do usuário na intranet (ex: 10.0.10.125).

Consegui adicionar o campo na tela de cadastro de ocorrências e está pegando o IP corretamente do usuário e jogando em uma input. Porém ainda estou meio perdido nos arquivos de banco.

Criei o campo oco_ip_usuario na tabela ocorrencias e alterei os INSERTS (incluir.php e incluir_2.php), adicionando o novo campo. Porém na hora de registrar a ocorrência da um erro (Não foi possível recuperar as informações de registro!!).

Não cheguei a adicionar a função pra ser habilitada na tela de Perfis, na verdade eu joguei dentro da condição do campo "usuario", então se o campo usuário estiver habilitado na tela de Perfis o campo de IP também aparecerá na hora de criar o chamado. Por enquanto ainda é uma gambiarra mas depois pretendo adicionar na tela de perfis e transformar em uma variavel de ambiente pra enviar o IP do usuário diretamente via e-mail pro helpdesk assim que abrir o chamado.. Na verdade acho que essa parte é mais fácil, por enquanto ainda estou preso no banco de dados...

Minha função ficou assim no arquivo incluir.php e como mencionei ela aparecerá juntamente com o campo usuario (operador). Pretendo dividir posteriormente e colocar pra ativar isso através dos perfis de usuário, mas antes disso tenho que conseguir registrar no banco...

Código:
function retornaIpReal(){  
 if (!empty($_SERVER['HTTP_CLIENT_IP'])){  
 $ip=$_SERVER['HTTP_CLIENT_IP'];  
 }  
 elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){  
 $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];  
 }  
 else{  
 $ip=$_SERVER['REMOTE_ADDR'];  
 }  
 return $ip;  
 }  
 $ipReal = retornaIpReal();

 if ((!empty($rowconf) && $rowconf['conf_scr_operator']) || empty($rowconf)) {
 print "<TD width='20%' align='left' bgcolor=".TD_COLOR.">".TRANS('OCO_FIELD_OPERATOR','Operador').":</TD>";
 print "<TD width='30%' align='left' bgcolor=".BODY_COLOR."><input class='disable' value='".$_SESSION['s_usuario']."' readonly></TD>";
 print "</TR>";
 print "<TR>";
 print "<TD width='30%' align='left' bgcolor=".TD_COLOR.">IP na Rede: </TD>";
 print "<TD width='30%' align='left' bgcolor=".BODY_COLOR."><input type='text' class='disable' name='ipusuario' value=".$ipReal." readonly=''></TD></TD>";


Última edição por orbfx em Ter Abr 22, 2014 2:45 pm, editado 6 vez(es)
Voltar ao Topo Ir em baixo
Ver perfil do usuário
orbfx



Mensagens : 8
Data de inscrição : 16/04/2014

MensagemAssunto: Re: [RESOLVIDO] Campo customizado - Abertura de chamados   Qua Abr 16, 2014 7:17 pm

No mesmo arquivo incluir.php alterei os INSERTS. Porém ao tentar cadastrar aparece a mensagem que não foi possível realizar a consulta. O campo criado na tabela ocorrencias foi "oco_ip_usuario" e o nome da input como consta acima é "ipusuario", daí na hora de inserir chamo a variável POST e o nome do input '".$_POST['ipusuario']."'

Código:
$query = "INSERT INTO ocorrencias (problema, descricao, instituicao, equipamento, sistema, contato, telefone, local, operador, ".
 "data_abertura, data_fechamento, status, data_atendimento, aberto_por, oco_scheduled, oco_real_open_date, date_first_queued, oco_prior, oco_ip_usuario)".
 " values ".
 //"(".$problema.",  ";
 "(".$catProb.",  ";

 if ($_SESSION['s_formatBarOco']) {
 $query.= " '".$descricao."',";
 } else {
 $query.= " '".noHtml($descricao)."',";
 }

 if (!$schedule){
 $query.="".$_POST['instituicao'].",'".$_POST['equipamento']."','".$sistema."',".
 "'".noHtml($_POST['contato'])."','".$_POST['telefone']."',".$_POST['local'].",".$operator.",".
 " '".$date_schedule."',NULL,".$oStatus.",NULL,".$_SESSION['s_uid'].",".$schedule.", '".date("Y-m-d H:i:s")."', '".date("Y-m-d H:i:s")."', '".$_POST['prioridade']."', '".$_POST['ipusuario']."')";
 } else {
 $query.="".$_POST['instituicao'].",'".$_POST['equipamento']."','".$sistema."',".
 "'".noHtml($_POST['contato'])."','".$_POST['telefone']."',".$_POST['local'].",".$operator.",".
 " '".$date_schedule."',NULL,".$oStatus.",NULL,".$_SESSION['s_uid'].",".$schedule.", '".date("Y-m-d H:i:s")."', NULL, '".$_POST['prioridade']."', '".$_POST['ipusuario']."')";
}

 $resultado = mysql_query($query) or die (TRANS('ERR_QUERY'));

E no arquivo incluir_2.php ficou assim:

Código:
$query = "INSERT INTO ocorrencias (problema, descricao, instituicao, equipamento, sistema, contato, telefone, local, operador, ".
 "data_abertura, data_fechamento, status, data_atendimento, aberto_por, oco_scheduled, oco_real_open_date, oco_ip_usuario) values ".
 //"(".$problema.",  ";
 "(".$catProb.",  ";

 if ($_SESSION['s_formatBarOco']) {
 $query.= " '".$descricao."',";
 } else {
 $query.= " '".noHtml($descricao)."',";
 }

 $query.="".$_POST['instituicao'].",'".$_POST['equipamento']."','".$sistema."',".
 "'".noHtml($_POST['contato'])."','".$_POST['telefone']."',".$_POST['local'].",".$operator.",".
 " '".$date_schedule."',NULL,".$oStatus.",NULL,".$_SESSION['s_uid'].",".$schedule.", '".date("Y-m-d H:i:s")."')";

 $resultado = mysql_query($query) or die (TRANS('ERR_QUERY'));

Ao tentar cadastrar a ocorrência vem a seguinte tela (e a mensagem que não foi possível recuperar as informações de registro):

Segue o llink do printscreen da tela:
Voltar ao Topo Ir em baixo
Ver perfil do usuário
FabioRK

avatar

Mensagens : 371
Data de inscrição : 14/09/2009
Idade : 38
Localização : Carazinho - RS

MensagemAssunto: Re: [RESOLVIDO] Campo customizado - Abertura de chamados   Qui Abr 17, 2014 10:32 am

Edita o arquivo e coloca a query para mostrar junto com o erro:
Código:
$resultado = mysql_query($query) or die (TRANS('ERR_QUERY')."</br>".$query);

Depois acessa o banco e tenta executar a query direto no banco, verifica se vai dar erro também.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
orbfx



Mensagens : 8
Data de inscrição : 16/04/2014

MensagemAssunto: Re: [RESOLVIDO] Campo customizado - Abertura de chamados   Qui Abr 17, 2014 2:21 pm

Valeu Fabio!

Só que eu fiz o teste e funcionou.. Inserindo a query diretamente no phpmyadmin e cadastrou sem nenhum erro...

Será que não é algum outro arquivo? Vi que tem uma bagunça no includes/queries/queries.php mas ainda não arrisquei..

Código:
Não foi recuperar as informações de registro!!
INSERT INTO ocorrencias (problema, descricao, instituicao, equipamento, sistema, contato, telefone, local, operador, data_abertura, data_fechamento, status, data_atendimento, aberto_por, oco_scheduled, oco_real_open_date, date_first_queued, oco_prior, oco_ip_usuario) values (72, ' testando 124567890-',1,'444','26','Felipe Santiago','444',11,255, '2014-04-17 14:02:23',NULL,1,NULL,255,0, '2014-04-17 14:02:23', '2014-04-17 14:02:23', '1', '10.0.11.120')


Última edição por orbfx em Qui Abr 17, 2014 4:12 pm, editado 1 vez(es)
Voltar ao Topo Ir em baixo
Ver perfil do usuário
orbfx



Mensagens : 8
Data de inscrição : 16/04/2014

MensagemAssunto: Re: [RESOLVIDO] Campo customizado - Abertura de chamados   Qui Abr 17, 2014 4:09 pm

Tentei inserir também no select, no arquivo queries.php e executei a consulta...

A consulta consigo realizar normalmente jogando o SELECT direto no banco, retorna o IP e tudo mais na consulta (dos que cadastrei no dedo)... sem erros...

Porém o Ocomon já me retorna uma bomba logo depois de realizar login:

Código:
Não foi recuperar as informações de registro!!SELECT o.numero as numero, o.problema as prob_cod, o.descricao as descricao, o.equipamento as etiqueta, o.sistema as area_cod, o.contato as contato, o.telefone as telefone, o.local as setor_cod, o.operador as operador_cod, o.data_abertura as data_abertura, o.data_fechamento as data_fechamento, o.status as status_cod, o.data_atendimento as data_atendimento, o.instituicao as unidade_cod, o.aberto_por as aberto_por_cod, o.oco_scheduled, o.oco_real_open_date, o.date_first_queued, o.oco_script_sol, o.oco_prior, o.oco_ip_usuario as ip, i.inst_nome as unidade, p.problema as problema, p.prob_area as prob_area_cod, p.prob_sla as sla_solucao_cod, a.sistema as area, a.sis_email as area_email, a.sis_atende as sis_atende, l.local as setor, l.loc_reitoria as reitoria_cod, l.loc_prior as loc_prior_cod, l.loc_dominio as dominio_cod, l.loc_predio as predio_cod, pr.prior_nivel as prioridade_nivel, pr.prior_sla as sla_resposta_cod, u.login as login, u.nome as nome, u.email as user_email, u.AREA as user_area, u.user_admin as user_admin, ua.nome as aberto_por, s.status as chamado_status, s.stat_cat as stat_cat_cod, s.stat_painel as stat_painel_cod, stc.stc_desc as status_cat, sls.slas_desc as sla_solucao, sls.slas_tempo as sla_solucao_tempo, slr.slas_desc as sla_resposta, slr.slas_tempo as sla_resposta_tempo, sol.script_desc, prioridade_atendimento.pr_nivel as pr_atendimento, prioridade_atendimento.pr_color as cor FROM ocorrencias as o left join sistemas as a on a.sis_id = o.sistema left join localizacao as l on l.loc_id = o.local left join instituicao as i on i.inst_cod = o.instituicao left join usuarios as u on u.user_id = o.operador left join usuarios as ua on ua.user_id = o.aberto_por left join `status` as s on s.stat_id = o.status left join status_categ as stc on stc.stc_cod = s.stat_cat left join problemas as p on p.prob_id = o.problema left join sla_solucao as sls on sls.slas_cod = p.prob_sla left join prioridades as pr on pr.prior_cod = l.loc_prior left join sla_solucao as slr on slr.slas_cod = pr.prior_sla left join script_solution as sol on sol.script_cod = o.oco_script_sol left join prior_atend as prioridade_atendimento on prioridade_atendimento.pr_cod = o.oco_prior WHERE o.oco_scheduled and o.sistema in (26,26,1,10,11,12,14,15,16,17,19,2,20,21,22,23,24,25,26,27,3,4,5,6,7,8,9) ORDER BY numero

Isso já ta me deixando doido já... Será que tem algum código de proteção pra ninguém ficar inserindo campos? rs confused
Voltar ao Topo Ir em baixo
Ver perfil do usuário
orbfx



Mensagens : 8
Data de inscrição : 16/04/2014

MensagemAssunto: Re: [RESOLVIDO] Campo customizado - Abertura de chamados   Ter Abr 22, 2014 1:14 pm

Consegui, fazendo do jeito certo (habilitando/desabilitando via configuração de perfil de usuario) com uma condição própria no incluir.php

Está cadastrando no banco, aparece na tela de consulta, tela de impressão e o operador também recebe o IP do usuário via e-mail.

Pra quem quiser adicionar novos campos na abertura de chamados, seguem os arquivos e as tabelas do banco que precisam ser alterados.

Arquivos:

ocomon/geral/incluir.php
ocomon/geral/incluir_2.php
ocomon/geral/mostra_consulta.php
ocomon/geral/mostra_relatorio_individual.php

admin/geral/screenprofiles.php
admin/geral/screen_profile_details.php

includes/language/pt_BR.php
includes/queries/queries.php

Banco de dados:

Tabela: ocorrencias
Tabela: configusercall

Se alguém tiver alguma dúvida posso ajudar.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Conteúdo patrocinado




MensagemAssunto: Re: [RESOLVIDO] Campo customizado - Abertura de chamados   

Voltar ao Topo Ir em baixo
 
[RESOLVIDO] Campo customizado - Abertura de chamados
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Suporte não-oficial ao OcoMon :: Sua primeira categoria :: GERAL-
Ir para: