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

3.5 KiB

🔧 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:

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