31 lines
1.5 KiB
JavaScript
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 };
|
|
})();
|