ERP-Vendas
Sistema feito no estágio dentro da empresa Domtec Sistemas
- Active · last change 5-22-2026
- ★ 1 on GitHub
README
📊 ERP-Vendas
Um sistema completo de gestão de vendas desenvolvido em Delphi com banco de dados SQL Server, projetado para automatizar e controlar processos comerciais e operacionais.
📋 Sumário
- Visão Geral
- Funcionalidades
- Tecnologias
- Estrutura do Projeto
- Pré-requisitos
- Instalação e Configuração
- Como Executar
- Configuração do Banco de Dados
- Contribuindo
- Autor
- Licença
👁️ Visão Geral
O ERP-Vendas é um sistema enterprise desenvolvido como projeto educacional durante estágio na empresa Domtec Sistemas. O sistema implementa práticas modernas de desenvolvimento, incluindo:
- ✅ Gestão de clientes, produtos e categorias
- ✅ Processamento de vendas com controle de estoque
- ✅ Relatórios e análises com gráficos interativos
- ✅ Sistema de autenticação de usuários
- ✅ Controle de acesso por funcionalidade
- ✅ Dashboard com indicadores em tempo real
🎯 Funcionalidades
📁 Módulo de Cadastro
- Clientes - Cadastro e manutenção de dados de clientes
- Produtos - Gestão de catálogo de produtos
- Categorias - Classificação e organização de produtos
- Usuários - Gerenciamento de usuários do sistema
- Ações de Acesso - Configuração de permissões
💰 Módulo de Movimentação
- Vendas - Registro completo de transações de venda
- Controle de Estoque - Atualização automática de quantidade
- Histórico de Transações - Rastreamento de movimentações
📈 Módulo de Relatórios
- Relatório de Clientes - Listagem completa com fichas individuais
- Relatório de Produtos - Análise de catálogo por categoria
- Relatório de Vendas por Data - Vendas em período especificado
- Dashboard - Gráficos de:
- Produtos em estoque
- Valor de venda por cliente
- Top 10 produtos mais vendidos
- Vendas na última semana
🔐 Módulo de Segurança
- Login - Autenticação segura de usuários
- Alteração de Senha - Gerenciamento de credenciais
- Controle de Acesso - Permissões granulares por funcionalidade
- Histórico de Transações - Rastreabilidade de operações
🛠️ Tecnologias
| Tecnologia | Versão | Descrição |
|---|---|---|
| Delphi | 10.x+ | Linguagem de programação principal |
| SQL Server | 2012+ | Banco de dados relacional |
| FireDAC | Nativo Delphi | Componentes de acesso a banco de dados |
| VCL | Nativo Delphi | Visual Component Library |
| ReportBuilder | RLReport | Geração de relatórios |
| TeeChart | Nativo Delphi | Gráficos e visualizações |
📂 Estrutura do Projeto
ERP-Vendas/
????????? DataModule/ # M??dulos de dados
??? ????????? uDTMConexao.pas # Conex??o com banco de dados
??? ????????? uDTMVenda.pas # DataModule de vendas
??? ????????? uDTMGrafico.pas # DataModule de gr??ficos
??? ????????? uFrmAtualizaDB.pas # Atualiza????o autom??tica do BD
???
????????? cadastro/ # M??dulo de cadastros
??? ????????? uCadCategoria.pas # Cadastro de categorias
??? ????????? uCadCliente.pas # Cadastro de clientes
??? ????????? uCadProduto.pas # Cadastro de produtos
??? ????????? uCadUsuario.pas # Cadastro de usu??rios
??? ????????? uCadAcaoAcesso.pas # Configura????o de acesso
???
????????? classes/ # Classes de neg??cio
??? ????????? cCadCategoria.pas # L??gica de categorias
??? ????????? cCadCliente.pas # L??gica de clientes
??? ????????? cCadProduto.pas # L??gica de produtos
??? ????????? cProVendas.pas # L??gica de vendas
??? ????????? cControleEstoque.pas # L??gica de estoque
??? ????????? cCredito.pas # L??gica de cr??dito
??? ????????? cAcaoAcesso.pas # Controle de permiss??es
??? ????????? cAtulizacaoBancoDeDados.pas
??? ????????? cArquivoIni.pas # Leitura de configura????es
??? ????????? cFuncao.pas # Fun????es utilit??rias
???
????????? heranca/ # Classes base
??? ????????? uTelaHeranca.pas # Tela base para formul??rios
??? ????????? uTelaHerancaConsulta.pas
??? ????????? uEnum.pas # Enumera????es
??? ????????? uFuncaoCriptografia.pas
???
????????? login/ # M??dulo de autentica????o
??? ????????? uLogin.pas # Formul??rio de login
??? ????????? uAlterarSenha.pas # Altera????o de senha
??? ????????? uUsuarioVsAcoes.pas # Associa????o usu??rio-a????es
???
????????? processo/ # Processos de neg??cio
??? ????????? uProVendas.pas # Processamento de vendas
??? ????????? uProCredito.pas # Processamento de cr??dito
???
????????? relatorio/ # Relat??rios e consultas
??? ????????? uRelClienteFicha.pas # Ficha de cliente
??? ????????? uRelClientes.pas # Relat??rio de clientes
??? ????????? uRelCadProduto.pas # Relat??rio de produtos
??? ????????? uRelCategorias.pas # Relat??rio de categorias
??? ????????? uRelVendaPorData.pas # Vendas por per??odo
??? ????????? uSelecionarData.pas # Seletor de datas
??? ????????? uConCategoria.pas # Consulta de categorias
???
????????? Consulta/ # M??dulo de consultas
????????? terceiros/ # Componentes de terceiros
????????? Win32/ # Bin??rios compilados
????????? __history/ # Hist??rico de vers??es
???
????????? Upricipal.pas/dfm # Tela principal
????????? cUsuarioLogado.pas # Dados do usu??rio logado
????????? Vendas.dpr # Arquivo principal do projeto
????????? Vendas.dproj # Configura????o do projeto Delphi
????????? README.md # Este arquivo📋 Pré-requisitos
Antes de começar, certifique-se de ter instalado:
Ambiente de Desenvolvimento
- ✅ Delphi 10.0 ou superior (Community, Professional ou Enterprise)
- ✅ SQL Server 2012 ou superior (Express, Standard ou Enterprise)
Dependências do Delphi
- ✅ FireDAC (incluído no Delphi 10+)
- ✅ VCL Components
- ✅ ReportBuilder (RLReport)
- ✅ TeeChart
Sistema Operacional
- ✅ Windows 7 SP1 ou superior
- ✅ .NET Framework 4.5+ (para algumas funcionalidades)
Banco de Dados
- ✅ SQL Server com acesso de administrador
- ✅ Permissão para criar novos bancos de dados
🚀 Instalação e Configuração
1️⃣ Clonar o Repositório
git clone https://github.com/DaniDev77/ERP-Vendas.git
cd ERP-Vendas2️⃣ Abrir no Delphi
- Abra o Delphi IDE
- Vá para
File > Open Project - Navegue até o arquivo
Vendas.dproj - Clique em
Open
3️⃣ Configurar Conexão com Banco de Dados
⚠️ PASSO IMPORTANTE: Alterar Parâmetros de Conexão
Você DEVE alterar os parâmetros de conexão no arquivo DataModule/uDTMConexao.pas:
Localize o método DataModuleCreate e altere:
procedure TdtmPrincipal.DataModuleCreate(Sender: TObject);
begin
dtmPrincipalDB.Params.Clear;
// ⚠️ ALTERE ESTES PARÂMETROS:
dtmPrincipalDB.Params.Add('DriverID=MSSQL');
dtmPrincipalDB.Params.Add('Server=SEU_SERVIDOR\INSTANCIA'); // ← Altere aqui
dtmPrincipalDB.Params.Add('Database=VENDAS'); // ← Altere se necessário
// Use uma das opções abaixo:
// Opção 1: Autenticação Windows (recomendado)
dtmPrincipalDB.Params.Add('OSAuthent=Yes');
// Opção 2: Autenticação SQL (comentar OSAuthent e descomente abaixo)
// dtmPrincipalDB.Params.Add('User_Name=seu_usuario');
// dtmPrincipalDB.Params.Add('Password=sua_senha');
dtmPrincipalDB.LoginPrompt := False;
dtmPrincipalDB.Connected := True;
end;Exemplos de Configuração:
🔹 SQL Server Local (Autenticação Windows):
dtmPrincipalDB.Params.Add('Server=localhost\SQLEXPRESS');
dtmPrincipalDB.Params.Add('OSAuthent=Yes');🔹 SQL Server em Rede (IP):
dtmPrincipalDB.Params.Add('Server=192.168.1.100');
dtmPrincipalDB.Params.Add('User_Name=sa');
dtmPrincipalDB.Params.Add('Password=Sua_Senha_123');🔹 SQL Server com Autenticação SQL:
dtmPrincipalDB.Params.Add('Server=meu_servidor');
dtmPrincipalDB.Params.Add('User_Name=vendas_user');
dtmPrincipalDB.Params.Add('Password=senhaSegura123');🔧 Configuração do Banco de Dados
Criar Banco de Dados
Execute o script SQL abaixo no seu SQL Server:
-- Criar banco de dados
CREATE DATABASE VENDAS;
GO
-- Usar o banco de dados
USE VENDAS;
GO
-- Criar tabelas básicas (exemplo)
CREATE TABLE Categoria (
ID INT PRIMARY KEY IDENTITY(1,1),
Nome NVARCHAR(100) NOT NULL,
Descricao NVARCHAR(255)
);
CREATE TABLE Cliente (
ID INT PRIMARY KEY IDENTITY(1,1),
Nome NVARCHAR(150) NOT NULL,
Email NVARCHAR(100),
Telefone NVARCHAR(20),
DataCadastro DATETIME DEFAULT GETDATE()
);
CREATE TABLE Produto (
ID INT PRIMARY KEY IDENTITY(1,1),
Nome NVARCHAR(150) NOT NULL,
CategoriaID INT FOREIGN KEY REFERENCES Categoria(ID),
Preco DECIMAL(10,2),
Estoque INT DEFAULT 0
);
CREATE TABLE Venda (
ID INT PRIMARY KEY IDENTITY(1,1),
ClienteID INT FOREIGN KEY REFERENCES Cliente(ID),
DataVenda DATETIME DEFAULT GETDATE(),
ValorTotal DECIMAL(12,2)
);
CREATE TABLE VendaItem (
ID INT PRIMARY KEY IDENTITY(1,1),
VendaID INT FOREIGN KEY REFERENCES Venda(ID),
ProdutoID INT FOREIGN KEY REFERENCES Produto(ID),
Quantidade INT,
ValorUnitario DECIMAL(10,2),
Subtotal DECIMAL(12,2)
);
CREATE TABLE Usuario (
ID INT PRIMARY KEY IDENTITY(1,1),
Nome NVARCHAR(100) NOT NULL,
Senha NVARCHAR(100) NOT NULL,
Ativo BIT DEFAULT 1,
DataCadastro DATETIME DEFAULT GETDATE()
);▶️ Como Executar
1️⃣ Compilar o Projeto
No Delphi IDE:
- Vá para
Project > Compile "Vendas"- Ou pressione
Ctrl + F9
- Ou pressione
Se não houver erros, o aplicativo será compilado com sucesso.
2️⃣ Executar o Aplicativo
- Vá para
Run > Run- Ou pressione
F9
- Ou pressione
3️⃣ Tela de Login
Você verá a tela de login. Utilize as credenciais cadastradas no banco de dados.
4️⃣ Menu Principal
Após autenticação com sucesso, você terá acesso a:
CADASTRO
????????? Clientes
????????? Produtos
????????? Categorias
????????? Usu??rios
????????? A????es de Acesso
MOVIMENTA????O
????????? Vendas
????????? Hist??rico de Transa????es
????????? Cr??ditos
RELAT??RIOS
????????? Relat??rio de Clientes
????????? Relat??rio de Ficha de Cliente
????????? Relat??rio de Produtos
????????? Relat??rio de Categorias
????????? Relat??rio de Produtos por Categoria
????????? Relat??rio de Vendas por Data
CONFIGURA????ES
????????? Alterar Senha
????????? Controle de Acesso
????????? Usu??rios vs A????es📊 Dashboard
O dashboard exibe em tempo real:
- 📦 Produtos em Estoque - Quantidade disponível de cada produto
- 💵 Valor de Venda por Cliente - Total faturado por cliente
- 🏆 Top 10 Produtos Mais Vendidos - Ranking de vendas
- 📈 Vendas Última Semana - Evolução de vendas
Clique no dashboard para atualizar os dados manualmente.
🔑 Variáveis de Ambiente Importantes
uDTMConexao.pas - DataModuleCreate
Este é o método mais crítico da aplicação. Altere conforme sua configuração:
procedure TdtmPrincipal.DataModuleCreate(Sender: TObject);
begin
dtmPrincipalDB.Params.Clear;
dtmPrincipalDB.Params.Add('DriverID=MSSQL');
// ⚠️ ALTERE PARA SEU SERVIDOR
dtmPrincipalDB.Params.Add('Server=DC-TR-01-VM\SERVERCURSO'); // Seu servidor aqui
// ⚠️ ALTERE PARA SEU BANCO (se necessário)
dtmPrincipalDB.Params.Add('Database=VENDAS');
// ⚠️ Escolha o tipo de autenticação
dtmPrincipalDB.Params.Add('OSAuthent=Yes'); // Windows
// OU
// dtmPrincipalDB.Params.Add('User_Name=seu_usuario');
// dtmPrincipalDB.Params.Add('Password=sua_senha');
dtmPrincipalDB.LoginPrompt := False;
dtmPrincipalDB.Connected := True;
end;Arquivo cArquivoIni.pas
Você também pode usar arquivo .INI para configurações:
[Database]
Server=seu_servidor\instancia
Database=VENDAS
User_Name=usuario
Password=senha🐛 Solução de Problemas
❌ "Conexão recusada"
- Verifique o nome do servidor SQL
- Certifique-se que SQL Server está rodando
- Confirme credenciais de acesso
❌ "Banco de dados não encontrado"
- Crie o banco de dados com os scripts SQL fornecidos
- Verifique o nome do banco em
uDTMConexao.pas
❌ "Componente FireDAC não encontrado"
- Instale/Atualize Delphi para versão 10.0+
- Verifique componentes instalados em Delphi
❌ "Erro ao compilar"
- Limpe cache:
Project > Clean - Recompile:
Ctrl + F9 - Verifique caminhos relativos dos includes
📝 Padrões de Código
O projeto segue as convenções:
| Tipo | Prefixo | Exemplo |
|---|---|---|
| DataModule | u |
uDTMConexao.pas |
| Formulário | u |
uCadCliente.pas |
| Classe | c |
cCadCliente.pas |
| Unit de Herança | u |
uTelaHeranca.pas |
| Componente (Delphi) | Sem prefixo | Upricipal.dfm |
📧 Contato e Suporte
- Desenvolvedor: DaniDev77
- Email: disponível no perfil do GitHub
- GitHub: github.com/DaniDev77
- Empresa: Domtec Sistemas
👨💻 Autor
DaniDev77
Este projeto foi desenvolvido como parte do programa de treinamento prático em desenvolvimento de sistemas ERP durante estágio na empresa Domtec Sistemas.
📄 Licença
Este projeto foi desenvolvido para fins educacionais e comerciais.
📚 Recursos Adicionais
🎯 Roadmap Futuro
- [ ] Integração com NFS-e
- [ ] Relatórios avançados com BI
- [ ] App mobile para consultas
- [ ] Backup automático de dados
- [ ] Integração com meios de pagamento
- [ ] Multi-idioma
- [ ] Tema escuro (Dark Mode)
Desenvolvido com ❤️ em Delphi
Última atualização: 2026-05-21

