示例#1
0
        private void CalcRows()
        {
            rowList.Clear();

            db.KaikeiDenpyouMeisai.UpdateEditingRows();

            string sql = string.Format(
                "where kihyoubi >= {0} and kihyoubi <= {1} ",
                helper.Converter.DateTimeToInt(StartDate),
                helper.Converter.DateTimeToInt(EndDate));

            if (IsHojoKamoku == false)
            {
                sql += string.Format("and ({1}={0} or {2}={0}) ", KanjouKamokuId, KashikataColumnName, KarikataColumnName);
            }

            //if (KaikeiKubunId != -1) {
            //    sql += " and kaikei_kubun=" + KaikeiKubunId;
            //}

            sql += " order by denpyou_bangou";

            long zandaka           = ZengetsuKurikoshiGaku;
            long zengetsuKurikoshi = ZengetsuKurikoshiGaku;
            long karikataSum       = 0;
            long kashikataSum      = 0;
            int  month             = StartDate.Month;

            //models.db.Row kanjouKamokuRow = db.MTKanjouKamoku.GetFirstRow("where id=" + KanjouKamokuId);

            foreach (var row in MeisaiTable.Select(sql))
            {
                int  aiteKamokuId     = -1;
                long karikataKingaku  = 0;
                long kashikataKingaku = 0;

                if (db.KaikeiDenpyouMeisai.IsPairedShikinRow(row))
                {
                    continue;
                }

                if (KaikeiKubunId != -1 && !db.MTKaikeiKubun.IsAncestorOf((int)row.GetLong("kaikei_kubun", -1), KaikeiKubunId))
                {
                    continue;
                }

                if (db.MTKanjouKamoku.IsAncestorOf((int)row.GetLong(KarikataColumnName, -1), KanjouKamokuId))
                {
                    aiteKamokuId    = (int)row.GetLong("kashikata_kamoku_id", -1);
                    karikataKingaku = row.GetLong("karikata_kingaku", 0);
                }
                if (db.MTKanjouKamoku.IsAncestorOf((int)row.GetLong(KashikataColumnName, -1), KanjouKamokuId))
                {
                    aiteKamokuId     = (int)row.GetLong("karikata_kamoku_id", -1);
                    kashikataKingaku = row.GetLong("karikata_kingaku", 0);
                }

                if (aiteKamokuId == -1)
                {
                    continue;
                }

                int kihyoubiMonth = (int)row.GetLong("kihyoubi_month", -1);
                if (kihyoubiMonth != month)
                {
                    month             = kihyoubiMonth;
                    zengetsuKurikoshi = zandaka;
                }

                /*if ((int)row.GetLong(KarikataColumnName, -1) == KanjouKamokuId) {
                 *  aiteKamokuId = (int)row.GetLong("kashikata_kamoku_id", -1);
                 *  karikataKingaku = row.GetLong("karikata_kingaku", 0);
                 * }
                 * else {
                 *  aiteKamokuId = (int)row.GetLong("karikata_kamoku_id", -1);
                 *  kashikataKingaku = row.GetLong("karikata_kingaku", 0);
                 * }*/

                switch (TaisyakuKubunId)
                {
                case constants.MTTaisyakuKubun.KariPlus:
                case constants.MTTaisyakuKubun.KariMinus:
                    zandaka += karikataKingaku - kashikataKingaku;
                    break;

                case constants.MTTaisyakuKubun.KashiPlus:
                case constants.MTTaisyakuKubun.KashiMinus:
                    zandaka += kashikataKingaku - karikataKingaku;
                    break;
                }

                string aiteKamokuStr = db.MTKanjouKamoku.GetFirst("kamoku", "where id=" + aiteKamokuId) as string;
                if (aiteKamokuStr == null)
                {
                    aiteKamokuStr = "";
                }

                string kaikeiKubun = db.MTKaikeiKubun.GetFirst("name", "where id=" + row.GetLong("kaikei_kubun", -1)) as string;
                if (kaikeiKubun == null)
                {
                    kaikeiKubun = "";
                }

                bool hasHojo = true;
                if (row.GetLong("kashikata_hojo_id", 0) == 0 && row.GetLong("karikata_hojo_id", 0) == 0)
                {
                    hasHojo = false;
                }

                MototyouRow mototyouRow = new MototyouRow(
                    (int)row.GetLong("id", -1),
                    row.GetStr("denpyou_bangou"),
                    (int)row.GetLong("denpyou_renban", 0),
                    row.GetDate("kihyoubi").Value,
                    kaikeiKubun,
                    aiteKamokuStr,
                    karikataKingaku,
                    kashikataKingaku,
                    zandaka,
                    row.GetStr("comment"),
                    hasHojo,
                    zengetsuKurikoshi
                    );
                rowList.Add(mototyouRow);

                karikataSum  += karikataKingaku;
                kashikataSum += kashikataKingaku;
            }

            KarikataSum  = karikataSum;
            KashikataSum = kashikataSum;
            SashihikiSum = zandaka;
        }
示例#2
0
        private void CalcZengetsuKurikoshi()
        {
            long karikataKingaku  = 0;
            long kashikataKingaku = 0;

            {
                string sql = string.Format(
                    "where kihyoubi >= {0} and kihyoubi < {1} ",
                    helper.Converter.DateTimeToInt(helper.Helper.GetNenndoKisanbi(StartDate)),
                    helper.Converter.DateTimeToInt(StartDate));

                if (IsHojoKamoku == false)
                {
                    sql += string.Format("and ({1}={0} or {2}={0}) ", KanjouKamokuId, KashikataColumnName, KarikataColumnName);
                }

                //if (KaikeiKubunId != -1) {
                //    sql += " and kaikei_kubun=" + KaikeiKubunId;
                //}

                foreach (var row in MeisaiTable.Select(sql))
                {
                    if (db.KaikeiDenpyouMeisai.IsPairedShikinRow(row))
                    {
                        continue;
                    }

                    if (KaikeiKubunId != -1 && !db.MTKaikeiKubun.IsAncestorOf((int)row.GetLong("kaikei_kubun", -1), KaikeiKubunId))
                    {
                        continue;
                    }

                    if (db.MTKanjouKamoku.IsAncestorOf((int)row.GetLong(KarikataColumnName, -1), KanjouKamokuId))
                    {
                        karikataKingaku += row.GetLong("karikata_kingaku", 0);
                    }
                    if (db.MTKanjouKamoku.IsAncestorOf((int)row.GetLong(KashikataColumnName, -1), KanjouKamokuId))
                    {
                        kashikataKingaku += row.GetLong("karikata_kingaku", 0);
                    }
                }
            }

            object taisyakuKubunIdObj = db.MTKanjouKamoku.GetFirst("taisyaku_kubun_id", "where id=" + KanjouKamokuId);

            TaisyakuKubunId  = (models.constants.MTTaisyakuKubun)((int)(long)taisyakuKubunIdObj);
            TaisyakuKubunStr = db.MTTaisyakuKubun.GetFirst("caption", "where id=" + (int)TaisyakuKubunId) as string;

            long zenkiKurikoshi   = 0;
            long?kamokuKubunIdObj = (long?)db.MTKamokuKubun.GetFirst("id", "where kanjou_kamoku_id=" + KanjouKamokuId);

            // 不正な科目
            if (kamokuKubunIdObj == null)
            {
                ZengetsuKurikoshiGaku = 0;
                return;
            }
            int    kamokuKubunId = (int)kamokuKubunIdObj.Value;
            string condition     = "where kamoku_kubun_id=" + kamokuKubunId + " and nenndo=" + (helper.Helper.GetNenndoOfDate(StartDate));

            // 繰越金額の計算
            foreach (var row in KurikoshiKamokuTable.Select(condition))
            {
                if (KaikeiKubunId != -1 && !db.MTKaikeiKubun.IsAncestorOf((int)row.GetLong("kaikei_kubun_id", -1), KaikeiKubunId))
                {
                    continue;
                }
                zenkiKurikoshi += row.GetLong("zenki_kurikoshi_gaku", -1);
            }

            switch (TaisyakuKubunId)
            {
            case constants.MTTaisyakuKubun.KariPlus:
            case constants.MTTaisyakuKubun.KariMinus:
                ZengetsuKurikoshiGaku = karikataKingaku - kashikataKingaku + zenkiKurikoshi;
                break;

            case constants.MTTaisyakuKubun.KashiPlus:
            case constants.MTTaisyakuKubun.KashiMinus:
                ZengetsuKurikoshiGaku = kashikataKingaku - karikataKingaku + zenkiKurikoshi;
                break;
            }
        }