Example #1
0
        private void ReadTyuukiKoteiShisan(int tyuukiId)
        {
            KoteiShisanMeisai kotei = new KoteiShisanMeisai(db);

            kotei.Calc(helper.Converter.DateTimeToNenndoKisannbi(StartDate),
                       helper.Converter.DateTimeToNenndoKimatsubi(StartDate), KaikeiKubun);

            foreach (var row in kotei.GetMeisaiList())
            {
                if (row.Type == KoteiShisanMeisai.KoteiShisanType.KihonZaisan)
                {
                    koteiShisanRows.Add(new KoteishisanRow(
                                            row.KamokuName,
                                            row.Col0,
                                            row.Col1,
                                            row.Col2 + row.Col3,
                                            row.Col4));
                }

                if (row.Col6 != 0)
                {
                    var shisanRow = new ShisanRow();
                    shisanRow.Name = row.KamokuName;
                    if (row.Type == KoteiShisanMeisai.KoteiShisanType.KihonZaisan)
                    {
                        shisanRow.Name += "(基本財産)";
                    }
                    shisanRow.SyutokuKagaku  = row.Col6;
                    shisanRow.GenkaSyoukyaku = row.Col5;
                    shisanRow.Zandaka        = row.Col4;
                    shisanRows.Add(shisanRow);
                }
            }
        }
 public void Add(ShisanRow rhs)
 {
     this.ZengetsuKarikata        += rhs.ZengetsuKarikata;
     this.ZengetsuKashikata       += rhs.ZengetsuKashikata;
     this.ShikinTougetsuKarikata  += rhs.ShikinTougetsuKarikata;
     this.ShikinTougetsuKashikata += rhs.ShikinTougetsuKashikata;
     this.ShikinZandakaKarikata   += rhs.ShikinZandakaKarikata;
     this.ShikinZandakaKashikata  += rhs.ShikinZandakaKashikata;
     this.JigyouTougetsuKarikata  += rhs.JigyouTougetsuKarikata;
     this.JigyouTougetsuKashikata += rhs.JigyouTougetsuKashikata;
     this.JigyouZandakaKarikata   += rhs.JigyouZandakaKarikata;
     this.JigyouZandakaKashikata  += rhs.JigyouZandakaKashikata;
 }
        private void AddKamokuRow(models.db.Row daikubunRow, models.db.Row kamokuKubunRow, int groupId)
        {
            int kamokuKubunId = (int)kamokuKubunRow.GetId();

            models.db.Row kanjouKamokuRow = db.MTKanjouKamoku.GetFirstRow("where id=" + kamokuKubunRow.GetLong("kanjou_kamoku_id", -1));
            if (kanjouKamokuRow == null)
            {
                return;
            }
            if (kanjouKamokuRow.GetBool("usable", false) == false)
            {
                return;
            }

            int taisyakuKubunId = (int)kanjouKamokuRow.GetLong("taisyaku_kubun_id", -1);

            if ((taisyakuKubunId == (int)models.constants.MTTaisyakuKubun.KariPlus || taisyakuKubunId == (int)models.constants.MTTaisyakuKubun.KariMinus) &&
                groupId == GroupIdSyuunyuu)
            {
                return;
            }
            if ((taisyakuKubunId == (int)models.constants.MTTaisyakuKubun.KashiPlus || taisyakuKubunId == (int)models.constants.MTTaisyakuKubun.KashiMinus) &&
                groupId == GroupIdShisyutsu)
            {
                return;
            }

            if (kanjouKamokuHash.ContainsKey(kanjouKamokuRow.GetId()))
            {
                return;
            }
            kanjouKamokuHash.Add(kanjouKamokuRow.GetId(), true);

            ShisanRow shisanRow = new ShisanRow();

            shisanRow.GroupId        = groupId;
            shisanRow.KanjouKamokuId = kanjouKamokuRow.GetId();
            //shisanRow.KamokuKubunId = kamokuRow.GetId();
            shisanRow.DaikubunId            = daikubunRow.GetId();
            shisanRow.TaisyakuKubun         = taisyakuKubunId;
            shisanRow.IsShikinKamoku        = (kanjouKamokuRow.GetLong("shikin_kamoku_kubun_id", -1) != -1) || (kanjouKamokuRow.GetLong("taisyaku_kamoku_kubun_id", -1) != -1);
            shisanRow.IsJigyouKamoku        = kanjouKamokuRow.GetLong("jigyou_kamoku_kubun_id", -1) != -1 || (kanjouKamokuRow.GetLong("taisyaku_kamoku_kubun_id", -1) != -1);
            shisanRow.KanjouKamokuHierarchy = (int)kanjouKamokuRow.GetLong("hierarchy", -1);
            RowList.Add(shisanRow);

            if (kamokuKubunId == (int)models.constants.MTKamokuKubun.JikiKurikoshikatsudouZougenSagakuChukubun)
            {
                jikiKurikoshiIndex = RowList.Count - 1;
            }
        }
        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;
            }
        }