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 YosanJissekiRow GetYosanJissekiRow(int kamokuKubunId) { YosanTable.YosanRow yosanRow = yosanTable.GetYosanRow(KaikeiKubun, kamokuKubunId); if (yosanRow == null) { return(null); } else { long yosan = yosanRow.YosanHonnenDisplay; long jisseki = kamokuKubunSummary.SummaryItem(kamokuKubunId).GetTaisyaku(db); return(new YosanJissekiRow(kamokuKubunId, yosanRow.DetailName, yosan, jisseki, db)); } }
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; } }