@@ -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,14 @@ function alterar_valor_filtro_(pb_checked, ps
$(document).on('keyup', "#", function(event)
{
- if (event.key == "Escape")
+ 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 +733,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 +752,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 +812,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 +837,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 +861,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 +882,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 +954,7 @@ 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=&campo_codigo=&campo_valor=";
(pb_checked, ps
?>
$("#div_sugestoes_").load(vs_url_lista_sugestoes);
+ vs_select_options = $("#lista_ option");
- if ($("#lista_").length == 0)
+ if (vs_select_options.length == 0)
{
va_termos_inexistentes.push(vs_termo);
}
else
{
- $("#lista_").trigger('click');
- }
+ vs_found = false;
+ for (var j = 0; j < vs_select_options.length; j++)
+ {
+ vs_label = $(vs_select_options[j]).text().trim().toLowerCase();
+ if (vs_label == vs_termo.toLowerCase())
+ {
+ $(vs_select_options[j]).trigger('click');
+ vs_found = true;
+ break;
+ }
+ }
+ if (!vs_found)
+ {
+ va_termos_inexistentes.push(vs_termo);
+ }
+ }
}
}
- $("#").val("Não encontrados: " + va_termos_inexistentes.join(';'));
-
+
+ vs_termos_inexistentes = va_termos_inexistentes.join('; ');
+ vs_termos_inexistentes = vs_termos_inexistentes.trim("; ");
+
+ $("#div_sugestoes_").hide();
$("#div_adicionar_todos_").hide();
+ $("#").val(vs_termos_inexistentes);
});
function adicionar_(pn_valor_selecionado, ps_texto_selecionado)
diff --git a/app/components/campo_representantes_digitais.php b/app/components/campo_representantes_digitais.php
index 3e55ad3..267d090 100755
--- a/app/components/campo_representantes_digitais.php
+++ b/app/components/campo_representantes_digitais.php
@@ -154,7 +154,7 @@
}
elseif ($vs_rd_formato == "jpg")
{
- print utils::get_img_html_element($vs_rd_path, "thumb", "card-img-top image-viewer", "img_" . ($vn_linha_codigo-1), $vs_rp_legenda);
+ print utils::get_img_html_element($vs_rd_path, "thumb", "card-img-top image-viewer", "img_" . ($vn_linha_codigo), $vs_rp_legenda);
}
elseif ($vs_rd_formato == "pdf")
{
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/app/functions/campo_preview_representantes_digitais.php b/app/functions/campo_preview_representantes_digitais.php
index 7db5c68..e636758 100644
--- a/app/functions/campo_preview_representantes_digitais.php
+++ b/app/functions/campo_preview_representantes_digitais.php
@@ -1,49 +1,57 @@
ler($pn_objeto_codigo, "ficha");
-
- $va_valor_campo = $va_objeto["representante_digital_codigo"];
+if (isset($_GET['cod']) && $_GET['cod'])
+{
+ $pn_objeto_codigo = $_GET['cod'];
+ $pn_img_number = $_GET['img'];
- echo '
';
+ $vo_objeto = new $vs_id_objeto_tela($vs_id_objeto_tela);
+ $va_objeto = $vo_objeto->ler($pn_objeto_codigo, "ficha");
- $contador_imagens = 1;
- $vs_img_base64 = "";
+ $va_valor_campo = $va_objeto["representante_digital_codigo"];
- foreach($va_valor_campo as $va_valores_linha)
- {
+ echo '
';
- $vs_representante_digital_formato = $va_valores_linha['representante_digital_formato'];
- $vs_representante_digital_path = $va_valores_linha['representante_digital_path'];
+ $vn_initial_image_view = 0;
+ $vn_counter = 0;
- if ($vs_representante_digital_formato != "jpg")
- {
- continue;
- }
+ foreach ($va_valor_campo as $va_valores_linha)
+ {
+ $vs_representante_digital_formato = $va_valores_linha['representante_digital_formato'];
+ $vs_representante_digital_path = $va_valores_linha['representante_digital_path'];
- echo '
';
- echo utils::get_img_html_element($vs_representante_digital_path, "large", "card-img-top");
- echo '
';
+ if ($vs_representante_digital_formato != "jpg")
+ {
+ continue;
+ }
- $contador_imagens++;
+ if ($va_valores_linha['representante_digital_codigo'] == $pn_img_number)
+ {
+ $vn_initial_image_view = $vn_counter;
}
+ $vn_counter++;
+
+ echo '
';
+ echo utils::get_img_html_element($vs_representante_digital_path, "large", "card-img-top");
echo '
';
}
+
+ echo '
';
+}
?>
\ No newline at end of file
diff --git a/app/functions/montar_filtros_busca.php b/app/functions/montar_filtros_busca.php
index 85ddbd6..79a8ac3 100755
--- a/app/functions/montar_filtros_busca.php
+++ b/app/functions/montar_filtros_busca.php
@@ -237,6 +237,22 @@
$vb_buscar_niveis_inferiores = true;
}
}
+
+
+ $va_campos_dependentes = $va_campo_filtro["conectar"] ?? [];
+
+ foreach ($va_campos_dependentes as $va_campo_dependente)
+ {
+ $vs_filtro_dependente_submit = $va_parametros_submit[$va_campo_dependente["campo"]] ?? false;
+ $vb_auto_desabilitar = $va_campo_dependente["auto_desabilitar_se_dependente_preenchido"] ?? false;
+
+ if ($vs_filtro_dependente_submit && $vb_auto_desabilitar)
+ {
+ unset($va_parametros_filtros_consulta[$vs_campo]);
+ }
+ }
+
+
}
if (count($va_parametros_filtros_form))
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/objeto_base.php b/src/lib/system/objeto_base.php
index b75294f..caed03f 100755
--- a/src/lib/system/objeto_base.php
+++ b/src/lib/system/objeto_base.php
@@ -1780,7 +1780,7 @@ private function adicionar_ramos_hierarquicos($po_objeto, $po_objeto_coluna, &$p
];
$vs_limit = "";
- if ($pn_primeiro_registro)
+ if ($pn_primeiro_registro && $po_objeto_coluna->tabela_banco == $po_objeto->tabela_banco)
$vs_limit = " LIMIT " . ($pn_primeiro_registro - 1) . ", " . $pn_numero_registros;
$va_objetos_match_filtro_busca = $this->banco_dados->consultar($va_selects, $va_tipos_parametros_select, $va_parametros_select, null, $vs_limit);
@@ -4246,6 +4246,20 @@ private function processar_imagem($ps_path_arquivo_imagem, $vn_tamanho_maior_lad
{
case "image/jpeg":
$source = imagecreatefromjpeg($ps_path_arquivo_imagem);
+ $exif = exif_read_data($ps_path_arquivo_imagem);
+ if (!empty($exif['Orientation'])) {
+ switch ($exif['Orientation']) {
+ case 3:
+ $source = imagerotate($source, 180, 0);
+ break;
+ case 6:
+ $source = imagerotate($source, -90, 0);
+ break;
+ case 8:
+ $source = imagerotate($source, 90, 0);
+ break;
+ }
+ }
break;
case "image/png":
@@ -4263,8 +4277,8 @@ private function processar_imagem($ps_path_arquivo_imagem, $vn_tamanho_maior_lad
if (isset($source))
{
- $vn_width = $va_image_size[0];
- $vn_height = $va_image_size[1];
+ $vn_width = imagesx($source);
+ $vn_height = imagesy($source);
$ratio = $vn_width / $vn_height;
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'
];