134 lines
3.5 KiB
Markdown
134 lines
3.5 KiB
Markdown
# 🔧 CORREÇÃO: Data de Vencimento para Vendas "A Prazo"
|
|
|
|
## ❌ Problema
|
|
Quando criava uma venda "a prazo" com data de vencimento **07/11/2025**, o sistema mostrava a **data de hoje** (18/10/2025) na coluna Vencimento.
|
|
|
|
---
|
|
|
|
## ✅ Solução Implementada
|
|
|
|
### 1. **Banco de Dados - Adicionar Coluna**
|
|
|
|
A tabela `vendas` precisa ter a coluna `data_vencimento`. Execute este SQL no Supabase:
|
|
|
|
```sql
|
|
-- Adicionar coluna data_vencimento na tabela vendas
|
|
ALTER TABLE vendas
|
|
ADD COLUMN IF NOT EXISTS data_vencimento DATE;
|
|
|
|
-- Comentário da coluna
|
|
COMMENT ON COLUMN vendas.data_vencimento IS 'Data de vencimento para vendas a prazo';
|
|
```
|
|
|
|
**Como executar:**
|
|
1. Acesse o Supabase Dashboard
|
|
2. Vá em **SQL Editor**
|
|
3. Cole o código acima
|
|
4. Clique em **Run**
|
|
|
|
---
|
|
|
|
### 2. **Código Atualizado**
|
|
|
|
#### Frontend (`/client/src/pages/Vendas.js`):
|
|
- ✅ Adicionado campo `data_vencimento` no estado inicial
|
|
- ✅ Campo de data separado para vendas "a prazo"
|
|
- ✅ Exibição correta na tabela (mostra data_vencimento em vez de data_venda)
|
|
- ✅ Badge alterado para "⏳ A Prazo" em vez de "✅ Pago"
|
|
|
|
#### Backend (`/server-supabase.js`):
|
|
- ✅ Recebe campo `data_vencimento` do frontend
|
|
- ✅ Salva no banco apenas quando `tipo_pagamento === 'prazo'`
|
|
- ✅ Validação incluída
|
|
|
|
---
|
|
|
|
## 🎯 Como Funciona Agora
|
|
|
|
### Criar Venda "A Prazo":
|
|
|
|
1. Acesse **Vendas** → **Nova Venda**
|
|
2. Selecione tipo de pagamento: **"A Prazo"**
|
|
3. Aparece campo: **"Data de Vencimento"**
|
|
4. Selecione a data desejada (ex: 07/11/2025)
|
|
5. Adicione produtos e finalize
|
|
|
|
### Resultado na Tabela:
|
|
|
|
| ID Venda | Data | Cliente | Produtos | Parcela/Pagamento | Valor | **Vencimento** | Status |
|
|
|----------|------|---------|----------|-------------------|-------|----------------|--------|
|
|
| VD... | 18/10/2025 | Tiago | Produto X | A Prazo | R$ 65,24 | **07/11/2025** | ⏳ A Prazo |
|
|
|
|
---
|
|
|
|
## 📊 Diferenças por Tipo de Pagamento
|
|
|
|
### À Vista:
|
|
- **Vencimento:** Mostra data da venda
|
|
- **Status:** ✅ Pago (verde)
|
|
- **Campo:** Não pede data de vencimento
|
|
|
|
### Parcelado:
|
|
- **Vencimento:** Mostra data de cada parcela individual
|
|
- **Status:** Varia por parcela (Pendente/Pago)
|
|
- **Campo:** Data do 1º vencimento
|
|
|
|
### A Prazo:
|
|
- **Vencimento:** Mostra `data_vencimento` específica
|
|
- **Status:** ⏳ A Prazo (amarelo)
|
|
- **Campo:** Data de vencimento única
|
|
|
|
---
|
|
|
|
## 🧪 Para Testar
|
|
|
|
1. **Execute o SQL no Supabase** (passo 1 acima)
|
|
2. **Reinicie o servidor** (já feito automaticamente)
|
|
3. **Crie uma venda "A Prazo":**
|
|
- Tipo: A Prazo
|
|
- Data de Vencimento: 07/11/2025
|
|
- Produto: Qualquer
|
|
- Valor: R$ 65,24
|
|
|
|
4. **Verifique a tabela:**
|
|
- Coluna "Vencimento" deve mostrar: **07/11/2025** ✅
|
|
- Status deve mostrar: **⏳ A Prazo** ✅
|
|
|
|
---
|
|
|
|
## ⚠️ IMPORTANTE
|
|
|
|
**Execute o SQL no Supabase antes de testar!**
|
|
|
|
Sem a coluna `data_vencimento` na tabela, o sistema não conseguirá salvar a data.
|
|
|
|
---
|
|
|
|
## 📁 Arquivos Modificados
|
|
|
|
### Frontend:
|
|
- `/client/src/pages/Vendas.js`
|
|
- Linha 163: Adicionado `data_vencimento` ao estado
|
|
- Linhas 1482-1493: Campo específico para tipo "prazo"
|
|
- Linhas 1321-1329: Exibição correta na tabela
|
|
|
|
### Backend:
|
|
- `/server-supabase.js`
|
|
- Linha 1614: Recebe `data_vencimento` do frontend
|
|
- Linha 1657: Salva no banco quando tipo = "prazo"
|
|
|
|
### SQL:
|
|
- `/sql/add-data-vencimento-vendas.sql` (NOVO)
|
|
- Script para adicionar coluna ao banco
|
|
|
|
---
|
|
|
|
## ✅ Status
|
|
|
|
- ✅ Frontend atualizado e build gerado
|
|
- ✅ Backend atualizado
|
|
- ✅ Servidor reiniciado
|
|
- ⏳ **Aguardando:** Executar SQL no Supabase
|
|
|
|
**Após executar o SQL, o sistema estará 100% funcional!**
|