Files
wace_rps/docs/migration/sales/05-direct-order-verify.md
hjjeong 7c03907000 PR-B G2: 주문관리 수주입력 = 직접등록 통합폼 (is_direct_order='Y' + order_date + approval_required)
wace 패턴(estimateAndOrderRegistFormPopup + saveEstimateAndOrderInfo) 이식.
운영 데이터 90건 중 74건이 is_direct_order='Y' — 주문 신규 등록의 기본 흐름.

변경:
- 백엔드 OrderBody: order_date / approval_required / is_direct_order 신규 (contract_date 폐지, 운영 컬럼명 일치)
- create()/update() INSERT·UPDATE에 위 3개 컬럼 추가. is_direct_order 기본값 'Y'
- 프론트 OrderBody 타입 동기화. openCreate 시 order_date=today + is_direct_order='Y' 자동
- 폼 다이얼로그 "발주일" 입력을 order_date 바인딩 (잘못 contract_date 바인딩 정정)

자동 검증 (BEGIN/ROLLBACK):
- is_direct_order='Y' INSERT, order_date 저장, ORDER_* 라인 컬럼 정상
- 견적관리 그리드 노출 차단(IS_DIRECT_ORDER!='Y' 필터), 주문관리 그리드 노출 확인

docs/migration/sales/05-direct-order-verify.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 10:17:04 +09:00

2.5 KiB

05. PR-B G2 — 주문관리 직접등록 통합폼 (is_direct_order='Y')

작성: 2026-05-11 원본: wace_plm/WebContent/WEB-INF/view/contractMgmt/estimateAndOrderRegistFormPopup.jsp + ContractMgmtService.saveEstimateAndOrderInfo (라인 2664~) 대상: app/(main)/COMPANY_16/sales/order/page.tsx "수주입력" 다이얼로그 + POST /api/sales/order-mgmt

1. wace 패턴

견적 없이 주문을 바로 등록하는 통합폼. 핵심 차이:

  • contract_mgmt.is_direct_order = 'Y' 강제 (견적관리 그리드 노출 X — 견적관리 SQL이 IS_DIRECT_ORDER != 'Y' 필터)
  • 주문관리 그리드엔 노출
  • 헤더에 발주일(order_date) / 발주번호(po_no) 추가
  • 라인에 ORDER_* 컬럼 (수주수량/단가/공급가액/부가세/총액) 입력
  • 라인의 quantity = order_quantity 미러링 (wace 통합폼은 견적수량 별도 입력 X)

2. 운영 데이터 검증

contract_mgmt 90건 중 is_direct_order='Y' = 74건  (82%)

→ 운영 주문은 절대다수가 직접등록 통합폼으로 작성. G2가 주문 신규 등록의 기본 흐름.

3. RPS 변경

백엔드 [salesOrderMgmtService.ts]

  • OrderBody 타입: order_date / approval_required / is_direct_order 추가, contract_date 폐지 (운영 컬럼은 order_date)
  • create(): INSERT에 is_direct_order (default 'Y') / order_date / approval_required 추가
  • update(): 동일 컬럼 UPDATE
  • upsertItems: 기존 ORDER_* 처리 그대로 (이미 G2 호환)

프론트 [order/page.tsx] + [salesOrderMgmt.ts]

  • OrderBody: order_date/approval_required/is_direct_order 보강, contract_date 폐지
  • openCreate(): order_date = today + is_direct_order = 'Y' 기본값
  • openEdit(): order_date/approval_required/is_direct_order detail에서 복원
  • 폼 다이얼로그: "발주일" 입력을 order_date 바인딩 (이전 contract_date 잘못 바인딩 정정)

4. 자동 검증 결과 (BEGIN/ROLLBACK)

항목 결과
is_direct_order='Y' INSERT
order_date 컬럼에 저장 (2026-05-11)
ORDER_* 라인 컬럼 (qty/unit_price/total_amount)
견적관리 노출 차단 (필터 is_direct_order != 'Y') (0 rows)
주문관리 노출 (1 row)

5. 결론

기존 RPS create/update가 거의 G2 호환이라 신규 endpoint 없이 컬럼 보강(is_direct_order/order_date/approval_required)으로 처리. 분리 endpoint 불필요.

다음 단계: G5 견적작성 PDF 또는 G4 결재 모듈.