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ódulo | Capacidade |
|---|---|
| Obras | Criar, activar/desactivar, clientes, metadados |
| Funcionários | CRUD, remuneração, activo/inactivo, código Primavera como chave |
| Imputação de horas | Entrada diária/mensal por funcionário e obra, agregação |
| Clientes e serviços | Tipos, departamentos, empresas cliente |
| Utilizadores | Níveis, passwords, empresa (Mundimat vs Mundimat/Espiral) |
| Relatórios | PDF mensal, exportações de imputação, valor hora, envelopes em massa |
| Super-admin | Selecçã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:
- Autenticar na camada API configurada para o tenant Mundimat.
- Resolver funcionários por número Primavera ao obter movimentos num intervalo de datas.
- Erros explícitos quando o funcionário existe no ERP mas ainda não está registado localmente.
- Manter
primavera_idlocal 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.
