feat: 倉庫業務屬性、庫存成本追蹤與採購單功能更新
All checks were successful
Koori-ERP-Deploy-System / deploy-demo (push) Successful in 58s
Koori-ERP-Deploy-System / deploy-production (push) Has been skipped

1. 倉庫管理:新增業務類型 (Owned/External/Customer) 與車牌資訊與司機欄位。
2. 庫存管理:實作成本追蹤 (unit_cost, total_value),更新列表與撥補單顯示。
3. 採購單:新增採購日期 (order_date),調整欄位名稱與順序。
4. 前端優化:更新相關 TS Type 定義與 UI 顯示。
This commit is contained in:
2026-01-26 17:27:34 +08:00
parent 106de4e945
commit ac6a81b3d2
24 changed files with 429 additions and 130 deletions

View File

@@ -4,7 +4,7 @@
import { useState, useEffect } from "react";
import type { PurchaseOrder, PurchaseOrderItem, Supplier, PurchaseOrderStatus } from "@/types/purchase-order";
import { calculateSubtotal } from "@/utils/purchase-order";
import { calculateSubtotal, getTodayDate } from "@/utils/purchase-order";
interface UsePurchaseOrderFormProps {
order?: PurchaseOrder;
@@ -14,6 +14,7 @@ interface UsePurchaseOrderFormProps {
export function usePurchaseOrderForm({ order, suppliers }: UsePurchaseOrderFormProps) {
const [supplierId, setSupplierId] = useState(order?.supplierId || "");
const [expectedDate, setExpectedDate] = useState(order?.expectedDate || "");
const [orderDate, setOrderDate] = useState(order?.orderDate || getTodayDate());
const [items, setItems] = useState<PurchaseOrderItem[]>(order?.items || []);
const [notes, setNotes] = useState(order?.remark || "");
const [status, setStatus] = useState<PurchaseOrderStatus>(order?.status || "draft");
@@ -32,6 +33,7 @@ export function usePurchaseOrderForm({ order, suppliers }: UsePurchaseOrderFormP
if (order) {
setSupplierId(order.supplierId);
setExpectedDate(order.expectedDate);
setOrderDate(order.orderDate || getTodayDate());
setItems(order.items || []);
setNotes(order.remark || "");
setStatus(order.status);
@@ -52,6 +54,7 @@ export function usePurchaseOrderForm({ order, suppliers }: UsePurchaseOrderFormP
const resetForm = () => {
setSupplierId("");
setExpectedDate("");
setOrderDate(getTodayDate());
setItems([]);
setNotes("");
setStatus("draft");
@@ -159,6 +162,7 @@ export function usePurchaseOrderForm({ order, suppliers }: UsePurchaseOrderFormP
// State
supplierId,
expectedDate,
orderDate,
items,
notes,
status,
@@ -174,6 +178,7 @@ export function usePurchaseOrderForm({ order, suppliers }: UsePurchaseOrderFormP
// Setters
setSupplierId,
setExpectedDate,
setOrderDate,
setNotes,
setStatus,
setWarehouseId,