private void AddDummyRow(List <JigyouSyuushiRow> list, int beforeKubunId) { var dummy = new JigyouSyuushiRow(-1, -1); dummy.PrintGroupKubunId = beforeKubunId; list.Add(dummy); }
private List <JigyouSyuushiRow> SummarizeMeisaiTableSub(JigyouSyuushiRow parentJigyouSyuushiRow, int kamokuKubunHierarchy, string orderStr) { var list = new List <JigyouSyuushiRow>(); foreach (models.db.Row row in db.MTKamokuKubun.SelectChildren(parentJigyouSyuushiRow.Id, order: orderStr)) { if (HideInnerKaikeiKubunKamoku && db.MTKamokuKubun.IsInnerKaikeiKubunKamoku(KaikeiKubunHierarchy, row)) { continue; } JigyouSyuushiRow jigyouSyuushiRow = new JigyouSyuushiRow(row.GetId(), kamokuKubunHierarchy); jigyouSyuushiRow.CurrentYearSum = currentKamokuKubunSummary.SummaryItem(row.GetId()).GetTaisyaku(db); jigyouSyuushiRow.LastYearSum = lastKamokuKubunSummary.SummaryItem(row.GetId()).GetTaisyaku(db); if (db.MTKamokuKubun.IsInnerKaikeiKubunKamoku(KaikeiKubunHierarchy - 1, row)) { jigyouSyuushiRow.NaibuTorihikiSyoukyoGaku = jigyouSyuushiRow.CurrentYearSum; } bool hasChild = false; if ((int)TargetKamokuKubunHierarchy > kamokuKubunHierarchy) { var childList = SummarizeMeisaiTableSub(jigyouSyuushiRow, kamokuKubunHierarchy + 1, orderStr); if (childList != null) { ChildRowsOf.Add(jigyouSyuushiRow.Id, childList); hasChild = true; } } if (OmitZeroRow == false || hasChild || jigyouSyuushiRow.CurrentYearSum != 0 || jigyouSyuushiRow.LastYearSum != 0) { list.Add(jigyouSyuushiRow); } else if (OmitZeroRow == true) { list.Add(jigyouSyuushiRow); } if (kamokuKubunHierarchy == (int)models.constants.MTKamokuKubunHierarchy.ChuuKubun) { parentJigyouSyuushiRow.Add(jigyouSyuushiRow); } } if (list.Count > 0) { return(list); } return(null); }
private void SummarizeMeisaiTable() { string orderStr = "order by display_order"; DaikubunRows = new List <JigyouSyuushiRow>(); ChildRowsOf = new Dictionary <int, List <JigyouSyuushiRow> >(); foreach (models.db.Row kubunRow in db.MTKamokuKubun.SelectChildren((int)models.constants.MTKamokuKubun.JigyouRoot, order: orderStr)) { foreach (models.db.Row daikubunRow in db.MTKamokuKubun.SelectChildren(kubunRow.GetId(), order: orderStr)) { JigyouSyuushiRow daikubunJigyouSyuushiRow = new JigyouSyuushiRow(daikubunRow.GetId(), (int)models.constants.MTKamokuKubunHierarchy.Daikubun); var kamokuList = SummarizeMeisaiTableSub(daikubunJigyouSyuushiRow, (int)models.constants.MTKamokuKubunHierarchy.ChuuKubun, orderStr); /* foreach (models.db.Row kamokuRow in db.MTKamokuKubun.SelectChildren(daikubunRow.GetId(), order: orderStr)) { * if (HideInnerKaikeiKubunKamoku && db.MTKamokuKubun.IsInnerKaikeiKubunKamoku(KaikeiKubunHierarchy, kamokuRow)) { * continue; * } * JigyouSyuushiRow kamokuJigyouSyuushiRow = new JigyouSyuushiRow(kamokuRow.GetId()); * kamokuJigyouSyuushiRow.CurrentYearSum = currentKamokuKubunSummary.SummaryItem(kamokuRow.GetId()).GetTaisyaku(db); * kamokuJigyouSyuushiRow.LastYearSum = lastKamokuKubunSummary.SummaryItem(kamokuRow.GetId()).GetTaisyaku(db); * * if (db.MTKamokuKubun.IsInnerKaikeiKubunKamoku(KaikeiKubunHierarchy - 1, kamokuRow)) { * kamokuJigyouSyuushiRow.NaibuTorihikiSyoukyoGaku = kamokuJigyouSyuushiRow.CurrentYearSum; * } * * kamokuList.Add(kamokuJigyouSyuushiRow); * * daikubunJigyouSyuushiRow.Add(kamokuJigyouSyuushiRow); * }*/ if (kamokuList != null) { DaikubunRows.Add(daikubunJigyouSyuushiRow); ChildRowsOf.Add(daikubunJigyouSyuushiRow.Id, kamokuList); } } } }
public void DainyuuAMinusB(JigyouSyuushiRow a, JigyouSyuushiRow b) { this.Add(a); this.Substract(b); }
public void Substract(JigyouSyuushiRow row) { CurrentYearSum -= row.CurrentYearSum; LastYearSum -= row.LastYearSum; this.NaibuTorihikiSyoukyoGaku -= row.NaibuTorihikiSyoukyoGaku; }
public void Add(JigyouSyuushiRow row) { CurrentYearSum += row.CurrentYearSum; LastYearSum += row.LastYearSum; this.NaibuTorihikiSyoukyoGaku += row.NaibuTorihikiSyoukyoGaku; }
// 事業活動計算書の印刷用にRowのリストを作成して返す public List <JigyouSyuushiRow> GetRowsForJigyouKatsudouKeisansyoReport() { var result = new List <JigyouSyuushiRow>(); var dummyRow = new JigyouSyuushiRow(-1, -1); dummyRow.PrintGroupKubunId = -1; DaikubunRows.Add(dummyRow); int beforeKubunId = 0; foreach (var row in DaikubunRows) { row.PrintGroupKubunId = row.Id == -1 ? -1 : db.MTKamokuKubun.GetParentOf(row.Id).GetId(); if (beforeKubunId != 0 && beforeKubunId != row.PrintGroupKubunId) { var footerRows = new List <JigyouSyuushiRow>(); switch (beforeKubunId) { case (int)models.constants.MTKamokuKubun.ServiceKatsudouZougenSyuueki: footerRows.Add(SummaryRows[(int)SummaryItem.ServiceKatsudouSyuunyuu]); AddDummyRow(footerRows, beforeKubunId); AddDummyRow(footerRows, beforeKubunId); break; case (int)models.constants.MTKamokuKubun.ServiceKatsudouZougenHiyou: footerRows.Add(SummaryRows[(int)SummaryItem.ServiceKatsudouShisyutsu]); footerRows.Add(SummaryRows[(int)SummaryItem.ServiceKatsudouSagaku]); AddDummyRow(footerRows, beforeKubunId); break; case (int)models.constants.MTKamokuKubun.ServiceKatsudouGaiZougenSyuueki: footerRows.Add(SummaryRows[(int)SummaryItem.ServiceKatsudouGaiSyuunyuu]); AddDummyRow(footerRows, beforeKubunId); AddDummyRow(footerRows, beforeKubunId); break; case (int)models.constants.MTKamokuKubun.ServiceKatsudouGaiZougenHiyou: footerRows.Add(SummaryRows[(int)SummaryItem.ServiceKatsudouGaiShisyutsu]); footerRows.Add(SummaryRows[(int)SummaryItem.ServiceKatsudouGaiSagaku]); footerRows.Add(SummaryRows[(int)SummaryItem.KeijouZougenSagaku]); AddDummyRow(footerRows, beforeKubunId); break; case (int)models.constants.MTKamokuKubun.TokubetsuZougenSyuueki: footerRows.Add(SummaryRows[(int)SummaryItem.TokubetsuSyuunyuu]); AddDummyRow(footerRows, beforeKubunId); AddDummyRow(footerRows, beforeKubunId); break; case (int)models.constants.MTKamokuKubun.TokubetsuZougenHiyou: footerRows.Add(SummaryRows[(int)SummaryItem.TokubetsuShisyutsu]); footerRows.Add(SummaryRows[(int)SummaryItem.TokubetsuSagaku]); AddDummyRow(footerRows, beforeKubunId); break; } foreach (var footer in footerRows) { footer.PrintGroupKubunId = beforeKubunId; footer.IsSummaryRow = true; result.Add(footer); } if (beforeKubunId == (int)models.constants.MTKamokuKubun.TokubetsuZougenHiyou) { break; } } if (row != dummyRow) { if (OmitZeroRow == false || row.CurrentYearSum != 0 || row.LastYearSum != 0) { result.Add(row); AddChildRowsTo(result, row.Id, row.PrintGroupKubunId, (int)models.constants.MTKamokuKubunHierarchy.ChuuKubun); } } beforeKubunId = row.PrintGroupKubunId; } DaikubunRows.Remove(dummyRow); return(result); }
private void CalcSummary() { InitSummaryRows(); JigyouSyuushiRow jigyouSyuushiRow = new JigyouSyuushiRow(0, -1); SummaryRows[(int)SummaryItem.ServiceKatsudouSyuunyuu].Add(jigyouSyuushiRow); SummaryRows[(int)SummaryItem.ServiceKatsudouShisyutsu].Add(jigyouSyuushiRow); SummaryRows[(int)SummaryItem.ServiceKatsudouGaiSyuunyuu].Add(jigyouSyuushiRow); SummaryRows[(int)SummaryItem.ServiceKatsudouGaiShisyutsu].Add(jigyouSyuushiRow); SummaryRows[(int)SummaryItem.TokubetsuSyuunyuu].Add(jigyouSyuushiRow); SummaryRows[(int)SummaryItem.TokubetsuShisyutsu].Add(jigyouSyuushiRow); foreach (var daikubunJigyouSyuusjiRow in DaikubunRows) { models.db.Row daikubunRow = db.MTKamokuKubun.GetRowById(daikubunJigyouSyuusjiRow.Id); int jigyouSyuushiId = (int)daikubunRow.GetLong("parent_id", 0); int daikubunId = daikubunJigyouSyuusjiRow.Id; switch (jigyouSyuushiId) { case (int)constants.MTKamokuKubun.ServiceKatsudouZougenSyuueki: //サービス活動収益 SummaryRows[(int)SummaryItem.ServiceKatsudouSyuunyuu].Add(daikubunJigyouSyuusjiRow); break; case (int)constants.MTKamokuKubun.ServiceKatsudouZougenHiyou: //サービス活動費用 SummaryRows[(int)SummaryItem.ServiceKatsudouShisyutsu].Add(daikubunJigyouSyuusjiRow); break; case (int)constants.MTKamokuKubun.ServiceKatsudouGaiZougenSyuueki: //サービス活動外収益 SummaryRows[(int)SummaryItem.ServiceKatsudouGaiSyuunyuu].Add(daikubunJigyouSyuusjiRow); break; case (int)constants.MTKamokuKubun.ServiceKatsudouGaiZougenHiyou: //サービス活動外費用 SummaryRows[(int)SummaryItem.ServiceKatsudouGaiShisyutsu].Add(daikubunJigyouSyuusjiRow); break; case (int)constants.MTKamokuKubun.TokubetsuZougenSyuueki: //特別収益 SummaryRows[(int)SummaryItem.TokubetsuSyuunyuu].Add(daikubunJigyouSyuusjiRow); break; case (int)constants.MTKamokuKubun.TokubetsuZougenHiyou: //特別費用 SummaryRows[(int)SummaryItem.TokubetsuShisyutsu].Add(daikubunJigyouSyuusjiRow); break; case (int)constants.MTKamokuKubun.KurikoshiKatsudouZougenSagaku: //繰越活動収支差額 // nothing to do break; } switch (daikubunId) { case (int)constants.MTKamokuKubun.KihonkinTorikuzushiGakuDaikubun: // 基本金取崩額 SummaryRows[(int)SummaryItem.KihonkinTorikuzushiGaku].Add(daikubunJigyouSyuusjiRow); break; case (int)constants.MTKamokuKubun.SonotaTsumitatekinTorikuzushiGaku: // その他積立金取崩額 SummaryRows[(int)SummaryItem.SonotaTsumitateTorikuzushiGaku].Add(daikubunJigyouSyuusjiRow); break; case (int)constants.MTKamokuKubun.SonotaTsumitatekinTsumitateGaku: // その他積立金積立額 SummaryRows[(int)SummaryItem.SonotaTsumitateGaku].Add(daikubunJigyouSyuusjiRow); break; } } SummaryRows[(int)SummaryItem.ServiceKatsudouSagaku].DainyuuAMinusB( SummaryRows[(int)SummaryItem.ServiceKatsudouSyuunyuu], SummaryRows[(int)SummaryItem.ServiceKatsudouShisyutsu]); SummaryRows[(int)SummaryItem.ServiceKatsudouGaiSagaku].DainyuuAMinusB( SummaryRows[(int)SummaryItem.ServiceKatsudouGaiSyuunyuu], SummaryRows[(int)SummaryItem.ServiceKatsudouGaiShisyutsu]); SummaryRows[(int)SummaryItem.TokubetsuSagaku].DainyuuAMinusB( SummaryRows[(int)SummaryItem.TokubetsuSyuunyuu], SummaryRows[(int)SummaryItem.TokubetsuShisyutsu]); // 経常増減差額 SummaryRows[(int)SummaryItem.KeijouZougenSagaku].Add(SummaryRows[(int)SummaryItem.ServiceKatsudouSagaku]); SummaryRows[(int)SummaryItem.KeijouZougenSagaku].Add(SummaryRows[(int)SummaryItem.ServiceKatsudouGaiSagaku]); //当期活動収支差額 SummaryRows[(int)SummaryItem.ToukiKatsudouZougenSagaku].Add(SummaryRows[(int)SummaryItem.KeijouZougenSagaku]); SummaryRows[(int)SummaryItem.ToukiKatsudouZougenSagaku].Add(SummaryRows[(int)SummaryItem.TokubetsuSagaku]); //前期繰越活動収支差額 SummaryRows[(int)SummaryItem.ZenkiKurikoshiZougenSagaku].CurrentYearSum = this.GetZenkiKurikoshiZougenSagaku(helper.Converter.GetNenndo(StartDate)); SummaryRows[(int)SummaryItem.ZenkiKurikoshiZougenSagaku].LastYearSum = this.GetZenkiKurikoshiZougenSagaku(helper.Converter.GetNenndo(StartDate) - 1); // 当期末繰越活動増減差額 SummaryRows[(int)SummaryItem.ToukimatsuKurikoshiKatsudouZougenSagaku].Add(SummaryRows[(int)SummaryItem.ToukiKatsudouZougenSagaku]); SummaryRows[(int)SummaryItem.ToukimatsuKurikoshiKatsudouZougenSagaku].Add(SummaryRows[(int)SummaryItem.ZenkiKurikoshiZougenSagaku]); //次期繰越活動収支差額 SummaryRows[(int)SummaryItem.JikiKurikoshiKatsudouZougenSagaku].Add(SummaryRows[(int)SummaryItem.ToukimatsuKurikoshiKatsudouZougenSagaku]); SummaryRows[(int)SummaryItem.JikiKurikoshiKatsudouZougenSagaku].Add(SummaryRows[(int)SummaryItem.KihonkinTorikuzushiGaku]); SummaryRows[(int)SummaryItem.JikiKurikoshiKatsudouZougenSagaku].Add(SummaryRows[(int)SummaryItem.SonotaTsumitateTorikuzushiGaku]); SummaryRows[(int)SummaryItem.JikiKurikoshiKatsudouZougenSagaku].Substract(SummaryRows[(int)SummaryItem.SonotaTsumitateGaku]); }