chore: sincroniza projeto para gitea
This commit is contained in:
200
INSTRUCOES-PARCELAS.md
Normal file
200
INSTRUCOES-PARCELAS.md
Normal file
@@ -0,0 +1,200 @@
|
||||
# 🎯 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
|
||||
|
||||
1. Acesse o **Supabase Dashboard** do seu projeto
|
||||
2. Vá em **SQL Editor**
|
||||
3. Execute o seguinte script:
|
||||
|
||||
```sql
|
||||
-- =====================================================
|
||||
-- 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:
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
1. **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
|
||||
|
||||
2. **Visualizar parcelas**:
|
||||
- Clique no ícone 👁️ (olho) na venda
|
||||
- Role até a seção "💳 Parcelas Individuais"
|
||||
- Veja todas as parcelas com valores e vencimentos
|
||||
|
||||
3. **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
|
||||
|
||||
1. **Backend** (`server-supabase.js`):
|
||||
- Rotas para gerenciar parcelas
|
||||
- Geração de PIX por parcela
|
||||
- Envio de WhatsApp por parcela
|
||||
- Mensagem automática atualizada
|
||||
|
||||
2. **Frontend** (`client/src/pages/Vendas.js`):
|
||||
- Visualização de parcelas individuais
|
||||
- Botões de ação para cada parcela
|
||||
- Estados para gerenciar parcelas
|
||||
|
||||
3. **Estilos** (`client/src/styles/vendas-melhorias.css`):
|
||||
- Cards de parcelas responsivos
|
||||
- Cores por status
|
||||
- Layout moderno
|
||||
|
||||
4. **Banco de Dados** (`sql/create-venda-parcelas.sql`):
|
||||
- Nova tabela `venda_parcelas`
|
||||
- Índices e constraints
|
||||
- Políticas RLS
|
||||
|
||||
## 💡 Próximos Passos Sugeridos
|
||||
|
||||
1. Implementar sistema automático de verificação de vencimentos
|
||||
2. Criar dashboard de parcelas a vencer
|
||||
3. Relatório de inadimplência
|
||||
4. Notificações automáticas via WhatsApp nos dias configurados
|
||||
|
||||
## ❓ Suporte
|
||||
|
||||
Se tiver dúvidas ou problemas:
|
||||
1. Verifique se a tabela foi criada corretamente no Supabase
|
||||
2. Confirme que o servidor foi reiniciado
|
||||
3. Verifique o console do navegador para erros JavaScript
|
||||
4. Verifique os logs do servidor Node.js
|
||||
|
||||
---
|
||||
**Sistema implementado com sucesso! 🎉**
|
||||
Reference in New Issue
Block a user