6.6 KiB
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
handleDeliveryStatusChangeestá sendo chamado - ✅ Se
loadDeliveriesestá 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
deliverySeqcorreto
🔄 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:
- Ir para
CompleteDeliveryScreen - Finalizar uma entrega
- Verificar logs de finalização
2. Verificar Callback:
- Procurar por logs do
OfflineModeContext - Confirmar se callback foi executado
3. Verificar Recarregamento:
- Procurar por logs do
DeliveriesContext - Confirmar se dados foram atualizados
4. Verificar Próxima Entrega:
- Procurar por logs da
HomeScreen - 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