@@ -694,6 +700,7 @@ function alterar_valor_filtro_(pb_checked, ps
$("#").val('');
$("#div_sugestoes_").empty();
$("#lista_").focus();
+
}
else if (event.keyCode == 38)
{
@@ -709,14 +716,15 @@ function alterar_valor_filtro_(pb_checked, ps
$(document).on('keyup', "#", function(event)
{
- if (event.key == "Escape")
+ console.log("teste")
+ if (event.key == "Escape")
{
// Se a tecla é ESC, apaga o conteúdo do campo
$("#").val('');
$("#div_sugestoes_").empty();
}
- else if (event.keyCode == 40)
+ else if (event.keyCode == 40)
{
// Se a tecla é arrow down, seleciona move para o segundo item da lista de sugestão
@@ -726,13 +734,13 @@ function alterar_valor_filtro_(pb_checked, ps
$("#lista_").focus();
}
}
- else if (event.keyCode == 38)
+ else if (event.keyCode == 38)
{
// Se a tecla é arrow down, seleciona move para o segundo item da lista de sugestão
if ($("#lista_").prop('selectedIndex') == 0)
$("#").focus();
}
- else if (event.key == "Enter")
+ else if (event.key == "Enter")
{
$("#lista_").trigger("click");
}
@@ -745,7 +753,7 @@ function alterar_valor_filtro_(pb_checked, ps
timeout_campo_ = setTimeout(function()
{
vb_valor_no_input = false;
-
+
(pb_checked, ps
foreach($va_dependencias as $v_campo_conexao)
{
- if (isset($v_campo_conexao["campo"]))
+ if (isset($v_campo_conexao["campo"]))
{
?>
vs_filtro += '&='+$("#").val();
@@ -805,7 +813,7 @@ function alterar_valor_filtro_(pb_checked, ps
{
?>
vs_url_valores_proibidos = "functions/ler_valores_proibidos.php?campo=&obj=";
-
+
// Vamos adicionar aqui o código do próprio registro, se existir (é atualização)
////////////////////////////////////////////////////////////////////////////////
@@ -830,7 +838,7 @@ function alterar_valor_filtro_(pb_checked, ps
vs_url_valores_proibidos = vs_url_valores_proibidos + "&="+$("#").val();
}
- $.get(vs_url_valores_proibidos, function(data, status)
+ $.get(vs_url_valores_proibidos, function(data, status)
{
vs_valores_proibidos = data;
});
@@ -854,7 +862,7 @@ function alterar_valor_filtro_(pb_checked, ps
?>
vs_url_lista_sugestoes = "functions/autocomplete.php?tela=&campo=&campo_codigos=&termo="+encodeURIComponent(vs_termo)+"&obj="+"&procurar_por=&permitir_cadastro=&campo_codigo=&campo_valor=&operador=&configuracao_padrao="+vs_filtro;
-
+
@@ -875,6 +883,63 @@ function alterar_valor_filtro_(pb_checked, ps
}
});
+
+$(document).on('click', "#div_adicionar_restantes_", function()
+{
+ vs_termos = $("#").val();
+ va_termos = vs_termos.split(";");
+ var va_termos_inexistentes = [];
+
+ //Para chamar corretamente o load mais de uma vez
+ jQuery.ajaxSetup({async:false});
+
+ for (var i = 0; i < va_termos.length; i++)
+ {
+ vs_termo = va_termos[i].trim();
+
+ if (vs_termo != "")
+ {
+ vs_url_lista_sugestoes = "functions/autocomplete.php?tela=&campo=&termo="+encodeURIComponent(vs_termo)+"&obj="+"&procurar_por=&permitir_cadastro=1&campo_codigo=&campo_valor=";
+
+ //vs_url_lista_sugestoes = "functions/autocomplete.php?tela=//&campo=//&termo="+encodeURIComponent(vs_termo)+"&obj=//"+"&procurar_por=//&_permitir_cadastro_=//&campo_codigo=//&campo_valor=//";
+
+
+ vs_url_lista_sugestoes = vs_url_lista_sugestoes + "&excluir=";
+
+
+ $("#div_sugestoes_").load(vs_url_lista_sugestoes);
+
+ if ($("#lista_").length == 0)
+ {
+ va_termos_inexistentes.push(vs_termo);
+ }
+ else
+ {
+ $("#lista_").trigger('click');
+ }
+
+ }
+ }
+ //if (va_termos_inexistentes.length > 0) {
+ // console.log("abc")
+ // $("#btn_adicionar_restantes_//")
+ // .text("Cadastrar termos inexistentes (" + va_termos_inexistentes.length + ")");
+ // $("#div_adicionar_restantes_//").show();
+ //
+ //
+ // // botao adicionar termos inexistentes
+ //}
+
+ //$("#//").val("Não encontrados: " + va_termos_inexistentes.join(';'));
+
+ $("#div_adicionar_restantes_").hide();
+});
+
+
$(document).on('click', "#btn_adicionar_todos_", function()
{
vs_termos = $("#").val();
@@ -890,7 +955,10 @@ function alterar_valor_filtro_(pb_checked, ps
if (vs_termo != "")
{
- vs_url_lista_sugestoes = "functions/autocomplete.php?tela=&campo=&termo="+encodeURIComponent(vs_termo)+"&obj="+"&procurar_por=&_permitir_cadastro_=&campo_codigo=&campo_valor=";
+ //vs_url_lista_sugestoes = "functions/autocomplete.php?tela=//&campo=//&termo="+encodeURIComponent(vs_termo)+"&obj=//"+"&procurar_por=//&permitir_cadastro=1&campo_codigo=//&campo_valor=//";
+ //vs_url_lista_sugestoes = "functions/autocomplete.php?tela=//&campo=//&termo="+encodeURIComponent(vs_termo)+"&obj=//"+"&procurar_por=//&_permitir_cadastro_=//&campo_codigo=//&campo_valor=//&lote=1";
+
+ vs_url_lista_sugestoes = "functions/autocomplete.php?tela=&campo=&termo="+encodeURIComponent(vs_termo)+"&obj="+"&procurar_por=&permitir_cadastro=&campo_codigo=&campo_valor=";
(pb_checked, ps
}
}
+ if (va_termos_inexistentes.length > 0) {
+ //console.log("abc")
+ //$("#btn_adicionar_restantes_//")
+ // .text("Cadastrar termos inexistentes (" + va_termos_inexistentes.length + ")");
+ //$("#div_adicionar_restantes_//").show();
+
+ vs_url_lista_sugestoes = "functions/autocomplete.php?tela=&campo=&termo="+encodeURIComponent(va_termos_inexistentes.join(`;`))+"&obj="+"&procurar_por=&permitir_cadastro=&campo_codigo=&campo_valor=&lote=1&campo_codigos=";
+ $("#div_sugestoes_").load(vs_url_lista_sugestoes);
+
+
+ // botao adicionar termos inexistentes
+ }
+
$("#").val("Não encontrados: " + va_termos_inexistentes.join(';'));
$("#div_adicionar_todos_").hide();
diff --git a/app/components/link_cadastrar.php b/app/components/link_cadastrar.php
index 6cee8ab..44d7d59 100644
--- a/app/components/link_cadastrar.php
+++ b/app/components/link_cadastrar.php
@@ -10,7 +10,7 @@
-
+
diff --git a/app/functions/autocomplete.php b/app/functions/autocomplete.php
index 167e260..97c85ce 100644
--- a/app/functions/autocomplete.php
+++ b/app/functions/autocomplete.php
@@ -302,6 +302,9 @@
$vs_campo = "";
if (isset($_GET['campo']))
$vs_campo = $_GET['campo'];
+
+ if (isset($_GET['lote']))
+ $vb_lote = $_GET['lote'];
if (!$vs_campo)
{
@@ -349,7 +352,14 @@
$vs_termo = "";
if (isset($_GET['termo']))
+ {
$vs_termo = trim($_GET['termo']);
+ if(strpos($vs_termo, '>'))
+ {
+ $va_termos = explode('>', $vs_termo);
+ $vs_termo = trim($va_termos[array_key_last($va_termos)]);
+ }
+ }
$vs_operador = $_GET['operador'] ?? "LIKE";
@@ -440,21 +450,39 @@
}
//elseif (isset($va_termo_busca[$va_parametros_campo["nome"]]))
//$va_termo_busca[$va_parametros_campo["atributo"]] = $va_objeto[$va_parametros_campo["nome"]];
-
+ function load_link_cadastro ($vs_id_objeto_campo, $vs_campo, $vs_termo, $campo_salvar, $i = 0) {
+ $vo_html_link_cadastrar = new html_link_cadastrar($vs_id_objeto_campo, $vs_campo, $i);
+ $vo_html_link_cadastrar->set_termo_busca($vs_termo);
+ $vo_html_link_cadastrar->build($campo_salvar ?? null, $i);
+ return true;
+ }
$vo_html_selection_list_input = new html_combo_input(null, $vs_campo, "autocomplete");
$vo_html_selection_list_input->build($va_termo_busca, $va_parametros_campo);
-
+
if ($vb_permitir_cadastro && $vb_pode_inserir)
{
- $vo_objeto_tela = new $vs_id_objeto_tela('');
- $va_campos_edicao_objeto_tela = $vo_objeto_tela->get_campos_edicao();
- $vo_html_link_cadastrar = new html_link_cadastrar($vs_id_objeto_campo, $vs_campo);
- $vo_html_link_cadastrar->set_termo_busca($vs_termo);
-
- $vo_html_link_cadastrar->build($va_campos_edicao_objeto_tela[$vs_campo_codigos]["campo_salvar"] ?? null);
+ if (isset($vb_lote) && $vb_lote) {
+ $vo_objeto_tela = new $vs_id_objeto_tela('');
+ $va_campos_edicao_objeto_tela = $vo_objeto_tela->get_campos_edicao();
+ $va_items_lote = explode(";", $vs_termo);
+ foreach ($va_items_lote as $vn_item_index => $va_item_lote) {
+ load_link_cadastro($vs_id_objeto_campo, $vs_campo, $va_item_lote, $va_campos_edicao_objeto_tela[$vs_campo_codigos]["campo_salvar"], $vn_item_index);
+ }
+
+ } else {
+ $vo_objeto_tela = new $vs_id_objeto_tela('');
+ $va_campos_edicao_objeto_tela = $vo_objeto_tela->get_campos_edicao();
+ load_link_cadastro($vs_id_objeto_campo, $vs_campo, $vs_termo, $va_campos_edicao_objeto_tela[$vs_campo_codigos]["campo_salvar"]);
+ }
+
+// $vo_html_link_cadastrar = new html_link_cadastrar($vs_id_objeto_campo, $vs_campo);
+//
+// $vo_html_link_cadastrar->set_termo_busca($vs_termo);
+//
+// $vo_html_link_cadastrar->build($va_campos_edicao_objeto_tela[$vs_campo_codigos]["campo_salvar"] ?? null);
}
?>
diff --git a/src/lib/html/html_combo_input.php b/src/lib/html/html_combo_input.php
index bf30969..d1717e6 100755
--- a/src/lib/html/html_combo_input.php
+++ b/src/lib/html/html_combo_input.php
@@ -28,6 +28,10 @@ public function preencher($pa_filtro_listagem, $pa_parametros_campo)
{
$va_itens = array();
$va_filtro = array();
+ if(isset($pa_filtro_listagem['termo']) && strpos($pa_filtro_listagem['termo'], '>'))
+ {
+ $vo_transliterator = Transliterator::createFromRules(':: Lower; :: Any-Latin; :: Latin-ASCII; :: NFD; :: [:Nonspacing Mark:] Remove; :: NFC;', Transliterator::FORWARD);
+ }
if (isset($pa_parametros_campo["dependencia"]))
{
@@ -168,6 +172,31 @@ public function preencher($pa_filtro_listagem, $pa_parametros_campo)
$vs_item_lista_value = join(" > ", $va_item_lista_value);
// Temos que generalizar essa montagem numa função
+
+ if(isset($pa_filtro_listagem['termo']) && strpos($pa_filtro_listagem['termo'], '>'))
+ {
+ $vb_todos_termos_encontrados = true;
+
+ $va_termos_procurados_normalizado = $vo_transliterator->transliterate($pa_filtro_listagem['termo']); // Remove acentos para a comparação
+ $va_termos_procurados_normalizado = preg_replace('/\s+/', '', $va_termos_procurados_normalizado); // Remove whitespaces para a comparação
+ $va_termos_procurados_normalizado = explode('>', $va_termos_procurados_normalizado);
+
+ $vs_item_lista_value_normalizado = $vo_transliterator->transliterate($vs_item_lista_value); // Remove acentos para a comparação
+ $vs_item_lista_value_normalizado = preg_replace('/\s+/', '', $vs_item_lista_value_normalizado); // Remove whitespaces para a comparação
+
+ foreach($va_termos_procurados_normalizado as $vs_termo_procurado)
+ {
+ if(!str_contains($vs_item_lista_value_normalizado, $vs_termo_procurado))
+ {
+ $vb_todos_termos_encontrados = false;
+ break;
+ }
+ }
+ if(!$vb_todos_termos_encontrados)
+ {
+ continue;
+ }
+ }
}
else
{
diff --git a/src/lib/html/html_link_cadastrar.php b/src/lib/html/html_link_cadastrar.php
index 297d35e..91eb3dc 100755
--- a/src/lib/html/html_link_cadastrar.php
+++ b/src/lib/html/html_link_cadastrar.php
@@ -3,7 +3,7 @@
class html_link_cadastrar extends html_input
{
-public function build($pa_campos_salvar)
+public function build($pa_campos_salvar, $vn_iteracao = 0)
{
$vs_id_objeto_tela = $this->get_tela();
$vs_nome_campo = $this->get_nome();
diff --git a/src/lib/system/visualizacao.php b/src/lib/system/visualizacao.php
index fdf3e12..295c328 100755
--- a/src/lib/system/visualizacao.php
+++ b/src/lib/system/visualizacao.php
@@ -47,7 +47,7 @@ public function inicializar_atributos()
$va_atributos['visualizacao_habilitado'] = [
'visualizacao_habilitado',
- 'coluna_tabela' => 'habilitado',
+ 'coluna_tabela' => 'habilitada',
'tipo_dado' => 'b'
];