Olá pessoal,
Estou enfrentando um problema e gostaria de pedir a ajuda de vocês.
No meu ambiente de desenvolvimento (Windows), a aplicação está funcionando perfeitamente. Porém, ao publicar no servidor do UOL (Linux - cPanel), o comportamento não é o mesmo.
Vou explicar o cenário:
Por gosto pessoal em trabalhar com desafios, implementei um código no campo “código” da tabela de orçamento que busca a descrição do material em outra tabela. Essa descrição é exibida ao inserir um novo registro em um campo do tipo texto com auto-complete.
Além disso, há um comportamento específico na aplicação:
- Ao navegar entre os registros, exibo somente a descrição do material;
- Porém, ao inserir um novo registro, apresento a descrição, a unidade e o fabricante.
Até esse ponto, tudo funciona perfeitamente no ambiente de desenvolvimento.
Gostaria de destacar que, mesmo utilizando condições no lookup, no ambiente de desenvolvimento tudo roda sem nenhum problema.Para facilitar a análise, vou anexar:
- Telas demonstrando o funcionamento na minha máquina (ambiente local);
- O código utilizado no lookup;
- O código implementado no evento onLoad da aplicação.
Lookup de edição:
SELECT
p.PRO_CODIGO,
IF(’[v_modo_novo]’ = ‘1’,
CONCAT(
RPAD(LEFT(IFNULL(p.PRO_DESCRICAO, ’ '), 80), 80, ’ '),
RPAD(IFNULL(p.UNI_CODIGO, ’ '), 10, ’ '),
IFNULL(f.FAB_NOME, ‘’)
),
p.PRO_DESCRICAO
)
FROM
produto p
LEFT JOIN
fabric f ON p.FAB_CODIGO = f.FAB_CODIGO
ORDER BY
p.PRO_DESCRICAO
Código no Onload:
?>
<style>
/* --- ESTRUTURA GERAL --- */
input, select, textarea { width: 100% !important; box-sizing: border-box; }
/* Mantém o campo de texto do form com tamanho e fonte padrão do seu tema */
input.ui-autocomplete-input, #id_sc_field_pro_codigo {
font-family: inherit !important;
font-size: inherit !important;
height: auto !important;
}
/* --- ESTILO DA LISTA (DROPDOWN) --- */
.ui-menu-item-wrapper, .select2-results__option {
font-family: 'Courier New', Courier, monospace !important;
font-size: 13px !important;
white-space: pre !important;
display: block !important;
position: relative !important;
line-height: normal !important;
padding-right: 20px !important;
}
/* --- AS LINHAS VERTICAIS (SUAS CONFIGURAÇÕES DE 80 CHARS) --- */
.ui-menu-item-wrapper::before, .select2-results__option::before {
content: "" !important; position: absolute !important;
left: 600px;
top: 0; bottom: 0; width: 1px !important; background-color: #ccc !important;
}
.ui-menu-item-wrapper::after, .select2-results__option::after {
content: "" !important; position: absolute !important;
left: 670px;
top: 0; bottom: 0; width: 1px !important; background-color: #ccc !important;
}
/* Seus labels originais */
#hidden_field_label_unidade, #hidden_field_label_preco_venda, #hidden_field_label_preco_custo {
text-align: right !important; width: 0% !important; white-space: nowrap !important;
}
</style>
<script>
$(document).ready(function() {
// Função que limpa tudo que passar de 80 caracteres (Unidade e Fabricante)
function forcarLimpeza(v) {
if(!v) return "";
return v.substring(0, 80).trim();
}
// 1. Limpa quando você clica ou navega no dropdown
$(document).on('autocompletefocus autocompleteselect', '.ui-autocomplete-input', function(event, ui) {
if (ui.item && ui.item.label) {
$(this).val(forcarLimpeza(ui.item.label));
event.preventDefault();
}
});
// 2. Limpa na navegação (previne o "vazamento" da unidade no campo)
setInterval(function() {
$(".ui-autocomplete-input").each(function() {
var atual = $(this).val();
if (atual.length > 80) {
$(this).val(forcarLimpeza(atual));
}
});
}, 100);
});
</script>
<?php
// Lógica de botão novo / navegação
if (sc_btn_new) {
[v_modo_novo] = '1';
} else {
[v_modo_novo] = '0';
}
sc_set_global([v_modo_novo]);
// Linha de segurança para o banco (opcional)
sc_exec_sql("SET @modo = " . [v_modo_novo]);
Se alguém já passou por algo semelhante ou puder me orientar sobre o que pode estar causando essa diferença de comportamento entre os ambientes, ficarei muito grato.
Agradeço desde já pela atenção e ajuda!
Atenciosamente.

