Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }