fix(WEB): 수주 삭제 조건 강화 및 개별삭제 기능 추가

- 삭제 버튼 수주등록/수주확정 상태에서만 표시 (생산지시 이후 삭제 불가)
- deleteItem 핸들러 추가하여 개별 삭제 지원
- 삭제 후 통계(stats) 자동 갱신
This commit is contained in:
2026-02-09 21:30:52 +09:00
parent 9aae26b4f2
commit 2ad27d738f

View File

@@ -606,8 +606,8 @@ function OrderListContent() {
<Edit className="h-4 w-4 mr-2" />
</Button>
{/* 삭제 버튼 - shipped, cancelled 제외 모든 상태에서 표시 */}
{order.status !== "shipped" && order.status !== "cancelled" && (
{/* 삭제 버튼 - 수주등록/수주확정 상태에서 표시 (생산지시 이후 삭제 불가) */}
{(order.status === "order_registered" || order.status === "order_confirmed") && (
<Button
variant="outline"
size="default"
@@ -643,12 +643,21 @@ function OrderListContent() {
data: filteredOrders,
totalCount: filteredOrders.length,
}),
deleteItem: async (id) => {
const result = await deleteOrder(id);
if (result.success) {
setOrders((prev) => prev.filter((o) => o.id !== id));
const statsResult = await getOrderStats();
if (statsResult.success && statsResult.data) {
setApiStats(statsResult.data);
}
}
return result;
},
deleteBulk: async (ids) => {
const result = await deleteOrders(ids);
if (result.success) {
setOrders(orders.filter((o) => !ids.includes(o.id)));
setSelectedItems(new Set());
toast.success(`${ids.length}개의 수주가 삭제되었습니다.`);
setOrders((prev) => prev.filter((o) => !ids.includes(o.id)));
const statsResult = await getOrderStats();
if (statsResult.success && statsResult.data) {
setApiStats(statsResult.data);