diff --git a/backend/src/main/java/net/beetechgroup/beetask/usecase/report/generate/GenerateReportUseCase.java b/backend/src/main/java/net/beetechgroup/beetask/usecase/report/generate/GenerateReportUseCase.java index af8a20e..0c7d91d 100644 --- a/backend/src/main/java/net/beetechgroup/beetask/usecase/report/generate/GenerateReportUseCase.java +++ b/backend/src/main/java/net/beetechgroup/beetask/usecase/report/generate/GenerateReportUseCase.java @@ -129,22 +129,11 @@ public class GenerateReportUseCase { List taskList = new ArrayList<>(uniqueTasks.values()); - // 2. Calcular tempo total trabalhado no período - long totalSecondsInPeriod = 0; - for (Task t : taskList) { - totalSecondsInPeriod += calculateTaskSecondsInPeriod(t, user.getEmail(), startDt, endDt); - } - - String formattedTotalTime = formatDuration(totalSecondsInPeriod); - - // 3. Montar variáveis globais + // 2. Montar variáveis globais Map variables = new HashMap<>(); String strStart = input.startDate().format(DATE_FORMATTER); String strEnd = input.endDate().format(DATE_FORMATTER); - String pattern = template.getDateFormatPattern(); - String formattedPeriod = formatPeriodWithPattern(input.startDate(), input.endDate(), pattern); - String monthName = input.startDate().getMonth().getDisplayName(TextStyle.FULL, PT_BR); String mesAno = capitalize(monthName) + "/" + input.startDate().getYear(); @@ -169,14 +158,10 @@ public class GenerateReportUseCase { variables.put("nome_projeto", projectName); variables.put("organizacao", org.getName()); - // Período - variables.put("periodo", formattedPeriod); - variables.put("periodo_vigencia", formattedPeriod); + // Datas variables.put("data_inicio", strStart); variables.put("data_fim", strEnd); variables.put("mes_ano", mesAno); - - variables.put("total_horas", formattedTotalTime); variables.put("data_emissao", LocalDate.now().format(DATE_FORMATTER)); // Valores padrão das seções configuradas no modelo @@ -214,10 +199,6 @@ public class GenerateReportUseCase { } } variables.put(sec.getSectionKey(), formattedVal); - if ("periodo".equalsIgnoreCase(sec.getSectionKey()) || "periodo_vigencia".equalsIgnoreCase(sec.getSectionKey())) { - variables.put("periodo", formattedVal); - variables.put("periodo_vigencia", formattedVal); - } } } } @@ -286,7 +267,6 @@ public class GenerateReportUseCase { )); } listSections.put("atividades", allItems); - listSections.put("tarefas", allItems); } // 5. Baixar o template do MinIO e gerar o documento preenchido @@ -318,7 +298,7 @@ public class GenerateReportUseCase { generated.setOrganization(org); generated.setProject(project); generated.setUser(user); - generated.setTitle(template.getName() + " (" + formattedPeriod + ")"); + generated.setTitle(template.getName() + " (" + strStart + " a " + strEnd + ")"); generated.setStartDate(input.startDate()); generated.setEndDate(input.endDate()); generated.setFileUrl(fileUrl); diff --git a/frontend/src/components/reports/CreateTemplateModal.tsx b/frontend/src/components/reports/CreateTemplateModal.tsx index 135f2a9..4c209ab 100644 --- a/frontend/src/components/reports/CreateTemplateModal.tsx +++ b/frontend/src/components/reports/CreateTemplateModal.tsx @@ -257,12 +257,10 @@ export const CreateTemplateModal: React.FC = ({

Tags Nativas Automáticas Disponíveis no Word:

Você pode utilizar diretamente as tags{' '} - {'{{atividades}}'} (ou {'{{tarefas}}'}, com todas as atividades realizadas no período),{' '} + {'{{atividades}}'} (com todas as atividades realizadas no período),{' '} {'{{nome}}'} (usuário logado),{' '} - {'{{periodo}}'} (período de vigência),{' '} - {'{{data_inicio}}'},{' '} - {'{{data_fim}}'} e{' '} - {'{{total_horas}}'} sem precisar cadastrar campos para elas. + {'{{data_inicio}}'} e{' '} + {'{{data_fim}}'} sem precisar cadastrar campos para elas.

diff --git a/frontend/src/components/reports/EditTemplateModal.tsx b/frontend/src/components/reports/EditTemplateModal.tsx index 46c5609..e60122a 100644 --- a/frontend/src/components/reports/EditTemplateModal.tsx +++ b/frontend/src/components/reports/EditTemplateModal.tsx @@ -275,12 +275,10 @@ export const EditTemplateModal: React.FC = ({

Tags Nativas Automáticas Disponíveis no Word:

Você pode utilizar diretamente as tags{' '} - {'{{atividades}}'} (ou {'{{tarefas}}'}, com todas as atividades realizadas no período),{' '} + {'{{atividades}}'} (com todas as atividades realizadas no período),{' '} {'{{nome}}'} (usuário logado),{' '} - {'{{periodo}}'} (período de vigência),{' '} - {'{{data_inicio}}'},{' '} - {'{{data_fim}}'} e{' '} - {'{{total_horas}}'} sem precisar cadastrar campos para elas. + {'{{data_inicio}}'} e{' '} + {'{{data_fim}}'} sem precisar cadastrar campos para elas.

diff --git a/frontend/src/components/reports/GenerateReportModal.tsx b/frontend/src/components/reports/GenerateReportModal.tsx index 770ac4f..b58aa14 100644 --- a/frontend/src/components/reports/GenerateReportModal.tsx +++ b/frontend/src/components/reports/GenerateReportModal.tsx @@ -358,8 +358,7 @@ export const GenerateReportModal: React.FC = ({
- Refletirá nas tags: {'{{periodo}}'},{' '} - {'{{data_inicio}}'} e{' '} + Refletirá nas tags: {'{{data_inicio}}'} e{' '} {'{{data_fim}}'}.
@@ -482,9 +481,9 @@ export const GenerateReportModal: React.FC = ({
- Atividades e Tarefas (Preenchimento Automático) + Atividades Realizadas (Preenchimento Automático) - {'{{atividades}}'} / {'{{tarefas}}'} + {'{{atividades}}'}

diff --git a/frontend/src/pages/ReportsPage.tsx b/frontend/src/pages/ReportsPage.tsx index da67441..bb1bd40 100644 --- a/frontend/src/pages/ReportsPage.tsx +++ b/frontend/src/pages/ReportsPage.tsx @@ -98,16 +98,12 @@ export const ReportsPage: React.FC = () => { const standardTags = [ { tag: '{{atividades}}', desc: 'Lista de todas as atividades/tarefas trabalhadas ou concluídas no período' }, - { tag: '{{tarefas}}', desc: 'Alias alternativo para a listagem geral de atividades no período' }, { tag: '{{nome}}', desc: 'Nome do colaborador (pega automaticamente do usuário logado)' }, - { tag: '{{periodo}}', desc: 'Período formatado no padrão escolhido no modelo (ex.: 01/10/2026 até 31/10/2026)' }, { tag: '{{data_inicio}}', desc: 'Data inicial do período escolhido (ex: 01/10/2026)' }, { tag: '{{data_fim}}', desc: 'Data final do período escolhido (ex: 31/10/2026)' }, - { tag: '{{periodo_vigencia}}', desc: 'Intervalo formatado no modelo (ex: 01/10/2026 até 31/10/2026)' }, { tag: '{{mes_ano}}', desc: 'Mês e ano por extenso (ex: Outubro/2026)' }, { tag: '{{email_usuario}}', desc: 'E-mail do usuário logado' }, { tag: '{{organizacao}}', desc: 'Nome da organização / workspace ativo' }, - { tag: '{{total_horas}}', desc: 'Total de horas trabalhadas no período (ex: 142h 30m)' }, { tag: '{{data_emissao}}', desc: 'Data de geração do relatório (ex: 31/10/2026)' }, ]