entregas_app/docs/DEBUG_LOGS_ATUALIZACAO_PROX...

6.6 KiB

Debug Logs para Atualização do Card da Próxima Entrega

🎯 Objetivo

Investigar por que o card da próxima entrega não está sendo atualizado após a finalização de uma entrega, adicionando logs detalhados em todo o fluxo de atualização.

🔍 Logs Adicionados

1. OfflineModeContext - Callback de Notificação

Logs Adicionados:

// Notificar mudança no status da entrega
if (onDeliveryStatusChanged) {
  console.log('🚨 OFFLINE CONTEXT - NOTIFICANDO MUDANÇA NO STATUS DA ENTREGA');
  console.log('🚨 Callback registrado:', !!onDeliveryStatusChanged);
  onDeliveryStatusChanged();
  console.log('🚨 Callback executado com sucesso');
} else {
  console.log('🚨 OFFLINE CONTEXT - NENHUM CALLBACK REGISTRADO');
}

O que Verificar:

  • Se o callback está registrado
  • Se o callback está sendo executado
  • Se há erro na execução do callback

2. DeliveriesContext - Recarregamento de Dados

Logs Adicionados:

// Função handleDeliveryStatusChange
const handleDeliveryStatusChange = useCallback(() => {
  console.log("🚨 DELIVERIES CONTEXT - STATUS DE ENTREGA MUDOU - RECARREGANDO DADOS")
  console.log("🚨 DELIVERIES CONTEXT - Executando loadDeliveries(false)")
  console.log("🚨 DELIVERIES CONTEXT - Estado atual antes do reload:", {
    deliveriesCount: deliveries.length,
    loading: loading,
    isRefreshing: isRefreshing
  })
  loadDeliveries(false)
}, [loadDeliveries, deliveries.length, loading, isRefreshing])

// Função loadDeliveries
console.log("🚨 DELIVERIES CONTEXT - INICIANDO CARREGAMENTO")
console.log("🚨 DELIVERIES CONTEXT - Estado atual antes do carregamento:", {
  deliveriesCount: deliveries.length,
  loading: loading,
  isRefreshing: isRefreshing
})

console.log("🚨 DELIVERIES CONTEXT - Total de entregas:", data.length)
console.log("🚨 DELIVERIES CONTEXT - Primeiras 3 entregas:", data.slice(0, 3).map(d => ({
  id: d.id,
  customerName: d.customerName,
  status: d.status,
  deliverySeq: d.deliverySeq
})))

console.log("🚨 DELIVERIES CONTEXT - DADOS ATUALIZADOS:", {
  totalDeliveries: sortedData.length,
  firstDelivery: sortedData[0] ? {
    id: sortedData[0].id,
    customerName: sortedData[0].customerName,
    status: sortedData[0].status,
    deliverySeq: sortedData[0].deliverySeq
  } : null
})

O que Verificar:

  • Se handleDeliveryStatusChange está sendo chamado
  • Se loadDeliveries está sendo executado
  • Se os dados estão sendo carregados do SQLite
  • Se os dados estão sendo atualizados no estado
  • Se a primeira entrega tem o status correto

3. HomeScreen - Próxima Entrega

Logs Adicionados:

// Log para debug da próxima entrega
useEffect(() => {
  console.log('🚨 HOMESCREEN - PRÓXIMA ENTREGA ATUALIZADA:', {
    nextDelivery: nextDelivery ? {
      id: nextDelivery.id,
      customerName: nextDelivery.customerName,
      status: nextDelivery.status,
      deliverySeq: nextDelivery.deliverySeq
    } : null,
    totalDeliveries: deliveries.length,
    sortedDeliveriesCount: sortedDeliveries.length
  })
}, [nextDelivery, deliveries.length, sortedDeliveries.length])

O que Verificar:

  • Se a próxima entrega está sendo atualizada
  • Se o status da entrega anterior mudou para "delivered"
  • Se a nova próxima entrega tem o deliverySeq correto

🔄 Fluxo de Debug Esperado

1. Finalização da Entrega:

LOG  🚨 INICIANDO completeDeliveryOffline...
LOG  🚨 completeDeliveryOffline executado com sucesso!
LOG  🚨 OFFLINE CONTEXT - NOTIFICANDO MUDANÇA NO STATUS DA ENTREGA
LOG  🚨 Callback registrado: true
LOG  🚨 Callback executado com sucesso

2. Recarregamento dos Dados:

LOG  🚨 DELIVERIES CONTEXT - STATUS DE ENTREGA MUDOU - RECARREGANDO DADOS
LOG  🚨 DELIVERIES CONTEXT - Executando loadDeliveries(false)
LOG  🚨 DELIVERIES CONTEXT - Estado atual antes do reload: {deliveriesCount: 5, loading: false, isRefreshing: false}
LOG  🚨 DELIVERIES CONTEXT - INICIANDO CARREGAMENTO
LOG  🚨 DELIVERIES CONTEXT - USANDO DADOS LOCAIS
LOG  🚨 DELIVERIES CONTEXT - Total de entregas: 5
LOG  🚨 DELIVERIES CONTEXT - Primeiras 3 entregas: [...]
LOG  🚨 DELIVERIES CONTEXT - DADOS ATUALIZADOS: {totalDeliveries: 5, firstDelivery: {...}}

3. Atualização da Próxima Entrega:

LOG  🚨 HOMESCREEN - PRÓXIMA ENTREGA ATUALIZADA: {
  nextDelivery: {
    id: "123",
    customerName: "Cliente B",
    status: "pending",
    deliverySeq: 2
  },
  totalDeliveries: 5,
  sortedDeliveriesCount: 5
}

🚨 Possíveis Problemas a Identificar

1. Callback Não Registrado:

LOG  🚨 OFFLINE CONTEXT - NENHUM CALLBACK REGISTRADO

Solução: Verificar se DeliveriesContext está registrando o callback corretamente.

2. Callback Não Executado:

LOG  🚨 OFFLINE CONTEXT - NOTIFICANDO MUDANÇA NO STATUS DA ENTREGA
LOG  🚨 Callback registrado: true
[FALTA: LOG  🚨 Callback executado com sucesso]

Solução: Verificar se há erro na execução do callback.

3. Dados Não Atualizados:

LOG  🚨 DELIVERIES CONTEXT - DADOS ATUALIZADOS: {
  firstDelivery: {
    status: "pending" // ← Deveria ser "delivered"
  }
}

Solução: Verificar se o SQLite está sendo atualizado corretamente.

4. Próxima Entrega Não Atualizada:

LOG  🚨 HOMESCREEN - PRÓXIMA ENTREGA ATUALIZADA: {
  nextDelivery: {
    customerName: "Cliente A", // ← Deveria ser "Cliente B"
    deliverySeq: 1 // ← Deveria ser 2
  }
}

Solução: Verificar se getNextDelivery está filtrando corretamente.

📱 Como Testar

1. Finalizar uma Entrega:

  1. Ir para CompleteDeliveryScreen
  2. Finalizar uma entrega
  3. Verificar logs de finalização

2. Verificar Callback:

  1. Procurar por logs do OfflineModeContext
  2. Confirmar se callback foi executado

3. Verificar Recarregamento:

  1. Procurar por logs do DeliveriesContext
  2. Confirmar se dados foram atualizados

4. Verificar Próxima Entrega:

  1. Procurar por logs da HomeScreen
  2. Confirmar se próxima entrega mudou

🎯 Resultado Esperado

Após implementar os logs, deve ser possível identificar exatamente onde o fluxo está falhando:

  • Se callback não está sendo registrado
  • Se callback não está sendo executado
  • Se dados não estão sendo atualizados
  • Se próxima entrega não está sendo recalculada

Com essas informações, será possível implementar a correção específica para o problema identificado.


Data: 2024-01-16
Status: 🔍 Em Investigação
Próximo Passo: Analisar logs após finalização de entrega