MD-02 · 발주 문서 관리 · 기획 문서

발주 문서 관리

바이어(매입처) 발주서를 어드민에서 작성·다운로드·현황 관리한다. 공급사별로 발주서가 나가고, 대기업 API 발주현황관리와 별개인 새 메뉴다. 품목은 상품 마스터에서 자동으로 채우고, 사람은 수량(EA)·공급가액만 넣는다.

실제로 눌러보는 클릭 프로토타입md-02-v2 열기 ↗

양식 = 26.00 단일 (실제 파일 기준)

EA 기준 · 공급사별 · 이전 2종(바이어/판매분)은 폐기

1
헤더 = 발주처(딜리버리랩) / 공급처(선택한 공급사) 양쪽 사업자번호·주소·담당자 + 발주요청일·배송요청일. · 발주처(고정) 담당자 = 로그인한 사용자의 이름·휴대폰번호가 자동 표기(별도 입력·관리 없음, 계정 정보 그대로 사용).
2
품목 컬럼 = 상품코드·유통사 상품코드·DC 작업 코드·상품명·상품상세·중량·상태·원산지·면과세·규격·유통기한·박스입수량·수량(EA)·공급가액·부가세액·총공급가·합계금액·박스수·팔렛트입수·PLT수.
부가세액 = 면세 ? 0 : 공급가액 × 10%
총공급가 = 공급가액 + 부가세액
합계금액 = 총공급가 × 수량(EA)
박스수 = 수량(EA) ÷ 박스입수량  ·  PLT수 = 박스수 ÷ 팔렛트입수
실검증: 혼합미 공급가액 50,000(면세) · 수량 200 → 합계 10,000,000 · 박스수 200 = 실제 파일값 일치.

발주 작성

공급사 선택 → 품목 추가 → 수량(EA)·공급가액 입력 → 다운로드

실제 프로토타입 (라이브)전체 열기 ↗
↑ 화면 폭에 맞춰 축소 표시 · 원본은 「전체 열기」로
1
공급사 먼저 선택 → 공급처 정보 자동 채움. 발주서는 공급사별로 나감(한 공급사 = 한 발주서).
2
품목은 [+ 상품 추가]기존 어드민 상품 선택 모달 호출(HERO코드·유통사·상품명 필터 + 원가·단가·판매가·예상입고일·수량제한 표 · 멀티선택→추가). 히어로코드·유통사코드·DC 작업 코드·박스입수·규격 등은 자동.
3
사람 입력 = 수량(EA)·공급가액(단가) 두 개. 금액·박스수는 자동. 행 체크박스 + [선택 삭제].
4
명칭은 내부 「DC 작업 코드」로 통일. 외부 발주서엔 "센터 작업 코드"로 인쇄. 매핑 없으면 빈칸+경고(MD-03).

발주 문서 현황

공급사명 검색 · 삭제(로그) · 다중 선택

실제 프로토타입 (라이브)전체 열기 ↗
↑ 화면 폭에 맞춰 축소 표시 · 원본은 「전체 열기」로
1
다운로드 후 "발주 문서 현황에 등록하시겠습니까?" → 등록 시 엑셀 첨부 + 업로더·일시 기록.
2
컬럼에 공급사명·담당자명 추가 · 공급사명 검색 · 발주번호 체크박스/전체선택.
3
삭제 — 잘못 발송 등 대비. 삭제하면 삭제 이력(삭제자·일시·발주번호)에 로그가 남음.
4
상태 = 등록완료(작성본 업로드 후 미확정분은 임시). 전달·입고는 안2/수동. 발주 작성엔 임시저장 없음.
5
빈 상태 시작 · 임시저장 제외. 실제 진입 시 품목은 빈 상태로 시작(프로토의 채워진 품목은 데모 샘플). 아이디별 초안을 계속 물고 있을 필요가 없다고 봐 매번 새로 작성 → 발주서 다운로드. 필요하면 다운로드본을 「+ 작성본 업로드」로 등록.

데이터 모델 (ERD) · 구조

바이어 발주는 신규 3테이블 + 기존 seller 계열 참조. (DB 실측: 바이어 발주 전용 테이블 없음 → 신규. 기존 order_placement·member_order는 전부 고객 주문)

신규 (NEW)
purchase_order NEW
idPK
po_no발주번호
seller_id거래처/허브
real_supplier_id실 공급사(v2)
center_id납품처
delivery_req_date배송요청일
round회차
status임시/등록완료
total_amount합계
file_pathxlsx 첨부
uploader / created_at업로더·일시
발주 문서 마스터 · 1 발주서 = 1 실 공급사.
purchase_order_item NEW
idPK
po_idFK
hero_code상품코드
dist_code유통사상품코드
dc_codeDC작업코드
tax_type면세/과세
qty_ea · unit_price_eaEA
supply · vat · total금액
26.00 양식 품목행 · VAT=면세0/과세10%.
purchase_order_delete_log NEW
idPK
po_no발주번호
seller_name공급사
deleted_by · at삭제자·일시
삭제 이력(회의: 삭제 로그 필수).
기존 참조 (READ · DB 실측)
seller READ
id · name공급사
biz_no · addr사업자·주소
167건 · 공급처=공급사 마스터.
seller_manager_phone READ
seller_idFK
manager · phone담당자·연락처
담당자 연락처(카톡/메일 발송=안3 선행).
seller_center READ
seller_id · center_id납품처
598건 · 공급사↔센터 매핑.
seller_product READ
hero_code · name품목
price(공급가)단가 프리필
62k · 발주 품목 검색·단가. seller_settlement_info=정산.
purchase_order 1 −< purchase_order_item >− seller_product(hero_code)
purchase_order >− seller(seller_id=거래처 · real_supplier_id=실공급사) · >− center(납품처)
seller 1 −< seller_manager_phone · 1 −< seller_center · 1 −< seller_settlement_info
DDL (초안)
-- 발주 문서 마스터
CREATE TABLE purchase_order (
  id                BIGINT PRIMARY KEY,
  po_no             VARCHAR(20) NOT NULL,      -- PO-YYMMDD-N
  seller_id         BIGINT REFERENCES seller(id),  -- 거래처(허브)
  real_supplier_id  BIGINT REFERENCES seller(id),  -- 실 공급사(v2)
  center_id         BIGINT,                        -- 납품처
  delivery_req_date DATE,
  round             INT,                           -- 회차(배송요청일 단위)
  status            VARCHAR(10) DEFAULT 'draft',-- draft/registered
  total_amount      NUMERIC(14,0),
  file_path         TEXT,                          -- xlsx 첨부(S3)
  uploader          VARCHAR(20),
  created_at        TIMESTAMP DEFAULT now()
);

-- 발주 품목 (26.00 양식 · 1:N)
CREATE TABLE purchase_order_item (
  id            BIGINT PRIMARY KEY,
  po_id         BIGINT NOT NULL REFERENCES purchase_order(id),
  hero_code     VARCHAR(20),
  dist_code     VARCHAR(20),               -- 유통사 상품코드
  dc_code       VARCHAR(20),               -- DC 작업 코드(MD-03)
  product_name  VARCHAR(120),
  tax_type      VARCHAR(4),                -- 면세/과세
  box_in        INT,  qty_ea INT,        -- 박스입수·수량(EA)
  unit_price_ea NUMERIC(12,2),
  supply_amount NUMERIC(14,0),            -- 공급가액 = 단가×수량
  vat_amount    NUMERIC(14,0),            -- 면세0 / 과세 10%
  total_amount  NUMERIC(14,0)
);

-- 삭제 이력
CREATE TABLE purchase_order_delete_log (
  id          BIGINT PRIMARY KEY,
  po_no       VARCHAR(20),  seller_name VARCHAR(80),
  deleted_by  VARCHAR(20),  deleted_at  TIMESTAMP DEFAULT now()
);
처리 흐름
  1. 공급사 선택 → 공급처(거래처·실공급사·담당자·연락처) 자동. seller · seller_manager_phone
  2. 품목 검색(seller_product) → 수량(EA)·단가 입력 → 26.00 양식 계산(면과세 VAT).
  3. 발주서 xlsx 다운로드 — 실 공급사별 1장 · 단품 5천만원↑ 알럿.
  4. “발주 문서 현황 등록?” → purchase_order + items 저장(상태 등록완료·xlsx 첨부·업로더 로그).
  5. 기간·공급사별 조회·엑셀(월 정산) · 삭제 시 purchase_order_delete_log.
과도기(4단계)와 연결: 안1=다운로드·현황 / 안2=재고·선입선출(MD-01) 연결 / 안3=카톡·메일 발송(seller_manager_phone) / 안4=공급사 로그인 열람.
📌

결정사항 (컨펌용)

양식
26.00 단일로 픽스. 이전 바이어/판매분 2종은 폐기.
단위
EA 기준. 수량(EA)·공급가액(단가) 입력, 박스수는 파생.
공급사
공급사별 발주. 공급사 선택(공급사명만 노출) → 공급처 자동 · 한 공급사 = 한 발주서. 공급처는 기존 공급사 관리 메뉴 사용(발주에 별도 공급처 관리·추가 없음). 거래처(허브)=「이천 Hub」 단일 고정(현행 운영).
명칭
내부 「DC 작업 코드」로 통일(양식엔 센터 작업 코드로 인쇄). = MD-03 매핑 자동.
회차
발주 건 = 배송요청일 단위. 회차는 센터별 라벨(1급 개념 아님).
등록·상태·삭제
다운로드 후 등록 여부 물어봄 · 상태 임시/등록완료 · 삭제 가능 + 로그.
재고량 연동
고도화(안2). 이번엔 재고 자동 연결 없음.

4단계 과도기

이번 = 안1

안1 · 이번
작성·다운로드·현황
양식(26.00) 작성 → 엑셀 다운로드 → 등록·첨부·삭제(로그) 관리.
요약새 메뉴 「발주 문서 관리」 · 26.00 단일 양식 · 공급사별 · EA 기준 · 마스터 자동채움 + 수량·공급가액만 입력 · 등록/삭제(로그) · 재고·발송은 고도화(안2~4).