import { createFileRoute } from "@tanstack/react-router"; import { ReceiptText, User, Clock, DollarSign } from "lucide-react"; import { DetailRow, BackLink, EmptyState } from "#/components/ui"; import { useGetBillById } from "shared-react"; export const Route = createFileRoute("/billing/$id")({ component: BillDetailsPage, staticData: { title: "Bill Details", subtitle: "Loading...", }, }); function BillDetailsPage() { const { id } = Route.useParams(); const billId = Number(id); const { data: bill, isLoading } = useGetBillById(billId); if (isLoading) return
Loading bill...
; if (!bill) { return ( ); } const d = new Date(bill.created_at); const dateStr = d.toLocaleDateString("en-US", { weekday: "long", month: "long", day: "numeric", year: "numeric", hour: "2-digit", minute: "2-digit" }); return (
{bill.bill_no}
{dateStr}
{bill.customer_name ? `${bill.customer_name} (${bill.customer_mobile})` : bill.customer_mobile}
₹{bill.total.toFixed(2)}
Completed

Timings & Info

Generated{dateStr} Items{bill.items.length}

Payment Summary

Subtotal₹{bill.subtotal.toFixed(2)} Tax ({bill.tax_rate}%)₹{bill.tax.toFixed(2)} Discount{bill.discount_percent}% Total ₹{bill.total.toFixed(2)}

Bill Items

{bill.items.map((item) => ( ))}
Product Strips Loose Price Total
{item.product_name}
{item.brand &&
{item.brand}
}
{item.strips} {item.loose} {item.original_price !== item.selling_price ? (
₹{item.original_price.toFixed(2)} ₹{item.selling_price.toFixed(2)}
) : ( ₹{item.selling_price.toFixed(2)} )}
₹{item.total.toFixed(2)}
); }