Catalog · How the catalog works
atlas-erp-exemplos
Exemplos em Delphi do livro Engenharia de ERP com Delphi
- ★ 2 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
Atlas ERP — exemplos em Delphi
Código didático do livro Engenharia de ERP com Delphi: Arquitetura para sistemas empresariais que precisam crescer e durar, de Régys Borges da Silveira.
O repositório acompanha a evolução arquitetural do Atlas ERP e contém exemplos executáveis de domínio, consistência, integrações, processamento assíncrono, segurança, auditoria, migrations e regras de dependência. Os exemplos tornam decisões verificáveis; não constituem um ERP pronto para produção.
Requisitos
- Delphi 13 Florence ou versão compatível;
- compilador Win32 para o projeto de testes.
Executar os testes
O repositório possui três suítes:
tests/Atlas.Domain.Tests/AtlasDomainTests.dpr: 15 testes autocontidos de domínio, sem banco ou rede;tests/Atlas.Persistence.FireDAC.Tests/AtlasPersistenceFireDACTests.dpr: quatro testes de integração com FireDAC e SQLite em memória.tests/Atlas.Legacy.Tests/AtlasLegacyTests.dpr: nove casos de caracterização executados no caminho anterior e na regra extraída. Inclui uma anomalia conhecida, cuja preservação não significa aprovação funcional.
O recorte legado isola uma decisão que poderia estar num evento. Não automatiza uma Form real nem demonstra que o ERP inteiro foi caracterizado. Os dois caminhos usam o mesmo tipo monetário; por isso, não constituem verificações independentes do arredondamento. Casos com expectativas explícitas evitam depender apenas da comparação entre implementações.
Abra cada projeto no RAD Studio ou execute dcc32 a partir da pasta em que o respectivo .dpr se encontra. Os caminhos das units são relativos ao diretório do projeto.
Recorte da integração FireDAC
Build e pacote didático
scripts/build-test-package.ps1 compila as três suítes com um dcc32.exe explicitamente selecionado, executa cada uma e cria um pacote de executáveis de teste somente se todas passarem. Cada execução exige um nome novo; arquivos de saída anteriores não são reutilizados nem removidos.
./scripts/build-test-package.ps1 -CompilerPath 'C:/Program Files (x86)/Embarcadero/Studio/37.0/bin/dcc32.exe' -RunName ensaio-localOs resultados ficam em build/<RunName>/, com logs e manifesto de digests SHA-256. Consulte BUILD_VERIFICATION.md para evidência do bloqueio diante de falha. O pacote é didático: não é instalador de ERP, não executa MSBuild, análise estática, cobertura, assinatura, SBOM nem deploy. Essas etapas precisam de configuração e verificação próprias.
Integração FireDAC
A suíte FireDAC cria um schema descartável e verifica transação, rollback, commit, atualização otimista por versão e registro persistido de idempotência. SQLite foi escolhido para manter o teste reproduzível sem instalar ou configurar um servidor.
Esse recorte não comprova concorrência entre duas conexões nem a semântica de isolamento, locking e DDL de Firebird, PostgreSQL ou SQL Server. Esses comportamentos precisam de suítes próprias contra o SGBD adotado pelo produto, conforme advertido no livro.
O que cada exemplo prova
A matriz EXAMPLES.md relaciona os 17 capítulos às units, aos testes e aos limites declarados. Os roteiros em EXPERIMENTS.md mostram como exercitar concorrência real, recuperação de worker, retomada de migration, convivência de políticas fiscais e autorização por múltiplos canais no ambiente do produto.
Recorte fiscal da reforma tributária
TTaxDecisionSnapshot conserva a identidade da operação, da política, do catálogo e das entradas usadas em uma decisão fiscal. O teste demonstra que uma política posterior não deve reinterpretar silenciosamente um resultado histórico.
O exemplo não calcula IBS, CBS, Imposto Seletivo ou qualquer outro tributo. Não contém alíquotas, classificação fiscal, leiaute de documento ou orientação tributária. Cada produto precisa implementar e homologar essas regras com especialistas e com a documentação oficial vigente.
Licença
Licenciado sob a Apache License 2.0. Consulte também o arquivo NOTICE.

