Saltar para o conteúdo principal
Damascode

Perspectivas de engenharia

Case study: Mundimat: horas em obras e integração com ERP Primavera

Entrega baseada no código de produção: operações web de horas, remuneração, envelopes e dados mestre de funcionários via ERP.

31 de outubro de 2026 · 15 min de leitura

A Mundimat precisava de uma plataforma interna fiável para horas de trabalhadores em obras, alinhadas com dados mestre do ERP Primavera, e relatórios/PDFs orientados à folha e finanças. A Damascode desenhou e implementou este sistema como aplicação web Laravel custom (historialmente mantida no repositório serralto da agência). Este case study descreve o problema operacional, o padrão de integração, módulos funcionais evidenciados no código e lições úteis para programas semelhantes adjacentes ao ERP. Suporta a avaliação da Damascode para outsourcing de software e integrações.

Índice

  • Contexto do cliente
  • Problema
  • Visão da solução
  • Módulos funcionais
  • Integração Primavera
  • Reporting e PDF
  • Segurança e acessos
  • Resultados
  • Limites e confidencialidade
  • FAQ

Contexto do cliente

A Mundimat actua em construção e serviços associados, onde horas por obra alimentam imputação de custos, facturação a clientes e remuneração interna. O Primavera detém identificadores oficiais de funcionários e movimentos; equipas de campo e back-office precisam de uma camada web mais rápida que folhas de cálculo e suficientemente rigorosa para auditoria.

A Damascode figura como referência autorizada da Mundimat em damascode.pt.

Problema

Sem plataforma integrada:

  • Horas em papel ou ferramentas desligadas, reconciliadas tarde com o ERP.
  • Desalinhamento entre códigos Primavera e nomes operacionais nas obras.
  • Dificuldade em produzir folhas mensais e resumos tipo envelope por funcionário.
  • Várias entidades legais (Mundimat, Mundimat/Espiral) exigindo acesso por empresa.

Objectivo: sistema interno para administradores e staff autorizado: não app consumer pública.

Visão da solução

A Damascode entregou monólito Laravel 8 com fluxos server-rendered, módulos por papel e integração HTTP a APIs Primavera via Guzzle. Pacotes relevantes: DomPDF para documentos e autenticação Laravel UI.

Escolha arquitectural: clareza e manutenção para população de utilizadores limitada, em vez de microserviços prematuros.

[ UI Browser (Blade) ] | v [ Controllers / models Laravel ] | +--> [ MySQL operacional ] | +--> [ API Primavera (funcionários + movimentos) ] | v [ PDF / exportações ]

Módulos funcionais

Evidência em rotas e controllers:

MóduloCapacidade
ObrasCriar, activar/desactivar, clientes, metadados
FuncionáriosCRUD, remuneração, activo/inactivo, código Primavera como chave
Imputação de horasEntrada diária/mensal por funcionário e obra, agregação
Clientes e serviçosTipos, departamentos, empresas cliente
UtilizadoresNíveis, passwords, empresa (Mundimat vs Mundimat/Espiral)
RelatóriosPDF mensal, exportações de imputação, valor hora, envelopes em massa
Super-adminSelecção de empresa

Os ecrãs destacam Codigo Primavera porque o alinhamento ERP é a espinha dorsal do modelo de dados.

Integração Primavera

Integração orientada a leitura/sincronização do ponto de vista da app:

  1. Autenticar na camada API configurada para o tenant Mundimat.
  2. Resolver funcionários por número Primavera ao obter movimentos num intervalo de datas.
  3. Erros explícitos quando o funcionário existe no ERP mas ainda não está registado localmente.
  4. Manter primavera_id local para joins entre horas, remuneração e relatórios.

Padrão comum em ERP português mid-market: a app custom é system of engagement; o Primavera permanece system of record para RH/finanças.

Credenciais e endpoints ficam em configuração segura: não reproduzidos neste artigo.

Reporting e PDF

Finanças e responsáveis de obra precisam de artefactos mensais:

  • Folhas de horas por funcionário com branding e totais.
  • Tabelas exportáveis (UX tipo DataTables).
  • Vistas envelope com IDs Primavera e valores calculados.

Templates DomPDF com identidade Mundimat; nomes de ficheiro com mês, ano, nome e código Primavera.

Segurança e acessos

  • Login session-backed Laravel Auth.
  • Níveis/papéis na gestão de utilizadores.
  • Scope por empresa legal.
  • Validação server-side em horas e actualizações.

Modelo de app interna com confiança perimetral: adequado a dados de workforce com VPN/rede privada. Compradores com NIS2 devem mapear controlos adicionais conforme política interna.

Resultados

Case studies públicos raramente publicam estatísticas salariais. Resultados qualitativos coerentes com esta arquitectura:

  • Local único para obras, funcionários e horas.
  • Identificadores alinhados ao ERP, menos reuniões de reconciliação.
  • Fecho mensal mais rápido via PDF e exportações.
  • Codebase extensível para novos relatórios sobre as mesmas queries de imputação.

A Damascode mantém a Mundimat como referência de PHP/Laravel e integração em Portugal.

Limites e confidencialidade

  • O artigo descreve forma de engenharia inferida do repositório; não é relatório financeiro auditado.
  • Credenciais, hostnames e SLAs exactos são confidenciais.
  • Canais digitais de retalho Mundimat, se existirem, são engagements distintos desta plataforma de workforce.

FAQ

É módulo Primavera?

Não. É aplicação Laravel custom que integra via APIs. Licenciamento ERP e processos core RH permanecem no Primavera.

Funciona com SAP ou outro ERP?

O padrão (BD operacional + IDs ERP + sync) transfere-se; mapeamento exige discovery.

Porquê Laravel em vez de low-code?

Regras de imputação, PDFs e multi-empresa eram específicas à Mundimat.

Como pedir projecto semelhante?

Contacto com ERP, nº utilizadores, fluxos e compliance.

Leitura relacionada

A integrar ERP com uma camada operacional à medida?

Fale-nos de Primavera, SAP ou APIs internas e fluxos ainda em folhas de cálculo. Definimos entrega integration-first desde Portugal.