import { SalesOrderFulfillmentForm } from "@/components/sales-order-fulfillment-form"; import { SalesOrderForm } from "@/components/sales-order-form"; import { formatCurrency, formatDate } from "@/lib/format"; import { getCustomers, getOrderItemOptions, getSalesOrderLineDetails, getSalesOrders } from "@/lib/repository"; export default function SalesOrdersPage() { const customers = getCustomers(); const items = getOrderItemOptions(); const orders = getSalesOrders(); const orderLines = getSalesOrderLineDetails(); return (

Create Sales Order

Build the order from real inventory records so each line references an actual item in the database.

Sales Orders

Review the current order queue, fulfillment progress, and order value at a glance.

{orders.length === 0 ? ( ) : ( orders.map((order) => ( )) )}
OrderCustomerStatusTotalQty ProgressCreated
No sales orders yet.
{order.orderNumber} {order.customerName} {order.status} {formatCurrency(order.totalAmount)} {order.fulfilledQuantity} / {order.orderedQuantity} {formatDate(order.createdAt)}

Shipping Flow

Ship relational order lines directly by choosing quantities from the remaining balance on each line.

{orders.filter((order) => order.status !== "shipped").length === 0 ? (

No open or partial sales orders need shipping right now.

) : ( orders .filter((order) => order.status !== "shipped") .map((order) => (

{order.orderNumber}

{order.customerName} • {order.fulfilledQuantity} / {order.orderedQuantity} fulfilled • {formatCurrency(order.totalAmount)}

line.salesOrderId === order.id && line.remainingQuantity > 0)} />
)) )}
); }