Files
App-Estoque-LiberiKids/CORRIGIR-DATA-VENCIMENTO.md
2025-11-29 21:31:52 -03:00

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!**