feat(stmate-test): 3차 화면·데이터 마무리 — 보호표시 · 공종번호 · 직종·노임 · 제비율표 편집 · 차수 칸 저장 · 계약 변환등록 = 울진 계약 STC · 장부 87.6%
- 시험 615 통과 · 브라우저 화면 13개·메뉴 90개 오류 0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
};
|
||||
const codeOf = (r) => txt(r && r.CODE);
|
||||
const OWN = { M: "MAMT", L: "LAMT", S: "SAMT" };
|
||||
// 보호표시(wM_Boxa 「보호」 열 = 기초·견적단가 UC) — 일괄 손질에서 건너뜀(ui_dan.isProtected 와 같은 판정)
|
||||
const isProtected = (r) => /^[MLSW]/.test(codeOf(r)) && txt(r.UC) === "T";
|
||||
|
||||
// 반올림·절사 — 소수 d 자리(음수 = 10^-d 원 단위)
|
||||
function roundTo(v, d, mode) {
|
||||
@@ -51,6 +53,7 @@
|
||||
const c = codeOf(r);
|
||||
if (!c || !opt.kinds.includes(c[0]) || (only && !only.has(c))) return;
|
||||
if (num(r.NAGCD) > 0 && (Number(opt.from) === 2 || Number(opt.to) === 2)) return;
|
||||
if (isProtected(r) && !opt.force) return;
|
||||
const src = slotVals(r, opt.from);
|
||||
const T0 = src.M + src.L + src.S;
|
||||
if (opt.skipZero && !(T0 > 0)) return;
|
||||
@@ -81,6 +84,7 @@
|
||||
(rows || []).forEach((r) => {
|
||||
const c = codeOf(r);
|
||||
if (!c || !opt.kinds.includes(c[0]) || (only && !only.has(c))) return;
|
||||
if (isProtected(r)) return;
|
||||
const cur = slotVals(r, 1);
|
||||
const curT = cur.M + cur.L + cur.S;
|
||||
const base = num(r.AMT_61) || curT;
|
||||
@@ -310,6 +314,7 @@
|
||||
}
|
||||
|
||||
global.STMATE_UI_CODE_AMT = {
|
||||
isProtected,
|
||||
roundTo,
|
||||
chgAmt,
|
||||
halAll,
|
||||
|
||||
Reference in New Issue
Block a user