Files
Aislo/tools/est-test/native-es-info.js
T

31 lines
1.5 KiB
JavaScript

// 원본 「ES 정보」(ES도구 mnuESInfo → TfrmESInfo 0x10b838c) — 조달청 물가변동(ES) 제출용 기준시점·비교시점·최종기성일·
// 선급금지급일·선급금지급액. 원본은 작업 폴더 ProjectDataInfo.Ini [EscInfo] SDATE·CDATE·ACDATE·PreDATE·PreCost 에 두고
// 날짜 기본값은 오늘. 웹은 project.esInfo 에 둔다(물가변동 계산과는 직접 잇지 않음 — 원본도 ES 제출 파일 작성에만 씀).
const EstEsInfo = (() => {
const today = () => new Date().toISOString().slice(0, 10);
function dialog(state) {
const e = state.project.esInfo || {};
EstActions.form(
"ES 정보",
[
{ name: "SDATE", label: "기준시점", type: "date", value: e.SDATE || today() },
{ name: "CDATE", label: "비교시점", type: "date", value: e.CDATE || today() },
{ name: "ACDATE", label: "최종기성일", type: "date", value: e.ACDATE || today() },
{ name: "PreDATE", label: "선급금지급일", type: "date", value: e.PreDATE || today() },
{ name: "PreCost", label: "선급금지급액(원)", type: "number", value: e.PreCost ?? 0 },
],
(values) => {
if (!Number.isFinite(values.PreCost) || values.PreCost < 0)
throw Error("선급금지급액은 0 이상 수치입니다.");
EstApp.change((project) => (project.esInfo = { ...values }), false);
},
);
}
function handle(name, state) {
if (name !== "es-info") return false;
dialog(state);
return true;
}
return { handle };
})();