Files
Aislo/tools/stmate-test/PLAN.md
T
eomsangdonandClaude Opus 5.5 f591c14356 feat(stmate-test): 단가산출근거(D코드) 재계산 — 원설계 5건 282개 1원 · 낙찰률 단가
- smt_eval.js 새 산근 평가기 — 봉화에만 맞던 옛 해석기(161/242) 대체
- 총액우선 차액 보정(Start8x.Ini CHGNM=0 · OPTNM 순서 · 소수부 십진 비교) · 비목우선은 성분 절사
- 다른 산근 참조 = 재·노·경 나눠 가져옴 · 위상순서 재계산 · 변수 대소문자 무시
- % 단위 자원(인건비의 % · 운반비 계) = 누계 밑수 · (-=)(-==) 합계 제외 · RS_ 직전 구간 · 라벨 묶음 PA010203
- 운반비 경비 귀속 = COSTN SBMOK=S — 원본 저장 금액으로 판정하던 부분 걷음
- 낙찰률 단가 = 2칸 원단가 × NAGCD 원 미만 버림(7건 127개)
- 지킴 시험 test_stmate_smt_eval.py · 장부 진행률 30.6% → 32.2%

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-13 13:05:56 +09:00

293 lines
31 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# STMATE w 8.0 재현 웹앱 계획서 · 진행률 장부 (`tools/stmate-test/`)
- 목표 — 경쟁사 STMATE w 8.0 을 기능 그대로 재현한 독립 웹앱 · 인증·동글·라이선스·업데이트는 범위 밖
- 구동 — `./venv/Scripts/python.exe -m uvicorn server:app --host 127.0.0.1 --port 8003 --app-dir tools/stmate-test` (안티그래비티 칸 8003)
- 원본 근거 — `resources/knowledge/original/경쟁사 프로그램/STmate/`(old/20_분석 번호 문서 · old/30_원자료 · REA 분석)
- 판정 — 구현 = 불러온 실제 프로젝트에서 원본 규칙대로 동작 · 부분 = 일부 갈래만·저장값 의존·고정값 · 없음 = 코드 없음 또는 껍데기
- 박힌 정답값·자기 대조·저장값 복사는 구현으로 치지 않음
- 이전 기록의 「95% 이상 · 100% 일치」는 봉화 한 건에 맞춘 값 · 저장소에 없는 검증 스크립트 기준 — 폐기
## 진행 방식
1. 기능 하나 = 장부 한 줄 · 고칠 때 원본 근거 문서부터
2. 정답은 원본 저장값(STC · 원본 출력 엑셀)에서 읽음 · 코드에 박지 않음
3. 구현 → 지킴 시험(`resources/tester/test_stmate_*.py`) → ORCA 내장 브라우저 확인 → 커밋·push(안티그래비티)
## 지킴 시험
- `test_stmate_smt_eval.py` — 단가산출근거(D코드) 재계산: 원설계 5건(위 4건 + 소광 원설계) 282개 1원 · 낙찰률 단가 7건 127개
- `test_stmate_kanjub_stc.py` — 실무 STC 4건(봉화 2024 · 울진 2025 · 영월 2024 · 울진 대흥 2024) 원가계산서 18항목(직접비 4 · 간접비 11 · 이윤감액 · 관급 · 총공사비) 1원 대조 · 직접비는 내역 저장 단가 기준
## 진행률
- 합계: 전체 245 · 구현 36 · 부분 86 · 없음 123 → 진행률 32.2%((36 + 86×0.5) / 245) · 구현만 세면 14.7%
### G1 화면·메뉴 (구현 5 · 부분 21 · 없음 28) — 28.7%
- [ ] F1-01 메인 메뉴·툴바·하단 금액 집계줄 — STmate.Cpm 메인 · 현재: 부분(메뉴 5·툴바 9, 원본 메뉴 체계 일부만)
- [ ] F1-02 공사목록표 목록·선택·불러오기 — wPrjList · 현재: 부분(안 연 프로젝트 칸은 고정 글자 view_prj_boq 212)
- [ ] F1-03 프로젝트 신규 등록·삭제 — wM_Add_Prj · ST_U_DelPrj · 현재: 없음
- [ ] F1-04 프로젝트 등록정보 수정 — wPrjList · 현재: 부분(공사명 하나만 prompt app.js 331)
- [ ] F1-05 복사등록(차수·단계 변환) — wPrjList · ST_PList · 현재: 없음(화면 이동만 app.js 318)
- [ ] F1-06 프로젝트 DATA 검색(노무~내역서 8종) — wSrch_PL · 현재: 없음
- [x] F1-07 공종목록표 계층 내역 그리드(T/E/C 짝 집계) — wBoq · 현재: 구현(view_prj_boq 37~145)
- [ ] F1-08 내역 칸 편집 — wBoq · 현재: 부분(공종번호·명칭·수량만, 규격·단위·단가·코드 고칠 수 없음)
- [ ] F1-09 내역 행 추가·끼워넣기 — wBoq · 현재: 부분(첫 일위대가·수량 10·5번째 줄 고정 app.js 400)
- [ ] F1-10 내역 행 삭제·이동·복사·붙여넣기 — wBoq · 현재: 없음
- [ ] F1-11 레벨 필터(= 이상 ~ ====== 이상) — wBoq cBox01 · 현재: 부분(전체·집계·말단·제외 4택뿐)
- [ ] F1-12 계표시 레벨 상향·하향, 주석 → 계시작 변환 — wBoq · 현재: 없음
- [x] F1-13 내역 찾기 — wM_FindBoq · 현재: 구현(app.js 344)
- [x] F1-14 호표 코드 → 대가표·단가표 이동 — wBoq · 현재: 구현(app.js 369)
- [ ] F1-15 공종 목록(코드·명칭·분류 정렬, 대공종 필터) — wKongJong · 현재: 없음
- [ ] F1-16 주공종 집계표(레벨별 계표시 확인) — wMBoq · 현재: 없음
- [ ] F1-17 공종번호 자동입력(머리·끝 글자·번호형식·자리수) — wITNum · 현재: 부분(형식 선택 무시, 1./1.1 고정 app.js 158)
- [ ] F1-18 내역 할증율 적용(전체/비목별) — wBoqRate · 현재: 부분(동작 틀림 — 전 자원 단가에 누적 곱 app.js 176)
- [ ] F1-19 비목별 일괄 보정(절사/반올림 × 소수 0~4 · 범위) — wM_Rate · 현재: 부분(절사/반올림 무시, ECD 하나만 app.js 185)
- [ ] F1-20 일위대가표 풀기 — wExpnd · 현재: 부분(집계선·끝전 선택 무시, 단가 없이 5번째 줄 app.js 190)
- [ ] F1-21 풀어넣기 비목별 끝전·가산비목 지정 — wM_Expnd · wM_Expnd10 · 현재: 없음
- [ ] F1-22 내역 동일코드 처리 — wSameCode · 현재: 없음
- [ ] F1-23 내역보관함 (1)(2)(3) — wBoq · 현재: 부분(메모리만, 넣을 때 규격 빈칸·단위 '식' 고정 app.js 375)
- [ ] F1-24 단가목록표 코드종류 필터(10종) — wM_JabPum cBoxCode · 현재: 부분(7종, 견적·대가산근·그림코드 없음)
- [x] F1-25 단가 찾기(명칭·규격 / 산근내용) — wM_JabPum cBox_IFORM · 현재: 구현
- [ ] F1-26 기초단가 직접 수정(재·노·경) — wM_JabPum · 현재: 부분(가짜 자원·숨은 구성줄 생성 view_prj_boq 519~548)
- [ ] F1-27 코드 신규 등록·삭제 — wM_JabPum · ST_U_DelCode · 현재: 없음
- [ ] F1-28 코드 변경·치환(일괄·선택) — ST_U_ChgCode · 현재: 없음
- [ ] F1-29 기준단가 비율 일괄수정(보호표시·0원 제외) — wM_Edt_Hal · 현재: 부분(현재 단가에 누적 곱, 기준단가 분리 없음 app.js 243)
- [ ] F1-30 할증 금액·율 두 갈래 편집 — ST_Jabpum Edt_Hal_Amt/Rate · 현재: 없음
- [ ] F1-31 가격지 후보 비교(1~5단가·최소단가) — wM_Boxa RG_MComp · 현재: 부분(재료만, 슬롯 선택이 n번째 0 아닌 값 app.js 236)
- [ ] F1-32 자재·공종 분류 필터, 불러간 목록 — wM_Boxa rg_FLT · wM_Box_H · 현재: 없음
- [x] F1-33 대가표 목록·선택(B/D/X) — wM_iLWi_San · 현재: 구현(view_dan_ilwi 236~)
- [ ] F1-34 일위대가 구성행 표 편집·노임계수·저장비목 선택 — wM_Edit_iLWi · 현재: 없음(SMT 글 편집만)
- [ ] F1-35 단가산출근거 편집 + 계산(F9) — wM_Edit_San · 현재: 부분(글 편집·즉시 계산, 함수·문법검사 없음)
- [ ] F1-36 손료 계산(F6)·시간당 손료계수 수정 — wM_Edit_San · wM_Edit_XRate · 현재: 없음
- [ ] F1-37 사용자 단가산출식 편집 — wM_Edit_USER · 현재: 없음
- [ ] F1-38 실적단가 → 일식단가 변환등록 — wM_Conv_A2W · 현재: 없음
- [ ] F1-39 호환규정코드 찾기·입력 — wM_JDCode · 현재: 없음
- [ ] F1-40 사용처 찾기 — ST_FindUse wM_FindUse · 현재: 없음
- [ ] F1-41 코드 병합(4택)·데이터 병합(비목별 복사처/복사원/신규) — wM_Stmate_Merge_Code · uM_Merge · 현재: 없음
- [ ] F1-42 자료파일 업데이트(매칭 5단계·명칭/단가/조달코드) — wM_Mrg_BSC · 현재: 없음
- [ ] F1-43 단가 일괄변경·물가변동 — ST_U_ChgAmt · 현재: 없음
- [ ] F1-44 초기값 입력 및 수정 — wM_Set_Sys · 현재: 부분(8칸만, 제목 42종과 다름)
- [ ] F1-45 프로젝트 계산 초기값 — wM_Set_Init · 현재: 없음
- [ ] F1-46 직종·노임 설정 — wM_Set_JLab · 현재: 부분(조건 직종 코드 입력만)
- [ ] F1-47 제잡비 계산 화면(4형식 탭) — wM_KanJub · 현재: 부분(차수·방식·공사종류·기간·고용등급·퇴직 6칸 처리 없음)
- [ ] F1-48 제비율표 수정·취소·저장·출력 — wM_KAN_RATE · 현재: 부분(보기만, 고칠 칸 없음 view_kanjub_prt 152)
- [ ] F1-49 요율표 불러오기·선택 — wM_KAN_RATE · 현재: 부분(RATE_R 탭만 바뀜, 원가 요율 미연결 app.js 510)
- [ ] F1-50 잡비 금액 불러오기(타 프로젝트 금액을 밑수로) — wM_GetAMT · 현재: 없음
- [ ] F1-51 인쇄 메뉴 옵션(글꼴·코드필드·수량위치·양식·방향) — PM_Prt · 현재: 없음(고정 문구 view_kanjub_prt 454)
- [ ] F1-52 보고서 인쇄순서·인쇄 공종 집계수준 선택 — PM_Prn_Ord · PM_Sel_St · 현재: 없음
- [ ] F1-53 인쇄영역 선택(당초/변경/분할·레벨·변경 1~8차) — wM_Sel_Prn · 현재: 없음
- [ ] F1-54 특수문자·그림코드·메모 입력 — mMinMsg_ · wInDlgImg · wInDlgMemo · 현재: 없음
### G2 계산 엔진 (구현 14 · 부분 28 · 없음 19) — 45.9%
- [x] F2-01 노임 일→시간 환산식 좌→우 순차 — 18번 §2.1 · Start8x RXXNM · 현재: 구현(calc.js 84)
- [ ] F2-02 노임 환산 갈래 H0~H5(터널·준설선) — wM_Set_Sys cmBx_Sel_RX · 30번 §4 · 현재: 없음
- [ ] F2-03 환산 적용 직종(COND_) — 20번 §2.5 · 현재: 부분(코드 고정 calc.js 600, 연쇄는 이름 '운전사'만 smt_engine 328)
- [ ] F2-04 환율 적용(USD 구간·EUR·YEN·적용 범위) — wM_Set_Sys cmBX_EXR · 현재: 부분(USD 한 값, 범위 선택 없음)
- [ ] F2-05 소수 자리수 설정(KCD·ACD·ZCD·JCD·ECD·BPN) — 22번 §3.4 · 현재: 부분(ECD만)
- [ ] F2-06 자재 후보 최저가 자동채택 — 17번 §5.5 · 현재: 부분(후보 5칸만 calc.js 114, 6번째 적용칸 미반영)
- [ ] F2-07 수동 고정·보호표시 우선 — 22번 §3.1 · 13번 T10 · 현재: 부분(일괄수정에서 UC=T 제외만)
- [ ] F2-08 중기 시간당 사용료 조립(손료·운전원·연료·잡품 성분 절사) — 17번 §3 · 현재: 부분(식 있으나 불러온 프로젝트는 저장값 server.py 188)
- [ ] F2-09 손료 주간·야간·2교대·3교대(E0~E3) — 30번 §4 · 현재: 없음
- [x] F2-10 단가산출 D코드 전개 계산 — 18번 §2.2 · 23번 · 현재: 구현(smt_eval.js · 원설계 5건 282개 1원 · 참조 단가는 저장값)
- [x] F2-11 운반비 경비 귀속 — 23번 §4 · 26번 §1 · 현재: 구현(COSTN SBMOK=S · (-=)+「운반비 계」 T% · 저장 금액 판정 걷음)
- [ ] F2-12 일위대가 B코드 구성 조립·성분 절사 — 17번 §2·§5 · 현재: 부분(calc.js 205 엔진뿐, 불러온 프로젝트는 저장값 server.py 230)
- [ ] F2-13 호표 참조 그래프·위상순서·순환 오류 — 19번 §6.5 · 09번 §3 · 현재: 부분(산근 D 위상순서 · 일위대가 구성은 BDQTY 암호화로 없음)
- [ ] F2-14 공구손료·잡재료 % 가산 — 07번 §4 · 현재: 부분(레시피 경로에서만, 레시피 0건 smt_parser 15)
- [ ] F2-15 수량 할증과 금액 가산 분리 — 07번 §4 · 현재: 부분(calc.js 215 일위 할증만, 박힌 기본 상태 전용)
- [ ] F2-16 TAMT=M+L+S·코드종류별 성분 검사 — 10번 §3 · 현재: 부분(합산만, L/M/S 종류별 검사 없음)
- [x] F2-17 내역 행 ROUNDDOWN(수량×단가) — 16번 · 06번 §3 · 현재: 구현(calc.js 249)
- [ ] F2-18 비목우선/총액우선 차액 보정(OPTNM) — REA 15단계 · 현재: 부분(산근 = CHGNM·OPTNM 총액우선 구현 · 내역서 CHNNM 원본 미대조)
- [x] F2-19 계층 합산(SUM_TOT·T/E 짝) — 16번 §4.1 · 현재: 구현(같은 코드 여러 줄이면 짝 오류 위험 view_prj_boq 66)
- [x] F2-20 제외금액 C* 구역 — 16번 §4.2 · 현재: 구현
- [ ] F2-21 관급자재·조달수수료 분리, 관급 천원 올림 — 16번 §4.3·§4.7 · 현재: 부분(SMT C_KWANGUP·C_T_JODAL 입력값 사용 · 내역 C* 구역 자동 분류 없음)
- [ ] F2-22 요율표 규모·기간 구간 조회 — 12번 §8~10 · 06번 §2 · 현재: 없음(SMT 저장 요율·JB_R 고정 셀 server.py 516)
- [x] F2-23 요율 기본값 처리 — calc.js · 현재: 구현(num 기본값 · 4건 시험)
- [ ] F2-24 공사종류·적용기준(행자부 RateM 포함)·공사기간 축 — 12번 §10.1 · 현재: 없음(칸 처리 없음)
- [x] F2-25 간접노무비(직노×율) — 12번 §3 · 현재: 구현(calc.js 385, 요율은 저장값)
- [x] F2-26 산재·건강·연금보험료 — 12번 §3 · 현재: 구현(calc.js 387~391)
- [ ] F2-27 고용보험료(등급 7) — 12번 §8 rGrd_Rate_Kobo · 현재: 부분(식만, 등급 선택 처리 없음)
- [x] F2-28 노인장기요양보험료(건강 확정액 밑수) — 25번 §2.3 · 현재: 구현(calc.js 390)
- [ ] F2-29 퇴직공제부금비(토목·준설·건축·기타) — 12번 §10.1 · 현재: 부분(직노×율, 공종 선택 없음·기본 0%)
- [ ] F2-30 산업안전보건관리비(규모식·1.2배·상한 3모드) — 11번 §7 · 16번 §4.3 · 현재: 부분(기초액 SMT 저장값 · 1.2배 상한 · 규모 구간 조회 없음)
- [ ] F2-31 안전·품질관리비 별도내역 — 12번 §3 · 현재: 없음
- [x] F2-32 기타경비(일반형식 묶음) — 12번 §3 · 현재: 구현(calc.js 431)
- [ ] F2-33 수공 세부경비 8종·RateB 밑수 5택 — 12번 §4 · 25번 §1.4 · 현재: 부분(밑수 고정, 기본 요율 calc/server 불일치)
- [ ] F2-34 공사이행보증·하도급대금지급보증수수료 — 06번 §3 · 12번 §3 · 현재: 없음
- [ ] F2-35 환경보전비(공종 13택) — 06번 §3 · 현재: 부분(TA 밑수를 직접공사비로 씀 calc.js 440, 공종 선택 없음)
- [ ] F2-36 건설기계대여금 지급보증(7택) — 12번 §10.1 · 현재: 부분(요율 0.4 고정 기본, 선택 축 없음)
- [ ] F2-37 석면피해구제분담금·임금채권부담금 — 12번 §3 · 현재: 없음
- [ ] F2-38 고용개선지원비 4갈래(복합 절사식) — 25번 §1.2·§2.4 · 현재: 없음
- [ ] F2-39 일반관리비 — 06번 §3 · 현재: 부분(관리품목자재 미포함·S 밑수 다름 calc.js 451)
- [x] F2-40 이윤(형식별 밑수) — 06번 §3 · 35번 · 현재: 구현(calc.js 456)
- [ ] F2-41 이윤/수수료 택일·이윤 직접입력 — 12번 §10.1-2 pn02 · 현재: 없음
- [x] F2-42 끝전조정(차액 세전환산 이윤 차감)·1원 보정 — 16번 §4.4 · REA 17 §5 · 현재: 구현(총공사비 기준 절사 · 절사 없음 = 저장 이윤감액 · 4건 1원)
- [ ] F2-43 공급가액 절사 9택 — 12번 §10.2 · 현재: 없음
- [ ] F2-44 부가세 설계 5택(산림조합 형식·면세품 포함) — 12번 §10.1 · 현재: 부분(10%·재료 10%·없음만, 산림조합 2택 없음)
- [ ] F2-45 공사손해보험·작업설 감액·비과세자재·매입세 — 12번 §3.1 · 현재: 없음
- [ ] F2-46 관급/사급 내용·사급자재/1.1·사급비 위치 4택 — 12번 §10.1 · 25번 §2.6 · 현재: 없음
- [ ] F2-47 도급공사비/도급예정액·관급 2종 절사·절상·반올림 — 12번 §10.2 · 현재: 부분(관급 한 갈래만)
- [ ] F2-48 총공사비 절사 자리 — 12번 §10.2 · 현재: 부분(I_TOT_JEOL 읽음, 기본값 버그 calc.js 468)
- [x] F2-49 간접비 일괄 절사 7택 — wM_KanJub cBx_K_JeolSa · 현재: 구현
- [ ] F2-50 추가금액 1~9단계 삽입 — 11번 §9 · 25번 §1.3 · 현재: 부분(저장 단계 1~4 계산 반영 · 화면 입력·5칸·부가세 여부 없음)
- [ ] F2-51 간접비 순서 코드표(KAN_ORD_1/2) — 20번 §2.1 · 현재: 없음(순서가 코드에 고정)
- [ ] F2-52 원가 일반형식 T — 12번 §3 · 현재: 부분(이행·하도급·석면·임금채권·고용개선·품질 빠짐)
- [ ] F2-53 원가 수공형식 S — 12번 §4 · 현재: 부분(세부경비·일반관리비 밑수 다름)
- [ ] F2-54 원가 실적일반 TA(노무·재료 산정방식·조정계수) — 12번 §5·§10.3 · 현재: 부분(실적 축 4개 없음)
- [ ] F2-55 원가 실적수공 SA — 12번 §6 · 현재: 부분(실적 축·안전관리비 별도 없음)
- [ ] F2-56 형식별 설정 스냅샷 4벌(_T/_S/_TA/_SA) — 12번 §10.1-2 · 현재: 없음(1_ 키 한 벌만)
- [ ] F2-57 간접비 식 템플릿 26 평가(IF·선택토큰) — 25번 §2 · 현재: 없음
- [ ] F2-58 항목별 밑수(D_)·결과(S_)·직접입력(C_) 키 왕복 — 25번 §1.1 · 현재: 없음
- [ ] F2-59 요율 순환(무한루프) 경고·수동 확정 — 06번 §2 · 현재: 없음
- [ ] F2-60 연쇄 재계산(L/M/S→X→D→B→내역→원가) — 08번 §1 · 현재: 부분(X·B 단계 레시피 0건 무동작, 위상순서 없음)
- [ ] F2-61 표준시장단가 적용(ACTTYP·ACTOPT 노무비 끝전 보정) — 22번 §3.3 · 현재: 없음
### G3 수량산출·식언어 (구현 9 · 부분 4 · 없음 16) — 37.9%
- [x] F3-01 COSTN.SMT 메모 블록 읽기(IFORM 위치) — 21번 §1 · 23번 · 현재: 구현(smt_parser 150)
- [x] F3-02 헤더 변수 정의(;; 줄)·변수 대입 — 23번 · 현재: 구현(smt_engine 112)
- [x] F3-03 자원 참조 토큰 &코드[LMS]& 성분 지정 — 07번 §2 · 현재: 구현(참조값은 저장 단가)
- [x] F3-04 라벨 :=A01·&PA01:M&·&PA010203:S&·&PS_M&·&RC_S&·&RS_L& 소계 참조 — 23번 · 현재: 구현(smt_eval.js)
- [x] F3-05 구간 합산 (=)(==)(===)·소계 제외 (-=)(-==) — 23번 · 현재: 구현((-=) 지금 구간 · (-==) 이전 전부 합계 제외 · % 밑수엔 남음)
- [ ] F3-06 사칙·괄호 평가와 좌→우 순차 — 18번 §2.1 · 현재: 부분(JS 우선순위 계산, 순차 평가 아님)
- [x] F3-07 % 표기('%') 처리 — 23번 §5 · 현재: 구현(n'%' 1 이상 ÷100 · 1 미만 그대로 · [변수]'%' ÷100 · % 단위 자원 = 누계 밑수)
- [x] F3-08 분수 인자(f=1/1.3) 자리수 보존 — 26번 §2 · 현재: 구현(끝 '=' 변수 소수 2자리 반올림 · 282개 대조)
- [ ] F3-09 함수 INT·ROUND·ROUNDDOWN·ROUNDUP·SQRT·√·SIN·COS·TAN·∏ — wM_Edit_San · 현재: 없음(이름을 0으로 바꿈 smt_engine 51)
- [ ] F3-10 조건 함수 IF·IIF·IFI·IFO — 24번 §2.3 · 25번 §2.2 · 현재: 없음
- [ ] F3-11 금액변수·소계변수(대상·저장·%) 선언 — 28번 §1 · 현재: 없음
- [ ] F3-12 계산후 제외처리·항목집계 제외 코드 — 28번 §1·§4 · 현재: 없음
- [ ] F3-13 강제금액(직접 지정 금액) — 28번 §4 · 현재: 없음(옛 '재료비: 숫자' 짐작 처리 걷음 · 원본 문법 근거 대기)
- [ ] F3-14 수량기호 Q·A·T·N — wM_Edit_San · 현재: 없음
- [ ] F3-15 식 문법 검사(줄 단위 오류 메시지) — 28번 §4 · 현재: 없음(오류 시 조용히 0)
- [ ] F3-16 문법 강조·문법설명·함수/연산 입력 단추 — 26번 §3 · 현재: 없음
- [ ] F3-17 결과적용 비목 4택·0원 비목 입력안함 — 26번 §3 · 현재: 없음
- [ ] F3-18 결과값 낙찰율 적용·결과금액조정·계약단가 — 26번 §3 · 현재: 부분(낙찰률 단가 = 원단가×율 버림 · 7건 127개 대조 · 화면 입력 없음)
- [x] F3-19 Q식(3600qKfE/Cm 등 10꼴) 평가 — 23번 §3 · 현재: 구현(식 그대로 평가 · 변수 대소문자 무시 · 282개 대조)
- [x] F3-20 Cm 사이클식(t1+…·L/V1+L/V2+0.25·선회각 초) — 26번 §1 · 현재: 구현(사칙 대입 · 따옴표 주석 걷음 · 282개 대조)
- [ ] F3-21 표준중기공식 등록·수정·삭제 — wM_Edit_EQ · 28번 §1.1 · 현재: 없음
- [ ] F3-22 수량산출서 화면 — wQtyList · 현재: 부분(작은 창 25줄, QCODE 안 읽음 app.js 207)
- [ ] F3-23 수량산출서 파일 저장·불러오기 — STmateQty8 · 현재: 없음
- [ ] F3-24 코드 종류별 수량 조회(9종 필터) — wQtyList cBoxCode · 현재: 없음
- [ ] F3-25 기본수량변수·확장수량변수(셀별명) — 28번 §2 · 현재: 없음
- [ ] F3-26 수량산출서 → 내역 수량·공종 가져오기 — wBoq · 현재: 부분(식 계산해 수량 반영, 변수 불가)
- [ ] F3-27 수량변수 → 단가산출 전송 — 28번 §2 · 현재: 없음
- [ ] F3-28 내역↔BDQTY 수량 연결(CON_QTY) — ST_U_ConBD · 현재: 없음
- [ ] F3-29 수량코드(QCODE) 등록·검사 — 28번 §4 · 현재: 없음
### G4 파일 입출력 (구현 6 · 부분 9 · 없음 14) — 36.2%
- [x] F4-01 STC(ZIP) 열기 — ST_U_Archive · 09번 §5 · 현재: 구현(server.py 92)
- [ ] F4-02 STC 저장(압축) — ST_U_Archive ComP_Data · 현재: 부분(work_dbf 사본, 같은 이름 덮어씀 server.py 644)
- [ ] F4-03 STC 버전 검사 — Chk_STC_Ver · 현재: 없음
- [x] F4-04 DBF 읽기(03/E5/06 변형) — 09번 §5 · 현재: 구현(smt_parser 27)
- [ ] F4-05 DBF 다시 쓰기 무손실 — 09번 §5 · 현재: 부분(한글 '?'·앞 공백·삭제 레코드 빠짐·헤더 날짜 바뀜)
- [x] F4-06 PRJLST.DBF 읽기 — 02번 · 현재: 구현
- [ ] F4-07 PRJLST.SMT 저장키 241종 읽기 — 25번 §1 · 현재: 부분(PRJ_MEMO 가리키는 블록만 · 요율·절사·관급·추가금액 사용)
- [ ] F4-08 PRJLST.SMT 쓰기 — 25번 · 현재: 부분(일부 키만 갱신)
- [x] F4-09 COSTN.DBF 읽기(후보 6·차수 4벌) — 07번 §5 · 현재: 구현
- [ ] F4-10 COSTN.DBF 쓰기 — 07번 · 현재: 부분(고친 코드 칸만, 차수 칸 의미 무시)
- [ ] F4-11 COSTN.SMT 쓰기 — 21번 · 현재: 부분(덧붙이기만, SIxMemo 빈 블록 헤더 미갱신 smt_parser 315)
- [ ] F4-12 COSTA.DBF 읽기 — 02번 · 현재: 없음
- [ ] F4-13 BOQ1n 읽기·쓰기 — 02번 · 16번 · 현재: 부분(읽기 됨, 쓰기는 MAMT2·3 덮어씀·소계·TCOST 미갱신)
- [x] F4-14 RATE*.DBF 읽기 — 06번 §1 · 현재: 구현(server.py 474)
- [ ] F4-15 JB_* 기준요율표 43종 읽기(구형·2020 확장) — 10번 · 12번 §9 · 현재: 부분(JB_R 고정 셀만)
- [ ] F4-16 KONGJONG.DBF 공종 분류 — 02번 · 현재: 없음
- [x] F4-17 SET_REP.DBF 서식 카탈로그 읽기 — 20번 §3 · 현재: 구현(표시)
- [ ] F4-18 QCODE.DBF·QCODE.SMT 읽기 — 02번 · 28번 · 현재: 없음
- [ ] F4-19 Start8x.Ini 설치 설정 읽기 — 20번 §2 · 현재: 없음
- [ ] F4-20 조달청 호환규정 XML 내보내기 — 30번 · uM_XML_Info · 현재: 부분(영문 임의 요소명, XSD 불일치 smt_engine 630)
- [ ] F4-21 조달청 XML·조달 형식 가져오기(Conv_XML_ST8·Conv_Jodal_ST8) — 28번 §3 · 현재: 없음
- [ ] F4-22 XML 변환 설정(공사유형 8·지역·건축 사업내용) — uM_XML_Info · uM_ConstType · 현재: 없음
- [ ] F4-23 JDL 내보내기·검사 — frm_JDLAnno · JDLCHK.*.dll · 현재: 없음(근거 없는 '|' 줄 형식 app.js 569)
- [ ] F4-24 엑셀 → 내역 불러오기 — wM_From_XLS · 현재: 없음
- [ ] F4-25 엑셀 역등록(CONV_XLS_2_ST·INITIAL)·엑셀 → BDQTY — 24번 §3 · 현재: 없음
- [ ] F4-26 자재 기준자료 XLS 입출력 — wM_JajeXLS · 현재: 없음
- [ ] F4-27 기준 BOQ·코드 변경 엑셀 왕복 — 24번 §3 · ST_U_ChgCode · 현재: 없음
- [ ] F4-28 구버전 → Win8 자료 변환 — ST_U_Convert ST_ConvToWin8 · 현재: 없음
- [ ] F4-29 자동백업·자료 복원 — wM_D_Restore · wM_ST_Restore · 현재: 없음
### G5 보고서·내보내기 (구현 0 · 부분 15 · 없음 21) — 20.8%
- [ ] F5-01 재료비·노무비·경비 목록표(0101~0103) — Prn_SanMok · 현재: 부분(엑셀 시트 저장값 복사, 후보 칸 이름 짐작)
- [ ] F5-02 일식·견적(W코드) 목록표(0104) — Prn_SanMok · 현재: 없음
- [ ] F5-03 자재단가대비표(0105) — Prn_Col_Dan · 현재: 없음(화면 0101에 대비 열 없음)
- [ ] F5-04 표준시장·실적단가 목록표(0106·0206) — Prn_SanMok · 현재: 없음
- [ ] F5-05 환율및기초자료(0201) — 18번 §2.3 · 현재: 부분(환율 없이 노무·중기 목록만)
- [ ] F5-06 중기목록표·시간당중기사용료(0202·0203) — Prn_Joong · 현재: 부분(저장 단가 표시, 손료·운전원 세부 없음)
- [ ] F5-07 일위대가목록표(0301) — Prn_SanMok · 현재: 부분(엑셀 시트, 저장값)
- [ ] F5-08 일위대가표(0302) — Prn_iLWi · 현재: 없음(구성 없이 수량 1·자기 단가 excel_builder 443)
- [ ] F5-09 일위대가표 수공양식(0303) — Prn_iLWi_S · 현재: 없음
- [ ] F5-10 단가산출근거목록표(0401) — Prn_SanMok · 현재: 부분(엑셀 시트, 저장값)
- [ ] F5-11 단가산출근거(0402) — Calq_San · Edit_SanKun · 현재: 부분(식 원문만, 줄별 계산 펼침 없음)
- [ ] F5-12 재료·노무·경비 수량금액집계표(0501~0503) — Prn_Col_Dan · 현재: 없음(화면 0501 집계 없음)
- [ ] F5-13 일식·표준시장 수량금액집계표(0504·0508) — Prn_Col_Dan · 현재: 없음
- [ ] F5-14 중기시간금액집계표(0505) — Prn_Col_Dan · 현재: 없음
- [ ] F5-15 일위대가수량금액집계표(0506) — Prn_Col_Dan · 현재: 없음
- [ ] F5-16 단가산출근거수량금액집계표(0507) — Calq_San · 현재: 없음
- [ ] F5-17 총괄내역서(0601·종양식 0602) — Prn_Nae · 현재: 부분(집계행만 표시, 종양식 없음)
- [ ] F5-18 설계내역서(0603·종양식 0604·0693·0694) — Prn_Nae · 현재: 부분(화면 전 행, 엑셀 소계 행 없음·#VALUE 위험)
- [ ] F5-19 분할내역서(0605) — Prn_Nae · 현재: 없음
- [ ] F5-20 사·관급내역서(0607) — Prn_Nae · 현재: 부분(제외 구역 행만 걸러 표시)
- [ ] F5-21 공사원가계산서(0608) — Prn_Won_A · 현재: 부분(화면 됨, 엑셀 1% 미만 요율 80% 표기 excel_builder 108)
- [ ] F5-22 총괄집계표(0609) — Prn_Col_Dan · 현재: 없음
- [ ] F5-23 견적내역서(0613·0614)·견적단가대비표(0615) — PM_Nae_Est · 현재: 없음
- [ ] F5-24 도공·굴착·시도·구도·비교 양식 내역서(0606·0651~0656·0672) — ST_P_Excav · Prn_Nae · 현재: 없음
- [ ] F5-25 재료비·노무비·중장비 집계표(0675~0677) — Prn_Col_Dan · 현재: 없음
- [ ] F5-26 장비·인력·자재 투입계획(0671·0678·0679)·간이명세서(0695) — Rep_Print · 현재: 없음
- [ ] F5-27 목차 시트(〓 목 차 〓) — 19번 §3 · 현재: 부분(엑셀 하이퍼링크, 없는 시트 3개 링크 깨짐)
- [ ] F5-28 안내 시트(※※안내※※) — 19번 §3 · 현재: 없음
- [ ] F5-29 〓 INITIAL 〓 설정 스냅샷 시트 — 18번 §2.3 · 현재: 없음
- [ ] F5-30 제잡비 요율표 인쇄 — PM_KAN_RATE · 현재: 없음
- [ ] F5-31 엑셀 다중 시트 내보내기·수식 보존 — ST_P_XLS Prn_FMLA_INFO · 현재: 부분(11시트, 대부분 값 복사)
- [ ] F5-32 보고서 인쇄·미리보기 — PM_* · 현재: 부분(브라우저 화면 인쇄, 보고서 양식 없음)
- [ ] F5-33 가로형·토개공·수자원·산근양식 변형 — PM_*_L · PM_Prt · 현재: 없음
- [ ] F5-34 출력별 반올림(내역 절사·집계 사사오입) — 06번 §3 · 18번 §2.4 · 현재: 부분(집계용 반올림 값만, 집계표 없음)
- [ ] F5-35 금액 한글 표기(AMTTOHAN) — 24번 §2.4 · 현재: 없음
- [ ] F5-36 SET_REP 데이터 기반 열·폭·제목 — 20번 §3 · 현재: 부분(양식표 표시만, 출력에 미적용)
### G6 설계변경·계약·실행·기성 (구현 2 · 부분 9 · 없음 25) — 18.1%
- [ ] F6-01 차수 4벌(원설계+3차변경) 칸 관리 — 08번 §2 · 24번 §7 · 현재: 부분(2·3 칸을 변경·계약 값으로 덮어씀 view_prj_boq 560)
- [ ] F6-02 통합형 BOQ11+BOQ12에서 BOQ12 현재안 — 16번 §4.5 · 현재: 없음(늘 BOQ11 server.py 465)
- [ ] F6-03 분리형 변경 STC 생성·차수 인계 — 16번 §4.6 · 현재: 없음
- [ ] F6-04 변경 수량 입력 — 설계변경 · 현재: 부분(공종별 입력, 1 단위 칸 app.js 536)
- [ ] F6-05 변경 단가·신규 공종·삭제 항목(0 유지) — 08번 §2 · 현재: 없음
- [x] F6-06 변경 직접비 당초·변경·증감 — 19번 §6.5 · 현재: 구현(calc.js 661~670)
- [x] F6-07 간접비 변경 모드: 재계산 — 08번 §2 · 현재: 구현(calc.js 357)
- [ ] F6-08 간접비 변경 모드: 당초액 유지(건강·장기요양·연금·퇴직공제) — 19번 §6 · 35번 §4 · 현재: 부분(세 항목 고정, 퇴직공제·선택 없음)
- [ ] F6-09 간접비 변경 방법 A(비율)·방법 B(증감×율) — 08번 §2 · 현재: 부분(식만, 고를 화면 없음)
- [ ] F6-10 보험료 변경 계산 3모드 — wM_KanJub cBx_CH_BO · 현재: 없음
- [ ] F6-11 2차·3차 변경 계산 — wM_KanJub cBx_Chasu · 현재: 없음(차수 칸 처리 없음)
- [ ] F6-12 원가계산서 당초/변경 대비·변경분만 인쇄 — PM_Won_A_C · Cmbx_PORD1_H · 현재: 부분(화면 증감 표, 인쇄 양식 없음)
- [ ] F6-13 설계변경내역서(0643·0644) — CHANGE_STR · 현재: 없음(0603과 같은 표 view_kanjub_prt 531)
- [ ] F6-14 변경내역서(변경율)(0645) — CHANGE_AMT · 현재: 없음
- [ ] F6-15 설계변경증감대비표(0648)·금액대비표 — CHANGE_AMT · 현재: 부분(화면 표만, 보고서·엑셀 없음)
- [ ] F6-16 변경총괄·굴착·시도 변경내역서(0661~0666) — CHANGE_* · 현재: 없음
- [ ] F6-17 계약 변환 비목별 단가적용율(노·재·경) — wM_Mk_Cont · 현재: 부분(행별 버림, 머리줄은 재료율 하나 view_kanjub_prt 274)
- [ ] F6-18 계약 변환 옵션(기초단가·일위/산근 생성·동일코드·노무비율·비과세) — 27번 §2.2 · 현재: 없음
- [ ] F6-19 적용율 0% → W코드 공내역 — 27번 §2.2 · 현재: 없음
- [ ] F6-20 적용제외 공정 선택(레벨 9단계) — 27번 §2.3 · 현재: 없음(문구만)
- [ ] F6-21 예상적용율 찾기(목표금액 역산)·미리계산 — 27번 §2.3 · 현재: 없음(문구만)
- [ ] F6-22 설계 → 계약자료 변환등록(당초/변경·레벨) — wM_Conv_Mode · 현재: 없음
- [ ] F6-23 낙찰율 열(NAGCD)·계약단가 저장 — 26번 §4 · 현재: 부분(산근 재계산 시 2칸 원단가 → 1칸 낙찰 단가 · 저장은 MAMT3 87.745% 일괄 덮어씀)
- [ ] F6-24 계약 원가계산(계약 제잡비) — 27번 · 현재: 없음(COSTW3=총공사비×재료율 view_prj_boq 633)
- [ ] F6-25 계약·실행내역서(0623·0624) — PM_Nae_Cont · 현재: 없음(0603 복사)
- [ ] F6-26 실행예산 작업(실행단가·실행수량) — wBoq 실행예산작업 · 현재: 없음(92% 고정 view_kanjub_prt 317)
- [ ] F6-27 중기 실행단가 계산(절사 6택·차액 보정 순서) — wM_Boq_ExecX · 현재: 없음
- [ ] F6-28 실행예산서 Ⅰ·Ⅱ(0673·0674) — SET_REP · 현재: 없음
- [ ] F6-29 기성 회차 전회·금회·누계·비율 — wM_KanJub_K rGrd_Jab · 현재: 부분(전 공종 같은 비율 30/65% app.js 44)
- [ ] F6-30 공종별 기성수량·잔량 입력 — 27번 §3.2 · 현재: 없음
- [ ] F6-31 기성 제잡비(금회직접×계약제잡비율) — 27번 §3.1 · 현재: 없음(도급액×누계율 표시만)
- [ ] F6-32 기성 부가세 4택·절사·이윤 직접입력 — 27번 §3.3 · 현재: 없음
- [ ] F6-33 기성 집계수준 필터(소계~총합계) — wM_KanJub_K rd_Filter · 현재: 없음
- [ ] F6-34 기성부분총괄·기성내역서·사정·기성율(0632~0635) — Prn_Jab · 현재: 없음(0603 복사)
- [ ] F6-35 기성검사조서(을·병)·기성부분수량조서(0636~0638) — Prn_Jab · 현재: 없음
- [ ] F6-36 준공조서(을·병)(0646·0647) — SET_REP · 현재: 없음
---
- 범위 밖(합계 제외): 하드웨어 동글(SX32W Sentinel) · 시리얼 인증(ST_BdSN) · 라이선스 서버 접속(wM_Host) · 유지보수 연장·A/S 신청(wM_Req_ON·wM_Req_AS) · 온라인 업데이트·패치·다운로드 센터(ST_U_ADL·STmexe·wM_Stmate_APatch·wM_Down_Center)
- 재현 불가(합계 제외): 원본 암호화 자료 — BDQTY.DBF 수량 할증 세부 · SYSINFO.DBF · EQSYNC.DBF · 기준단가 BSC/CSTA(자재 5.7만·노임·중기·표준시장)
- 기능 밖 결함(합계 제외): app.js 718줄 · 서버 0.0.0.0·CORS 전부 허용·임의 경로 읽기(/api/load·/work_dbf 정적 노출)