Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
506684c
FDP-589 Preservar a extensão do arquivo original do tipo imagem salvo…
fredaccamargo Dec 17, 2025
508ee60
FDP-588 Alterar funções de download de representantes digitais para b…
fredaccamargo Dec 17, 2025
f282612
FDP-590 Corrigir passagem de parâmetros quando a filtragem é realizad…
fredaccamargo Dec 18, 2025
65db64b
Merge pull request #76 from paramosoftware/correcao-parametros-joins
mthsps Dec 18, 2025
dd041a2
Merge pull request #77 from paramosoftware/download-representantes-di…
mthsps Dec 18, 2025
ed39a32
FDP-59 Adicionar mensagem no campo representantes digitais, informand…
Dec 19, 2025
cc1ec62
FDP-40 Corrigir plural/singular da quantidade de itens no dashboard
Dec 19, 2025
1f5c362
FDP-588 Alterar funções de download de representantes digitais para b…
Jan 5, 2026
44444e5
FDP-591 Corrigir salvamento dos valores [presumido] e [sem data] dos …
Jan 5, 2026
8c0e40c
FDP-527 Permitir que o usuário crie visualizações com metadados selec…
fredaccamargo Jan 6, 2026
3ff5046
FDP-593 Corrigir tentativa de geração automática de identificador de …
fredaccamargo Jan 7, 2026
eb353b5
FDP-584 Correção busca por identificador (permitir que os botões nave…
Jan 7, 2026
9bbfcca
FDP-584 Correção index 0/false em array_search (quando o item está na…
Jan 7, 2026
7fa7f06
FDP-584 Migrar lógica de busca de página para dashboard_resultado_bus…
Jan 7, 2026
2c1223a
FDP-584 Correção passagem e conservação de número de registros e pági…
Jan 7, 2026
1a2559b
FDP-527 Permitir que o usuário crie visualizações com metadados selec…
fredaccamargo Jan 8, 2026
4ff474f
FDP-527 Permitir que o usuário crie visualizações com metadados selec…
fredaccamargo Jan 8, 2026
a1e312f
FDP-527 Permitir que o usuário crie visualizações com metadados selec…
fredaccamargo Jan 8, 2026
84e90b4
FDP-584 Refatoração do uso de atributos, envio da listagem de códigos…
fredaccamargo Jan 29, 2026
5cf0555
FDP-584 - Na geração de paginação a partir da busca pelo identificado…
fredaccamargo Feb 5, 2026
5071584
FDP-584 Na geração de paginação a partir da busca por identificador, …
fredaccamargo Feb 5, 2026
ce90e83
Merge pull request #78 from paramosoftware/visualizacoes-customizadas…
fredaccamargo Feb 6, 2026
53c21e0
Merge branch 'dev' into FDP-584
fredaccamargo Feb 6, 2026
c827b1f
Merge pull request #79 from paramosoftware/FDP-584
fredaccamargo Feb 6, 2026
42f9a2d
IG-267 Corrigir exibição de resultados a partir da página 2 em buscas…
fredaccamargo Feb 11, 2026
b635cd7
Merge pull request #80 from paramosoftware/IG-267-pagina-2-buscas-lis…
mthsps Feb 11, 2026
fc66663
Merge pull request #86 from paramosoftware/IG-267
mthsps Feb 11, 2026
d81741a
Merge branch 'main' into dev
fredaccamargo Mar 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions app/assets/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -15019,4 +15019,8 @@ padding-right: 0px;
display: inline-flex !important;
align-items: center;
justify-content: center;
}

.fs-7 {
font-size: 0.85rem !important;
}
12 changes: 11 additions & 1 deletion app/components/barra_visualizacoes.php
Original file line number Diff line number Diff line change
Expand Up @@ -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" => [
Expand All @@ -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);
?>

Expand Down
7 changes: 6 additions & 1 deletion app/components/campo_representantes_digitais.php
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down
2 changes: 1 addition & 1 deletion app/components/dashboard_estatisticas.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
<div class="border-start border-start-4 border-start-danger px-3 mb-3">
<a style="text-decoration:none; color:unset;" href="listar.php?obj=<?php print htmlspecialchars($va_info_setor["link_recurso_sistema"]); ?>&s=<?php print $va_info_setor["codigo"]; ?>">
<small class="text-medium-emphasis"><?php print $va_info_setor["nome"]; ?></small>
<div class="fs-5 fw-semibold"><?php print $va_info_setor["quantidade"]; ?> itens</div>
<div class="fs-5 fw-semibold"><?php print $va_info_setor["quantidade"]; ?><?= $va_info_setor["quantidade"] == 1 ? " item" : " itens"?></div>
</a>
</div>
</div>
Expand Down
28 changes: 26 additions & 2 deletions app/components/dashboard_resultado_busca.php
Original file line number Diff line number Diff line change
Expand Up @@ -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 '<script>window.location="editar.php?obj=' . $vs_id_objeto_tela .'&cod=' . $va_itens_listagem[0][$vo_objeto->get_chave_primaria()[0]] . '";</script>';
$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 '<script>window.location="editar.php?obj=' . $vs_id_objeto_tela . '&cod=' . $vn_objeto_codigo . '";</script>';
}

if (count($va_itens_listagem))
Expand Down
8 changes: 8 additions & 0 deletions app/components/ler_valor.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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();

Expand Down
21 changes: 18 additions & 3 deletions app/editar.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand Down
3 changes: 3 additions & 0 deletions app/ficha.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down
8 changes: 3 additions & 5 deletions app/functions/download.php
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down
32 changes: 28 additions & 4 deletions app/functions/file_handler.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

function get_file_path($ps_file, $ps_size = null, $ps_folder = null): string
function get_file_path($ps_file, $ps_size = null, $ps_folder = null, $ps_original_file_name = null): string
{
$vs_ext = strtolower(pathinfo($ps_file, PATHINFO_EXTENSION));
$vs_folder = $ps_folder ?? utils::get_media_folder($vs_ext);
Expand All @@ -19,12 +19,11 @@ function get_file_path($ps_file, $ps_size = null, $ps_folder = null): string
}
}

return get_image_path($ps_file, $ps_size);
return get_image_path($ps_file, $ps_size, $ps_original_file_name);
}

function get_image_path($ps_file, $ps_size = null): string
function get_image_path($ps_file, $ps_size = null, $ps_original_file_name = null): string
{

$va_pasta_images = config::get(["pasta_media", "images"]);
krsort($va_pasta_images);
$vs_file_path = "";
Expand All @@ -36,7 +35,32 @@ function get_image_path($ps_file, $ps_size = null): string

if ($ps_size)
{
if ($ps_size == "original")
{
$vs_file_path = $va_pasta_images[$ps_size] . $ps_file;

if (file_exists($vs_file_path))
{
return $vs_file_path;
}
elseif (isset($ps_original_file_name))
{
$vs_original_file_name_extension = strtolower(pathinfo($ps_original_file_name, PATHINFO_EXTENSION));
$vs_file_hash = pathinfo($ps_file, PATHINFO_FILENAME);

$vs_file_path = $va_pasta_images[$ps_size] . $vs_file_hash . "." . $vs_original_file_name_extension;

if (file_exists($vs_file_path))
return $vs_file_path;
else
$ps_size == "large";
}
else
$ps_size == "large";
}

$vs_file_path = $va_pasta_images[$ps_size] . $ps_file;

if (file_exists($vs_file_path))
{
return $vs_file_path;
Expand Down
29 changes: 28 additions & 1 deletion app/functions/montar_campos.php
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,27 @@
if (isset($va_parametros_campo["foco"]))
$vs_campo_foco = $va_parametros_campo["nome"];
}
elseif ($vs_campo_key == 'representante_digital_codigo' && !isset($va_campos[$vs_campo_key]))
{
echo '
<div class="accordion mb-3 google-drive opacity-50">
<div class="accordion-item">
<h2 class="accordion-header">
<button
class="accordion-button collapsed"
style="cursor: help"
type="button"
data-coreui-toggle="tooltip"
data-coreui-placement="top"
data-coreui-title="Indisponível durante criação de registro (é possível incluir representantes digitais após a criação do registro)"
>
Representantes digitais
</button>

</h2>
</div>
</div>';
}
}

if (!$vb_atualizacao_campo && ($vs_modo != "listagem") && isset($va_aba["campos"]) && count($va_aba["campos"]))
Expand All @@ -209,4 +230,10 @@

$contador++;
}
?>
?>

<script>
const tooltipTriggerList = document.querySelectorAll('[data-coreui-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new coreui.Tooltip(tooltipTriggerEl))

</script>
11 changes: 6 additions & 5 deletions app/functions/montar_listagem.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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"];
Expand Down Expand Up @@ -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"]))
Expand Down
3 changes: 3 additions & 0 deletions app/listar.php
Original file line number Diff line number Diff line change
Expand Up @@ -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'])
Expand Down
6 changes: 5 additions & 1 deletion config/constants.php
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
4 changes: 2 additions & 2 deletions src/lib/html/html_date_input.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Loading
Loading