- 서버 Sangeun_Calc: 배 = 바탕 기준단위 → SK 단위(master_unit.swap) · 성격 다름 = 문서 환산 {계수 | 단위중량} · 없으면 셈 · 저장 막음(까닭 글) · 「식」 · 빈 단위 = 옛 셈 그대로(일위대가 줄 모드)
- 화면 셈 답 줄 · 계 = SK 1 단위 몫(per_unit · 화면배) · 머리 띠 「100본 당」 · 「1 본 당」
- 서버 Sangeun_Doc: 환산 칸 검사(계수 양수 · 단위중량 종별 · 형상)
- B09 Labor_Source: SK 참조 배 = 같은 ratio_of(옛 바탕 앞 수 대신 · 기존 문서 같은 값)
- 화면 Sangeun_Detail: SK 단위 처음 값 = 기초 기준단위(「100본」) · 둘째 기초 수량 처음값 = 바탕 기준단위 ÷ 그 기초 기준단위(swapUnit) · 계 칸 원/SK 단위
- 새 Sangeun_Unit: 근거 글 · 환산 계수 칸 · 단위중량 표(CC000337) 고르기
- Cover_Model: 화면 품 × 화면배 = 문서 품(덮개 · 더한줄 · 세부) · 율 그대로
- Find_Pick: 돈 아닌 기초(결과단위 「원」 아님 21 개) 목록에서 뺌
- 낡은 시험 test_715_sangeun_engine(바탕 원/주 + SK ㎡) · test_727(바탕 원/㎡ + SK ㎥) = 성격 다른 단위가 이제 계수 없으면 막혀 SK 단위를 바탕 단위로 고침(금액 같음)
- 새 시험 test_728_2_sk_unit(100본 → 본 1,538.89 · ㎡ 44,791.32 · 계수 · 단위중량 · 식 · 둘째 기초 · 돈 아닌 기초 · 고침 꼴)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
45 lines
1.6 KiB
JavaScript
45 lines
1.6 KiB
JavaScript
/* PLAN 728-2 헬퍼 — SK 고침 꼴(`logic/M02_Sangeun_Cover_Model.ts`)이 화면배(SK 1 단위 몫)를 문서 몫으로 되돌리는지.
|
|
* 짝 = `test_728_2_sk_unit.py`. 결과 = 표준출력 JSON.
|
|
*/
|
|
const path = require("path");
|
|
const { makeLoader } = require("./helper_ts_stub_loader.cjs");
|
|
|
|
const ROOT = path.join(__dirname, "..", "..");
|
|
const { load } = makeLoader({ root: ROOT });
|
|
const m = load("M02_MasterTemplete", "logic", "M02_Sangeun_Cover_Model.ts");
|
|
|
|
// GF000287 단목베기 SK 단위 본 — 서버 화면 답 = 100본 몫 ÷100(화면배 100)
|
|
const line = (cid, 이름, 수량, 금액) => ({
|
|
cid,
|
|
이름,
|
|
단위: "인",
|
|
수량,
|
|
단가: 금액 / 수량,
|
|
금액,
|
|
비목: { 노무비: 금액 },
|
|
});
|
|
const ans = {
|
|
기준: { 계: 1538.894 },
|
|
줄: [line("labor:LB000101#0", "벌목부", 0.002, 506.486), line("add:#0", "보통인부", 0.5, 86034)],
|
|
정체: ["labor:LB000101#0", "add:#0"],
|
|
짝잃음: [],
|
|
바탕판: "",
|
|
배: 100,
|
|
화면배: 100,
|
|
};
|
|
const bare = { ...ans, 줄: [ans.줄[0]], 정체: ["labor:LB000101#0"] };
|
|
const doc = {
|
|
단위: "본",
|
|
바탕: { 로직: "GF000287" },
|
|
더한줄: [{ 종류: "인력", 요소: "LB000002", 수량: 50 }],
|
|
};
|
|
const rows = m.rowsOf(ans, bare, doc);
|
|
const out = { was: rows[0].was, t: rows.map((r) => r.t) };
|
|
m.setLineCover(doc, rows[0], { qty: 0.003 }, false); // 화면 0.003 = 문서 0.3(100본 몫)
|
|
m.setLineCover(doc, rows[1], { qty: 0.6 }, false); // 더한 인력 화면 0.6 = 문서 60
|
|
out.cover = doc.덮개;
|
|
out.added = doc.더한줄[0].수량;
|
|
const view = m.hoView(ans, bare, null, doc);
|
|
out.shown = view.covers;
|
|
process.stdout.write(JSON.stringify(out));
|