ERP SD(영업) 모듈 구현 페이지
개요
크라우니 ERP SD(영업) 모듈의 전 트랜잭션(견적생성·수주등록·출하처리·청구발행·납품생성·여신체크·가격조건등록·반품등록, 8종 전수)을 실행 가능한 폼으로 만든 단일 HTML 페이지.
무엇을 했는지
/Users/ef/crowny-nexus-app/public/erp/sd.html 신규 작성 — fi.html 패턴(타입드 args 배열·카드형 폼·badge-row 결과·장부 테이블) 그대로 적용.
- 폼 8개(스펙 전수) — 각 카드: 함수명 제목 · doctype 라벨 · 인자 입력필드(마스터 실코드 기본값: 고객3001·자재1001·조직1000 등) · 실행 버튼.
- 실행: 필드값 파이프(|) 조립 →
POST /api/erp/action/SD/{doctype} → 응답 {ok,사상,cell,message}를 4상 배지(티=#2e7d46·옴=#b8860b·타=#b3362b·음=#5b4a9e)+셀id+메시지로 렌더. cell 있으면 GET /api/erp/plm/trace/{cell}로 계보 체인도 표시.
- 하단 장부 섹션:
GET /api/erp/ledger/SD 로드, 파이프 분해(문서유형코드|셀|사상|인자...|메시지, 인자 개수는 doctype마다 가변) 후 최근 15행 표시, 새로고침 버튼, 실행 성공 시 자동 갱신.
- 외부 시스템 명칭(SAP·팔란티어·T-code 등) 미노출 확인(라벨 전부 한글 함수명 그대로: 견적생성·수주등록 등).
- 동반 파일
/Users/ef/crowny-nexus-app/public/erp/sd.한선 작성 — mm.한선과 동일한 골격(폼 레지스트리·기본값·바디조립·사상색·유형라벨·장부행분해, 목록/기본값/조립/사상/장부행 명령 지원).
★VM 함정 발견 (hanseonc_high 줄주석 점프오프셋 붕괴)
sd.한선을 mm.한선처럼 함수마다
// 줄주석을 끼워 작성했더니 컴파일은 성공(exit 0)하지만 실행 시 "목록" 명령만 줘도 스택 넘침(무한루프성 폭주, PC 3에서 49149회 실행)으로 죽었다. 이진탐색으로 원인 격리:
- 함수 8개(폼행·목록출력·기본값·바디조립·사상색·유형라벨·장부행분해·주()) 각각 단독/조합 테스트 시 전부 정상(4054~4058 큐브, 정상 실행).
- 파일 맨 앞 헤더 주석 3~4줄만 있는 버전 → 정상(4054 큐브).
- 함수 사이사이에
// 설명 주석을 끼운 버전(원본과 동일 구조) → 스택 넘침 재현.
- 결론: hanseonc_high는 함수 정의 사이에 낀 줄주석이 (일부 조건에서) 점프 오프셋 계산을 어긋나게 해 무한루프성 컴파일 결과를 만든다. 회피책 = 파일 헤더에만 설명 주석을 몰아 쓰고, 함수 본문 사이/중간에는
// 주석을 넣지 않는다.
- 최종 sd.한선은 헤더 주석만 남기고 본문 인라인 주석을 전부 제거해 컴파일+실행(목록/기본값/조립/사상/장부행 4개 명령 전부) 정상 확인.
검증 실측
curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:9802/app/erp/sd.html → 200
- node
new Function으로 <script> 블록 문법 검증 → SYNTAX_OK
- 폼 수(8) == 스펙 SD doctype 수(8) 일치(grep 카운트 확인)
- 대표 doctype 1건 실제 POST:
curl -s -X POST --data-binary "3001|1001|100|1000" http://127.0.0.1:9802/api/erp/action/SD/quote → {"ok":true,"module":"SD","doctype":"quote","사상":"티","cell":59,"message":"견적 발행"}, 장부에 즉시 반영 확인(cell 59행 추가).
- sd.한선: hanseonc_high 컴파일 성공(4054 큐브) + crownyc run으로 목록/기본값/조립/사상/장부행 5개 명령 전부 정상 출력 확인.
관련 파일
/Users/ef/crowny-nexus-app/public/erp/sd.html (신규)
/Users/ef/crowny-nexus-app/public/erp/sd.한선 (신규, 동반)
- 참조 정본:
/Users/ef/crowny-nexus-app/public/erp/fi.html, mm.html, mm.한선
- 스펙 원본:
/tmp/erp페이지스펙.json
잔여 이슈
크라우니디자인.css/디자인대조.sh는 .tabbar/.tile/.omni 등 브라우저 크롬 전용 규격을 검사하는데, 이 ERP 폼페이지류(fi/mm/co.html 포함 기존 정본 전부)엔 해당 요소가 존재하지 않아 전량 FAIL로 나온다 — 이 페이지 종류엔 적용 대상이 아닌 것으로 보이며, 별도 ERP 전용 디자인 규격 항목이 있는지 확인 필요(기존 3개 파일도 동일 FAIL 상태로 이미 배포돼 있었음).
- SD 5~8번 doctype(납품생성·여신체크·가격조건등록·반품등록)의 실제 POST 응답 4상 분기까지는 개별 curl 검증하지 않음(quote 1건만 라이브 확인) — 필요시 각 doctype 별도 curl 확인 권장.