feat(est): print annual item allocations
This commit is contained in:
@@ -8,15 +8,18 @@ def test_annual_print_contains_each_stage_and_calculation_errors():
|
||||
const p=EstNative.empty();p.options.SourceRefresh=false;
|
||||
p.tables.EstMainDat=[{PkID:1,Code:'R',GN:3,GU:100},{LinkIndex:54}];
|
||||
p.annual=[{name:'first',formula:'[기준]*0.25'},{name:'second',formula:'[기준]-[first]'}];
|
||||
const q=EstNative.calculate(p), good=EstForms.data('annual-summary',q);
|
||||
const q=EstNative.calculate(p), good=EstForms.data('annual-summary',q), items=EstForms.data('annual-items',q);
|
||||
q.annual[0].formula='[unknown]';
|
||||
return {good,bad:EstForms.data('annual-summary',q)};
|
||||
return {good,items,bad:EstForms.data('annual-summary',q),badItems:EstForms.data('annual-items',q)};
|
||||
})()""",
|
||||
)
|
||||
assert [row["directCost"] for row in result["good"]["rows"]] == [75, 225]
|
||||
assert result["good"]["rows"][1]["formula"] == "[기준]-[first]"
|
||||
assert result["good"]["errors"] == []
|
||||
assert result["bad"]["errors"]
|
||||
assert [row["stage"] for row in result["items"]["rows"]] == ["first", "second"]
|
||||
assert [row["TC"] for row in result["items"]["rows"]] == [75, 225]
|
||||
assert result["badItems"]["errors"]
|
||||
|
||||
|
||||
def test_progress_and_escalation_print_use_selected_calculations():
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
인쇄 미리보기는 화면의 100행 페이지 제한 없이 검색 결과/현재 호표의 전체 행을 표시합니다. 출력 범위에서 현재 자료의 모든 호표·행도 선택할 수 있습니다. 원본 인쇄 옵션의 41개 항목 중 CAD를 제외한 40개 서식 이름을 선택하며, ESTX에서 가져온 해당 프로젝트의 인쇄 설정을 우선 사용합니다. 내역·원가·호표/총괄·증감·동원·수량·공정은 표 자료로 출력합니다. 표지·갑지·설명서·시방서·심사 문서는 서식별 본문을 직접 입력합니다. 용지·방향·여백·글자 크기·페이지당 행·시작 쪽·업체명을 저장하고 인쇄/PDF로 출력합니다. ESTX 수정 저장은 서식별 여백과 페이지당 행 수를 반영합니다. 다른 웹 인쇄 설정의 ESTX 쓰기와 원본 인쇄 도형·병합·글꼴 배치의 동등성은 지원하지 않습니다.
|
||||
|
||||
별도 인쇄 서식으로 기성·물가변동의 내역서와 원가계산서, 연차 배분표를 선택할 수 있습니다. 기성은 선택한 회차를 출력하고 확정된 회차는 확정 당시 결과를 사용합니다.
|
||||
별도 인쇄 서식으로 기성·물가변동의 내역서와 원가계산서, 연차 배분표와 연차별 내역서, 설계변경 원가 증감표를 선택할 수 있습니다. 기성은 선택한 회차를 출력하고 확정된 회차는 확정 당시 결과를 사용합니다.
|
||||
|
||||
저장은 이 폴더의 `data/`에 작업을 보관하고 `.estweb.json` 파일도 내려받습니다. 브라우저 임시 저장은 같은 탭에서 복원하는 용도입니다. JSON은 모든 웹 업무와 원본 압축 파일·바이너리를 보관하는 전체 저장 형식입니다. ESTX 수정 저장은 아래 지원 조건을 따릅니다.
|
||||
|
||||
|
||||
@@ -6,8 +6,19 @@ const EstForms = (() => {
|
||||
columns: ["Gubun", "Name", "originalCost", "changedCost", "difference"],
|
||||
rows: EstBusiness.costChanges(project),
|
||||
};
|
||||
if (id === "annual-summary") {
|
||||
if (["annual-summary", "annual-items"].includes(id)) {
|
||||
const output = EstBusiness.annual(project, false);
|
||||
if (id === "annual-items")
|
||||
return {
|
||||
columns: ["stage", "Code", "Name", "Size", "Unite", "GN", "NC", "GC", "JC", "SC", "TC"],
|
||||
rows: output.results.flatMap((item) =>
|
||||
item.project.tables.EstMainDat.filter((row) => row.Code || row.Name).map((row) => ({
|
||||
...row,
|
||||
stage: item.name,
|
||||
})),
|
||||
),
|
||||
errors: output.errors,
|
||||
};
|
||||
return {
|
||||
columns: ["Name", "formula", "directCost", "contractCost"],
|
||||
rows: project.annual.map((year, index) => ({
|
||||
@@ -289,6 +300,7 @@ const EstForms = (() => {
|
||||
excludedCost: "제외 금액",
|
||||
originalCost: "당초 금액",
|
||||
changedCost: "변경 금액",
|
||||
stage: "차수",
|
||||
TargetCode: "연결 내역",
|
||||
TU: "단가",
|
||||
TC: "금액",
|
||||
|
||||
@@ -141,6 +141,7 @@ const EstReport = (() => {
|
||||
{ Index: "escalation-summary", Name: "물가변동 내역서", Name2: "물가변동 내역서" },
|
||||
{ Index: "escalation-costs", Name: "물가변동 원가계산서", Name2: "물가변동 원가계산서" },
|
||||
{ Index: "annual-summary", Name: "연차 배분표", Name2: "연차 배분표" },
|
||||
{ Index: "annual-items", Name: "연차별 내역서", Name2: "연차별 내역서" },
|
||||
{ Index: "change-costs", Name: "설계변경 원가 증감표", Name2: "설계변경 원가 증감표" },
|
||||
);
|
||||
const table = EstApp.state.project.tables[EstApp.state.view];
|
||||
|
||||
Reference in New Issue
Block a user