fix(orders): 출고관리 수정 범위 좁히기 — REQUESTED + APPROVED 만
Deploy momo-erp / deploy (push) Successful in 2m52s
Deploy momo-erp / deploy (push) Successful in 2m52s
직전엔 PAID/CANCELED 외 모두 허용했는데, 사용자 재요청으로 계산서발행 (INVOICED) 도 잠금. editable = REQUESTED || APPROVED. items/update API admin 가드도 동일하게 좁힘.
This commit is contained in:
@@ -440,9 +440,9 @@ function StatementPreview({
|
||||
|
||||
const statementRef = useRef<HTMLDivElement>(null);
|
||||
const lowStock = items.filter((it) => it.KIND === "ITEM" && Number(it.STOCK_QTY) < Number(it.QTY));
|
||||
// 입금완료(PAID)/취소(CANCELED) 전까지는 거래명세표 수정 가능 (관리자 화면이므로 항상 admin).
|
||||
// 사용자가 수량 변경 요청하면 담당자가 여기서 수정 → 재고/총액 자동 갱신 → 사용자 측 화면에도 그대로 반영됨.
|
||||
const editable = order.STATUS !== "PAID" && order.STATUS !== "CANCELED";
|
||||
// 출고요청(REQUESTED) / 출고완료(APPROVED) 만 수정 가능.
|
||||
// 계산서발행(INVOICED) / 입금완료(PAID) / 취소(CANCELED) 는 수정 불가.
|
||||
const editable = order.STATUS === "REQUESTED" || order.STATUS === "APPROVED";
|
||||
|
||||
// 거래명세표를 이미지로 캡처 → 공유 또는 다운로드
|
||||
const handleCapture = async () => {
|
||||
|
||||
@@ -42,11 +42,11 @@ export async function POST(req: NextRequest) {
|
||||
await client.query("ROLLBACK");
|
||||
return NextResponse.json({ success: false, message: "권한이 없습니다." }, { status: 403 });
|
||||
}
|
||||
// USER: REQUESTED 만, ADMIN: 입금완료(PAID)/취소 전까지 모두 (REQUESTED / SHIPPED 등)
|
||||
// USER: REQUESTED 만, ADMIN: REQUESTED/APPROVED 만 (계산서발행/입금완료/취소 차단)
|
||||
if (isAdmin) {
|
||||
if (order.status === "PAID" || order.status === "CANCELED") {
|
||||
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 });
|
||||
}
|
||||
} else {
|
||||
if (order.status !== "REQUESTED") {
|
||||
|
||||
Reference in New Issue
Block a user