private void SummarizeMeisaiTable() { query.KamokuKubunSummary tougetsuSummary = new KamokuKubunSummary(db); { DateTime startDate = StartDate; DateTime endDate = EndDate; tougetsuSummary.Calc(startDate, endDate, KaikeiKubun, addKurikoshi: false, addPairedShikinDenpyou: false); } query.KamokuKubunSummary zengetsuZandaka = new KamokuKubunSummary(db); { DateTime startDate = new DateTime(StartDate.Year, 4, 1); DateTime endDate = StartDate.AddDays(-1); if (startDate.Month < 4) { startDate = startDate.AddYears(-1); } // 前月残高の計算では、資金と事業の伝票を合計するので、支払資金の伝票は無視する zengetsuZandaka.Calc(startDate, endDate, KaikeiKubun, addKurikoshi: true, addPairedShikinDenpyou: false); } foreach (MeisaiRow meisaiRow in meisaiList) { long zouka; long gensyou; meisaiRow.KisyuZandaka = zengetsuZandaka.SummaryItem(meisaiRow.KamokuKubunId).GetTaisyaku(db); models.db.Row kanjouKamokuRow = db.MTKanjouKamoku.GetRowFromKamokuKubun(meisaiRow.KamokuKubunId); int taisyakuKubunId = (int)kanjouKamokuRow.GetLong("taisyaku_kubun_id", -1); if (taisyakuKubunId == (int)models.constants.MTTaisyakuKubun.KariPlus || taisyakuKubunId == (int)models.constants.MTTaisyakuKubun.KariMinus) { zouka = tougetsuSummary.SummaryItem(meisaiRow.KamokuKubunId).KarikataAmount; gensyou = tougetsuSummary.SummaryItem(meisaiRow.KamokuKubunId).KashikataAmount; } else { zouka = tougetsuSummary.SummaryItem(meisaiRow.KamokuKubunId).KashikataAmount; gensyou = tougetsuSummary.SummaryItem(meisaiRow.KamokuKubunId).KarikataAmount; } meisaiRow.ToukiZouka1 = zouka; meisaiRow.ToukiZouka2 = 0; meisaiRow.MokutekiShiyou = gensyou; meisaiRow.Sonota1 = 0; meisaiRow.Sonota2 = 0; SumRow.AddMeisai(meisaiRow); } }
public void Calc(int year, int hoseiKaisuu, int kaikeiKubun) { Year = year; HoseiKaisuu = hoseiKaisuu; KaikeiKubun = kaikeiKubun; summaryRows = new List <YosanJissekiRow>(); yosanTable = new YosanTable(db, year, year - 1, 0, hoseiKaisuu); kamokuKubunSummary = new KamokuKubunSummary(db); yosanTable.Calc(withSyoukubun: true, withHojokamoku: true); kamokuKubunSummary.Calc(helper.Helper.GetNenndoKisanbi(year), helper.Helper.GetNenndoKimatsubi(year), kaikeiKubun, addKurikoshi: false, addPairedShikinDenpyou: true); CalcSummaryRows(); }
public void Calc(models.db.KaikeiDatabase db, int currentYear, int lastYear, int hoseiKaisuu, int kaikeiKubun, bool withJisseki, bool withSyoukubun, bool withHojoKamoku) { YosanTable = new models.query.YosanTable(db, currentYear, lastYear, 0, hoseiKaisuu); YosanTable.Calc(withSyoukubun: withSyoukubun, withHojokamoku: withHojoKamoku); if (kaikeiKubun == -1) { kaikeiKubun = db.MTKaikeiKubun.RootNodeId; } KaikeiKubunList = new List <int>(); KaikeiKubunList.Add(kaikeiKubun); ChildKaikeiKubunNameList = new List <string>(); foreach (var row in db.MTKaikeiKubun.Select("where parent_id = " + kaikeiKubun + " order by kubun_code")) { int childKaikeiKubun = (int)row.GetLong("id", -1); KaikeiKubunList.Add(childKaikeiKubun); ChildKaikeiKubunNameList.Add(row.GetStr("name")); } YosanUchiwakeRowList = new List <YosanUchiwakeRow>(); for (int colCt = 0; colCt < KaikeiKubunList.Count; colCt++) { var yosanList = YosanTable.GetYosanList(KaikeiKubunList[colCt]); KamokuKubunSummary kamokuKubunSummary = null; if (withJisseki) { kamokuKubunSummary = new KamokuKubunSummary(db); kamokuKubunSummary.Calc(helper.Helper.GetNenndoKisanbi(currentYear), helper.Helper.GetNenndoKimatsubi(currentYear), kaikeiKubun, addKurikoshi: false, addPairedShikinDenpyou: true); } for (int rowCt = 0; rowCt < yosanList.Count; rowCt++) { if (YosanUchiwakeRowList.Count <= rowCt) { YosanUchiwakeRowList.Add(new YosanUchiwakeRow()); } var row = YosanUchiwakeRowList[rowCt]; row.DaikubunId = yosanList[rowCt].DaikubunId; row.KubunId = yosanList[rowCt].KubunId; row.DetailName = yosanList[rowCt].DetailName;// db.MTKamokuKubun.GetRowFromCache((int)yosanList[rowCt].DetailKubunId).GetStr("name"); int kamokuKubunId = (int)yosanList[rowCt].DetailKubunId; long jisseki = 0; long jissekiDisplay = 0; if (withJisseki) { jissekiDisplay = kamokuKubunSummary.SummaryItem(kamokuKubunId).GetTaisyaku(db); if (yosanList[rowCt].DisplayOnly == false) { jisseki = jissekiDisplay; } } switch (colCt) { case 0: row.YosanSummaryDisplay = yosanList[rowCt].YosanHonnenDisplay; row.YosanSummary = yosanList[rowCt].YosanHonnen; row.JissekiSummaryDisplay = jissekiDisplay; row.JissekiSummary = jisseki; row.SagakuSummaryDisplay = row.YosanSummaryDisplay - row.JissekiSummaryDisplay; row.SagakuSummary = row.YosanSummary - row.JissekiSummary; break; case 1: row.Yosan0Display = yosanList[rowCt].YosanHonnenDisplay; row.Yosan0 = yosanList[rowCt].YosanHonnen; row.Jisseki0Display = jissekiDisplay; row.Jisseki0 = jisseki; row.Sagaku0Display = row.Yosan0Display - row.Jisseki0Display; row.Sagaku0 = row.Yosan0 - row.Jisseki0; break; case 2: row.Yosan1Display = yosanList[rowCt].YosanHonnenDisplay; row.Yosan1 = yosanList[rowCt].YosanHonnen; row.Jisseki1Display = jissekiDisplay; row.Jisseki1 = jisseki; row.Sagaku1Display = row.Yosan1Display - row.Jisseki1Display; row.Sagaku1 = row.Yosan1 - row.Jisseki1; break; case 3: row.Yosan2Display = yosanList[rowCt].YosanHonnenDisplay; row.Yosan2 = yosanList[rowCt].YosanHonnen; row.Jisseki2Display = jissekiDisplay; row.Jisseki2 = jisseki; row.Sagaku2Display = row.Yosan2Display - row.Jisseki2Display; row.Sagaku2 = row.Yosan2 - row.Jisseki2; break; case 4: row.Yosan3Display = yosanList[rowCt].YosanHonnenDisplay; row.Yosan3 = yosanList[rowCt].YosanHonnen; row.Jisseki3Display = jissekiDisplay; row.Jisseki3 = jisseki; row.Sagaku3Display = row.Yosan3Display - row.Jisseki3Display; row.Sagaku3 = row.Yosan3 - row.Jisseki3; break; case 5: row.Yosan4Display = yosanList[rowCt].YosanHonnenDisplay; row.Yosan4 = yosanList[rowCt].YosanHonnen; row.Jisseki4Display = jissekiDisplay; row.Jisseki4 = jisseki; row.Sagaku4Display = row.Yosan4Display - row.Jisseki4Display; row.Sagaku4 = row.Yosan4 - row.Jisseki4; break; case 6: row.Yosan5Display = yosanList[rowCt].YosanHonnenDisplay; row.Yosan5 = yosanList[rowCt].YosanHonnen; row.Jisseki5Display = jissekiDisplay; row.Jisseki5 = jisseki; row.Sagaku5Display = row.Yosan5Display - row.Jisseki5Display; row.Sagaku5 = row.Yosan5 - row.Jisseki5; break; case 7: row.Yosan6Display = yosanList[rowCt].YosanHonnenDisplay; row.Yosan6 = yosanList[rowCt].YosanHonnen; row.Jisseki6Display = jissekiDisplay; row.Jisseki6 = jisseki; row.Sagaku6Display = row.Yosan6Display - row.Jisseki6Display; row.Sagaku6 = row.Yosan6 - row.Jisseki6; break; } } } }
public void Calc(int kaikeiKubun, DateTime targetMonth, bool chukubunOnly_) { chukubunOnly = chukubunOnly_; InitRowList(); query.KamokuKubunSummary tougetsuSummary = new KamokuKubunSummary(db); { DateTime startDate = new DateTime(targetMonth.Year, targetMonth.Month, 1); DateTime endDate = new DateTime(targetMonth.Year, targetMonth.Month, 1).AddMonths(1).AddDays(-1); // 当月の計算では、資金と事業の伝票を別々に合計するので、支払資金の伝票も合計する tougetsuSummary.Calc(startDate, endDate, kaikeiKubun, addKurikoshi: false, addPairedShikinDenpyou: true); } query.KamokuKubunSummary zengetsuZandaka = new KamokuKubunSummary(db); { DateTime startDate = new DateTime(targetMonth.Year, 4, 1); DateTime endDate = new DateTime(targetMonth.Year, targetMonth.Month, 1).AddDays(-1); if (targetMonth.Month < 4) { startDate = startDate.AddYears(-1); } // 前月残高の計算では、資金と事業の伝票を合計するので、支払資金の伝票は無視する zengetsuZandaka.Calc(startDate, endDate, kaikeiKubun, addKurikoshi: true, addPairedShikinDenpyou: false); } ShisanRow shisanRowSum = new ShisanRow(); ShisanRow husaiJunshisanRowSum = new ShisanRow(); for (int i = 0; i < RowList.Count; i++) { ShisanRow shisanRow = RowList[i]; models.db.Row kanjouKamokuRow = db.MTKanjouKamoku.GetFirstRow("where id = " + shisanRow.KanjouKamokuId); int jigyouKamokuId = (int)kanjouKamokuRow.GetLong("jigyou_kamoku_kubun_id", -1); int shikinKamokuId = (int)kanjouKamokuRow.GetLong("shikin_kamoku_kubun_id", -1); int taisyakuKamokuId = (int)kanjouKamokuRow.GetLong("taisyaku_kamoku_kubun_id", -1); KamokuKubunSummary.SummaryRow zengetsuJigyouRow = zengetsuZandaka.SummaryItem(jigyouKamokuId); KamokuKubunSummary.SummaryRow tougetsuJigyouRow = tougetsuSummary.SummaryItem(jigyouKamokuId); KamokuKubunSummary.SummaryRow zengetsuShikinRow = zengetsuZandaka.SummaryItem(shikinKamokuId); KamokuKubunSummary.SummaryRow tougetsuShikinRow = tougetsuSummary.SummaryItem(shikinKamokuId); KamokuKubunSummary.SummaryRow zengetsuTaisyakuRow = zengetsuZandaka.SummaryItem(taisyakuKamokuId); KamokuKubunSummary.SummaryRow tougetsuTaisyakuRow = tougetsuSummary.SummaryItem(taisyakuKamokuId); KamokuKubunSummary.SummaryRow zengetsuSumRow = new KamokuKubunSummary.SummaryRow(0, 0, 0); zengetsuSumRow.AddAmount(zengetsuJigyouRow); zengetsuSumRow.AddAmount(zengetsuShikinRow); zengetsuSumRow.AddAmount(zengetsuTaisyakuRow); KamokuKubunSummary.SummaryRow tougetsuShikinAndTaisyakuRow = new KamokuKubunSummary.SummaryRow(0, 0, 0); tougetsuShikinAndTaisyakuRow.AddAmount(tougetsuShikinRow); tougetsuShikinAndTaisyakuRow.AddAmount(tougetsuTaisyakuRow); KamokuKubunSummary.SummaryRow tougetsuJigyouAndTaisyakuRow = new KamokuKubunSummary.SummaryRow(0, 0, 0); tougetsuJigyouAndTaisyakuRow.AddAmount(tougetsuJigyouRow); tougetsuJigyouAndTaisyakuRow.AddAmount(tougetsuTaisyakuRow); if (shisanRow.KanjouKamokuId == (int)models.constants.MTKanjouKamoku.JikiKurikoshikatsudouZougenSagaku) { continue; } if (shisanRow.TaisyakuKubun == (int)models.constants.MTTaisyakuKubun.KariPlus || shisanRow.TaisyakuKubun == (int)models.constants.MTTaisyakuKubun.KariMinus) { shisanRow.ZengetsuKarikata = zengetsuSumRow.KarikataAmount - zengetsuSumRow.KashikataAmount; if (shisanRow.IsShikinKamoku) { shisanRow.ShikinZandakaKarikata = tougetsuShikinAndTaisyakuRow.KarikataAmount - tougetsuShikinAndTaisyakuRow.KashikataAmount + shisanRow.ZengetsuKarikata; } if (shisanRow.IsJigyouKamoku) { shisanRow.JigyouZandakaKarikata = tougetsuJigyouAndTaisyakuRow.KarikataAmount - tougetsuJigyouAndTaisyakuRow.KashikataAmount + shisanRow.ZengetsuKarikata; } } else { shisanRow.ZengetsuKashikata = zengetsuSumRow.KashikataAmount - zengetsuSumRow.KarikataAmount; if (shisanRow.IsShikinKamoku) { shisanRow.ShikinZandakaKashikata = tougetsuShikinAndTaisyakuRow.KashikataAmount - tougetsuShikinAndTaisyakuRow.KarikataAmount + shisanRow.ZengetsuKashikata; } if (shisanRow.IsJigyouKamoku) { shisanRow.JigyouZandakaKashikata = tougetsuJigyouAndTaisyakuRow.KashikataAmount - tougetsuJigyouAndTaisyakuRow.KarikataAmount + shisanRow.ZengetsuKashikata; } } if (shisanRow.IsShikinKamoku) { shisanRow.ShikinTougetsuKashikata = tougetsuShikinAndTaisyakuRow.KashikataAmount; shisanRow.ShikinTougetsuKarikata = tougetsuShikinAndTaisyakuRow.KarikataAmount; } if (shisanRow.IsJigyouKamoku) { shisanRow.JigyouTougetsuKashikata = tougetsuJigyouAndTaisyakuRow.KashikataAmount; shisanRow.JigyouTougetsuKarikata = tougetsuJigyouAndTaisyakuRow.KarikataAmount; } shisanRow.SetDisplayData(isDisplayOnly: shisanRow.KanjouKamokuHierarchy != (int)models.constants.MTKanjouKamokuHierarchy.ChuuKubun); // 次期繰越活動収支差額の計算のために合計を計算する if (shisanRow.GroupId == GroupIdShisan) { shisanRowSum.Add(shisanRow); } else if (shisanRow.GroupId == GroupIdHusaiJunsisan) { husaiJunshisanRowSum.Add(shisanRow); } } { // 次期繰越活動収支差額 ShisanRow kurikoshi = RowList[jikiKurikoshiIndex]; kurikoshi.ZengetsuKashikata = shisanRowSum.ZengetsuKarikata - husaiJunshisanRowSum.ZengetsuKashikata; kurikoshi.ShikinTougetsuKashikata = (shisanRowSum.ShikinTougetsuKarikata - shisanRowSum.ShikinTougetsuKashikata) - (husaiJunshisanRowSum.ShikinTougetsuKashikata - husaiJunshisanRowSum.ShikinTougetsuKarikata); kurikoshi.ShikinZandakaKashikata = shisanRowSum.ShikinZandakaKarikata - husaiJunshisanRowSum.ShikinZandakaKashikata; kurikoshi.JigyouTougetsuKashikata = (shisanRowSum.JigyouTougetsuKarikata - shisanRowSum.JigyouTougetsuKashikata) - (husaiJunshisanRowSum.JigyouTougetsuKashikata - husaiJunshisanRowSum.JigyouTougetsuKarikata); kurikoshi.JigyouZandakaKashikata = shisanRowSum.JigyouZandakaKarikata - husaiJunshisanRowSum.JigyouZandakaKashikata; } }