diff --git a/app/assets/css/style.css b/app/assets/css/style.css
index ed75fd4..b0b599d 100644
--- a/app/assets/css/style.css
+++ b/app/assets/css/style.css
@@ -15019,4 +15019,8 @@ padding-right: 0px;
display: inline-flex !important;
align-items: center;
justify-content: center;
+}
+
+.fs-7 {
+ font-size: 0.85rem !important;
}
\ No newline at end of file
diff --git a/app/components/barra_visualizacoes.php b/app/components/barra_visualizacoes.php
index 0625785..e7d3f74 100644
--- a/app/components/barra_visualizacoes.php
+++ b/app/components/barra_visualizacoes.php
@@ -6,11 +6,16 @@
"nome" => "visualizacao_codigo",
"label" => "Visualização",
"objeto" => "visualizacao",
- "sem_valor" => true,
+ "sem_valor" => false,
+ "atributo_obrigatorio" => true,
"dependencia" => [
[
"campo" => "recurso_sistema_codigo",
"atributo" => "visualizacao_recurso_sistema_codigo"
+ ],
+ [
+ "campo" => "visualizacao_contexto_visualizacao_codigo",
+ "atributo" => "visualizacao_contexto_visualizacao_codigo"
]
],
"filtro" => [
@@ -31,6 +36,11 @@
$va_valores["recurso_sistema_id"] = $vs_id_objeto_tela;
$va_valores["recurso_sistema_codigo"] = $vn_recurso_sistema_codigo;
+ if ($vs_modo == "listagem")
+ $va_valores["visualizacao_contexto_visualizacao_codigo"] = 3;
+ elseif ($vs_modo == "ficha")
+ $va_valores["visualizacao_contexto_visualizacao_codigo"] = 4;
+
$vo_combo_visualizacoes->build($va_valores, $va_parametros_campo);
?>
diff --git a/app/components/campo_representantes_digitais.php b/app/components/campo_representantes_digitais.php
index 267d090..7c93842 100755
--- a/app/components/campo_representantes_digitais.php
+++ b/app/components/campo_representantes_digitais.php
@@ -138,7 +138,12 @@
$vs_rp_legenda = $va_valores_linha["representante_digital_legenda"] ?? "";
$vs_rd_formato = $va_valores_linha["representante_digital_formato"] ?? "";
- $vs_download_link = "functions/serve_file.php?file=" . $vs_rd_path . "&size=original&download=1&name=" . $vs_label_objeto . "-" . $vn_numero_campo;
+ $vs_file_extension = isset($va_valores_linha["representante_digital_nome_original"]) ? strtolower(pathinfo($va_valores_linha["representante_digital_nome_original"], PATHINFO_EXTENSION)) : strtolower(pathinfo($vs_rd_path, PATHINFO_EXTENSION));
+ $vs_file_hash = pathinfo($vs_rd_path, PATHINFO_FILENAME);
+
+ $vs_download_file = $vs_file_hash . "." . $vs_file_extension;
+
+ $vs_download_link = "functions/serve_file.php?file=" . $vs_download_file . "&size=original&download=1&name=" . $vs_label_objeto . "-" . $vn_numero_campo;
// if ($pa_parametros_campo["tipo"] == 2)
// $vs_download_link .= "&folder=documents";
diff --git a/app/components/dashboard_estatisticas.php b/app/components/dashboard_estatisticas.php
index d436c4c..c87657b 100644
--- a/app/components/dashboard_estatisticas.php
+++ b/app/components/dashboard_estatisticas.php
@@ -29,7 +29,7 @@
diff --git a/app/components/dashboard_resultado_busca.php b/app/components/dashboard_resultado_busca.php
index 37bec52..70f2e8e 100644
--- a/app/components/dashboard_resultado_busca.php
+++ b/app/components/dashboard_resultado_busca.php
@@ -14,13 +14,37 @@
$va_parametros_filtros_consulta[$vo_dashboard->get_filtro_busca_geral($vs_id_objeto_tela)] = [$vs_termo_busca, "LIKE"];
$vs_formato_listagem = "default";
+
require dirname(__FILE__) . "/../functions/montar_listagem.php";
$va_itens_listagem = $va_itens_listagem ?? [];
- if ($vb_busca_id && count($va_itens_listagem))
+ if ($vb_busca_id && count($va_itens_listagem) != 0)
{
- print '';
+ $vs_identifier_attribute = $vo_objeto->tem_atributo("item_acervo_identificador_sort") ? "item_acervo_identificador_sort" : "item_acervo_identificador";
+
+ $vn_objeto_codigo = $va_itens_listagem[0][$vo_objeto->get_chave_primaria()[0]];
+ $vs_current_object_identifier = $va_itens_listagem[0][$vs_identifier_attribute];
+
+ $vn_numero_registros = $vo_objeto->ler_numero_registros([]);
+ $vn_numero_paginas = ceil($vo_objeto->ler_numero_registros([]) / 20);
+ $vn_middle_page = ($vn_numero_paginas > 1) ? floor($vn_numero_paginas / 2) : 1;
+
+ list($vn_pagina_atual, $va_codigos_listagem) = $vo_objeto->encontrar_pagina_item_acervo($vs_current_object_identifier, $vs_identifier_attribute, $vn_middle_page, 1, $vn_numero_paginas);
+
+ $vn_primeiro_registro = ($vn_pagina_atual - 1)*20 + 1;
+ $vn_ultimo_registro = $vn_primeiro_registro + 19;
+
+ if ($vn_ultimo_registro > $vn_numero_registros)
+ $vn_ultimo_registro = $vn_numero_registros;
+
+ //$_SESSION[$vs_id_objeto_tela]["numero_registros"] = count($va_lista_objetos);
+ $_SESSION[$vs_id_objeto_tela]["numero_registros"] = $vn_numero_registros;
+ $_SESSION[$vs_id_objeto_tela]['campo_paginacao'] = 'paginacao_top';
+ $_SESSION[$vs_id_objeto_tela]['paginacao_top'] = $vn_pagina_atual;
+ $_SESSION[$vs_id_objeto_tela]["listagem_codigos"] = $va_codigos_listagem;
+
+ print '';
}
if (count($va_itens_listagem))
diff --git a/app/components/ler_valor.php b/app/components/ler_valor.php
index 0b7cf95..316158b 100644
--- a/app/components/ler_valor.php
+++ b/app/components/ler_valor.php
@@ -14,6 +14,11 @@ function ler_valor1($ps_atributo, $pa_item, $pa_opcoes_campo=null, $pn_numero_it
return "";
}
+ if (isset($pa_item[$ps_atributo]) && isset($pa_opcoes_campo["valores"]))
+ {
+ return $pa_opcoes_campo["valores"][$pa_item[$ps_atributo]] ?? "";
+ }
+
if (isset($pa_opcoes_campo["formato"]["data"]))
{
$vo_data = new Periodo;
@@ -34,6 +39,9 @@ function ler_valor1($ps_atributo, $pa_item, $pa_opcoes_campo=null, $pn_numero_it
if (isset($pa_item[$ps_atributo . "_sem_data"]))
$vo_data->set_sem_data($pa_item[$ps_atributo . "_sem_data"]);
+ if (isset($pa_item[$ps_atributo . "_periodo"]))
+ $vo_data->set_complemento($pa_item[$ps_atributo . "_periodo"]);
+
if ($pa_opcoes_campo["formato"]["data"] == "ano")
$va_data = $vo_data->get_data_exibicao();
diff --git a/app/editar.php b/app/editar.php
index ec48203..b87b209 100644
--- a/app/editar.php
+++ b/app/editar.php
@@ -145,11 +145,24 @@
$vn_pagina_atual = 1;
if (isset($_SESSION[$vs_id_objeto_tela]["campo_paginacao"]) && isset($_SESSION[$vs_id_objeto_tela][$_SESSION[$vs_id_objeto_tela]["campo_paginacao"]]))
- $vn_pagina_atual = $_SESSION[$vs_id_objeto_tela][$_SESSION[$vs_id_objeto_tela]["campo_paginacao"]];
+ $vn_pagina_atual = $_SESSION[$vs_id_objeto_tela][$_SESSION[$vs_id_objeto_tela]["campo_paginacao"]] ;
+ elseif (isset($_SESSION[$vs_id_objeto_tela]["campo_paginacao"]) && ($_SESSION[$vs_id_objeto_tela]["campo_paginacao"]))
+ {
+ $vn_pagina_atual = $_SESSION[$vs_id_objeto_tela]["campo_paginacao"];
+ }
else
$_SESSION[$vs_id_objeto_tela]["campo_paginacao"] = "paginacao_topo";
- if (in_array($vn_objeto_codigo, ["p", "n", "f", "l"]))
+// p = previous
+// n = next
+// f = first
+// l = last
+
+
+ $vb_sincronizar = isset($_SESSION[$vs_id_objeto_tela]["sincronizar"]);
+
+
+ if (in_array($vn_objeto_codigo, ["p", "n", "f", "l"]) || isset($vb_sincronizar))
{
if ( ($vn_objeto_codigo == "p") && ($vn_pagina_atual > 1) )
$vn_pagina_atual = $vn_pagina_atual - 1;
@@ -171,9 +184,11 @@
$vb_usar_parametros_sessao = true;
$vs_modo = "listagem";
-
+
+
require dirname(__FILE__)."/functions/montar_listagem.php";
+
$vs_modo = "edicao";
// A listagem_codigos só é atualizada após a chamada para /montar_listagem.php
diff --git a/app/ficha.php b/app/ficha.php
index 580c163..91d1e88 100644
--- a/app/ficha.php
+++ b/app/ficha.php
@@ -40,7 +40,10 @@
if (isset($_GET['visualizacao_codigo']))
$vs_visualizacao = $_GET['visualizacao_codigo'];
else
+ {
$vs_visualizacao = "ficha";
+ $vn_contexto_visualizacao = 4;
+ }
$va_registros_filhos = array();
diff --git a/app/functions/download.php b/app/functions/download.php
index 7650a90..51b5af5 100644
--- a/app/functions/download.php
+++ b/app/functions/download.php
@@ -55,11 +55,9 @@
foreach ($va_files as $va_rd)
{
$ps_size = 'original';
- if ($va_rd['representante_digital_formato'] != "pdf")
- {
- $ps_size = 'large';
- }
- $vs_file_path = get_file_path($va_rd['representante_digital_path'], $ps_size);
+
+ $vs_file_path = get_file_path($va_rd['representante_digital_path'], $ps_size, null, $va_rd['representante_digital_nome_original']);
+
if (file_exists($vs_file_path))
{
$zip->addFile($vs_file_path, $vs_identificador . "-$counter." . pathinfo($vs_file_path, PATHINFO_EXTENSION));
diff --git a/app/functions/file_handler.php b/app/functions/file_handler.php
index cd77dab..7d8cedf 100644
--- a/app/functions/file_handler.php
+++ b/app/functions/file_handler.php
@@ -1,6 +1,6 @@
+
+
+
+ ';
+ }
}
if (!$vb_atualizacao_campo && ($vs_modo != "listagem") && isset($va_aba["campos"]) && count($va_aba["campos"]))
@@ -209,4 +230,10 @@
$contador++;
}
-?>
\ No newline at end of file
+?>
+
+
diff --git a/app/functions/montar_listagem.php b/app/functions/montar_listagem.php
index 3e49395..1b47502 100644
--- a/app/functions/montar_listagem.php
+++ b/app/functions/montar_listagem.php
@@ -203,6 +203,7 @@
$vn_primeiro_registro = ($vn_pagina_atual -1)*NUMERO_ITENS_PAGINA_LISTAGEM + 1;
$vn_numero_registros_lista = NUMERO_ITENS_PAGINA_LISTAGEM;
}
+
else
$vn_numero_registros_lista = $vn_numero_registros;
@@ -217,8 +218,8 @@
$va_itens_listagem = $va_objetos_lista;
}
else
- {
- $va_visualizacao_lista = $vo_objeto->get_visualizacao($vs_visualizacao);
+ {
+ $va_visualizacao_lista = $vo_objeto->get_visualizacao($vs_visualizacao, ($vn_contexto_visualizacao ?? null));
if (isset($va_visualizacao_lista["ordem_campos"]))
$va_campos_visualizacao = $va_visualizacao_lista["ordem_campos"];
@@ -276,13 +277,13 @@
}
- if (isset($vs_label_campo_visualizacao["id_field"]))
+ if (!empty($vs_label_campo_visualizacao["id_field"]))
$vb_id_field = true;
- if (isset($vs_label_campo_visualizacao["main_field"]))
+ if (!empty($vs_label_campo_visualizacao["main_field"]))
$vb_main_field = true;
- if (isset($vs_label_campo_visualizacao["descriptive_field"]))
+ if (!empty($vs_label_campo_visualizacao["descriptive_field"]))
$vb_descriptive_field = true;
if (isset($vs_label_campo_visualizacao["label"]))
diff --git a/app/listar.php b/app/listar.php
index 964f695..a8c78c0 100755
--- a/app/listar.php
+++ b/app/listar.php
@@ -38,7 +38,10 @@
if (isset($_GET['visualizacao_codigo']))
$vs_visualizacao = $_GET['visualizacao_codigo'];
else
+ {
$vs_visualizacao = "navegacao";
+ $vn_contexto_visualizacao = 3;
+ }
$vb_back_from_editing = false;
if (isset($_GET['back']) && $_GET['back'])
diff --git a/config/constants.php b/config/constants.php
index 6869aae..320c90b 100644
--- a/config/constants.php
+++ b/config/constants.php
@@ -69,10 +69,14 @@
"assets/custom/img/logo.png" : "assets/img/favicon.png",
"media_types" => [
- "image/jpeg" => [
+ "image/jpg" => [
"folder" => "images",
"format" => "jpg"
],
+ "image/jpeg" => [
+ "folder" => "images",
+ "format" => "jpeg"
+ ],
"image/png" => [
"folder" => "images",
"format" => "png"
diff --git a/src/lib/html/html_date_input.php b/src/lib/html/html_date_input.php
index e71fe6e..066a1c3 100755
--- a/src/lib/html/html_date_input.php
+++ b/src/lib/html/html_date_input.php
@@ -91,8 +91,8 @@ public function build(&$pa_valores_form=null, $pa_parametros_campo=array())
$vb_campo_preenchido = true;
}
- if (isset($pa_valores_form[$pa_parametros_campo["nome"] . "_presumido" . $vs_sufixo_nome_campo]))
- $vb_presumido = $pa_valores_form[$pa_parametros_campo["nome"] . "_presumido" . $vs_sufixo_nome_campo];
+ if (isset($pa_valores_form[$pa_parametros_campo["nome"] . "_presumido" . $vs_sufixo_nome_campo]) || isset($pa_valores_form[$pa_parametros_campo["nome"] . "_data_presumida" . $vs_sufixo_nome_campo]))
+ $vb_presumido = $pa_valores_form[$pa_parametros_campo["nome"] . "_presumido" . $vs_sufixo_nome_campo] ?? $pa_valores_form[$pa_parametros_campo["nome"] . "_data_presumida" . $vs_sufixo_nome_campo];
else
$vb_presumido = 0;
diff --git a/src/lib/system/objeto_base.php b/src/lib/system/objeto_base.php
index 57d6120..92ff69a 100755
--- a/src/lib/system/objeto_base.php
+++ b/src/lib/system/objeto_base.php
@@ -218,6 +218,18 @@ public function get_atributos()
return $this->inicializar_atributos();
}
+ public function tem_atributo($ps_atributo_id)
+ {
+ if (!isset($this->atributos[$ps_atributo_id]) && $this->objeto_pai)
+ {
+ $vo_objeto_pai = new $this->objeto_pai;
+
+ return isset($vo_objeto_pai->atributos[$ps_atributo_id]);
+ }
+
+ return isset($this->atributos[$ps_atributo_id]);
+ }
+
public function get_atributo_identificador()
{
foreach ($this->atributos as $va_atributo)
@@ -361,13 +373,39 @@ public function get_registros_filhos()
return $this->registros_filhos;
}
- public function get_visualizacao($ps_visualizacao)
+ public function get_visualizacao($ps_visualizacao, $pn_contexto_codigo = null)
{
- if (intval($ps_visualizacao) && !isset($this->visualizacoes[$ps_visualizacao])) {
+ if ($this->recurso_sistema_codigo && (isset($pn_contexto_codigo) ||!isset($this->visualizacoes[$ps_visualizacao])) )
+ {
+ $va_filtro = array();
+
+ if (intval($ps_visualizacao))
+ $va_filtro = ["visualizacao_codigo" => $ps_visualizacao];
+ elseif (isset($pn_contexto_codigo))
+ {
+ $va_filtro = ["visualizacao_recurso_sistema_codigo" => $this->recurso_sistema_codigo, "visualizacao_contexto_visualizacao_codigo" => $pn_contexto_codigo];
+ $ps_visualizacao = $pn_contexto_codigo;
+ }
+ else
+ $va_filtro = ["visualizacao_recurso_sistema_codigo" => $this->recurso_sistema_codigo, "visualizacao_nome" => $ps_visualizacao];
+
+ $va_filtro["visualizacao_habilitado"] = 1;
+
$vo_visualizacao = new visualizacao;
- $va_visualizacao = $vo_visualizacao->ler($ps_visualizacao, "ficha");
+ $va_visualizacao = $vo_visualizacao->ler_lista($va_filtro, "ficha");
+
+ if (count($va_visualizacao))
+ {
+ $va_visualizacao = $va_visualizacao[0];
+
+ if (!empty($va_visualizacao["visualizacao_incluir_representante_digital"]))
+ {
+ $this->visualizacoes[$ps_visualizacao]["campos"]["representante_digital_codigo"] = [
+ "nome" => "representante_digital_codigo",
+ "formato" => ["campo" => "representante_digital_path"]
+ ];
+ }
- if (count($va_visualizacao)) {
$this->visualizacoes[$ps_visualizacao]["campos"][$this->chave_primaria[0]] = $this->visualizacoes["ficha"]["campos"][$this->chave_primaria[0]];
if (isset($this->visualizacoes["navegacao"]["order_by"]))
@@ -382,7 +420,13 @@ public function get_visualizacao($ps_visualizacao)
if ($ps_key_campo_visualizacao == $va_campo_sistema_nome[0])
{
$this->visualizacoes[$ps_visualizacao]["campos"][$ps_key_campo_visualizacao] = $va_campo_visualizacao;
- $this->visualizacoes[$ps_visualizacao]["ordem_campos"][$va_campo_sistema["visualizacao_campo_sistema_codigo"]["campo_sistema_nome"]] = $va_campo_sistema["visualizacao_campo_sistema_codigo"]["campo_sistema_alias"];
+
+ $this->visualizacoes[$ps_visualizacao]["ordem_campos"][$va_campo_sistema["visualizacao_campo_sistema_codigo"]["campo_sistema_nome"]] = [
+ "label" => $va_campo_sistema["visualizacao_campo_sistema_codigo"]["campo_sistema_alias"],
+ "main_field" => $this->visualizacoes["ficha"]["ordem_campos"][$va_campo_sistema["visualizacao_campo_sistema_codigo"]["campo_sistema_nome"]]["main_field"] ?? false,
+ "id_field" => $this->visualizacoes["ficha"]["ordem_campos"][$va_campo_sistema["visualizacao_campo_sistema_codigo"]["campo_sistema_nome"]]["id_field"] ?? false,
+ "descriptive_field" => $this->visualizacoes["ficha"]["ordem_campos"][$va_campo_sistema["visualizacao_campo_sistema_codigo"]["campo_sistema_nome"]]["descriptive_field"] ?? false
+ ];
}
}
@@ -400,7 +444,7 @@ public function get_visualizacao($ps_visualizacao)
if (isset($this->visualizacoes[$ps_visualizacao]))
return $this->visualizacoes[$ps_visualizacao];
- else
+ else
return $this->visualizacoes["navegacao"];
}
@@ -691,6 +735,8 @@ public function ler_numero_registros($pa_filtros_busca = null, $pa_log_info = nu
$va_parametros_select = array();
$va_campos_select = array();
$va_joins_select = array();
+ $va_tipos_parametros_joins = array();
+ $va_parametros_joins = array();
$va_wheres_select = array();
$va_tabelas_adicionadas = array();
@@ -725,7 +771,7 @@ public function ler_numero_registros($pa_filtros_busca = null, $pa_log_info = nu
}
}
- $this->montar_filtros_busca($va_filtros_busca, $vo_objeto, $va_joins_select, $va_wheres_select, $va_tipos_parametros_select, $va_parametros_select, $va_tabelas_adicionadas, $pb_retornar_ramos_inferiores);
+ $this->montar_filtros_busca($va_filtros_busca, $vo_objeto, $va_joins_select, $va_tipos_parametros_joins, $va_parametros_joins, $va_wheres_select, $va_tipos_parametros_select, $va_parametros_select, $va_tabelas_adicionadas, $pb_retornar_ramos_inferiores);
$this->montar_parametros_log($pa_log_info, $vo_objeto, $va_joins_select, $va_wheres_select, $va_tipos_parametros_select, $va_parametros_select);
@@ -741,7 +787,7 @@ public function ler_numero_registros($pa_filtros_busca = null, $pa_log_info = nu
if (count($va_selects))
{
- $va_resultado_temp = $vo_banco->consultar($va_selects, $va_tipos_parametros_select, $va_parametros_select, null, null, false);
+ $va_resultado_temp = $vo_banco->consultar($va_selects, array_merge($va_tipos_parametros_joins, $va_tipos_parametros_select), array_merge($va_parametros_joins, $va_parametros_select), null, null, false);
foreach ($va_resultado_temp as $va_item) {
foreach ($va_item as $vs_key => $vn_codigo) {
@@ -892,7 +938,7 @@ private function montar_valores_busca($pa_parametro, &$pa_valores_busca = array(
return $vb_tem_valor;
}
- private function montar_filtros_busca($pa_filtros_busca, $po_objeto, &$pa_joins_select = array(), &$pa_wheres_select = array(), &$pa_tipos_parametros_select = array(), &$pa_parametros_select = array(), &$pa_tabelas_adicionadas = array(), $pb_retornar_ramos_inferiores = true, &$pa_joins_trail = array(), $pn_primeiro_registro = 0, $pn_numero_registros = 0)
+ private function montar_filtros_busca($pa_filtros_busca, $po_objeto, &$pa_joins_select = array(), &$pa_tipos_parametros_joins = array(), &$pa_parametros_joins = array(), &$pa_wheres_select = array(), &$pa_tipos_parametros_select = array(), &$pa_parametros_select = array(), &$pa_tabelas_adicionadas = array(), $pb_retornar_ramos_inferiores = true, &$pa_joins_trail = array(), $pn_primeiro_registro = 0, $pn_numero_registros = 0)
{
if (isset($pa_filtros_busca))
{
@@ -1054,7 +1100,7 @@ private function montar_filtros_busca($pa_filtros_busca, $po_objeto, &$pa_joins_
// O terceiro parâmetro vazio quer dizer que ainda não foi feito nenhum join para este filtro
/////////////////////////////////////////////////////////////////////////////////////////////
- $this->montar_filtro_busca($va_filtro, $po_objeto, '', $va_valores_busca, $vs_operador, $vs_interrogacoes, $pa_joins_select, $pa_wheres_select, $pa_tipos_parametros_select, $pa_parametros_select, $pa_tabelas_adicionadas, $vs_operador_logico, $pb_retornar_ramos_inferiores, $pa_joins_trail, $pn_primeiro_registro, $pn_numero_registros);
+ $this->montar_filtro_busca($va_filtro, $po_objeto, '', $va_valores_busca, $vs_operador, $vs_interrogacoes, $pa_joins_select, $pa_tipos_parametros_joins, $pa_parametros_joins, $pa_wheres_select, $pa_tipos_parametros_select, $pa_parametros_select, $pa_tabelas_adicionadas, $vs_operador_logico, $pb_retornar_ramos_inferiores, $pa_joins_trail, $pn_primeiro_registro, $pn_numero_registros);
}
}
}
@@ -1062,7 +1108,7 @@ private function montar_filtros_busca($pa_filtros_busca, $po_objeto, &$pa_joins_
}
}
- private function montar_filtro_busca($pa_filtro, $po_objeto, $ps_ultima_tabela_filtro, $pa_valores_busca, $ps_operador, $ps_interrogacoes, &$pa_joins_select = array(), &$pa_wheres_select = array(), &$pa_tipos_parametros_select = array(), &$pa_parametros_select = array(), &$pa_tabelas_adicionadas = array(), $ps_operador_logico = 'AND', $pb_retornar_ramos_inferiores = true, &$pa_joins_trail = array(), $pn_primeiro_registro = 0, $pn_numero_registros = 0)
+ private function montar_filtro_busca($pa_filtro, $po_objeto, $ps_ultima_tabela_filtro, $pa_valores_busca, $ps_operador, $ps_interrogacoes, &$pa_joins_select = array(), &$pa_tipos_parametros_joins = array(), &$pa_parametros_joins = array(), &$pa_wheres_select = array(), &$pa_tipos_parametros_select = array(), &$pa_parametros_select = array(), &$pa_tabelas_adicionadas = array(), $ps_operador_logico = 'AND', $pb_retornar_ramos_inferiores = true, &$pa_joins_trail = array(), $pn_primeiro_registro = 0, $pn_numero_registros = 0)
{
// A partir daqui, vamos procurar o campo/atributo ao qual o filtro se refere
////////////////////////////////////////////////////////////////////////////
@@ -1103,7 +1149,7 @@ private function montar_filtro_busca($pa_filtro, $po_objeto, $ps_ultima_tabela_f
$vo_objeto_pai = new $po_objeto->objeto_pai($po_objeto->objeto_pai);
- $this->montar_filtro_busca($va_novo_filtro, $vo_objeto_pai, $ps_ultima_tabela_filtro, $pa_valores_busca, $ps_operador, $ps_interrogacoes, $pa_joins_select, $pa_wheres_select, $pa_tipos_parametros_select, $pa_parametros_select, $pa_tabelas_adicionadas, $ps_operador_logico, $pb_retornar_ramos_inferiores, $pa_joins_trail);
+ $this->montar_filtro_busca($va_novo_filtro, $vo_objeto_pai, $ps_ultima_tabela_filtro, $pa_valores_busca, $ps_operador, $ps_interrogacoes, $pa_joins_select, $pa_tipos_parametros_joins, $pa_parametros_joins, $pa_wheres_select, $pa_tipos_parametros_select, $pa_parametros_select, $pa_tabelas_adicionadas, $ps_operador_logico, $pb_retornar_ramos_inferiores, $pa_joins_trail);
}
elseif (isset($po_objeto->atributos[$va_filtro[0]]) || isset($po_objeto->chave_primaria[$va_filtro[0]]))
{
@@ -1400,8 +1446,8 @@ private function montar_filtro_busca($pa_filtro, $po_objeto, $ps_ultima_tabela_f
foreach ($va_valores_busca as $va_valor_busca)
{
- $pa_parametros_select[] = $va_valor_busca;
- $pa_tipos_parametros_select[] = "i";
+ $pa_parametros_joins[] = $va_valor_busca;
+ $pa_tipos_parametros_joins[] = "i";
}
}
}
@@ -1435,7 +1481,7 @@ private function montar_filtro_busca($pa_filtro, $po_objeto, $ps_ultima_tabela_f
}
}
- $this->montar_filtro_busca($va_novo_filtro, $vo_objeto_relacionamento, $vs_ultima_tabela_filtro, $pa_valores_busca, $ps_operador, $ps_interrogacoes, $pa_joins_select, $pa_wheres_select, $pa_tipos_parametros_select, $pa_parametros_select, $pa_tabelas_adicionadas, $ps_operador_logico, $pb_retornar_ramos_inferiores, $pa_joins_trail);
+ $this->montar_filtro_busca($va_novo_filtro, $vo_objeto_relacionamento, $vs_ultima_tabela_filtro, $pa_valores_busca, $ps_operador, $ps_interrogacoes, $pa_joins_select, $pa_tipos_parametros_joins, $pa_parametros_joins, $pa_wheres_select, $pa_tipos_parametros_select, $pa_parametros_select, $pa_tabelas_adicionadas, $ps_operador_logico, $pb_retornar_ramos_inferiores, $pa_joins_trail);
}
} else {
// Se o filtro for chave primária ou atributo da tabela do objeto, a montagem é simples
@@ -1610,23 +1656,25 @@ private function montar_filtro_busca($pa_filtro, $po_objeto, $ps_ultima_tabela_f
{
if (isset($v_campo_relacionamento[0]) && isset($v_campo_relacionamento[1]))
{
- $pa_tipos_parametros_select[] = $po_objeto->relacionamentos[$va_filtro[0]]["tipos_campos_relacionamento"][$contador];
- $pa_parametros_select[] = $v_campo_relacionamento[1];
+ $pa_tipos_parametros_joins[] = $po_objeto->relacionamentos[$va_filtro[0]]["tipos_campos_relacionamento"][$contador];
+ $pa_parametros_joins[] = $v_campo_relacionamento[1];
+
$pa_joins_select[] = " AND " . $vs_alias_tabela_join . "." . $v_campo_relacionamento[0] . " = (?)";
}
}
+
$contador++;
}
-
-
}
$vs_tabela_banco = $vs_alias_tabela_join;
$vs_campo_tabela = reset($po_objeto->relacionamentos[$va_filtro[0]]["campos_relacionamento"]);
+
if (is_array($vs_campo_tabela))
{
$vs_campo_tabela = reset($vs_campo_tabela);
}
+
$vs_tipo_dado_campo = reset($po_objeto->relacionamentos[$va_filtro[0]]["tipos_campos_relacionamento"]);
}
@@ -1921,8 +1969,10 @@ public function ler_lista($pa_filtros_busca = null, $ps_visualizacao = "lista",
$va_resultado = array();
$va_selects = array();
- $va_tipos_parametros_select = array();
- $va_parametros_select = array();
+
+ $va_tipos_parametros_unificados = array();
+ $va_parametros_unificados = array();
+
$va_order_by = array();
$va_group_by = array();
@@ -1951,7 +2001,9 @@ public function ler_lista($pa_filtros_busca = null, $ps_visualizacao = "lista",
if (isset($va_filtros_busca_union))
$va_filtros_busca = $va_filtros_busca_union[$contador];
- if ($vs_objeto)
+ if ($vs_objeto == $this->tabela_banco)
+ $vo_objeto = $this;
+ else
$vo_objeto = new $vs_objeto($vs_objeto);
if (method_exists($vo_objeto, "get_filtros_interditados"))
@@ -1976,6 +2028,11 @@ public function ler_lista($pa_filtros_busca = null, $ps_visualizacao = "lista",
$va_joins_select = array();
$va_wheres_select = array();
+ $va_tipos_parametros_joins = array();
+ $va_parametros_joins = array();
+ $va_tipos_parametros_select = array();
+ $va_parametros_select = array();
+
$va_tabelas_adicionadas = array();
$va_tabelas_adicionadas[$vs_tabela_banco][] = $vs_tabela_banco;
@@ -2119,7 +2176,7 @@ public function ler_lista($pa_filtros_busca = null, $ps_visualizacao = "lista",
}
}
- $this->montar_filtros_busca($va_filtros_busca, $vo_objeto, $va_joins_select, $va_wheres_select, $va_tipos_parametros_select, $va_parametros_select, $va_tabelas_adicionadas, $pb_retornar_ramos_inferiores, $va_joins_trail, $pn_primeiro_registro, $pn_numero_registros);
+ $this->montar_filtros_busca($va_filtros_busca, $vo_objeto, $va_joins_select, $va_tipos_parametros_joins, $va_parametros_joins, $va_wheres_select, $va_tipos_parametros_select, $va_parametros_select, $va_tabelas_adicionadas, $pb_retornar_ramos_inferiores, $va_joins_trail, $pn_primeiro_registro, $pn_numero_registros);
$this->montar_parametros_log($pa_log_info, $vo_objeto, $va_joins_select, $va_wheres_select, $va_tipos_parametros_select, $va_parametros_select);
@@ -2135,6 +2192,9 @@ public function ler_lista($pa_filtros_busca = null, $ps_visualizacao = "lista",
"concatenadores" => (isset($va_filtros_busca["concatenadores"]) ? $va_filtros_busca["concatenadores"] : array())
];
+ $va_tipos_parametros_unificados = array_merge($va_tipos_parametros_unificados, array_merge($va_tipos_parametros_joins, $va_tipos_parametros_select));
+ $va_parametros_unificados = array_merge($va_parametros_unificados, array_merge($va_parametros_joins, $va_parametros_select));
+
$contador++;
}
}
@@ -2146,7 +2206,7 @@ public function ler_lista($pa_filtros_busca = null, $ps_visualizacao = "lista",
$vs_limit = " LIMIT " . ($pn_primeiro_registro - 1) . ", " . $pn_numero_registros;
$vo_banco = $this->get_banco();
- $va_resultado = $vo_banco->consultar($va_selects, $va_tipos_parametros_select, $va_parametros_select, $va_order_by, $vs_limit, true, $va_group_by);
+ $va_resultado = $vo_banco->consultar($va_selects, $va_tipos_parametros_unificados, $va_parametros_unificados, $va_order_by, $vs_limit, true, $va_group_by);
}
// Agora vamos montar o objeto pai, atributos que
@@ -2167,18 +2227,23 @@ public function ler_lista($pa_filtros_busca = null, $ps_visualizacao = "lista",
$va_visualizacao = $vo_objeto->get_visualizacao($ps_visualizacao)["campos"];
- foreach ($va_visualizacao as $ps_key_campo_visualizacao => $va_campo_visualizacao) {
+ foreach ($va_visualizacao as $ps_key_campo_visualizacao => $va_campo_visualizacao)
+ {
// Primeiro, ver se o campo de visualização é atributo
//////////////////////////////////////////////////////
- if (isset($vo_objeto->atributos[$va_campo_visualizacao["nome"]])) {
- if (isset($vo_objeto->atributos[$va_campo_visualizacao["nome"]]["objeto"])) {
- if (isset($va_item_resultado[$ps_key_campo_visualizacao])) {
+ if (isset($vo_objeto->atributos[$va_campo_visualizacao["nome"]]))
+ {
+ if (isset($vo_objeto->atributos[$va_campo_visualizacao["nome"]]["objeto"]))
+ {
+ if (isset($va_item_resultado[$ps_key_campo_visualizacao]))
+ {
$vs_id_objeto = $vo_objeto->atributos[$va_campo_visualizacao["nome"]]["objeto"];
$vo_objeto_chave_estrangeira = new $vs_id_objeto($vs_id_objeto);
- if ($va_item_resultado[$ps_key_campo_visualizacao]) {
+ if ($va_item_resultado[$ps_key_campo_visualizacao])
+ {
$va_objeto_chave_estrangeira = $vo_objeto_chave_estrangeira->ler($va_item_resultado[$ps_key_campo_visualizacao], "lista", $pn_idioma_codigo);
$va_item_resultado[$ps_key_campo_visualizacao] = $va_objeto_chave_estrangeira;
}
@@ -2298,6 +2363,9 @@ public function ler_lista($pa_filtros_busca = null, $ps_visualizacao = "lista",
if (isset($va_item_resultado[$vo_objeto_pai->chave_primaria[0]]))
{
+ $vo_objeto_pai->visualizacoes[$ps_visualizacao]["campos"] = $va_visualizacao;
+ $vo_objeto_pai->visualizacoes[$ps_visualizacao]["campos"][$vo_objeto_pai->chave_primaria[0]] = $vo_objeto_pai->visualizacoes["ficha"]["campos"][$vo_objeto_pai->chave_primaria[0]];
+
$va_resultado_pai = $vo_objeto_pai->ler($va_item_resultado[$vo_objeto_pai->chave_primaria[0]], $ps_visualizacao, $pn_idioma_codigo);
$va_item_resultado = array_merge($va_item_resultado, $va_resultado_pai);
@@ -2406,6 +2474,76 @@ public function ler_lista($pa_filtros_busca = null, $ps_visualizacao = "lista",
return $va_resultado;
}
+ function encontrar_pagina_item_acervo($ps_object_identifier, $ps_identifier_attribute, $pn_current_page, $pn_min, $pn_max)
+ {
+ if ($pn_min > $pn_max)
+ {
+ return false;
+ }
+
+ $vn_registros_por_pagina = 20;
+ $vn_primeiro_registro = ($pn_current_page - 1) * $vn_registros_por_pagina + 1;
+
+ if ($vn_primeiro_registro < 1)
+ {
+ return false;
+ }
+
+ $vs_identifier_attribute = $this->get_atributo_identificador();
+
+ if (isset($this->get_visualizacao("navegacao")["order_by"]))
+ $vs_main_sorter_attribute = array_keys($this->get_visualizacao("navegacao")["order_by"])[0];
+
+
+ $va_lista_objetos = $this->ler_lista([], "lista", $vn_primeiro_registro, $vn_registros_por_pagina, $vs_main_sorter_attribute, "ASC");
+
+ $va_codigos_objetos = array();
+
+ foreach ($va_lista_objetos as $va_objeto)
+ {
+ $va_identificadores_lista_objetos[] = $va_objeto[$ps_identifier_attribute];
+ $va_codigos_objetos[] = $va_objeto[$this->get_chave_primaria()[0]];
+ }
+
+ if (in_array($ps_object_identifier, $va_identificadores_lista_objetos, true))
+ {
+ return array($pn_current_page, $va_codigos_objetos);
+ }
+
+ $va_identificadores_lista_objetos[] = $ps_object_identifier;
+
+ natcasesort($va_identificadores_lista_objetos);
+
+ $vn_list_first_item = reset($va_identificadores_lista_objetos);
+ $vn_list_last_item = end($va_identificadores_lista_objetos);
+
+ if ($ps_object_identifier == $vn_list_last_item)
+ {
+ $pn_min = $pn_current_page + 1;
+ }
+ elseif ($ps_object_identifier == $vn_list_first_item)
+ {
+ $pn_max = $pn_current_page - 1;
+ }
+ else
+ {
+ return false;
+ }
+
+ if ($pn_min > $pn_max)
+ {
+ return false;
+ }
+
+ $vn_next_page = floor(($pn_min + $pn_max) / 2);
+
+ if ($vn_next_page < 1) {
+ return false;
+ }
+
+ return $this->encontrar_pagina_item_acervo($ps_object_identifier, $ps_identifier_attribute, $vn_next_page, $pn_min, $pn_max);
+ }
+
public function ler_lista_quantitativa($ps_id_relacionamento, $ps_label_objeto_relacionamento, $pa_filtros_busca = null, $pb_ordenar_por_quantidade = false)
{
if (isset($pa_filtros_busca))
@@ -2421,6 +2559,8 @@ public function ler_lista_quantitativa($ps_id_relacionamento, $ps_label_objeto_r
$va_campos_select = array();
$va_joins_select = array();
+ $va_tipos_parametros_joins = array();
+ $va_parametros_joins = array();
$va_wheres_select = array();
$vs_limit = "";
@@ -2543,7 +2683,7 @@ public function ler_lista_quantitativa($ps_id_relacionamento, $ps_label_objeto_r
$va_filtros_busca[reset($va_atributo_objeto)] = $va_atributo_objeto["valor_padrao"];
}
- $this->montar_filtros_busca($va_filtros_busca, $this, $va_joins_select, $va_wheres_select, $va_tipos_parametros_select, $va_parametros_select, $va_tabelas_adicionadas, $pb_retornar_ramos_inferiores);
+ $this->montar_filtros_busca($va_filtros_busca, $this, $va_joins_select, $va_tipos_parametros_joins, $va_parametros_joins, $va_wheres_select, $va_tipos_parametros_select, $va_parametros_select, $va_tabelas_adicionadas, $pb_retornar_ramos_inferiores);
$va_group_by[] = $ps_label_objeto_relacionamento;
$va_group_by[] = "Q_codigo";
@@ -2559,7 +2699,7 @@ public function ler_lista_quantitativa($ps_id_relacionamento, $ps_label_objeto_r
];
$vo_banco = $this->get_banco();
- $va_resultados = $vo_banco->consultar($va_selects, $va_tipos_parametros_select, $va_parametros_select, $va_order_by, $vs_limit, true, $va_group_by);
+ $va_resultados = $vo_banco->consultar($va_selects, array_merge($va_tipos_parametros_joins, $va_tipos_parametros_select), array_merge($va_parametros_joins, $va_parametros_select), $va_order_by, $vs_limit, true, $va_group_by);
if ($vo_objeto_relacionamento->hierarquico)
{
@@ -3256,7 +3396,8 @@ public function ler_representantes_digitais($pn_codigo, $pn_representante_digita
$va_campos_select[] = "representante_digital.legenda as representante_digital_legenda";
$va_campos_select[] = "representante_digital.sequencia as sequencia";
$va_campos_select[] = "representante_digital.publicado_online as representante_digital_publicado_online";
-
+ $va_campos_select[] = "representante_digital.nome_original as representante_digital_nome_original";
+
$va_wheres_select[] = "representante_digital.recurso_sistema_codigo = (?) ";
$va_tipos_parametros_select[] = "i";
$va_parametros_select[] = $this->recurso_sistema_codigo;
@@ -3978,8 +4119,10 @@ public function salvar_representantes_digitais($ps_campo_nome, $pa_valores, $pa_
elseif (@getimagesize($va_arquivo["tmp_name"]))
{
$vs_formato = "jpg";
- $vs_novo_nome_arquivo = $vs_novo_nome_arquivo . "." . $vs_formato;
+ $vs_novo_nome_arquivo_original = $vs_novo_nome_arquivo . "." . pathinfo($va_arquivo["name"], PATHINFO_EXTENSION);
+ $vs_novo_nome_arquivo = $vs_novo_nome_arquivo . "." . $vs_formato;
+
$vn_imagens_processadas = 0;
foreach ($va_path_arquivo_destino as $key => $value)
@@ -3999,7 +4142,7 @@ public function salvar_representantes_digitais($ps_campo_nome, $pa_valores, $pa_
if ($vb_salvar_arquivo_original)
{
- if ($this->mover_arquivo($va_arquivo["tmp_name"], $va_pasta_images["original"] . $vs_novo_nome_arquivo))
+ if ($this->mover_arquivo($va_arquivo["tmp_name"], $va_pasta_images["original"] . $vs_novo_nome_arquivo_original))
{
$vn_imagens_processadas++;
}
@@ -4776,6 +4919,9 @@ private function montar_campos_salvamento($pa_valores_form = array(), $ps_id_obj
}
$vs_valor_atributo = $this->$vs_funcao($va_valores_parametros);
+
+ if ($vs_valor_atributo === false)
+ continue;
}
$this->va_campos[] = $va_atributo["coluna_tabela"];
@@ -4956,8 +5102,8 @@ private function tratar_data($ps_nome_campo, $pa_atributo, $pa_valores_form)
$vo_data->set_ano_final($pa_valores_form[$ps_nome_campo . "_ano_final"]);
}
- if (isset($pa_valores_form[$ps_nome_campo . "_presumido"]))
- $vo_data->set_presumido($pa_valores_form[$ps_nome_campo . "_presumido"]);
+ if (isset($pa_valores_form[$ps_nome_campo . "_presumido"])|| isset($pa_valores_form[$ps_nome_campo . "_data_presumida"]))
+ $vo_data->set_presumido($pa_valores_form[$ps_nome_campo . "_presumido"] ?? $pa_valores_form[$ps_nome_campo . "_data_presumida"]);
else
$vo_data->set_presumido(0);
@@ -5023,9 +5169,9 @@ private function tratar_data($ps_nome_campo, $pa_atributo, $pa_valores_form)
else
$vb_presumido = 0;
- if (isset($pa_atributo["presumido"]))
+ if (isset($pa_atributo["presumido"]) || isset($pa_atributo["presumida"]))
{
- $this->va_campos[] = $pa_atributo["presumido"];
+ $this->va_campos[] = $pa_atributo["presumido"] ?? $pa_atributo["presumida"];
$this->va_tipos_parametros[] = "i";
$this->va_parametros[] = $vb_presumido;
}
@@ -5615,8 +5761,8 @@ public function salvar_relacionamentos($pa_valores_form, $pn_codigo, $pn_idioma_
$vb_tem_valores_preenchidos = true;
}
- if (isset($pa_valores_form[$vs_campo_relacionamento . "_data_presumida" . "_" . $contador]))
- $va_valores[$vs_campo_relacionamento . "_data_presumida"] = $pa_valores_form[$vs_campo_relacionamento . "_data_presumida" . "_" . $contador];
+ if (isset($pa_valores_form[$vs_campo_relacionamento . "_presumida" . "_" . $contador]))
+ $va_valores[$vs_campo_relacionamento . "_data_presumida"] = $pa_valores_form[$vs_campo_relacionamento . "_presumida" . "_" . $contador];
if (isset($pa_valores_form[$vs_campo_relacionamento . "_sem_data" . "_" . $contador]) && $pa_valores_form[$vs_campo_relacionamento . "_sem_data" . "_" . $contador] != "")
{
@@ -6052,7 +6198,7 @@ public function inserir_relacionamento($ps_tabela, $pa_chave_primaria, $pn_codig
foreach ($va_campos_temp as $vs_key_campo => $va_campo)
{
- if (is_array($va_campo))
+ if (is_array($va_campo))
{
$vs_campo = reset($va_campo);
diff --git a/src/lib/system/periodo.php b/src/lib/system/periodo.php
index 5fa688c..0a7aa39 100755
--- a/src/lib/system/periodo.php
+++ b/src/lib/system/periodo.php
@@ -638,6 +638,8 @@ public function get_data_exibicao($ps_separador='')
if ($this->get_presumido())
$vs_data_exibicao = "[" . $vs_data_exibicao . "]";
+ if ($this->get_complemento())
+ $vs_data_exibicao .= " (" . $this->get_complemento() . ")";
return $vs_data_exibicao;
}
diff --git a/src/lib/system/visualizacao.php b/src/lib/system/visualizacao.php
index 295c328..653e986 100755
--- a/src/lib/system/visualizacao.php
+++ b/src/lib/system/visualizacao.php
@@ -51,6 +51,12 @@ public function inicializar_atributos()
'tipo_dado' => 'b'
];
+ $va_atributos['visualizacao_incluir_representante_digital'] = [
+ 'visualizacao_incluir_representante_digital',
+ 'coluna_tabela' => 'incluir_representante_digital',
+ 'tipo_dado' => 'b'
+ ];
+
return $va_atributos;
}
@@ -70,7 +76,7 @@ public function inicializar_relacionamentos($pn_recurso_sistema_codigo = null)
[
'visualizacao_campo_sistema_codigo' => 'campo_sistema_codigo',
'visualizacao_campo_sistema_sequencia' => [
- 'sequencia',
+ 'ordem',
'valor_sequencial' => true
],
],
@@ -111,7 +117,7 @@ public function inicializar_campos_edicao()
"sem_valor" => false,
"conectar" => [
[
- "campo" => "visualizacao_campos_sistema",
+ "campo" => "visualizacao_campo_sistema_codigo",
"atributo" => "campo_sistema_recurso_sistema_codigo"
]
]
@@ -125,29 +131,28 @@ public function inicializar_campos_edicao()
];
$va_campos_edicao["visualizacao_campo_sistema_codigo"] = [
- "html_multi_itens_input",
- "nome" => "visualizacao_campo_sistema_codigo",
+ "html_autocomplete",
+ "nome" => ["visualizacao_campo_sistema", "visualizacao_campo_sistema_codigo"],
"label" => "Campos",
- "dependencia_linha" => ["campo" => "visualizacao_recurso_sistema_codigo"],
- "subcampos" => [
- "visualizacao_campo_sistema_codigo" =>
- [
- "html_combo_input",
- "nome" => "visualizacao_campo_sistema_codigo",
- "label" => "Campo",
- "objeto" => "campo_sistema",
- "atributos" => ["campo_sistema_codigo", "campo_sistema_alias"],
- "atributo" => "campo_sistema_codigo",
- "sem_valor" => false,
- "dependencia" => [
- "campo" => "visualizacao_recurso_sistema_codigo",
- "atributo" => "campo_sistema_recurso_sistema_codigo"
- ],
- "campo_pai" => "visualizacao_campo_sistema_codigo"
- ]
-
- ],
+ "objeto" => "campo_sistema",
+ "atributos" => ["campo_sistema_codigo", "campo_sistema_alias"],
+ "multiplos_valores" => true,
+ "procurar_por" => "campo_sistema_alias",
+ "visualizacao" => "lista",
+ "permitir_cadastro" => false,
"draggable" => true,
+ "dependencia" => [
+ [
+ "campo" => "visualizacao_recurso_sistema_codigo",
+ "atributo" => "campo_sistema_recurso_sistema_codigo"
+ ]
+ ]
+ ];
+
+ $va_campos_edicao["visualizacao_incluir_representante_digital"] = [
+ "html_checkbox_input",
+ "nome" => "visualizacao_incluir_representante_digital",
+ "label" => "Incluir representantes digitais"
];
$va_campos_edicao["visualizacao_contexto_visualizacao_codigo"] = [
@@ -162,7 +167,7 @@ public function inicializar_campos_edicao()
$va_campos_edicao["visualizacao_habilitado"] = [
"html_checkbox_input",
"nome" => "visualizacao_habilitado",
- "label" => "Habilitado"
+ "label" => "Habilitada"
];
return $va_campos_edicao;
@@ -206,6 +211,10 @@ public function inicializar_visualizacoes()
"nome" => "visualizacao_habilitado"
];
+ $va_campos_visualizacao["visualizacao_incluir_representante_digital"] = [
+ "nome" => "visualizacao_incluir_representante_digital"
+ ];
+
$this->visualizacoes["navegacao"]["campos"] = $va_campos_visualizacao;
$this->visualizacoes["navegacao"]["order_by"] = ["visualizacao_nome" => "Nome"];
$this->visualizacoes["navegacao"]["ordem_campos"] = [