- bdqty.py — BDQTY.DBF 자리별 고정 변환(회전 + 더하기) 표 283자리로 복호(사용자 승인) · /api/load 에 bdqty_rows - smt_eval.js evaluateComposition — 행 소수1 버림 · CHBNM 총액우선(행 합계액 기준) · PR 줄(PRPT 밑수 → PROUT) · % 단위 자원 · C* 뒤 % = 전체 비율 · 중기 운전원 CONLD 시간 환산 · '$' 단위 환율 · SBMOK 경비 - 연쇄 재계산 = X·D·B 참조 순서 · 봉화 기준 표준 레시피 이름 맞추기(자기 대조) 걷음 - 원설계 5건 일위대가·중기 291개 + 영덕 변경 31개 1원 · 기초단가부터 다시 셈해도 전 단가·총공사비 그대로 - 지킴 시험 test_stmate_ilwi_eval.py · 장부 32.2% → 33.5% Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
21 lines
939 B
JavaScript
21 lines
939 B
JavaScript
// STMATE 재현 앱 연쇄 재계산(계산완료) — stdin = /api/load 결과 · 재계산 뒤 COSTN 단가와 원가계산서
|
|
globalThis.window = globalThis;
|
|
require("../../tools/stmate-test/calc.js");
|
|
require("../../tools/stmate-test/smt_eval.js");
|
|
require("../../tools/stmate-test/smt_engine.js");
|
|
require("../../tools/stmate-test/view_prj_boq.js");
|
|
let buf = "";
|
|
process.stdin.on("data", (d) => (buf += d));
|
|
process.stdin.on("end", () => {
|
|
const d = JSON.parse(buf);
|
|
const ctx = { dbfData: d, state: d.sim_state, uiState: {} };
|
|
const count = window.STMATE_ENGINE.cascadeRecalculateAll(ctx);
|
|
const prices = {};
|
|
for (const r of d.costn_rows)
|
|
prices[r.CODE.trim()] = ["MAMT1", "LAMT1", "SAMT1", "MAMT2", "LAMT2", "SAMT2"].map((k) =>
|
|
Number(r[k]),
|
|
);
|
|
const k = window.STMATE_CALC.calculateAll(ctx.state).kanjubOrig;
|
|
process.stdout.write(JSON.stringify({ count, prices, grand: k.grandTotal, dT: k.dT }));
|
|
});
|