
Buckminster
(usa Debian)
Enviado em 08/04/2025 - 21:42h
"O campo que esta falhando fica em: Admin > Configurações estendidas > Entrada dos chamados na fila > Canal da solicitação."
Aqui o campo está populando, mas somente quando cadastro o campo como "Apenas uso interno" em Admin > Ocorrências > Canais de solicitação > Novo > e habilito "Apenas uso interno" > Confirma.
Tem por padrão 4 canais: Automático: via Email Padrão, Email, Sistema Web e Telefone.
No campo "Canal da solicitação" nas Configurações Estendidas aparece somente o canal "Automático: via Email" por ser o padrão.
Cadastrei um canal chamado "Interno" e habilitei "Apenas uso interno" e habilitei o canal "Email" como uso interno e os três (Automático: Email, Email e Interno) apareceram em Admin > Configurações Gerais > Configurações estendidas > Entrada dos chamados na fila > Canal da solicitação, nem precisei pesquisar.
Depois cadastrei o canal "Teste" sem ser de uso interno e não apareceu. Quando editei como "Apenas uso interno", apareceu.
Depois cadastrei um canal como "1" e também apareceu.
Veja, no banco, as tuplas dos cadastros "Interno", "Teste" e "1" que eu fiz no Ocomon.
Os outros vieram por padrão.
mysql> select * from channels;
+----+-----------------------+------------+--------------------+
| id | name | is_default | only_set_by_system |
+----+-----------------------+------------+--------------------+
| 1 | Sistema Web | 0 | 0 |
| 2 | Telefone | 0 | 0 |
| 3 | Autom�tico: via Email | 1 | 1 |
| 4 | Email | 0 | 1 |
| 5 | Interno | 0 | 1 |
| 6 | Teste | 0 | 1 |
| 7 | 1 | 0 | 1 |
+----+-----------------------+------------+--------------------+
7 rows in set (0.01 sec)
Veja que na função do arquivo dbFunctions já trata isso (linhas 7664 a 7674), como você disse:
if (!$id && !empty($type)) {
if (in_array($type, $typeList)) {
$terms = "WHERE only_set_by_system = :type ";
} else {
$return[] = "Invalid type for channel";
return $return;
}
$filter = ($type == "restrict" ? 1 : 0);
}
$terms = ($id ? "WHERE id = :id " : $terms); /* Se tiver $id não importa o $type */
Talvez você esqueceu de configurar alguma coisa.
Talvez você atualizou direto de uma versão anterior e por isso está dando problemas.
Eu aqui instalei do zero, baixei o Ocomon 6.0.1 do site.
Eu não mexi em nada no código, apenas instalei tudo e fiz o importe do banco como diz nas instruções:
mysql -u root -p < /caminho_para_o_ocomon_6.x/install/6.x/01-DB_OCOMON_6.x-FRESH_INSTALL_STRUCTURE_AND_BASIC_DATA.sql
e depois configurei o config.inc.php.
Habilitei o Display_errors no php.ini, etc.
Ou talvez eu não esteja entendendo o que você está querendo dizer com "o campo não está sendo populado".
Arquivo config_plus.php aqui, nas linhas que interessam ao caso (linhas 69 a 92):
* Chamados abertos por e-mail
*/
/* Nome de usuário para a abertura de chamados automáticos */
if ($configs['API_TICKET_BY_MAIL_USER']){
$userToOpenTickets = getUserInfo($conn, 1, $configs['API_TICKET_BY_MAIL_USER'])['login'];
} else {
$userToOpenTickets = "admin";
}
/* Canal da Solicitação para chamados abertos por e-mail*/
$channelToOpenTickets = getChannels($conn, $configs['API_TICKET_BY_MAIL_CHANNEL'])['name'];
/* Cliente de entrada para chamados abertos por e-mail */
$clientToOpenTickets = TRANS('FILL_EMPTY');
if (isset($configs['API_TICKET_BY_MAIL_CLIENT']) && $configs['API_TICKET_BY_MAIL_CLIENT'])
$clientToOpenTickets = getClients($conn, $configs['API_TICKET_BY_MAIL_CLIENT'])['nickname'];
/* Área de entrada para chamados abertos por e-mail */
$areaToOpenTickets = "";
if ($configs['API_TICKET_BY_MAIL_AREA'])
$areaToOpenTickets = getAreaInfo($conn, $configs['API_TICKET_BY_MAIL_AREA'])['area_name'];
/* Status de entrada para chamados abertos por e-mail */
$statusToOpenTickets = "";
if ($configs['API_TICKET_BY_MAIL_STATUS'])
$statusToOpenTickets = getStatusById($conn, $configs['API_TICKET_BY_MAIL_STATUS'])['status'];
_________________________________________________________
Always listen the Buck!
Enquanto o cursor estiver pulsando, há vida!