大更新
All checks were successful
Koori-ERP-Deploy-System / deploy-demo (push) Has been skipped
Koori-ERP-Deploy-System / deploy-production (push) Successful in 58s

This commit is contained in:
2026-01-08 16:32:10 +08:00
parent 7848976a06
commit 0b60dab208
25 changed files with 661 additions and 392 deletions

View File

@@ -9,6 +9,7 @@ import { Head, Link } from "@inertiajs/react";
import { StatusProgressBar } from "@/Components/PurchaseOrder/StatusProgressBar";
import PurchaseOrderStatusBadge from "@/Components/PurchaseOrder/PurchaseOrderStatusBadge";
import CopyButton from "@/Components/shared/CopyButton";
import { PurchaseOrderItemsTable } from "@/Components/PurchaseOrder/PurchaseOrderItemsTable";
import type { PurchaseOrder } from "@/types/purchase-order";
import { formatCurrency, formatDateTime } from "@/utils/format";
import { getShowBreadcrumbs } from "@/utils/breadcrumb";
@@ -104,66 +105,17 @@ export default function ViewPurchaseOrderPage({ order }: Props) {
<div className="p-6 border-b border-gray-100">
<h2 className="text-lg font-bold text-gray-900"></h2>
</div>
<div className="overflow-x-auto">
<table className="w-full">
<thead>
<tr className="bg-gray-50/50">
<th className="text-left py-4 px-6 text-xs font-semibold text-gray-500 uppercase tracking-wider w-[50px]">
#
</th>
<th className="text-left py-4 px-6 text-xs font-semibold text-gray-500 uppercase tracking-wider">
</th>
<th className="text-right py-4 px-6 text-xs font-semibold text-gray-500 uppercase tracking-wider">
</th>
<th className="text-right py-4 px-6 text-xs font-semibold text-gray-500 uppercase tracking-wider w-32">
</th>
<th className="text-right py-4 px-6 text-xs font-semibold text-gray-500 uppercase tracking-wider">
</th>
</tr>
</thead>
<tbody className="divide-y divide-gray-100">
{order.items.map((item, index) => (
<tr key={index} className="hover:bg-gray-50/30 transition-colors">
<td className="py-4 px-6 text-gray-500 font-medium text-center">
{index + 1}
</td>
<td className="py-4 px-6">
<div className="flex flex-col">
<span className="font-medium text-gray-900">{item.productName}</span>
<span className="text-xs text-gray-400">ID: {item.productId}</span>
</div>
</td>
<td className="py-4 px-6 text-right">
<div className="flex flex-col items-end">
<span className="text-gray-900">{formatCurrency(item.unitPrice)}</span>
</div>
</td>
<td className="py-4 px-6 text-right">
<span className="text-gray-900 font-medium">
{item.quantity} {item.unit}
</span>
</td>
<td className="py-4 px-6 text-right font-bold text-gray-900">
{formatCurrency(item.subtotal)}
</td>
</tr>
))}
</tbody>
<tfoot className="bg-gray-50/50 border-t border-gray-100">
<tr>
<td colSpan={4} className="py-5 px-6 text-right font-medium text-gray-600">
</td>
<td className="py-5 px-6 text-right font-bold text-xl text-primary">
{formatCurrency(order.totalAmount)}
</td>
</tr>
</tfoot>
</table>
<div className="p-6">
<PurchaseOrderItemsTable
items={order.items}
isReadOnly={true}
/>
<div className="mt-4 flex justify-end items-center gap-4 border-t pt-4">
<span className="text-gray-600 font-medium"></span>
<span className="text-xl font-bold text-primary">
{formatCurrency(order.totalAmount)}
</span>
</div>
</div>
</div>
</div>