Пример #1
0
        private void AddDummyRow(List <JigyouSyuushiRow> list, int beforeKubunId)
        {
            var dummy = new JigyouSyuushiRow(-1, -1);

            dummy.PrintGroupKubunId = beforeKubunId;
            list.Add(dummy);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
                    }
                }
            }
        }
Пример #4
0
 public void DainyuuAMinusB(JigyouSyuushiRow a, JigyouSyuushiRow b)
 {
     this.Add(a);
     this.Substract(b);
 }
Пример #5
0
 public void Substract(JigyouSyuushiRow row)
 {
     CurrentYearSum -= row.CurrentYearSum;
     LastYearSum    -= row.LastYearSum;
     this.NaibuTorihikiSyoukyoGaku -= row.NaibuTorihikiSyoukyoGaku;
 }
Пример #6
0
 public void Add(JigyouSyuushiRow row)
 {
     CurrentYearSum += row.CurrentYearSum;
     LastYearSum    += row.LastYearSum;
     this.NaibuTorihikiSyoukyoGaku += row.NaibuTorihikiSyoukyoGaku;
 }
Пример #7
0
        // 事業活動計算書の印刷用に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);
        }
Пример #8
0
        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]);
        }