--- import DashboardLayout from '../../../../layouts/DashboardLayout.astro'; import { Icon } from 'astro-icon/components'; import { db } from '../../../../db'; import { invoices, members } from '../../../../db/schema'; import { eq, and } from 'drizzle-orm'; const { id } = Astro.params; const user = Astro.locals.user; if (!user || !id) { return Astro.redirect('/dashboard/invoices'); } // Fetch invoice const invoice = await db.select() .from(invoices) .where(eq(invoices.id, id)) .get(); if (!invoice) { return Astro.redirect('/404'); } // Verify membership const membership = await db.select() .from(members) .where(and( eq(members.userId, user.id), eq(members.organizationId, invoice.organizationId) )) .get(); if (!membership) { return Astro.redirect('/dashboard'); } // Format dates for input[type="date"] const issueDateStr = invoice.issueDate.toISOString().split('T')[0]; const dueDateStr = invoice.dueDate.toISOString().split('T')[0]; const discountValueDisplay = invoice.discountType === 'fixed' ? (invoice.discountValue || 0) / 100 : (invoice.discountValue || 0); ---
Back to Invoice

Edit Details

Cancel