6.5 KiB
🎯 Sistema de Parcelas Individuais - Instruções de Instalação
📋 Resumo das Alterações
Foi implementado um sistema completo para gerenciar parcelas individuais de vendas parceladas, permitindo:
- ✅ Visualização de cada parcela com valor e vencimento
- 💳 Geração de PIX individual para cada parcela
- 📱 Envio de PIX por WhatsApp para cada parcela
- 📊 Status de cada parcela (Pendente, Pago, Vencido)
- 💬 Mensagem automática de WhatsApp personalizada no registro da venda
🗃️ Passo 1: Criar Tabela no Supabase
- Acesse o Supabase Dashboard do seu projeto
- Vá em SQL Editor
- Execute o seguinte script:
-- =====================================================
-- TABELA DE PARCELAS INDIVIDUAIS DE VENDAS
-- =====================================================
-- Criar tabela de parcelas
CREATE TABLE IF NOT EXISTS venda_parcelas (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
venda_id UUID NOT NULL REFERENCES vendas(id) ON DELETE CASCADE,
numero_parcela INTEGER NOT NULL,
valor DECIMAL(10,2) NOT NULL,
data_vencimento DATE NOT NULL,
status TEXT DEFAULT 'pendente' CHECK (status IN ('pendente', 'pago', 'vencida', 'cancelada')),
data_pagamento TIMESTAMP WITH TIME ZONE,
pix_payment_id TEXT,
pix_qr_code TEXT,
pix_qr_code_base64 TEXT,
observacoes TEXT,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
UNIQUE(venda_id, numero_parcela)
);
-- Índices
CREATE INDEX IF NOT EXISTS idx_venda_parcelas_venda ON venda_parcelas(venda_id);
CREATE INDEX IF NOT EXISTS idx_venda_parcelas_status ON venda_parcelas(status);
CREATE INDEX IF NOT EXISTS idx_venda_parcelas_vencimento ON venda_parcelas(data_vencimento);
-- Trigger para updated_at
CREATE TRIGGER update_venda_parcelas_updated_at
BEFORE UPDATE ON venda_parcelas
FOR EACH ROW
EXECUTE FUNCTION update_updated_at_column();
-- RLS
ALTER TABLE venda_parcelas ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Enable all operations for authenticated users" ON venda_parcelas FOR ALL USING (true);
COMMENT ON TABLE venda_parcelas IS 'Armazena as parcelas individuais de cada venda parcelada';
COMMENT ON COLUMN venda_parcelas.numero_parcela IS 'Número da parcela (1, 2, 3, etc)';
COMMENT ON COLUMN venda_parcelas.status IS 'Status da parcela: pendente, pago, vencida, cancelada';
COMMENT ON COLUMN venda_parcelas.pix_payment_id IS 'ID do pagamento PIX do MercadoPago';
🔄 Passo 2: Reiniciar o Servidor
Após criar a tabela, reinicie o servidor Node.js:
# Parar o servidor atual (Ctrl+C no terminal)
# Depois iniciar novamente:
npm start
✨ Funcionalidades Implementadas
1. Registro de Venda com Parcelas
Ao criar uma venda parcelada, o sistema automaticamente:
- Salva as parcelas individuais no banco de dados
- Cada parcela tem seu valor, vencimento e status próprios
2. Mensagem WhatsApp Personalizada
A mensagem automática agora mostra:
Olá {Cliente}! 👋
Sua compra foi registrada com sucesso! 💙
Confira os detalhes abaixo:
📅 Data da compra: {data}
💰 Valor total: R$ {valor_total}
💳 Pagamento: {parcelas}x de R$ {valor_parcela} cada
Agradecemos pela sua preferência! 😊
Conte sempre com a Liberi Kids - Moda Infantil 👕👗
3. Visualização de Parcelas
Na tela de visualização da venda, aparece uma seção com todas as parcelas mostrando:
- Número da parcela (1/3, 2/3, etc.)
- Valor da parcela
- Data de vencimento
- Status (Pendente, Pago, Vencida)
- Botão para gerar PIX individual
4. PIX Individual por Parcela
- Cada parcela pode ter seu próprio PIX gerado
- O PIX pode ser enviado por WhatsApp individualmente
- Mensagem específica para cada parcela com vencimento
5. Gerenciamento de Status
- Sistema rastreia o status de cada parcela
- Data de pagamento é registrada automaticamente
- Identificação visual por cores (verde=pago, amarelo=pendente, vermelho=vencido)
🎨 Interface Visual
As parcelas são exibidas em cards coloridos:
- Verde: Parcela paga ✅
- Amarelo: Parcela pendente 🕐
- Vermelho: Parcela vencida ⚠️
📱 Alertas WhatsApp
O sistema está preparado para trabalhar com o sistema de alertas configurado anteriormente:
- Alertas antes do vencimento (3, 5 ou 7 dias)
- Alerta no dia do vencimento
- Alertas após vencimento (3, 5 ou 7 dias)
Cada alerta pode usar as variáveis:
{cliente}- Nome do cliente{valor}- Valor da parcela{quando}- Data de vencimento{parcela}- Número da parcela
🧪 Como Testar
-
Criar uma venda parcelada:
- Vá em Vendas > Nova Venda
- Selecione "Parcelado" como tipo de pagamento
- Escolha número de parcelas (ex: 3x)
- Defina data do primeiro vencimento
- Complete o registro da venda
-
Visualizar parcelas:
- Clique no ícone 👁️ (olho) na venda
- Role até a seção "💳 Parcelas Individuais"
- Veja todas as parcelas com valores e vencimentos
-
Gerar PIX de uma parcela:
- Na visualização da venda, clique em "Gerar PIX" de uma parcela
- O QR Code será gerado
- Envie por WhatsApp para o cliente
📊 Benefícios
- ✅ Controle individual de cada parcela
- ✅ PIX separado para cada vencimento
- ✅ Envio automático de lembretes por WhatsApp
- ✅ Rastreamento de pagamentos
- ✅ Interface visual clara e intuitiva
- ✅ Mensagem de venda mais profissional
🔧 Arquivos Modificados
-
Backend (
server-supabase.js):- Rotas para gerenciar parcelas
- Geração de PIX por parcela
- Envio de WhatsApp por parcela
- Mensagem automática atualizada
-
Frontend (
client/src/pages/Vendas.js):- Visualização de parcelas individuais
- Botões de ação para cada parcela
- Estados para gerenciar parcelas
-
Estilos (
client/src/styles/vendas-melhorias.css):- Cards de parcelas responsivos
- Cores por status
- Layout moderno
-
Banco de Dados (
sql/create-venda-parcelas.sql):- Nova tabela
venda_parcelas - Índices e constraints
- Políticas RLS
- Nova tabela
💡 Próximos Passos Sugeridos
- Implementar sistema automático de verificação de vencimentos
- Criar dashboard de parcelas a vencer
- Relatório de inadimplência
- Notificações automáticas via WhatsApp nos dias configurados
❓ Suporte
Se tiver dúvidas ou problemas:
- Verifique se a tabela foi criada corretamente no Supabase
- Confirme que o servidor foi reiniciado
- Verifique o console do navegador para erros JavaScript
- Verifique os logs do servidor Node.js
Sistema implementado com sucesso! 🎉