From 8be1ff61358a7e2604383128bdb11844a95838cc Mon Sep 17 00:00:00 2001 From: umsangdon Date: Thu, 12 Nov 2026 13:06:32 +0900 Subject: [PATCH] =?UTF-8?q?feat(est-test):=20=EC=9B=90=EA=B0=80=EA=B3=84?= =?UTF-8?q?=EC=82=B0=EC=84=9C=20=EC=88=9C=EA=B3=B5=EC=82=AC=EB=B9=84=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- tools/est-test/PLAN.md | 3 +++ tools/est-test/index.html | 3 ++- tools/est-test/native-wonga-tools.js | 23 +++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/tools/est-test/PLAN.md b/tools/est-test/PLAN.md index a6c853e44..e74efa976 100644 --- a/tools/est-test/PLAN.md +++ b/tools/est-test/PLAN.md @@ -487,6 +487,9 @@ ative-standard.js에 표준시장단가 원천(SilJukDat)과 내역 행(EstMainD - 남음: 구성비·요율 전환(CalcBase), 약어 표시(SName), 제비율 기준 문서 보기(원본 한글 파일). - [x] 수량산출서 검색·전체보기(원본 TFRMMULLANG btnSerch·btnAllDisplay — 빈칸·|·괄호 무시 포함 검색) — 고르기 줄을 `native-quantity-sheets.js` 로 옮겨 700줄 제한 유지. - 검증완료: `test_est_quantity_sheets.py` 검색 시험 포함 수량 시험 22개 통과. ORCA 브라우저에서 「집수」 검색 → 항목에 집수정이 있는 「배수」만·선택 이동, 전체보기 → 3개 복귀, 샘플 복구. + - [x] 원가계산서 순공사비 입력(원본 가로양식 TfrmWongaH popTotalInput 0xe7fbf8) — 연결 54 줄이 있으면 「순공사비 항목이 있습니다」(그 줄 고름), 없으면 맨 위에 「순 공 사 비」(연결 54, 금액 = 직접공사비) 넣고 다시 계산. 원본이 이어서 하는 원가 전체 초기화(모든 줄 자리수·도급액 고정 지움)는 사용자 설정을 지우는 부작용이라 하지 않음. + - 검증완료: 원가·바인딩 시험 통과. ORCA 브라우저에서 넣기 → 맨 위 순공사비 45,293,066(= 직접공사비)·도급액 79,603,000 불변, 다시 누르면 거부 문구, 샘플 복구. + - 제외: 자동비목생성(Ctrl+Alt+G 숨은 시험용 — 비목군을 무작위로 채움), 단가산출 정리(TfrmCostSpaceEdit — 원본 실행 파일에 코드가 링크되지 않아 열 수 없음). - [x] Excel 가져오기 셀부호 밀기·당기기(원본 TFRMEXCELTOEST popCellLeft·popupCellRight) — 첫 필드 열만 보고 모든 필드 열을 한 칸 오른쪽(왼쪽)부터 차례로 다시 매김, A 아래는 원본 문구로 거부(웹은 AA 등 두 글자 열도 이어 매김). - [x] 설계일자 선택(원본 TfrmMonthDate) — 갑지 「날짜 선택」 → 「{년}년 {월}월 일 설계」(일은 빈칸), 견적서 「견적일자 선택」 → 「{년}년 {월}월 {일}일」. - 검증완료: `test_est_excel_map.py` 4개(밀기 A→B…P, 당기기 C→B, A 거부)·견적서·문서·바인딩 시험 통과. ORCA 브라우저에서 갑지 날짜 2026-03-05 → 「2026년 3월 일 설계」, 저장하지 않고 닫아 복구. diff --git a/tools/est-test/index.html b/tools/est-test/index.html index 40873be90..50b7c9f4e 100644 --- a/tools/est-test/index.html +++ b/tools/est-test/index.html @@ -215,7 +215,8 @@ + >
diff --git a/tools/est-test/native-wonga-tools.js b/tools/est-test/native-wonga-tools.js index 9788dcdf4..0a849cd2f 100644 --- a/tools/est-test/native-wonga-tools.js +++ b/tools/est-test/native-wonga-tools.js @@ -282,6 +282,29 @@ const EstWongaTools = (() => { } function handle(name, state) { + if (name === "wonga-total-input") { + // 순공사비 입력(가로양식 TfrmWongaH popTotalInput 0xe7fbf8): 연결 54 줄이 있으면 거부, 없으면 맨 위에 + // 「순 공 사 비」(연결 54, 금액 = 직접공사비 TC) 줄을 넣고 다시 계산. 원본은 이어서 원가 전체 초기화로 + // 모든 줄 자리수·도급액 고정을 지우나, 웹은 사용자 설정을 지우지 않는다. + const rows = state.project.tables.Wonga || []; + const at = rows.findIndex((r) => num(r.LinkIndex) === 54); + if (at >= 0) { + state.selection.clear(); + state.selection.add(at); + throw Error("순공사비 항목이 있습니다"); + } + EstApp.change((project) => { + (project.tables.Wonga ||= []).unshift({ + Gubun: "", + Name: "순 공 사 비", + LinkIndex: 54, + CalcIndex: 0, + BaseField: "TC", + Checked: false, + }); + }); + return true; + } if (name === "wonga-content-del") { // 내용 삭제(popupContentDel A7): 연결·금액·비율·요율·산출근거·자리 비움, 이름·기호·계산방식 유지, 재계산 없음 const rows = state.project.tables.Wonga || [],