diff --git a/src/components/purchase-orders/PurchaseOrderDataTable.tsx b/src/components/purchase-orders/PurchaseOrderDataTable.tsx index 8ee2aa5..0edbd98 100644 --- a/src/components/purchase-orders/PurchaseOrderDataTable.tsx +++ b/src/components/purchase-orders/PurchaseOrderDataTable.tsx @@ -23,7 +23,7 @@ import { } from "@/components/ui/dropdown-menu" import { jsPDF } from "jspdf" import { ReceiveStockDialog } from "./ReceiveStockDialog" -import pb from "@/lib/pocketbase" +import pb from "@/lib/pocketbase" // Import PocketBase client export type PurchaseOrder = { id: string @@ -192,52 +192,53 @@ export function PurchaseOrderDataTable({ ))} - {table.getRowModel().rows.map(row => { - const order = row.original as PurchaseOrder - return ( - - {row.getVisibleCells().map(cell => ( - - {flexRender(cell.column.columnDef.cell, cell.getContext())} + {table.getRowModel().rows.length ? ( + table.getRowModel().rows.map(row => { + const order = row.original as PurchaseOrder + return ( + + {row.getVisibleCells().map(cell => ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ))} + + {order.status === "Pending Approval" && ( + <> + + + + )} + {order.status === "Approved" && ( + <> + + + + )} + {order.status === "Received" && ( + Received + )} + {order.status === "Rejected" && ( + Rejected + )} - ))} - - {order.status === "Pending Approval" && ( - <> - - - - )} - {order.status === "Approved" && ( - <> - - - - )} - {order.status === "Received" && ( - Received - )} - {order.status === "Rejected" && ( - Rejected - )} - - - ) - }) - ) : ( - - No results. - - )} - - - + + ) + }) + ) : ( + + No results. + + )} + + + {selectedOrder && ( ({ stockItemId: item.stockItemId, diff --git a/src/components/purchase-orders/PurchaseOrderForm.tsx b/src/components/purchase-orders/PurchaseOrderForm.tsx index ecb4e95..be4b034 100644 --- a/src/components/purchase-orders/PurchaseOrderForm.tsx +++ b/src/components/purchase-orders/PurchaseOrderForm.tsx @@ -20,14 +20,15 @@ import { showSuccess, showError } from "@/utils/toast" import pb from "@/lib/pocketbase" import { StockItem } from "@/components/stock/columns" -const statusOptions = ["Pending Approval", "Approved", "Rejected"] as const +// Corrected status options to match the schema +const statusOptions = ["Pending", "Ordered", "Received"] as const const formSchema = z.object({ supplierName: z.string().min(2, { message: "Supplier name must be at least 2 characters." }), status: z.enum(statusOptions), items: z.array(z.object({ stockItemId: z.string({ required_error: "Select an item." }), - quantity: z.coerce.number().int().positive({ message: "Quantity must be positive." }), + quantity: z.number().int().positive({ message: "Quantity must be positive." }), })).min(1, { message: "At least one item is required." }), }) @@ -67,7 +68,7 @@ export function PurchaseOrderForm({ setOpen, refreshData }: PurchaseOrderFormPro resolver: zodResolver(formSchema), defaultValues: { supplierName: "", - status: "Pending Approval", + status: "Pending", // Set default status to "Pending" items: [{ stockItemId: "", quantity: 1 }], }, }) @@ -98,9 +99,9 @@ export function PurchaseOrderForm({ setOpen, refreshData }: PurchaseOrderFormPro form.reset() setOpen(false) refreshData() - } catch (err: any) { + } catch (err) { console.error("Failed to create purchase order:", err) - showError(`Failed to create purchase order: ${err.message}`); + showError("Failed to create purchase order. Please try again.") } }