From 3e2d8572f19012bf230d473686847ad390c0ab5a Mon Sep 17 00:00:00 2001 From: chpark Date: Thu, 14 May 2026 16:05:36 +0900 Subject: [PATCH] =?UTF-8?q?feat(orders):=20USER=20=EC=B8=A1=20=EC=B6=9C?= =?UTF-8?q?=EA=B3=A0=EC=9A=94=EC=B2=AD=20+=20=EC=B6=9C=EA=B3=A0=EC=99=84?= =?UTF-8?q?=EB=A3=8C=20=EB=AA=A8=EB=91=90=20=EC=88=98=EC=A0=95=20=EA=B0=80?= =?UTF-8?q?=EB=8A=A5=20(=EC=9E=85=EA=B8=88=EC=99=84=EB=A3=8C=20=EC=A0=84?= =?UTF-8?q?=EA=B9=8C=EC=A7=80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 사용자 detail modal editable: REQUESTED → REQUESTED + APPROVED 모두 허용 - items/update API USER 가드: 동일하게 REQUESTED + APPROVED 허용 - 안내 문구 상태별로 분기 품목 추가/택배비 수정은 다음 단계에서 작업. --- src/app/(main)/m/orders/page.tsx | 7 ++++--- src/app/api/m/orders/items/update/route.ts | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/app/(main)/m/orders/page.tsx b/src/app/(main)/m/orders/page.tsx index 21dbcb3..9e31650 100644 --- a/src/app/(main)/m/orders/page.tsx +++ b/src/app/(main)/m/orders/page.tsx @@ -224,7 +224,8 @@ function DetailModal({ order, items, supplier, onClose, onCancel, onReload }: { onReload: () => void; }) { const ref = useRef(null); - const editable = order.STATUS === "REQUESTED"; + // 입금완료 전까지 — 출고요청(REQUESTED) + 출고완료(APPROVED) 모두 수정 가능 + const editable = order.STATUS === "REQUESTED" || order.STATUS === "APPROVED"; const updateItemLine = async (lineObjid: string, qty: number) => { const res = await fetch("/api/m/orders/items/update", { @@ -328,7 +329,7 @@ function DetailModal({ order, items, supplier, onClose, onCancel, onReload }: { {editable && (

- ✏️ 출고요청 상태 — 품목 수량을 직접 고치거나 [×]로 삭제할 수 있어요. 저장은 자동. + ✏️ {order.STATUS === "REQUESTED" ? "출고요청" : "출고완료"} 상태 — 입금완료 전까지 품목 수량 수정 · [×]로 삭제 가능. 저장은 자동.

)} @@ -400,7 +401,7 @@ function DetailModal({ order, items, supplier, onClose, onCancel, onReload }: { {editable && (
- ※ 출고요청 상태 — 품목 수량 수정 · 품목 삭제 · 주문 취소 모두 가능합니다. 택배/용차 라인은 모모 담당자가 조정합니다. + ※ {order.STATUS === "REQUESTED" ? "출고요청" : "출고완료"} 상태 — 입금완료 전까지 품목 수량 수정 · 품목 삭제 · 주문 취소 가능합니다. 택배/용차 라인은 모모 담당자가 조정합니다.
)} diff --git a/src/app/api/m/orders/items/update/route.ts b/src/app/api/m/orders/items/update/route.ts index 9a8983c..9e7dbad 100644 --- a/src/app/api/m/orders/items/update/route.ts +++ b/src/app/api/m/orders/items/update/route.ts @@ -50,9 +50,10 @@ export async function POST(req: NextRequest) { return NextResponse.json({ success: false, message: "계산서발행 또는 입금완료 이후 발주는 수정할 수 없습니다." }, { status: 400 }); } } else { - if (order.status !== "REQUESTED") { + // USER: 본인 발주의 REQUESTED + APPROVED (입금 완료 전) 모두 수량 수정 가능 + if (order.status !== "REQUESTED" && order.status !== "APPROVED") { await client.query("ROLLBACK"); - return NextResponse.json({ success: false, message: "출고요청 상태에서만 수정할 수 있습니다." }, { status: 400 }); + return NextResponse.json({ success: false, message: "입금완료 이후 발주는 수정할 수 없습니다." }, { status: 400 }); } }