From 600d7b0ab15a8b59914393ded353c9fdd836e539 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 7 Nov 2026 11:35:02 +0900 Subject: [PATCH] feat(est): show standard price design changes --- resources/tester/test_est_standard.py | 25 +++++++++++++++++++++++++ tools/est-test/PLAN.md | 3 +++ tools/est-test/README.md | 2 ++ tools/est-test/index.html | 1 + tools/est-test/native-app.js | 1 + tools/est-test/native-business.js | 19 ++++++++++++++++--- tools/est-test/native-extra.js | 2 +- tools/est-test/native-forms.js | 5 +++++ tools/est-test/native-model.js | 1 + tools/est-test/native-report.js | 1 + tools/est-test/native-standard.js | 16 ++++++++++++++-- 11 files changed, 70 insertions(+), 6 deletions(-) diff --git a/resources/tester/test_est_standard.py b/resources/tester/test_est_standard.py index d0529bfe1..3a7427d33 100644 --- a/resources/tester/test_est_standard.py +++ b/resources/tester/test_est_standard.py @@ -1,6 +1,31 @@ from test_est_rea_parity import run +def test_standard_changes_include_new_deleted_and_changed_link_types(): + result = run( + "math", + """(()=>{ + const p=EstNative.empty();p.tables.EstMainDat=[ + {PkID:1,Code:'A',Name:'changed',LinkIndex:21,GN:2,TC:200}, + {PkID:2,Code:'B',Name:'changed link',LinkIndex:5,GN:1,TC:50}, + {PkID:4,Code:'D',Name:'new',LinkIndex:21,GN:1,TC:40}]; + p.baseline={tables:{EstMainDat:[ + {PkID:1,Code:'A',Name:'changed',LinkIndex:21,GN:1,TC:100}, + {PkID:2,Code:'B',Name:'changed link',LinkIndex:21,GN:1,TC:50}, + {PkID:3,Code:'C',Name:'deleted',LinkIndex:21,GN:3,TC:300}, + {PkID:5,Code:'E',Name:'other',LinkIndex:5,GN:1,TC:10}]}}; + return {rows:EstStandard.changes(p),print:EstForms.data('standard-change',p)}; + })()""", + ) + rows = {row["Code"]: row for row in result["rows"]} + assert set(rows) == {"A", "B", "C", "D"} + assert rows["A"]["difference"] == 100 + assert rows["B"]["status"] == "변경" + assert rows["C"]["status"] == "삭제" and rows["C"]["index"] is None + assert rows["D"]["status"] == "신규" + assert result["print"]["rows"] == result["rows"] + + def test_standard_usage_reports_applied_and_source_prices_without_mutation(): result = run( "math", diff --git a/tools/est-test/PLAN.md b/tools/est-test/PLAN.md index 71c6a50b8..2e56faddc 100644 --- a/tools/est-test/PLAN.md +++ b/tools/est-test/PLAN.md @@ -1,4 +1,7 @@ ## Codex · EST 독립 테스트 앱 (2026-11-04) +- [x] 표준시장단가 설계변경 내역·증감 화면·출력 구현 → 신규·삭제·연결 변경 시험. + - 자체 검증: 표준 내역의 신규·삭제·연결 변경과 문서 기능 시험 21개 통과. Edge에서 증감·삭제 행·인쇄·내역 이동 확인. + - [x] 표준시장단가 사용 내역·기초 단가 비교 화면·출력 구현 → 연결·중복·누락·행 이동 시험. - 자체 검증: 연결 단가·중복·누락·문서 시험 12개 통과, Edge에서 화면·인쇄·해당 내역 이동 확인. diff --git a/tools/est-test/README.md b/tools/est-test/README.md index 8ad2ab1a4..e39165a51 100644 --- a/tools/est-test/README.md +++ b/tools/est-test/README.md @@ -8,6 +8,8 @@ 작업모드의 `표준시장단가 사용 내역`은 표준시장단가에 연결된 내역별 적용 단가와 현재 기초 단가, 차이와 연결 상태를 보여 줍니다. 원래 내역으로 이동하거나 해당 표를 인쇄·Excel로 출력할 수 있습니다. +`표준시장단가 설계변경`에서는 기준 내역과 비교한 신규·삭제·변경 및 금액 증감을 확인하고 인쇄·Excel로 출력할 수 있습니다. + 행을 선택한 뒤 편집 메뉴의 `선택 행 자릿수 설정`에서 처리방식과 소수 자릿수를 일괄 적용할 수 있습니다. 기존 계산 설정은 실행 취소로 되돌릴 수 있습니다. 내역서 편집 메뉴의 `내역 수량 초기화`는 선택한 상세 행 또는 모든 상세 행의 수량을 0으로 바꿉니다. 비율·합계 자동행은 건드리지 않으며 실행 취소할 수 있습니다. diff --git a/tools/est-test/index.html b/tools/est-test/index.html index 24d9adcdb..c06b6cfef 100644 --- a/tools/est-test/index.html +++ b/tools/est-test/index.html @@ -116,6 +116,7 @@