コード例 #1
0
        private void AddDummyRowTo(List <ShikinSyuushiRow> rows, int kubunId)
        {
            var dummy = new ShikinSyuushiRow(-1, -1);

            dummy.PrintGroupKubunId = kubunId;
            rows.Add(dummy);
        }
コード例 #2
0
 private void InitSummaryRows()
 {
     SummaryRows = new List <ShikinSyuushiRow>();
     foreach (var row in Enum.GetValues(typeof(SummaryItem)))
     {
         ShikinSyuushiRow summaryRow = new ShikinSyuushiRow((int)row, -1);
         SummaryRows.Add(summaryRow);
     }
 }
コード例 #3
0
        private List <ShikinSyuushiRow> SummarizeMeisaiTableSub(ShikinSyuushiRow parentShikinSyuushiRow, int kamokuKubunHierarchy, string orderStr)
        {
            var list = new List <ShikinSyuushiRow>();

            foreach (models.db.Row row in db.MTKamokuKubun.SelectChildren(parentShikinSyuushiRow.Id, order: orderStr))
            {
                if (HideInnerKaikeiKubunKamoku && db.MTKamokuKubun.IsInnerKaikeiKubunKamoku(KaikeiKubunHierarchy, row))
                {
                    continue;
                }
                ShikinSyuushiRow shikinSyuushiRow = new ShikinSyuushiRow(row.GetId(), kamokuKubunHierarchy);
                shikinSyuushiRow.Yosan    = yosanTable.GetYosanRow(KaikeiKubun, row.GetId()).YosanHonnenDisplay;
                shikinSyuushiRow.Taisyaku = kamokuKubunSummary.SummaryItem(row.GetId()).GetTaisyaku(db);

                if (db.MTKamokuKubun.IsInnerKaikeiKubunKamoku(KaikeiKubunHierarchy - 1, row))
                {
                    shikinSyuushiRow.NaibuTorihikiSyoukyoGaku = shikinSyuushiRow.Taisyaku;
                }

                bool hasChild = false;
                if ((int)TargetKamokuKubunHierarchy > kamokuKubunHierarchy)
                {
                    var childList = SummarizeMeisaiTableSub(shikinSyuushiRow, kamokuKubunHierarchy + 1, orderStr);
                    if (childList != null)
                    {
                        ChildRowsOf.Add(shikinSyuushiRow.Id, childList);
                        hasChild = true;
                    }
                }
                if (OmitZeroRow == false || hasChild || shikinSyuushiRow.Yosan != 0 || shikinSyuushiRow.Taisyaku != 0)
                {
                    list.Add(shikinSyuushiRow);
                }
                else if (OmitZeroRow == true)
                {
                    list.Add(shikinSyuushiRow);
                }

                if (kamokuKubunHierarchy == (int)models.constants.MTKamokuKubunHierarchy.ChuuKubun)
                {
                    parentShikinSyuushiRow.Add(shikinSyuushiRow);
                }
            }

            if (list.Count > 0)
            {
                return(list);
            }
            return(null);
        }
コード例 #4
0
        private void SummarizeMeisaiTable()
        {
            string orderStr = "order by display_order";

            DaikubunRows = new List <ShikinSyuushiRow>();
            ChildRowsOf  = new Dictionary <int, List <ShikinSyuushiRow> >();

            foreach (models.db.Row kubunRow in db.MTKamokuKubun.SelectChildren((int)models.constants.MTKamokuKubun.ShikinRoot, order: orderStr))
            {
                foreach (models.db.Row daikubunRow in db.MTKamokuKubun.SelectChildren(kubunRow.GetId(), order: orderStr))
                {
                    ShikinSyuushiRow daikubunShikinSyuushiRow = new ShikinSyuushiRow(daikubunRow.GetId(), (int)models.constants.MTKamokuKubunHierarchy.Daikubun);
                    var kamokuList = SummarizeMeisaiTableSub(daikubunShikinSyuushiRow, (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;
 *                      }
 *                      ShikinSyuushiRow kamokuShikinSyuushiRow = new ShikinSyuushiRow(kamokuRow.GetId());
 *                      kamokuShikinSyuushiRow.Yosan = yosanTable.GetYosanRow(KaikeiKubun, kamokuRow.GetId()).YosanHonnenDisplay;
 *                      kamokuShikinSyuushiRow.Taisyaku = kamokuKubunSummary.SummaryItem(kamokuRow.GetId()).GetTaisyaku(db);
 *
 *                      if (db.MTKamokuKubun.IsInnerKaikeiKubunKamoku(KaikeiKubunHierarchy - 1, kamokuRow)) {
 *                          kamokuShikinSyuushiRow.NaibuTorihikiSyoukyoGaku = kamokuShikinSyuushiRow.Taisyaku;
 *                      }
 *
 *                      kamokuList.Add(kamokuShikinSyuushiRow);
 *
 *                      daikubunShikinSyuushiRow.Add(kamokuShikinSyuushiRow);
 *                  }
 */


                    if (kamokuList != null)
                    {
                        DaikubunRows.Add(daikubunShikinSyuushiRow);
                        ChildRowsOf.Add(daikubunShikinSyuushiRow.Id, kamokuList);
                    }
                }
            }
        }
コード例 #5
0
 public void DainyuuAMinusB(ShikinSyuushiRow a, ShikinSyuushiRow b)
 {
     this.Yosan    = a.Yosan - b.Yosan;
     this.Taisyaku = a.Taisyaku - b.Taisyaku;
     this.NaibuTorihikiSyoukyoGaku = a.NaibuTorihikiSyoukyoGaku - b.NaibuTorihikiSyoukyoGaku;
 }
コード例 #6
0
 public void Substract(ShikinSyuushiRow row)
 {
     this.Yosan    -= row.Yosan;
     this.Taisyaku -= row.Taisyaku;
     this.NaibuTorihikiSyoukyoGaku -= row.NaibuTorihikiSyoukyoGaku;
 }
コード例 #7
0
 public void Add(ShikinSyuushiRow row)
 {
     this.Yosan    += row.Yosan;
     this.Taisyaku += row.Taisyaku;
     this.NaibuTorihikiSyoukyoGaku += row.NaibuTorihikiSyoukyoGaku;
 }
コード例 #8
0
        // 資金収支計算書の印刷用にRowのリストを作成して返す
        public List <ShikinSyuushiRow> GetRowsForShikinSyuushiKeisansyoReport()
        {
            var result = new List <ShikinSyuushiRow>();

            var dummyRow = new ShikinSyuushiRow(-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 <ShikinSyuushiRow>();
                    switch (beforeKubunId)
                    {
                    case (int)models.constants.MTKamokuKubun.JigyouSyuunyuu:
                        footerRows.Add(SummaryRows[(int)SummaryItem.JigyouSyuunyuu]);
                        AddDummyRowTo(footerRows, beforeKubunId);
                        break;

                    case (int)models.constants.MTKamokuKubun.JigyouShisyutsu:
                        footerRows.Add(SummaryRows[(int)SummaryItem.JigyouShisyutsu]);
                        footerRows.Add(SummaryRows[(int)SummaryItem.JigyouSyuushi]);
                        break;

                    case (int)models.constants.MTKamokuKubun.ShisetsuSyuunyuu:
                        footerRows.Add(SummaryRows[(int)SummaryItem.ShisetsuSyuunyuu]);
                        AddDummyRowTo(footerRows, beforeKubunId);
                        break;

                    case (int)models.constants.MTKamokuKubun.ShisetsuShisyutsu:
                        footerRows.Add(SummaryRows[(int)SummaryItem.ShisetsuShisyutsu]);
                        footerRows.Add(SummaryRows[(int)SummaryItem.ShisetsuSyuushi]);
                        break;

                    case (int)models.constants.MTKamokuKubun.SonotaSyuunyuu:
                        footerRows.Add(SummaryRows[(int)SummaryItem.SonotaSyuunyuu]);
                        AddDummyRowTo(footerRows, beforeKubunId);
                        break;

                    case (int)models.constants.MTKamokuKubun.SonotaShisyutsu:
                        footerRows.Add(SummaryRows[(int)SummaryItem.SonotaShisyutsu]);
                        footerRows.Add(SummaryRows[(int)SummaryItem.SonotaSyuushi]);
                        break;
                    }
                    AddDummyRowTo(footerRows, beforeKubunId);
                    foreach (var footer in footerRows)
                    {
                        footer.PrintGroupKubunId = beforeKubunId;
                        footer.IsSummaryRow      = true;
                        result.Add(footer);
                    }
                }
                if (row != dummyRow)
                {
                    if (OmitZeroRow == false || row.Yosan != 0 || row.Taisyaku != 0)
                    {
                        result.Add(row);
                        AddChildRowsTo(result, row.Id, row.PrintGroupKubunId, (int)models.constants.MTKamokuKubunHierarchy.ChuuKubun);
                    }
                }

                beforeKubunId = row.PrintGroupKubunId;
            }

            DaikubunRows.Remove(dummyRow);

            return(result);
        }
コード例 #9
0
        private void CalcSummary()
        {
            InitSummaryRows();

            ShikinSyuushiRow initShikinSyuushiRow = new ShikinSyuushiRow(0, -1);

            SummaryRows[(int)SummaryItem.JigyouSyuunyuu].Add(initShikinSyuushiRow);
            SummaryRows[(int)SummaryItem.JigyouShisyutsu].Add(initShikinSyuushiRow);
            SummaryRows[(int)SummaryItem.ShisetsuSyuunyuu].Add(initShikinSyuushiRow);
            SummaryRows[(int)SummaryItem.ShisetsuShisyutsu].Add(initShikinSyuushiRow);
            SummaryRows[(int)SummaryItem.SonotaSyuunyuu].Add(initShikinSyuushiRow);
            SummaryRows[(int)SummaryItem.SonotaShisyutsu].Add(initShikinSyuushiRow);

            foreach (var daikubunShikinSyuushiRow in DaikubunRows)
            {
                models.db.Row daikubunRow     = db.MTKamokuKubun.GetRowById(daikubunShikinSyuushiRow.Id);
                int           shikinSyuushiId = (int)daikubunRow.GetLong("parent_id", 0);
                switch (shikinSyuushiId)
                {
                case (int)constants.MTKamokuKubun.JigyouSyuunyuu:     //事業活動収入
                    SummaryRows[(int)SummaryItem.JigyouSyuunyuu].Add(daikubunShikinSyuushiRow);
                    break;

                case (int)constants.MTKamokuKubun.JigyouShisyutsu:     //事業活動支出
                    SummaryRows[(int)SummaryItem.JigyouShisyutsu].Add(daikubunShikinSyuushiRow);
                    break;

                case (int)constants.MTKamokuKubun.ShisetsuSyuunyuu:     //施設設備収入
                    SummaryRows[(int)SummaryItem.ShisetsuSyuunyuu].Add(daikubunShikinSyuushiRow);
                    break;

                case (int)constants.MTKamokuKubun.ShisetsuShisyutsu:     //施設設備支出
                    SummaryRows[(int)SummaryItem.ShisetsuShisyutsu].Add(daikubunShikinSyuushiRow);
                    break;

                case (int)constants.MTKamokuKubun.SonotaSyuunyuu:     //その他収入
                    SummaryRows[(int)SummaryItem.SonotaSyuunyuu].Add(daikubunShikinSyuushiRow);
                    break;

                case (int)constants.MTKamokuKubun.SonotaShisyutsu:     //その他支出
                    SummaryRows[(int)SummaryItem.SonotaShisyutsu].Add(daikubunShikinSyuushiRow);
                    break;
                }
            }
            SummaryRows[(int)SummaryItem.JigyouSyuushi].DainyuuAMinusB(SummaryRows[(int)SummaryItem.JigyouSyuunyuu], SummaryRows[(int)SummaryItem.JigyouShisyutsu]);
            SummaryRows[(int)SummaryItem.ShisetsuSyuushi].DainyuuAMinusB(SummaryRows[(int)SummaryItem.ShisetsuSyuunyuu], SummaryRows[(int)SummaryItem.ShisetsuShisyutsu]);
            SummaryRows[(int)SummaryItem.SonotaSyuushi].DainyuuAMinusB(SummaryRows[(int)SummaryItem.SonotaSyuunyuu], SummaryRows[(int)SummaryItem.SonotaShisyutsu]);

            { // 予備費計算
                string sql = "where nenndo = " + StartNenndo.ToString();

                foreach (var row in db.YosanYobihi.Select(sql))
                {
                    if (!db.MTKaikeiKubun.IsChildOf((int)row.GetLong("kaikei_kubun", -1), KaikeiKubun))
                    {
                        continue;
                    }

                    SummaryRows[(int)SummaryItem.Yobihi].Yosan += row.GetLong("yobihi", 0);

                    // 前期末支払資金残高(予算)
                    SummaryRows[(int)SummaryItem.ZenkiZandaka].Yosan += row.GetLong("zenkimatsu_shiharai_shikin_zandaka", 0);
                }
            }

            { // 前期末支払資金残高
                foreach (var row in db.ZenkiKurikoshiKamokuKubun.Select("where nenndo = " + StartNenndo + " and kamoku_kubun_id=" + (int)models.constants.MTKamokuKubun.ZenkimatsuShiharaiShikinZandaka))
                {
                    if (!db.MTKaikeiKubun.IsChildOf((int)row.GetLong("kaikei_kubun_id", -1), KaikeiKubun))
                    {
                        continue;
                    }
                    SummaryRows[(int)SummaryItem.ZenkiZandaka].Taisyaku += row.GetLong("zenki_kurikoshi_gaku", 0);
                }
            }

            SummaryRows[(int)SummaryItem.ToukiShikin].Add(SummaryRows[(int)SummaryItem.JigyouSyuushi]);
            SummaryRows[(int)SummaryItem.ToukiShikin].Add(SummaryRows[(int)SummaryItem.ShisetsuSyuushi]);
            SummaryRows[(int)SummaryItem.ToukiShikin].Add(SummaryRows[(int)SummaryItem.SonotaSyuushi]);
            SummaryRows[(int)SummaryItem.ToukiShikin].Substract(SummaryRows[(int)SummaryItem.Yobihi]);

            SummaryRows[(int)SummaryItem.ToukiZandaka].Add(SummaryRows[(int)SummaryItem.ZenkiZandaka]);
            SummaryRows[(int)SummaryItem.ToukiZandaka].Add(SummaryRows[(int)SummaryItem.ToukiShikin]);

            /*
             * SummaryRows[(int)SummaryItem.SyuunyuuGoukei].Add(SummaryRows[(int)SummaryItem.ZaimuSyuunyuu]);
             * SummaryRows[(int)SummaryItem.SyuunyuuGoukei].Add(SummaryRows[(int)SummaryItem.KeijouSyuunyuu]);
             * SummaryRows[(int)SummaryItem.SyuunyuuGoukei].Add(SummaryRows[(int)SummaryItem.ShisetsuSyuunyuu]);
             *
             * SummaryRows[(int)SummaryItem.ShisyutsuGoukei].Add(SummaryRows[(int)SummaryItem.ZaimuShisyutsu]);
             * SummaryRows[(int)SummaryItem.ShisyutsuGoukei].Add(SummaryRows[(int)SummaryItem.KeijouShisyutsu]);
             * SummaryRows[(int)SummaryItem.ShisyutsuGoukei].Add(SummaryRows[(int)SummaryItem.ShisetsuShisyutsu]);
             *
             * SummaryRows[(int)SummaryItem.SyuushiGoukei].Add(SummaryRows[(int)SummaryItem.SyuunyuuGoukei]);
             * SummaryRows[(int)SummaryItem.SyuushiGoukei].Add(SummaryRows[(int)SummaryItem.ShisyutsuGoukei]);
             */
        }