fix: useEffect anti-patterns, attendance permissions, and received-invoices schema mismatch
- Remove ref-mirror useEffect in AuthContext (cachedUserRef already written at mutation sites) - Replace useEffect slide direction in ReceivedInvoices with render-time computation - Fix Login.tsx useEffect dependency array (mount-only alert should have [] deps) - Move "project created" alert to navigation source in ProjectCreate, remove useEffect in ProjectDetail - Move companySettings defaults into fetch callbacks in InvoiceDetail and OfferDetail - Replace due_date useEffect with useMemo in InvoiceDetail - Capture initial snapshots from API data instead of useEffect in InvoiceDetail, OfferDetail, OrderDetail - Replace localStorage draft useEffect with lazy useState initializer in OfferDetail - Fix attendance dropdown to filter by attendance.record permission only - Fix clock-out 404 on update-address (remove departure_time filter for departure action) - Fix received-invoices stats endpoint referencing non-existent is_deleted and amount_czk columns Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -381,12 +381,18 @@ export async function updateAddress(
|
||||
address: string | null,
|
||||
punchAction: string,
|
||||
) {
|
||||
// When updating departure address, the punch already set departure_time,
|
||||
// so we can't filter on departure_time: null. Find the latest record instead.
|
||||
const where: Record<string, unknown> = {
|
||||
user_id: userId,
|
||||
arrival_time: { not: null },
|
||||
};
|
||||
if (punchAction === "arrival") {
|
||||
where.departure_time = null;
|
||||
}
|
||||
|
||||
const latest = await prisma.attendance.findFirst({
|
||||
where: {
|
||||
user_id: userId,
|
||||
departure_time: null,
|
||||
arrival_time: { not: null },
|
||||
},
|
||||
where,
|
||||
orderBy: { created_at: "desc" },
|
||||
});
|
||||
if (!latest) return { error: "Nenalezen záznam" };
|
||||
|
||||
Reference in New Issue
Block a user