➕ 기능 추가
무엇 — 히어로코드×센터별로 월~일 요일별 수량제한을 미리 예약해 두면, 각 공급사 운영요일에만 활성화되고 발주마감 시각 기준으로 자동 최신화된다. 매일 손으로 올리던 작업을 없앤다.📍 위치: 상품관리 › 공급사 상품 관리 › 수량제한 수정
핵심 결정
스케줄 기준
히어로코드 × 센터 × 요일별 수량 자동 배정 (예: 월~토 20/50/20/30/60/50)
활성 요일
각 공급사 운영요일(seller_weekly_delivery)에 해당하는 요일만 활성 — 비운영요일은 셋팅 무의미
최신화 시각
각 공급사 발주마감(seller_weekly_deadline) 시각 기준으로 다음 발주분 수량 리셋
공급사 권한
공급사에게도 수량제한 편집 권한 부여 → MD 공수↓ (가격 스케줄의 can_partner_change_price 패턴 재사용)
기존 화면
「수량제한 수정」은 개수만(현행 유지) — 요일 스케줄은 신규 탭으로 분리
01화면 — 먼저 보기
이 티켓이 실제로 어떤 화면이 되는지부터
지금은 엑셀/개별 업로드만 되고 예약이 불가해 매일 수동으로 수량을 올린다. 「수량제한 수정」은 개수만 바꿀 뿐 요일 스케줄이 없다 — 이 화면이 요일별 자동 배정을 담당한다.
현행 화면 · 실제 캡처현행 「수량제한」 모달 — 요일 스케줄 추가
변경안 · 이렇게 바뀜
상품관리 › 공급사 상품 관리 › 수량제한 수정기능 추가
스케줄 상태 ▾🔍 히어로코드·상품명 검색요일 스케줄 일괄 설정엑셀 업로드공급사 권한 관리
▲ 요일 스케줄 목록 — 바뀌는 컬럼 🆕 강조(실 데이터 예시)
1목록 진입 — 공급사 상품 관리 › 수량제한 수정에서 [요일 스케줄] 탭 진입. 히어로코드별로 월~일 배정 수량과 스케줄 상태가 한눈에 보인다.
2요일 스케줄 설정 — 행 또는 일괄 선택 후 모달에서 월~일 수량을 입력. 공급사 운영요일이 아닌 요일 셀은 비활성(회색)으로 입력 불가.
3운영요일 연동 검증 — 저장 시 seller_weekly_delivery로 운영요일을 검증하고, 비운영요일 값은 is_active=false로 무시. 발주마감 시각(seller_weekly_deadline) 최신 여부를 안내.
4자동 최신화 실행 — 매 요일 발주마감 시각에 배치가 그날 qty_limit을 seller_product_center_limit.limit_count로 반영. 실패 시 재시도 후 MD 알림(가정).
5공급사 권한 위임 — [공급사 권한 관리]에서 공급사별 편집 허용 토글. 허용된 공급사는 자기 상품 스케줄만 직접 수정해 MD 공수를 줄인다.
seller_product_qty_schedule 신규
hero_product_codePK varchar(20)
center_codePK varchar(20)
day_of_weekPK smallint
qty_limitinteger
is_activeboolean
updated_byvarchar(20)
updated_attimestamp
신규 — 히어로코드×센터×요일별 수량제한 예약표. 요일 1축을 추가한 것 외 키 체계는 기존 center_limit과 동일.
seller_product_center_limit WRITE
hero_product_codePK varchar(20)
center_codePK varchar(20)
limit_countinteger
created_attimestamp
기존 수량제한 테이블. 발주마감 시각에 스케줄의 그날 값이 이 테이블의 limit_count로 반영된다(런타임 유효 수량).
seller_weekly_delivery READ
seller_idPK varchar(100)
mondayboolean
saturdayboolean
공급사 운영요일. 요일 boolean으로 스케줄 셀 활성/비활성을 결정한다.
seller_weekly_deadline READ
seller_idPK varchar(100)
mondayvarchar(5)
공급사 요일별 발주마감 시각(HH:MM). 스케줄 자동 최신화 배치의 트리거 시각.
seller_qty_schedule_permission 신규
seller_idPK varchar(20)
can_seller_change_qtyboolean
updated_byvarchar(20)
updated_attimestamp
신규 — 공급사 수량제한 편집 권한 플래그. 가격 스케줄의 can_partner_change_price 패턴을 수량제한에 적용.
seller_product_qty_schedule.hero_product_code = seller_product_center_limit.hero_product_code (동일 키, 요일축만 추가)
seller_product_qty_schedule.hero_product_code → seller_product.hero_product_code → seller_id (공급사 매핑)
seller_weekly_delivery.seller_id = seller_weekly_deadline.seller_id = seller_qty_schedule_permission.seller_id
운영요일 판정: seller_weekly_delivery[요일] = true 인 day_of_week만 is_active
-- MD-13 수량제한 요일 스케줄
-- 신규 1) 히어로코드×센터×요일별 수량제한 예약표
CREATE TABLE seller_product_qty_schedule (
hero_product_code varchar(20) NOT NULL, -- 히어로코드
center_code varchar(20) NOT NULL, -- 센터코드(예: 성동광진)
day_of_week smallint NOT NULL, -- 요일 0=일 ~ 6=토 (seller_weekly_delivery 컬럼 순서 정렬)
qty_limit integer NOT NULL DEFAULT 0, -- 해당 요일 배정 수량 (0 허용 여부는 정책)
is_active boolean NOT NULL DEFAULT true, -- 공급사 운영요일 여부 스냅샷(비운영요일 false)
updated_by varchar(20) NOT NULL, -- 수정자(MD 또는 공급사 계정)
updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 수정 시각
CONSTRAINT seller_product_qty_schedule_pk
PRIMARY KEY (hero_product_code, center_code, day_of_week),
CONSTRAINT seller_product_qty_schedule_dow_chk
CHECK (day_of_week BETWEEN 0 AND 6),
CONSTRAINT seller_product_qty_schedule_qty_chk
CHECK (qty_limit >= 0)
);
COMMENT ON TABLE seller_product_qty_schedule IS 'MD-13 히어로코드×센터×요일별 수량제한 예약 스케줄';
-- 신규 2) 공급사 수량제한 편집 권한 (가격 스케줄 can_partner_change_price 패턴 재사용)
CREATE TABLE seller_qty_schedule_permission (
seller_id varchar(20) NOT NULL, -- 공급사 ID
can_seller_change_qty boolean NOT NULL DEFAULT false, -- 공급사 직접 편집 허용
updated_by varchar(20) NOT NULL, -- 권한 부여자(MD)
updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 수정 시각
CONSTRAINT seller_qty_schedule_permission_pk PRIMARY KEY (seller_id)
);
COMMENT ON TABLE seller_qty_schedule_permission IS 'MD-13 공급사에게 수량제한 편집 권한 위임 플래그';
-- 조회 최적화: 발주마감 배치가 (센터, 요일)로 스캔
CREATE INDEX ix_qty_schedule_center_dow
ON seller_product_qty_schedule (center_code, day_of_week);
-- 참고: 자동 최신화 배치는 seller_weekly_deadline[요일] 시각에
-- seller_product_qty_schedule.qty_limit → seller_product_center_limit.limit_count 로 반영(UPSERT).
04화면 상세 — 세부 표·규칙
목록 외 품목표·모달·규칙 등 세부 화면
요일 스케줄 설정 모달
운영여부=seller_weekly_delivery, 발주마감=seller_weekly_deadline에서 자동 로드. 미운영 요일은 수량 입력칸 잠금. 하단 [엑셀 업로드]로 다건 일괄 입력 가능.
미결 처리 규칙표 (착수 전 확정 필요)
티켓 '처리 기준' 미결 항목. 착수 전 정책 확정용 — 확정 값으로 policies 갱신.