213 lines
6.6 KiB
Markdown
213 lines
6.6 KiB
Markdown
|
|
# 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:**
|
||
|
|
```typescript
|
||
|
|
// 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:**
|
||
|
|
```typescript
|
||
|
|
// 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:**
|
||
|
|
```typescript
|
||
|
|
// 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
|
||
|
|
|