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; }
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; } }