위치: 프로젝트 상세(SCR-PM-016) › [발주] 탭 하위 — 독립 영역이 아니라 프로젝트를 열고 [발주] 탭으로 들어가는 계약·발주 흐름입니다. 사이드바 📦발주관리 1차 메뉴는 전역 현황(입고·재고 SCR-OM-007)만 담습니다.
로우파이 데스크톱 와이어프레임 · 근거: DE22-1 화면설계서 §09 OM 발주관리 (SCR-OM-001~007, v1.1-r8 풀 명세) · 배치만 표현, 정본은 vault md · 관련 API 는 발주관리 37주소가 구현(as-built)됐습니다. 절단 최적화·널링 지시서·다단 승인선도 구현을 마쳤고(2026-07-27 서버 코드 대조), 견적 개정 감지 배너도 구현을 마쳤습니다(2026-08-19, IF-OM-REVISION-001). 남은 MISSING 표기는 발주서 묶음 PDF 출력·실측 반영 증감 대조입니다.
?step=1~5)이므로 단계별 프레임으로 나눠 총 12 프레임으로 구성했습니다.
진입 — 프로젝트 [발주] 탭 계약 영역의 [계약 등록 →](계약이 없을 때 — #2108 ㉑). SCR-ES-001 [발주(OM)] 은 견적 버전 선택 창을 열어 SCR-OM-004 로 간다(#1751 — #2112 에서 바로잡음 · #2233 — 창은 버전만 고르고 뺄 섹션은 위저드 1단계에서 고른다)
다음 단계 — [계약 등록] 성공 → SCR-OM-002 계약 목록·상세 · [취소] → 프로젝트 [발주] 탭.
/api/pm/projects/{projectNo} — 브레드크럼·fgptitle에 쓰는 프로젝트 컨텍스트(프로젝트명) 조회/api/pm/options/groups/{groupCode}/values — 색상(외부/내부)·유리 사양 select 옵션 값 목록/api/es/estimate-lines/{lineId} — 견적 라인 조회 — 계약 등록 시 서버가 견적에서 quoteAmount 를 채운다/api/om/projects/{projectId}/contracts — [계약 등록] 버튼 — 계약번호 자동채번(CON-YYYY-NNN)·계약정보·옵션확정 저장 (IF-OM-CONTRACT-001)진입 — SCR-PM-016 프로젝트 상세 [발주] 탭 진입 시 계약 영역이 기본 노출
다음 단계 — 계약이 진행중이면 같은 [발주] 탭의 SCR-OM-003 [발주 만들기] 로 이어 간다(📌 #3775 — 종전 [발주 생성하기]).
v.3 · Rev.1, #2961 — ⏳ 서버·화면 반영 전)·지불 조건·옵션 확정·계약 확정일을 kv로 보여준다. 목록 「견적 버전」 칸과 등록 화면 「계약 지정 견적」 줄도 버전과 회차를 함께 적는다./api/pm/projects/{projectNo} — 프로젝트 컨텍스트 조회/api/om/projects/{projectId}/contracts — 계약 목록(번호·견적버전·금액·납기·상태) 조회 (IF-OM-CONTRACT-001)/api/om/contracts/{contractId} — 우측 상세 패널(조건·옵션 확정·확정일) 조회/api/om/contracts/{contractId}/history — 이력 타임라인(변경일·변경자·내용) 조회/api/om/purchase-orders?estimateId={계약의 estimateId} — 이 계약에 딸린 발주 수(total). 0 보다 크면 [계약 취소] 를 잠근다 (IF-OM-ORDER-001, #2229)/api/om/contracts/{contractId}/cancel — 계약 취소(ROLE_ADMIN·사유 필수) — 이 계약에 딸린 발주가 있으면 409 CONTRACT_HAS_ORDERS 가드 (IF-OM-CONTRACT-002)| 계약 번호 | 견적 버전 | 계약금액 | 납기일 | 상태 |
|---|---|---|---|---|
| 2CON-2026-001 | v.3 · Rev.1 | ₩ 568,463,387 | 2026-10-30 | 진행중 |
| CON-2025-042 | v.1 · Rev.1 | ₩ 363,378,673 | 2026-03-15 | 완공 |
| 일시 | 변경자 | 내용 |
|---|---|---|
| 2025-05-14 | 성윤정 | 계약 등록 (신규 → 진행중) |
| 2025-05-20 | 성윤정 | 유리 사양 변경 확정 |
다음 단계 — [발주 만들기] → 「무엇으로 발주하나요?」 선택 창 → 묶음 발주(SCR-OM-004 1단계 묶음 고르기) · 일반 발주(견적 버전 선택 창 f4 → SCR-OM-004) · 선발주(f4 선발주 갈래 → SCR-OM-004 ?advance=1) · 추가·보정(SCR-OM-006) (📌 #3775 — 종전 [발주 생성하기] · [선발주 만들기] · [추가·보정 발주 →] 셋을 합쳤다, ✅ 화면 반영 f9fa4783(#1402)) · 조회 역할은 [자재 대조 보기 →] → SCR-OM-006 · 발주 행 → SCR-OM-005.
f9fa4783(#1402)) — 발주를 만드는 문은 이것 하나다. 누르면 「무엇으로 발주하나요?」 선택 창(⑥)이 뜬다. 만들기 역할에게만 보이고, 계약이 「진행중」·「완공」 이 아니면 잠근다(#2905). 조회 역할에게는 그 자리에 [자재 대조 보기 →](SCR-OM-006)가 선다. 종전 [발주 생성하기] 는 견적 버전 선택 모달(f4)로 바로 이어졌다.f9fa4783(#1402) — 종전 [선발주 만들기] 버튼 자리) — 새 흐름(묶음 목록 newFlow)이면 묶음 발주 · 선발주 · 추가·보정, 아니면 일반 발주 · 선발주 · 추가·보정 세 줄이다. 골라 두는 줄은 차례대로 ① 승인됐고 발주에 안 든 묶음이 있으면 묶음 발주 ② 누적 대조에 부족 자재가 있으면 추가·보정 ③ 나머지 새 흐름은 선발주 ④ 새 흐름에 들지 않으면 일반 발주다. 고를 묶음이 없으면 묶음 발주 줄을 잠그고 까닭을 적는다. 정본 DE22-1 §09 §3.3 #3775 상자 · §4.4 「들어가는 문」 상자. ⓘ 선발주 줄(종전 [선발주 만들기], #3588) — 계약이 진행중이면 언제든 계약 견적의 확정 라인으로 자재를 예측해 산다(오차 감수, 횟수 제한 없음). 누르면 OM-004 를 선발주 모드로 연다 — 1단계가 묶음 고르기 대신 계약 견적의 섹션 고르기(#2233 모양)로 서고 요청에 advance: true 를 싣는다. 선발주는 작업지시를 만들지 않는다. 진입은 현장담당 승인 묶음이 없어도 열린다 — 작업지시를 여는 관문은 그대로 현장담당이 승인한 제작지시서다.f9fa4783(#1402) — 종전 「선발주 N차」·「추가·보정 N차」 배지) — 늘 보인다. advanceRound > 0 이면 「선발주 · N번째」, additionalRound > 0 이면 「추가·보정 · N번째」, batchIds 가 있으면 「묶음 발주」, 그 밖은 「일반」이다. 취소한 발주는 선발주 · 추가·보정만 가르고 나머지는 「—」다. 서버 칸을 더하지 않고 화면이 세 칸으로 가른다. 예측으로 산 양(선발주)과 모자라서 더 산 양(추가·보정)을 따로 읽게 하는 #3588 의 뜻은 그대로다.finalOrderStatus 가 COMPLETE 일 때다 — 계약 부호가 모두 묶음에 들고, 묶음이 모두 발주되고, 발주가 모두 승인되고, 부족 자재가 없다. 남은 선발주(과발주)는 양만 보인다. 서버가 셈해 보이기만 하고 아무 동작도 막지 않는다. 새 흐름에 들지 않은 프로젝트(NOT_APPLICABLE)는 배지를 두지 않는다./api/pm/projects/{projectNo} — 프로젝트 컨텍스트 조회/api/om/purchase-orders?projectId={id}&status=&orderType=&orderRound=&page=&size= — 발주 회차 목록(발주 기준 설계·회차·금액·상태·발주일) 조회 (IF-OM-ORDER-001)GET /api/om/purchase-orders/{purchaseOrderId}/export?format=xlsx|pdf — 발주서 받기 — 실물 문서 형태별 서식 넷(원자재·부자재·임가공·널링) xlsx 기본, 파일이 여럿이면 zip, PDF 는 사본 — IF-OM-ORDER-001 §5.6.4 (#2305). 묶음(ids)은 그 절 규약을 따른다/api/om/projects/{projectId}/revision-alert — 기준 견적 개정(Rev.N→N+1) 감지 배너 (IF-OM-REVISION-001 §5.6.7)advanceRound · additionalRound · batchIds — 「구분」 칸 글 (📌 #3775 — 서버 칸 더하지 않음 · ✅ 화면 반영 f9fa4783(#1402))/api/fs/projects/{projectId}/batches — 선택 창이 새 흐름(newFlow)과 고를 묶음(status = APPROVED · inLivePurchaseOrder = false)을 읽는다 (§5.4.38, 📌 #3775 · ✅ 화면 반영 f9fa4783(#1402))/api/om/projects/{projectId}/material-balance — 자재 누적 대조의 finalOrderStatus(NOT_APPLICABLE·IN_PROGRESS·SHORTAGE·COMPLETE)와 conditions — 머리 「최종 발주 마무리」 배지 (IF-OM-REQ-001 · DE24-1 §5.8.13, #3588 — ✅ 서버 반영 #3591 · ⏳ 화면 반영 전)/api/om/purchase-orders 요청 advance: true — 선택 창 「계약 견적으로 미리 — 선발주」(종전 [선발주 만들기])로 연 위저드가 낸다. 지정된 계약 견적이 아니면 409 ADVANCE_ORDER_NOT_CONTRACT_ESTIMATE, supplement·batchIds[] 와 함께 오면 400 (IF-OM-ORDER-001 §5.6.1, #3588)| 발주번호 | 7구분 | 회차 | 묶음 | 금액 정산 합계 / 중량 | 상태 | 발주일 | 발주서 |
|---|---|---|---|---|---|---|---|
| PO-2026-099-01 | 선발주 · 1번째 | 1회 | — | ₩ 21,300,000 | 승인 | 2026-10-20 | 발주서 받기 ↓ |
| PO-2026-099-02 | 묶음 발주 | 2회 | 1차 · 101동 | ₩ 9,655,680 | 4발주확정 🔒 | 2026-10-21 | 발주서 받기 ↓ |
| PO-2026-099-03 | 추가·보정 · 1번째 | 3회 | — | ₩ 1,240,000 | 승인 대기 | — | — |
| PO-2026-098-01 | 일반 | 1회 | — | ₩ 4,120,000 | 승인 | 2026-09-30 | 발주서 받기 ↓ |
| 무엇으로 발주하나요? | 설명 | |
|---|---|---|
| ◉ | 승인된 제작 묶음으로 — 묶음 발주 | 현장담당이 제작지시서를 승인한 묶음을 담아 삽니다. 선발주로 산 양은 빼고 셉니다. |
| ○ | 계약 견적으로 미리 — 선발주 | 계약 견적으로 자재를 미리 삽니다. 작업지시는 서지 않습니다. |
| ○ | 모자란 자재만 — 추가·보정 | 실측·제조 뒤 모자란 자재만 더 삽니다. |
f9fa4783(#1402)) — 문은 [발주 만들기] 하나 · 「구분」 칸 · 회차 「N회」 · 이름은 「묶음 발주」(「정발주」·「본발주」 쓰지 않음) · SCR-OM-006 은 화면으로 남긴다. 새 흐름에 들지 않은 프로젝트의 창은 첫 줄이 「견적 버전으로 — 일반 발주」(→ f4)다. · 회차 = 그 프로젝트 안에서 발주가 선 차례(선발주·묶음 발주·보정을 함께 센다). [발주서 받기] = 실물 문서 형태별 발주서 묶음 다운로드(xlsx 기본 · PDF 사본, #2305). 발송 후 잠금(order-locked). · #3588 — 머리 「최종 발주 마무리」 배지(선발주 진입·배지는 위 #3775 로 갈음). 흐름은 ① 선발주 → ② 묶음 발주(OM-004 1단계 승인된 묶음 고르기) → ③ 부족분 추가 발주(OM-006 [자재 누적 대조] → [차이분 발주 생성 (새 회차)]) → ④ 최종 발주 마무리. 셋 다 작업지시를 만들지 않는다. 정본 DE24-1 §5.8.13 「선발주 · 묶음 발주 · 부족분 추가 발주 · 최종 발주 마무리」.진입 — SCR-OM-003 발주 목록 [발주 만들기] → 선택 창의 「견적 버전으로 — 일반 발주」 또는 「계약 견적으로 미리 — 선발주」 (📌 #3775 — 종전 [발주 생성하기] · [선발주 만들기] 버튼)
다음 단계 — [발주 생성 시작] → SCR-OM-004 · 견적 버전이 0건이면 [견적 탭으로 →] → SCR-ES-001 (#2106 ⑳) · 확정 라인 0건 안내와 [견적 상세로 →] 는 위저드 1단계 섹션 칸으로 옮긴다 (#2233).
/api/es/projects/{projectId}/estimates — 프로젝트의 견적 버전 목록과 계약·비계약 구분 조회/api/es/estimate-lines?estimateId={id}/api/om/estimates/{estimateId}/material-requirements 로 받는다진입 — 견적 버전 선택 창 [발주 생성 시작] (SCR-OM-003 [발주 만들기] 창 — 종전 [발주 생성하기], 📌 #3775 · SCR-ES-001 [발주(OM)] · SCR-ES-003 [발주 만들기 →]) / SCR-OM-005 [같은 견적의 남은 섹션 발주 →] — 그 견적 버전으로 바로 연다 (#2233) / SCR-OM-006 [차이분 발주 생성(새 회차)] 버튼 재진입 / SCR-OM-005 [이어서 작성] — 작성중 발주를 그 값으로 채워 연다 (#2214) / SCR-OM-003 [발주 만들기] 창 「계약 견적으로 미리 — 선발주」(종전 [선발주 만들기], 📌 #3775) — 아래 섹션 고르기 화면이 선발주 모드로 선다 (#3588 · ✅ 화면 반영 f9fa4783(#1402)). 새 흐름 프로젝트에서 묶음 발주로 열면 1단계는 아래 둘째 그림 「승인된 제작 묶음 고르기」다 (#3053 · ✅ 화면 반영 #3058)
다음 단계 — [다음] → 2단계 · 라인이 확정 안 된 섹션은 잠그고 그 줄에 [견적 라인 확정 화면으로 →] → SCR-ES-005, 고를 섹션이 없으면 [견적 상세로 →] → SCR-ES-003 (#2233), 진입값이 없으면 [발주 목록으로] · 위저드를 떠나는 단추는 저장 안 한 입력이 있으면 확인창 먼저 · 다른 도메인으로 가는 단추는 모두 새 창 (#2112 결정 4·5 · #2106 ⑫⑯⑲).
a0cfd6ff(#1362) · 한 줄 높이 보완 1bfe4dcc(#1370)) — 카드 대신 표 한 줄에 자재 하나를 둔다. 줄은 한 줄 높이(36px)이고, 알림이 있는 줄만 키가 커진다. 칸은 일곱이다 — 선택(체크 칸, 덮인 자재는 잠금) · 자재(이름 한 줄로 접는다, 전체는 마우스를 올리면 보인다, 누르면 체크 — DE22-1 §00 §4.4 「이름 칸은 두 줄까지」의 예외) · 코드(자재 코드 · 공급 구분) · 필요량(한 줄에 「44.7 EA (합친 41 · 손실 5%)」, 전체 문장 「합친 수량 41 EA · 손실률 5% 반영」은 마우스를 올리면 보인다, 손실률이 없으면 괄호 없음) · 출처(한 줄에 「2곳 · SEC-A 12대 · …」, 한 곳이면 출처 줄만, 없으면 「—」, 전체는 마우스를 올리면 보인다. 출처 목록이 없는 옛 응답에서 두 곳 이상이면 「N곳에서 합쳤습니다」만) · 알림(계산할 수 없는 곳 · 기본 산식 · 선발주 남음 · 누적 부족을 접지 않고 다 보인다, 없으면 「—」) · 발주 수량(숫자 입력과 단위, 고르지 않으면 꺼진다). 형재 줄은 발주 수량 칸에 「필요 조각 수 [입력] 단위 + 3단계 안내」를 한 줄로 적고, 안내 전체(「발주 본수는 3단계 절단 결과로 정해집니다.」)는 마우스를 올리면 보인다. 줄 차례는 자재 코드 차례다. 계산할 수 없는 곳이 있는 줄은 노란 배경이다. 머리 줄은 표 안에서 굴려도 붙어 있고, 표 높이는 화면의 70% 까지다. 재고 · 거래처 칸은 1단계 자료에 없어 두지 않는다. 까닭은 카드 52장이 화면 4.9장을 차지했고 카드 높이가 제각각이었으며 찾기 칸이 없고 수량 칸까지 Tab 을 두 번 눌러야 했기 때문이다. 5AW 36대 · 144)을 적는다(#2233 — 섹션마다 대수가 달라 「몇 대분」 뱃지 대신이다). 종전 화면은 고른 견적 라인 하나의 소요였다(#2112). 수량 초깃값은 서버가 준 실제 필요량(requiredQty)을 정수로 올린 값이고, 체크와 수량 입력으로 부분 선택·수량 조정을 한다. 옛 화면(ASIS)의 「섹션 카드」는 #865·#2112 로 지금 모습이 되었다.advance: true 를 싣는다. 수량은 발주 담당이 예측해 정한다 — 대수를 줄이거나 자재를 빼도 된다(오차 감수). 묶음 없이 내고, 승인해도 작업지시를 만들지 않는다.newFlow·poGateActive)의 묶음 발주는 섹션 고르기 자리에 승인된 묶음 표(차수·이름·부호별 수량·개소·승인한 현장담당·승인 시각)를 둔다. 여러 묶음을 한 발주에 담을 수 있다. 이미 살아 있는 발주에 든 묶음(inLivePurchaseOrder)은 「(이미 발주에 담김)」을 붙여 보이되 고를 수 없다. 섹션을 빼는 칸은 없다 — 범위는 차수(실측한 개소를 서버가 세운 묶음, 📌 #3704)로 이미 정해졌다(batchIds[] 를 싣고 견적 라인 칸을 비운다. 승인된 묶음이 없으면 「현장담당이 승인한 제작 묶음이 없습니다. 현장 관리 화면에서 진행을 확인하세요.」를 보인다.1bfe4dcc(#1370)) — 수량 칸에서 Enter 를 누르면 찾기로 거른 뒤 보이는 줄 가운데 아래쪽의 고른 줄 수량 칸으로 간다. Shift+Enter 는 위로 간다. 안 고른 줄과 숨은 줄은 건너뛰고, 끝 줄이면 그대로 머문다. 체크 칸은 Tab 차례에 남는다(접근성).380e7dcf · ✅ 서버 응답 칸 반영 7c636b83(#3876)) — 찾기 칸 바로 옆의 세 칸 고르기 단추다. 처음에는 「전체」가 골라져 있다. 칸마다 그 칸을 누르면 보일 줄 수를 적는다(찾는 글자를 반영한 수). 찾기 칸과 함께 걸려 두 조건을 모두 만족하는 줄만 보인다. 가르는 값은 자재 마스터의 자재 구분이고, 발주 자재 소요 응답 줄의 materialKind(RAW·SUB)로 받는다. 구분이 빈 자재는 「전체」에만 보인다. 응답에 이 칸이 없으면 「원자재」·「부자재」 칸을 끄고 「자재 구분을 받지 못해 원자재·부자재로 거를 수 없습니다.」를 적는다. 고른 상태·입력 수량은 바뀌지 않는다. [전체 선택]/[선택 해제]는 거른 때 보이는 줄에만 건다(#3891 — 위 [전체 선택]/[선택 해제] 줄). 고른 칸은 단계를 옮기면 「전체」로 돌아간다. 정본은 DE22-1 §09 §4.4 「📌 결정 #3870」 상자다.FR-ES-025 · ⏳ 서버 · 화면 반영 전) — 「발주할 섹션」 칸 줄마다 부호 글자 왼쪽에 작은 칸 40 px. 섹션을 빼거나 담는 판단을 하는 유일한 자리라서 어떤 창인지 모양으로 본다. 마우스를 올리면 240 px 미리보기가 뜬다. 칸이 없는 섹션은 같은 크기 빈 자리에 「그림 없음」 이다. 발주 역할은 견적 주소를 부르지 않는다(#2894) — 그림은 발주 쪽 응답으로 받는다. 이 자리 정본은 09_OM §4.4 설계 주석 2 다. 크기 · 상태 문구 · 56 px 이하 줄여 그리기 · 꼬리표 규칙은 DE22-1 §00 §10 이 정본이다./api/pm/projects/{projectNo} — 프로젝트 컨텍스트 조회/api/om/estimates/{estimateId}/material-requirements?estimateLineIds=… — 견적 버전의 섹션 목록과 담은 섹션들의 합친 소요·출처(IF-OM-REQ-001 버전 단위 조회, #2233 — 서버 반영 전)/api/om/purchase-orders?estimateId={id} — 섹션마다 「든 발주」를 가린다(응답 estimateLines[], #2233)/api/om/estimate-lines/{estimateLineId}/material-requirements — 지금 화면(as-built)이 부르는 라인 하나의 소요. #2233 뒤에도 주소는 남는다/api/om/purchase-orders — 발주(회차) 작성중(DRAFT) 생성. 위저드 단계값은 화면(클라이언트)에서 조립해 완료 시 라인 묶음으로 함께 전송 (IF-OM-ORDER-001 — 단계별 저장 주소 없음)/api/om/purchase-orders 요청 advance: true — 선발주 모드 저장. 계약 견적(지정된 CONTRACTED 원본)의 확정 라인만 받는다 — 아니면 409 ADVANCE_ORDER_NOT_CONTRACT_ESTIMATE (§5.6.1 · §5.8.13, #3588 — ✅ 서버 반영 #3591 · ⏳ 화면 반영 전)/api/fs/projects/{projectId}/batches?status= — 승인된 묶음 표. 응답 머리 newFlow·poGateActive, 줄마다 approvedBy·approvedAt·inLivePurchaseOrder (IF-MF-BATCH-001 §5.8.13, #3234)/api/mf/batches/{batchId}/revisions · /{revNo} — 고른 묶음의 승인된 제작지시서 버전에서 사본 라인과 대수를 얻는다 (#3234 ①)/api/om/purchase-orders 요청 batchIds[] — 묶음 발주 저장, 견적 라인 칸은 비운다. 409 BATCH_NOT_APPROVED·BATCH_ALREADY_ORDERED, 서로 다른 계약 견적의 묶음은 400 (§5.6.1)/api/om/estimates/{estimateId}/material-requirements — 발주 자재 소요 버전 단위 조회(IF-OM-REQ-001 §5.6.8) sections[] 의 부호 그림 칸 cropPictureUrl(그림 주소 — 읽을 때마다 서버가 한 시간짜리를 새로 발급, 화면이 오래 들고 있지 않는다) · cropPictureStatus(그림 상태 PENDING · RENDERED · SKIPPED · FAILED, null 은 SKIPPED 로 읽는다). 발주 역할은 견적 주소를 부르지 않으므로 이 응답으로 받는다(#2894). DE24-1 §5.4.13 「부호 그림 칸」(#4168) · ⏳ 서버 반영 전 #4171advance: true) — 화면 문구는 정본에 없다 (#3588, ⏳ 화면 반영 전)| 담기 | 섹션 | 대수 | 든 제품 | 든 발주 |
|---|---|---|---|---|
| ☐ | 121AW | 72대 | DHS-AE225-U 미서기 | PO-2026-026-03 형재 · 승인 (빼 둠) |
| ☑ | 5AW | 36대 | DHS-AE225-U 미서기 | — |
| ☑ | 3AW | 4대 | DHS-AE225-U 미서기 | — |
| 🔒 | AD01 | 1대 | 라인 1건 확정 전 | [견적 라인 확정 화면으로 →] |
| 선택 | 자재 | 코드 | 필요량 | 출처 | 알림 | 발주 수량 |
|---|---|---|---|---|---|---|
| ☐ | 풍지판 | 02-0077 · 부자재 | 80 EA | 2곳 · 5AW 36대 72 · … | — | 80 EA (꺼짐) |
| ☐ | 크리센트 | HDW-LCK-001 · 부자재 | 40 EA | 2곳 · 5AW 36대 36 · … | — | 40 EA (꺼짐) |
| ☑ | 후렘-외부 A | UNI-A225-101A · 형재 | 160 EA (합친 152 · 손실 5%) | 2곳 · 5AW 36대 144 · … | 계산할 수 없는 곳 1건 | 필요 조각 수 160 EA · 본수는 3단계 |
| ☑ | 문짝바 | UNI-A225-401A · 형재 | 320 EA | 2곳 · 5AW 36대 288 · … | 기본 산식으로 계산한 곳 2건 | 필요 조각 수 320 EA · 본수는 3단계 |
unitQty 가 1 보다 클 때만 선다 — 한 대분이면 적지 않는다. #2233 뒤에는 섹션별 출처 줄이 그 자리를 맡는다. 길이가 없어 셀 수 없는 줄은 카드 바탕을 옅은 경고색으로 두고 까닭과 할 일을 한 줄 적는다 — 「절단 길이가 없어 수량을 계산할 수 없습니다. 발주 수량을 직접 채워 주세요」. 값을 0 으로 그리지 않는다 (#2150 as-built · 정본 DE22-1 §09 §4.4 1단계). · 기본 산식으로 센 자리가 있는 길이·면적 단위 줄은 바탕색을 바꾸지 않고 한 줄 알림을 단다 — 「기본 산식으로 센 자리 N건 — 절단 산식이 아직 확인 전 기본값입니다. 길이를 확인해 주세요」. 발주를 막지 않는다 (#2231 결정 · 서버·화면 반영 전).9109f61 #3356)
APPROVED 만 · 여러 개 고를 수 있다
| 담기 | 차수 | 이름 | 부호별 수량 | 개소 | 승인한 현장담당 | 승인 시각 |
|---|---|---|---|---|---|---|
| ☑ | 1차 | 101동 저층부 | AW1 30 · AW3 12 | 42 | 박현장 | 2026-10-16 15:20 |
| ☑ | 2차 | 101동 고층부 | AW1 40 | 40 | 박현장 | 2026-10-17 10:05 |
| — | 3차 | 102동 (이미 발주에 담김) | AW1 30 | 30 | 박현장 | 2026-10-15 09:40 |
BATCH_ALREADY_ORDERED 안내는 경합에 대비해 남긴다. · 묶음 발주로 열면 2단계 자재 표에 「선발주 남음」 열이 서고 이번 발주 수량의 기본값이 누적 부족분이다(#3588 — f6 아래 그림). 선발주로 다 채워 줄이 하나도 없는 묶음 발주도 낸다. · 자재만 더 사는 추가·보정 회차와 선발주는 묶음 없이 낸다(#2975 · #3588). 예시 값(묶음 이름·사람·시각)은 그림을 위한 가상값이다.R-OM-FINISH-PER-SECTION · ⏳ 서버 반영 전.진입 — SCR-OM-004 1단계 [다음 — 도장·색상·랩핑] 버튼. 1단계에서 승인된 묶음을 골라 왔으면(묶음 발주) 아래 둘째 그림처럼 머리 「색상」 칸 미리 채우기와 「선발주 남음」 열이 더해진다 (#3577 · #3588, ⏳ 서버·화면 반영 전)
OPT-FIN 을 미리 채우지 않는다, #3696 결정 4). 아래에 「도장 · 랩핑과 섹션마다 고른 색상은 아직 발주에 저장되지 않습니다(서버 반영 전).」 안내와 발주서 「색 상」 칸 미리보기를 둔다.material-balance?batchIds=)의 부족분으로 채운다(0 아래면 0). 선발주로 다 채운 자재는 0 이다. 발주 담당이 고칠 수 있다. 줄이 하나도 없는 묶음 발주도 낸다 — 묶음을 「발주 승인됨」으로 옮겨야 작업지시를 발행할 수 있다./api/pm/projects/{projectNo} — 프로젝트 컨텍스트 조회finish-catalog.ts). 나중에 도장 = GET /api/pm/options/groups/OPT-FIN/values, 색상 · 랩핑 = 공통코드 PAINT_COLOR · WRAP_FINISH (DE34-1 §2.12.2 #3874)GET /api/pm/processes/{processCode}/partners — 도장 · 단열 업체 후보 — 주소는 있으나 발주 역할(OM_EDITOR · OM_APPROVER)에 닫혀 있다. 요청 머리 paintPartnerId · insulationPartnerId 도 서버 반영 전 (#3696)/api/om/projects/{projectId}/material-balance?batchIds= — 고른 묶음을 소요 누계에 더해 자재마다 부족분(이번 발주 기본 수량)과 선발주 남음을 셈한다 (IF-OM-REQ-001 · DE24-1 §5.8.13, #3588 — ✅ 서버 반영 #3591 · ⏳ 화면 반영 전)colorName(색 이름, 64자, 비어도 된다) — 고른 묶음 범위 서브섹션의 색 이름. 서버가 따로 주는 값은 없고 화면이 부호 응답에서 읽는다 (DE24-1 §5.8.13 「사본 부호 나누기 · 수량별 색 이름」, #3577 — ✅ 서버 칸 반영 #3585 · ⏳ 화면 반영 전)surfaceFinish 와 머리 colorCode(섹션 색상으로 채움)로 POST /api/om/purchase-orders 에 포함lines[].paintMethod · colorCode · wrapCode — 서버 반영 전 (DE24-1 §5.6.1 R-OM-FINISH-PER-SECTION, #3874)| 섹션 | 대수 | 도장 | 색상 | 랩핑 | 표면 처리 | |
|---|---|---|---|---|---|---|
| 지킴이실-AD01 | 1 | 2코팅 ▾ | ■ W-01 화이트 ▾ | 랩핑 없음 ▾ | 마리온 ▾ | 4나누기 |
| AW01 | 13 | 2코팅 ▾ | 몫 2개 — 아래에서 고릅니다 | 랩핑 없음 ▾ | 마리온 ▾ | 몫 추가 |
| └ 몫 1 | 7 | 2코팅 ▾ | ■ W-01 화이트 ▾ | 랩핑 없음 ▾ | 마리온 ▾ | 삭제 |
| └ 몫 2 | 6 | 2코팅 ▾ | ■ DG-02 다크그레이 ▾ 따로 고침 | 랩핑 없음 ▾ | 마리온 ▾ | 삭제 · 일괄 값으로 |
| CW-ACC | 4 | 형재가 없는 섹션 — 도장 · 색상 · 랩핑 · 표면 처리 칸을 두지 않는다 | — | |||
| 자재 | 선발주 남음 | 발주 수량 | 표면 처리 | |
|---|---|---|---|---|
| UNI-A225-101A 후렘-외부 A | 40 | 0 | 2코팅 ▾ | 나누기 |
| UNI-A225-401A 문짝바 | 0 | 24 | 2코팅 ▾ | 나누기 |
| HDW-LCK-001 크리센트 | 12 | 0 | — | — |
material-balance?batchIds=)가 이번 묶음을 넣고 셈한 부족분이다(0 아래면 0). 선발주로 다 채운 자재는 0 이고, 발주 담당이 고칠 수 있다. 형재는 바 수로 센다. · 색 이름은 제작지시서 (외)와 절단지시서 무리 머리에도 찍힌다(§10 #3577 상자). 2단계 [나누기](표면 처리 몫)는 그대로다. · 표의 열 차례·「발주 수량」 열 이름과 예시 값은 그림을 위한 것이다 — 정본이 정한 화면 글자는 「선발주 남음」·「색상」·「색 이름이 다른 서브섹션이 섞였습니다」다.진입 — SCR-OM-004 2단계 [다음 — 장바 절단] 버튼
다음 단계 — 표준 길이가 없는 형재 줄의 [표준 길이 등록 →] → 그 자재의 SCR-PM-003 「표준 길이」 칸 (새 창, 자재 편집 권한). 창에 초점이 돌아오면 표준 길이를 다시 부른다 (#2106 ⑰).
6,300 과 「비우면 모든 자재를 6,300 mm 로 자릅니다. 한 길이로 자르려면 한 칸만, 범위 안에서 가장 알맞은 길이를 찾으려면 두 칸을 넣으세요.」를 보인다. 요청에 barLengthMinMm · barLengthMaxMm 으로 싣는다(빈칸은 싣지 않음). 0 이하·최소 > 최대면 칸 아래 안내와 함께 [절단 최적화 계산] 을 잠근다. 6,300 「기본」 · 하나면 그 길이 · 범위면 최소~최대). 자재 표준 길이 범위(5,900~6,700)는 그 칸 툴팁으로만 보인다. 정본 DE22-1 §09 3단계 #3828 줄.lengthSource=STOCK)는 원자재별 본수 표의 길이 곁에 「재고 길이」를 붙인다 — 그 밖의 값·값 없음이면 붙이지 않는다(#2976·#3079).byLine[]: 생산 라인 · 자르는 바 본수 · 폐기 중량 · 폐기율 · 쓴 장척 길이)와 굵은 「전체」 줄(summary)을 둔다. 절단 목록·원자재별 본수 표는 라인 머리줄(「프레임 라인 — 폐기율 7.8 %」)로 묶는다. 라인 값이 빈 자재는 「라인 미지정」으로 맨 끝이다. byLine[] 이 한 줄뿐이면 요약 표와 머리줄을 숨긴다. 파라미터 카드의 「라인별로 따로 정하기」를 펼치면 라인마다 장척 최소~최대를 넣고, 넣은 라인만 lineBarLengths[] 로 싣는다. 라인 값은 자재 상세(SCR-PM-003)의 「생산 라인」 칸이다. 정본 DE22-1 §09 3단계 #3993 줄 · DE24-1 §5.5.2 R-OMCUT-PRODUCTION-LINE./api/pm/projects/{projectNo} — 프로젝트 컨텍스트 조회/api/pm/items/{itemId}/standard-length — 자재별 원자재 표준 길이(default/min/max) 범위 조회 — 절단 최적화 입력 (IF-PM-LEN-001)/api/om/cutting-plans/optimize — 절단 계산(계산 전용·미영속). 요청 lines[](견적 라인·대수)·itemIds[]·itemOverrides[] → 응답 cutList[]·byItem[]·byMaterial[](본수·셈 근거 cost)·uncuttable[] (IF-OM-CUT-002, #2104 — 서버 #2122 반영 완료)byLine[])
| 생산 라인 | 자르는 바 본수 | 폐기 중량 | 폐기율 | 쓴 장척 길이 |
|---|---|---|---|---|
| 프레임 | 계산 | 계산 | 계산 | 6,000 |
| 문짝 | 계산 | 계산 | 계산 | 6,300 기본 |
| 라인 미지정 | 계산 | 계산 | 계산 | 6,300 기본 |
| 전체 | 계산 | 계산 | 계산 |
| 자르는 품번 | 절단 길이 | 조각 수 | 각도 |
|---|---|---|---|
| 프레임 라인 — 폐기율 계산 | |||
| UNI-A225-10KN 후렘 널링반제품 | 1,600 | 144 | 45° |
| UNI-A225-10KN 후렘 널링반제품 | 650 | 144 | 45° |
| 원자재 | 장바 길이 | 본수 | 이번 발주 | |
|---|---|---|---|---|
| 프레임 라인 — 폐기율 계산 | ||||
| UNI-A225-101A 후렘-외부 A | 6,300 재고 길이 | 계산 | 싣는다 | 절단 조합 |
| UNI-P225-101 후렘 PVC | 계산 | 계산 | 싣지 않음 — 따로 마련 | 절단 조합 |
| 원자재 | 거래처 | 1본 단가 | 본수 | 금액 |
|---|---|---|---|---|
| UNI-A225-101A | 주 거래처 ⚠ 우선순위 없음 | 계산 | 계산 | 계산 |
진입 — SCR-OM-004 3단계 [다음 — 거래처별 발주] 버튼
다음 단계 — 표 위 「거래처가 없는 자재 N종」 + [거래처·단가 묶음 등록 →] → 단가 묶음 등록 · 줄마다 [거래처 매핑 →] → SCR-PM-006 · 공정 0건이면 [공정 관리로 →] → SCR-PM-007 — 셋 다 새 창 (#2106 ⑭⑱).
/api/pm/projects/{projectNo} — 프로젝트 컨텍스트 조회/api/pm/items/{itemCode}/partners — 자재별 거래처 후보 목록 — 매트릭스 '거래처' 컬럼(partner_material 소비)PUT /api/pm/items/{itemCode}/partners/{partnerMaterialId}/default — [기본 거래처로 변경] — 거래처 종류 무관 · 발주 역할에 연다 (#3696, DE24-1 §5.3.9)/api/om/pricing/current — 자재별 거래처별 현재 유효 단가 일괄 조회 — 매트릭스 '단가' (IF-OM-CUT-001)POST /api/om/purchase-orders 에 포함| 자재 | 거래처 | 발주 단위 | 수량 | 여분 |
|---|---|---|---|---|
| UNI-A225-401A | 4대양알루미늄 ▾ 1순위 자동 | 본 ▾ | 산출 | 0 |
| UNI-M226-101-A | 성진알루미늄 ▾ 기본 거래처로 변경 | 본 ▾ | 산출 | 0 |
| 크리센트 나사 | 동신테크 ▾ 거래처 1곳 자동 | 봉 (500 EA) ▾ | 3봉 (1,500) | 0 |
| 결합 부속 | 유니크시스템 ▾ | EA ▾ | 산출 | 0 |
진입 — SCR-OM-004 4단계 [다음 — 재고 사용] 버튼
다음 단계 — [발주 생성] → SCR-OM-005 발주 상세 — 생성은 됐는데 승인 요청이 실패해도 만든 발주 상세로 보낸다 (#2106 ④).
/api/pm/projects/{projectNo} — 프로젝트 컨텍스트 조회/api/om/inventory/availability — 자재×길이×가공상태별 가용 재고(충당 가능량) 조회 — 재고 사용 입력 (IF-OM-INV-001, SCR-OM-007과 공유)/api/om/inventory/reserve — 재고 충당 예약(reserved_qty 증가) — 5단계 재고 사용 확정/api/om/purchase-orders → POST /{purchaseOrderId}/submit — 위저드 완료 — 발주(회차) 생성(DRAFT) + 승인 요청 (IF-OM-ORDER-001)/api/om/purchase-orders/{purchaseOrderId} — [임시 저장(작성중)] — 작성중(DRAFT) 발주 수정·재개 (DRAFT 한정)| 자재 | 길이 | 가공 상태 | 필요 수량 | 여분 | 재고 사용 | 4최종 발주 수량 |
|---|---|---|---|---|---|---|
| UNI-A225-401A | 6300 | 원자재 | 산출 | 0 | 30 | = 수량+여분−재고 |
| UNI-A225-401A | 6300 | 2코팅 도장 ☑ | 산출 | 0 | 0 | = 수량+여분−재고 |
| UNI-M226-101-A | 6300 | 원자재+단열 ☑ | 산출 | 0 | 0 | = 수량+여분−재고 |
진입 — SCR-OM-003 발주 회차 목록 행 클릭 / 승인 알림 / SCR-OM-004 [발주 생성] 뒤 / SCR-OM-007 [발주 상세 →]·「승인대기 N건」 카드 (#2112)
다음 단계 — 상태별 단추(§4.5.4 표 — 작성중 [승인 요청]·[이어서 작성]·[삭제]·[취소], 승인대기 [승인]·[반려], 승인 [발주 확정]·[취소]) · [이어서 작성] → SCR-OM-004 (그 발주 값으로 채워 연다 — 기준 견적 라인이 없으면 잠그고 까닭, #2214 · #2233 뒤 담은 라인이 없으면) · 발주확정·운송중이면 [입고 등록] 창 · [입고 이력 보기 →] → SCR-OM-007 발주 입고 현황 · [작업지시 보기 →] → SCR-MF-003 (승인 이상) · [같은 견적의 남은 섹션 발주 →] → SCR-OM-004 (이 견적 버전, 이미 발주에 든 섹션은 빼 둔 채 — #2233, 종전 [같은 견적의 다른 라인 발주 →]) · 견적 목록에서 왔으면 [견적 목록으로] (#2106 ⑥⑦⑧⑩⑫).
f9fa4783(#1402)) — 목록 「구분」 칸과 같은 글(「선발주 · N번째」 · 「묶음 발주」 · 「추가·보정 · N번째」 · 「일반」)과 회차 「N회」를 늘 보인다. 종전 「추가·보정 N차」 배지를 갈음한다(정본 DE22-1 §09 §4.5.1 「구분」 줄).PURCHASE_ORDER_REASON_REQUIRED 로 창 안에 알린다.wims2.0_fe PR #1477 e11d3ca9) — 승인은 누가 하든(작성자 본인이어도) 확인 한 번으로 끝난다. 종전의 「승인 사유」 칸과 본인 승인 422 ORDER_SELF_APPROVAL_REASON_REQUIRED 안내를 걷었다. 사유는 [반려]·승인 발주 [취소] 때만 받는다(#3149). 정본 DE22-1 §09 §4.5.2 「승인」 줄.newFlow·poGateActive 와 발주의 견적 라인·additionalRound 로 갈래를 가른다. #3637 로 「옛 흐름 · 라인 없는 발주」 한 줄을 「옛 흐름 · 라인 있는 발주」와 「라인 없는 발주」 둘로 나눈다 — 라인 없는 발주(재고 사용 발주 등)는 흐름과 상관없이 「담은 견적 라인이 없는 발주라 승인해도 작업지시를 만들지 않습니다」를 적고, 완료 알림은 「발주를 승인했습니다.」 하나다. 이미 선 빈 작업지시는 그대로 둔다. 갈래 표는 아래 그림 밑에 옮겼다.FR-ES-025 · ⏳ 서버 · 화면 반영 전) — 머리 「담은 섹션」 칸(종전 「5AW 36대 · 3AW 4대」 글자)을 부호 그림 띠로 바꾼다 — 섹션마다 카드 84 × 56 그림과 아래 「부호 대수」 글자. 승인자가 어떤 창들을 위한 발주인지 한눈에 본다. 발주 라인(자재 줄)에는 섹션을 붙이지 않는다. 이 자리 정본은 09_OM §4.5.1 「담은 섹션」 줄이다. 크기 · 상태 문구 · 56 px 이하 줄여 그리기 · 꼬리표 규칙은 DE22-1 §00 §10 이 정본이다./api/pm/projects/{projectNo} — 프로젝트 컨텍스트 조회/api/om/purchase-orders/{purchaseOrderId} — 발주 상세(헤더 + 라인 전체, 화면이 공정×거래처로 묶어 표시) 조회 (IF-OM-ORDER-001)/api/om/purchase-orders/{purchaseOrderId}/submit — [승인 요청] — 작성중→승인대기/api/om/purchase-orders/{purchaseOrderId}/approve — [승인] — 승인대기→승인 (ROLE_OM_APPROVER, 단일 승인). 본문 없이 부른다 — 승인은 사유를 받지 않는다(#3914). #3637 — 견적 라인이 없는 발주는 승인해도 작업지시를 세우지 않는다 (DE24-1 §5.8.2 「#3601」 상자, ⏳ 서버 반영 전)/api/fs/projects/{projectId}/batches?status= — 승인 확인 창 갈래 가르기 — 응답 머리 newFlow·poGateActive (#3448 ③)/api/om/purchase-orders/{purchaseOrderId}/reject — [반려] — 승인대기→작성중 복귀. #3149 뒤 본문 { reason } 필수(1~255자) — 결재 차례를 모를 때만 이 주소로 보낸다(평소에는 단계 반려 …/approvals/{stepSeq}/reject)/api/om/purchase-orders/{purchaseOrderId}/cancel — [취소] — 작성중·승인→취소(작업 전 작업지시 함께 취소, #2582). #3149 뒤 본문 { reason? } — 승인 발주는 필수, 작성중은 선택. 응답 cancelReason (⏳ 서버 반영 전)/api/om/purchase-orders/{purchaseOrderId}/confirm — 발주 확정 — 승인→발주확정(잠금)·가격 동결·재고 차감. 승인 완료 시 IF-EVT-OM-PO-APPROVED로 MF 제작도 트리거/api/om/purchase-orders/{purchaseOrderId}/approvals — 금액 계층 다단 승인선(과장/부장/임원) 단계별 상태 — 단계 처리는 POST .../approvals/{stepSeq}/approve·rejectGET /api/om/purchase-orders/{purchaseOrderId}/export?format=xlsx|pdf[&form=…&partnerId=…] — 발주서 받기(실물 문서 형태별 서식 넷 — xlsx 기본, PDF 사본. 종전 「표준 1서식 PDF」 는 #2305 로 바뀌었다) — IF-OM-ORDER-001 §5.6.4/api/om/purchase-orders/{purchaseOrderId}/knurling-instruction?format=xlsx|pdf — 널링 지시서(널링 가공 지시·정산서 — 등급 시트 + 출고명세서, DE24-1 §5.6.5). ⚠️ 지금 서버는 마킹 6열 PDF 를 낸다 — #2305 로 실물 서식으로 바뀐다(서버 반영 전)/api/om/purchase-orders/{purchaseOrderId} — 발주 상세(한 건) 응답 estimateLines[] 의 부호 그림 칸 cropPictureUrl(그림 주소 — 읽을 때마다 서버가 한 시간짜리를 새로 발급, 화면이 오래 들고 있지 않는다) · cropPictureStatus(그림 상태 PENDING · RENDERED · SKIPPED · FAILED, null 은 SKIPPED 로 읽는다). 같은 섹션의 라인은 같은 값이라 「담은 섹션」 띠는 섹션마다 한 장으로 그린다. 목록 · 쓰기 응답에는 싣지 않는다(§5.6.1 #2233 상자). 견적 주소는 부르지 않는다(#2894). DE24-1 §5.4.13 「부호 그림 칸」(#4168) · ⏳ 서버 반영 전 #4171| 공정 | 거래처 | 품목 수 | 중량/길이 | 금액 | 문서 |
|---|---|---|---|---|---|
| 압출 | 대양알루미늄 | 12 | 5,565.73 kg | ₩ 39,824,654 | 원자재발주서 ↓ |
| 도장(2코팅) | 대아프로폰 | 9 | 6,418.66 kg | ₩ 7,509,849 | 도장 발주서 ↓ |
| 널링(결합) | 유니크시스템 | 4 | 2,494.8 m | ₩ 1,995,840 | 널링지시서 ↓ |
| 단계 | 승인자 | 상태 |
|---|---|---|
| 작성 | 성윤정 | 완료 |
| 과장 | 김성현 | 승인 |
| 부장 | — | 대기 |
| 갈래 | 가르는 기준 | 확인 창 글 | 성공 알림 |
|---|---|---|---|
| 묶음 발주 | 견적 라인이 있고 newFlow·poGateActive 가 둘 다 참 | 「{발주번호} 발주를 승인합니다. 승인하면 묶음이 「발주 승인됨」으로 바뀝니다. 작업지시는 제작지시서를 제출할 때 이미 만들어졌습니다.」 | 「발주를 승인했습니다. 묶음이 「발주 승인됨」으로 바뀌었습니다.」 |
| 옛 흐름 · 라인 있는 발주 (#3637) | newFlow 가 거짓이고 견적 라인이 있음 | 「{발주번호} 발주를 승인합니다. 승인하면 제조 작업지시를 함께 만듭니다.」 | 「발주를 승인했습니다. 제조 작업지시를 함께 만들었습니다.」 |
| 라인 없는 발주 (#3637, ⏳ 화면 반영 전) | 견적 라인이 없음(재고 사용 발주 등) — 흐름과 상관없다 | 「{발주번호} 발주를 승인합니다. 담은 견적 라인이 없는 발주라 승인해도 작업지시를 만들지 않습니다.」 | 「발주를 승인했습니다.」 |
| 추가·보정 발주 | additionalRound 가 1 이상 | 「… 추가·보정 발주라 승인해도 작업지시를 새로 만들지 않습니다.」(#3129) | 「발주를 승인했습니다.」 |
| 가를 수 없음 | 묶음 목록을 받는 중·못 받음, 또는 발주 관문 스위치가 꺼짐 | 「… 묶음을 담은 발주면 묶음이 「발주 승인됨」으로 바뀌고, 묶음이 없는 발주면 제조 작업지시를 함께 만듭니다.」 | 「발주를 승인했습니다.」 |
진입 — SCR-OM-003 발주 목록 [발주 만들기] 창의 「모자란 자재만 — 추가·보정」 · 조회 역할은 [자재 대조 보기 →] (📌 #3775 — 종전 [추가·보정 발주 →]. 이 화면은 위저드 안으로 옮기지 않고 남긴다) / FS 실측 반영 알림
다음 단계 — [차이분 발주 생성 (새 회차)] → SCR-OM-004 (차이분을 미리 고른 채).
finalOrderStatus 가 NOT_APPLICABLE 이 아닐 때만 보이고 그때 기본. 내용은 아래 둘째 그림 — 자재마다 소요 누계 · 발주 누계 셋 · 차이와 최종 발주 마무리 상태, #3588) · [발주량 대조](제조에서 넘어온 추가·보정 회차 표 + 작업지시별 대조 표 — 실측 반영 재계산과 제조 부족분이 함께 든다). 탭이 하나뿐이면 탭 줄을 그리지 않는다. 탭을 바꾸면 고른 줄을 비운다. 종전 탭 셋([FS 실측 차이]·[MF 부족분]·[널링 잔여])은 셈이 하나라 둘이 같은 표였고 하나는 막다른 자리였다 (#3613).COUNTED_IN_OTHER_WORK_ORDER)에는 「이 발주의 값은 작업지시 {번호} 줄에 합쳐 보입니다.」를 띄운다 (§09 §4.6.1 #2616 상자).supplement: true). 조회가 실패하면 탭 줄을 그리되 탭 안에 「자재 누적 대조를 불러오지 못했습니다.」 + [다시 시도]를 둔다. [차이분 발주 생성 (새 회차)]는 지금 보이는 탭에서 고른 줄만 넘긴다 (#3613)./api/pm/projects/{projectNo} — 프로젝트 컨텍스트 조회/api/om/purchase-orders?projectId={id} — 기발주 라인 조회 — 재평가와 비교할 기발주 수량 (IF-OM-ORDER-001)/api/mf/projects/{projectId}/order-check — [발주량 대조] 탭 증감 대조 — IF-MF-ORDERCHECK-001 프로젝트 축(작업지시별 묶음 + 합계) — §5.8.4 [구현] (정책 7·9, §09 §4.6.2)/api/om/purchase-orders — [차이분 발주 생성(새 회차)] — 증가분을 orderRound+1 로 위저드(OM-004) 새 회차 생성 (IF-OM-ORDER-001)/api/om/projects/{projectId}/material-balance — [자재 누적 대조] 탭 — finalOrderStatus·conditions·items[](requiredQty · advanceOrderedQty·batchOrderedQty·supplementOrderedQty · orderedQty · balanceQty · state). 탭을 보일지도 이 값으로 가른다 (IF-OM-REQ-001 · DE24-1 §5.8.13, #3588 — ✅ 서버 반영 #3591 · ⏳ 화면 반영 전)/api/om/purchase-orders 요청 supplement: true — [자재 누적 대조] 부족 자재로 연 위저드가 내는 추가·보정 회차 (#2975 그대로 · 새 칸·새 주소 없음)/api/om/inventory/adjust — 감소분 잉여 재고 전환 (IF-OM-INV-001 — 전환 규칙 자체는 잠정 미확정)| ☐ | 섹션 | 항목 | 기발주 | 재평가 (실측) | 차이 | 처리 |
|---|---|---|---|---|---|---|
| ☑ | AW01 | UNI-A225-401A (장바) | 180 | 186 | +6 | 5추가 발주 |
| ☑ | AAW01 | 02-0077 풍지판 | 54 | 58 | +4 | 추가 발주 |
| ☐ | AW12 | UNI-M226-101-A (장바) | 32 | 30 | −2 | 잉여 — 재고 전환 |
finalOrderStatus · conditions
| ☐ | 자재 | 단위 | 소요 누계 | 선발주 | 묶음 발주 | 추가·보정 | 발주 누계 | 차이 | 상태 |
|---|---|---|---|---|---|---|---|---|---|
| ☑ | UNI-A225-401A 문짝바 | 바 | 310 | 200 | 96 | 0 | 296 | −14 | 부족 |
| ☑ | 02-0077 풍지판 | EA | 164 | 80 | 78 | 0 | 158 | −6 | 부족 |
| — | UNI-A225-101A 후렘-외부 A | 바 | 120 | 160 | 0 | 0 | 160 | +40 | 선발주 남음 |
| — | HDW-LCK-001 크리센트 | EA | 40 | 40 | 0 | 0 | 40 | 0 | 맞음 |
IN_PROGRESS(부호·묶음·발주 조건 가운데 하나라도 남음) · SHORTAGE(그 셋은 채웠고 부족 자재만 남음) · COMPLETE(넷 다 채움 — 발주 목록 머리 「최종 발주 마무리」) · NOT_APPLICABLE(새 흐름 아님 — 이 탭을 그리지 않는다). 남은 선발주(과발주)는 양만 보인다. · 표 열 이름 · 마무리 상태 칸의 화면 글자 · 예시 값은 그림을 위한 것이다 — 정본은 응답 칸(DE24-1 §5.8.13 누적 대조 응답)과 상태 이름(부족 · 선발주 남음 · 맞음)까지만 정했다.진입 — 사이드바 발주관리 1차 메뉴 › 입고·재고 현황 / SCR-OM-005 [입고 이력 보기 →](그 발주를 골라 둔 [발주 입고 현황] 탭 — #2112)
다음 단계 — [발주 입고 현황] 탭 발주 선택 곁 [발주 상세 →] → SCR-OM-005 (주소는 응답 projectNo·purchaseOrderId) · 고른 발주가 발주확정·운송중이면 [입고 등록] 창 · 요약 카드 「승인대기 N건」 → 승인대기 발주 목록 → SCR-OM-005 · 「운송중」 카드 → 발주 입고 현황 탭 (#2106 ⑥⑦⑨).
/api/om/inventory?itemId=&processState=&warehouseCode=&page=&size= — 자재별 재고(보유량·예약량·여유량, 자재×길이×가공상태×창고 단위) 조회 — [자재 재고] 탭·요약 카드 (IF-OM-INV-001)/api/om/purchase-orders/{purchaseOrderId}/goods-receipts — 발주별 입고 이력(회차·이론/계근 중량·잔여) 조회 — [발주 입고 현황] 탭 (IF-OM-RCV-001)/api/om/purchase-orders/{purchaseOrderId}/goods-receipts — 입고 검수 등록(실입고 수량·계근중량) — 이론중량 대사·재고 자동 반영/api/om/inventory/adjust — 재고 조정(실사 보정)| 자재 | 길이 | 가공 상태 | 보유량 | 예약량 | 여유량 |
|---|---|---|---|---|---|
| UNI-A225-401A | 6300 | 원자재 | 24 | 10 | 14 |
| UNI-A225-401A | 6300 | 2코팅 도장 | 6 | 6 | 50 ⚠ |
| UNI-M226-101-A | 6300 | 원자재+단열 | 12 | 0 | 12 |