diff --git a/app/(app)/remittances/index.tsx b/app/(app)/remittances/index.tsx index c5a6567..3f004a7 100644 --- a/app/(app)/remittances/index.tsx +++ b/app/(app)/remittances/index.tsx @@ -14,7 +14,7 @@ export default function RemittancesScreen() { const [remittancesQ, unremittedQ] = useQueries({ queries: [ { queryKey: ['remittances'], queryFn: () => api.get('/api/v1/remittances?limit=50').then(r => r.data?.data ?? r.data) }, - { queryKey: ['unremitted'], queryFn: () => api.get('/api/v1/payments?unremitted=true').then(r => r.data).catch(() => null) }, + { queryKey: ['unremitted'], queryFn: () => api.get('/api/v1/payments/unremitted').then(r => r.data).catch(() => []) }, ], }); @@ -24,14 +24,9 @@ export default function RemittancesScreen() { const refetchAll = () => { remittancesQ.refetch(); unremittedQ.refetch(); }; // Compute unremitted total from raw payments or summary - const unremittedPayments: any[] = Array.isArray(unremittedQ.data?.data) - ? unremittedQ.data.data - : Array.isArray(unremittedQ.data) - ? unremittedQ.data - : []; - const unremittedTotal = unremittedQ.data?.totalUnremitted - ?? unremittedPayments.reduce((s: number, p: any) => s + Number(p.amount ?? 0), 0); - const unremittedCount = unremittedQ.data?.count ?? unremittedPayments.length; + const unremittedPayments: any[] = Array.isArray(unremittedQ.data) ? unremittedQ.data : []; + const unremittedTotal = unremittedPayments.reduce((s: number, p: any) => s + Number(p.amount ?? 0), 0); + const unremittedCount = unremittedPayments.length; return ( diff --git a/app/(app)/remittances/submit.tsx b/app/(app)/remittances/submit.tsx index 2450456..2166e14 100644 --- a/app/(app)/remittances/submit.tsx +++ b/app/(app)/remittances/submit.tsx @@ -9,25 +9,21 @@ export default function SubmitRemittanceScreen() { const [notes, setNotes] = useState(''); const [loading, setLoading] = useState(false); - // Fetch unremitted payments to auto-fill amount + // Fetch unremitted payments — correct endpoint is GET /api/v1/payments/unremitted const { data: unremittedData, isLoading: loadingUnremitted } = useQuery({ queryKey: ['unremitted'], - queryFn: () => api.get('/api/v1/payments?unremitted=true').then(r => r.data).catch(() => null), + queryFn: () => api.get('/api/v1/payments/unremitted').then(r => r.data).catch(() => []), }); - const unremittedPayments: any[] = Array.isArray(unremittedData?.data) - ? unremittedData.data - : Array.isArray(unremittedData) - ? unremittedData - : []; - const totalAmount = unremittedData?.totalUnremitted - ?? unremittedPayments.reduce((s: number, p: any) => s + Number(p.amount ?? 0), 0); + const unremittedPayments: any[] = Array.isArray(unremittedData) ? unremittedData : []; + const totalAmount = unremittedPayments.reduce((s: number, p: any) => s + Number(p.amount ?? 0), 0); const submit = async () => { if (totalAmount <= 0) return Alert.alert('Nothing to Submit', 'You have no unremitted payments to submit.'); setLoading(true); try { - await api.post('/api/v1/remittances', { totalAmount: Number(totalAmount), notes: notes.trim() || undefined }); + const paymentIds = unremittedPayments.map((p: any) => p.id); + await api.post('/api/v1/remittances', { paymentIds, notes: notes.trim() || undefined }); Alert.alert('Submitted!', `₱${Number(totalAmount).toLocaleString()} remittance submitted.`, [ { text: 'OK', onPress: () => router.back() }, ]); @@ -77,7 +73,7 @@ export default function SubmitRemittanceScreen() { {p.client?.firstName} {p.client?.lastName} - {p.paymentMethod} · {p.client?.accountNumber} + {p.channel} · {p.client?.accountNumber} ₱{Number(p.amount).toLocaleString()}