115 lines
3.3 KiB
JavaScript
115 lines
3.3 KiB
JavaScript
const EstSettings = (() => {
|
|
function show() {
|
|
const project = EstApp.state.project;
|
|
EstActions.form(
|
|
"계산 환경 설정",
|
|
[
|
|
{
|
|
name: "head",
|
|
label: "일위대가 성분 소수자리",
|
|
type: "number",
|
|
value: project.options.HeadDigits || 0,
|
|
},
|
|
{
|
|
name: "estimate",
|
|
label: "내역 성분 소수자리",
|
|
type: "number",
|
|
value: project.options.EstDigits || 0,
|
|
},
|
|
{
|
|
name: "costTrunc",
|
|
value: project.options.CostValueTrunc ? "1" : "0",
|
|
label: "단가산출 성분 금액 절사",
|
|
choices: [
|
|
["0", "소수 1자리"],
|
|
["1", "원 미만"],
|
|
],
|
|
},
|
|
{
|
|
name: "midCost",
|
|
label: "단가산출 중간금액 소수자리",
|
|
type: "number",
|
|
value: project.options.MidCostDiget ?? 2,
|
|
},
|
|
{
|
|
name: "total",
|
|
value: project.options.TotalFix ? "1" : "0",
|
|
label: "도급액 고정",
|
|
choices: [
|
|
["0", "해제"],
|
|
["1", "원가 LinkIndex 55행 금액에 고정"],
|
|
],
|
|
},
|
|
{
|
|
name: "fit",
|
|
value: project.options.TotalFit ? "1" : "0",
|
|
label: "성분 합계 맞춤",
|
|
choices: [
|
|
["0", "해제"],
|
|
["1", "최대 나머지 배분"],
|
|
],
|
|
},
|
|
{
|
|
name: "dollar",
|
|
value: project.options.DollarCostCut ? "1" : "0",
|
|
label: "외화 원화환산 천원 절사",
|
|
choices: [
|
|
["0", "원 단위"],
|
|
["1", "천원 단위"],
|
|
],
|
|
},
|
|
{
|
|
name: "jdl",
|
|
value: project.options.JDLCalcMethod ? "1" : "0",
|
|
label: "운전사 중간금액 소수1자리 절사",
|
|
choices: [
|
|
["0", "해제"],
|
|
["1", "사용"],
|
|
],
|
|
},
|
|
{
|
|
name: "materials",
|
|
value: project.options.GCToWonga ? "1" : "0",
|
|
label: "순직접공사비 재료비 처리",
|
|
choices: [
|
|
["0", "간접재료비"],
|
|
["1", "직접재료비"],
|
|
],
|
|
},
|
|
{
|
|
name: "procurement",
|
|
value: project.options.GangubExceptJodalRatio ? "1" : "0",
|
|
label: "산업안전보건관리비의 관급자재대에서 조달수수료",
|
|
choices: [
|
|
["0", "포함"],
|
|
["1", "제외"],
|
|
],
|
|
},
|
|
],
|
|
(values) => {
|
|
if (
|
|
![values.head, values.estimate, values.midCost].every(
|
|
(n) => Number.isInteger(n) && n >= 0 && n <= 6,
|
|
)
|
|
)
|
|
throw Error("소수 자릿수는 0~6 정수입니다.");
|
|
EstApp.change(() =>
|
|
Object.assign(project.options, {
|
|
HeadDigits: values.head,
|
|
EstDigits: values.estimate,
|
|
CostValueTrunc: values.costTrunc === "1",
|
|
MidCostDiget: values.midCost,
|
|
TotalFix: values.total === "1",
|
|
TotalFit: values.fit === "1",
|
|
DollarCostCut: values.dollar === "1",
|
|
JDLCalcMethod: values.jdl === "1",
|
|
GCToWonga: values.materials === "1",
|
|
GangubExceptJodalRatio: values.procurement === "1",
|
|
}),
|
|
);
|
|
},
|
|
);
|
|
}
|
|
return { show };
|
|
})();
|