feat(orders): USER 측 출고요청 + 출고완료 모두 수정 가능 (입금완료 전까지)
Deploy momo-erp / deploy (push) Successful in 2m5s

- 사용자 detail modal editable: REQUESTED → REQUESTED + APPROVED 모두 허용
- items/update API USER 가드: 동일하게 REQUESTED + APPROVED 허용
- 안내 문구 상태별로 분기

품목 추가/택배비 수정은 다음 단계에서 작업.
This commit is contained in:
chpark
2026-05-14 16:05:36 +09:00
parent 7977ffff19
commit 3e2d8572f1
2 changed files with 7 additions and 5 deletions
+4 -3
View File
@@ -224,7 +224,8 @@ function DetailModal({ order, items, supplier, onClose, onCancel, onReload }: {
onReload: () => void;
}) {
const ref = useRef<HTMLDivElement>(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 && (
<p className="mt-3 text-[11px] text-amber-700 bg-amber-50 border border-amber-200 rounded p-2">
[×] . .
{order.STATUS === "REQUESTED" ? "출고요청" : "출고완료"} · [×] . .
</p>
)}
<table className="w-full text-[11px] border border-slate-300 mt-2">
@@ -400,7 +401,7 @@ function DetailModal({ order, items, supplier, onClose, onCancel, onReload }: {
{editable && (
<div className="mt-4 pt-3 border-t border-slate-200 text-[11px] text-amber-700 bg-amber-50 rounded p-2">
<b> </b> · <b> </b> · <b> </b> . / .
{order.STATUS === "REQUESTED" ? "출고요청" : "출고완료"} <b> </b> · <b> </b> · <b> </b> . / .
</div>
)}
</div>
+3 -2
View File
@@ -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 });
}
}