Files
distribution_erp/src
chpark 4f2543686a feat(items): 한정 수량(limit_qty) + 출고일 배지 — 마감 사이클 단위 누적 상한
신규 컬럼: momo_items.limit_qty INTEGER (null/0 = 제한 없음)
  · ensureColumns 에서 ADD COLUMN IF NOT EXISTS 자동 보장
  · 관리자 품목 폼: '한정 수량 (이번 마감 사이클 누적 상한)' 필드 추가

마감 사이클 정의 (sale_end_date 요일 기준):
  · 월요일 마감(DOW=1): 저번주 금~월 마감 시각 (마감일 -3일 00:00 ~ 마감일)
  · 화요일 마감(DOW=2): 저번주 금~화 마감 시각 (마감일 -4일 00:00 ~ 마감일)
  · 그 외: sale_start_date ~ sale_end_date (fallback)

누적 합산 대상: 같은 사이클 안에 등록된 momo_order_items.qty
  · status: REQUESTED/APPROVED/PAID/INVOICED (CANCELLED 제외)
  · kind='ITEM' (택배/용차/환불 제외)

검증 (모든 사용자/관리자/unlimited_qty 권한 무관 적용):
  · orders/save: 이번 요청 합 + reserved <= limit_qty 체크
  · orders/items/add: 동일 검증 (트랜잭션 client 사용)
  · orders/items/update: newQty - oldQty 차이만 비교 (수량 증가 시)

신규 파일:
  · src/lib/momo-cycle.ts — getReservedQty(itemObjid, client?) 헬퍼

사용자 출고요청 화면(/m/orders/new):
  · 카드/리스트에 RESERVED_QTY 받아 '한정 잔여 N / 한정 M' 표시
  · 한정 소진 시 '한정 수량 소진' 배지 + 담기 버튼 비활성
  · 이미지 위 출고일 배지: 월요일 마감 → '수요일 출고', 화요일 마감 → '금요일 출고'
  · limit_qty 가 없는 품목은 무한대 (기존 동작 유지)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-01 00:17:20 +09:00
..