using System; using System.Collections.Generic; using System.Data; using System.Linq; using WX.CRM.DAL.QH; using WX.CRM.IBLL.QH; using WX.CRM.Model.Enum; namespace WX.CRM.BLL.QH { public class QH_MONTHLYSTATEMENT_BL : IQH_MONTHLYSTATEMENT_Q, IQH_MONTHLYSTATEMENT { public Model.Entity.QH_MONTHLYSTATEMENT getMonthlyStatement(decimal monthCode) { using (var contex = new Model.Entity.crmContext()) { return contex.QH_MONTHLYSTATEMENT.FirstOrDefault(p => p.MONTHCODE == monthCode && p.OPTYPE == 1); } } public decimal? getMaxMonthCode() { using (var contex = new Model.Entity.crmContext()) { var list = contex.QH_MONTHLYSTATEMENT.Where(p => p.OPTYPE == 1); return list.Any() ? (decimal?)list.Max(p => p.MONTHCODE) : null; } } /// /// 是否已经月结 /// /// 月结码 /// public bool GetIsYueJie(decimal monthcode) { using (var contex = new Model.Entity.crmContext()) { var model = contex.QH_MONTHLYSTATEMENT.Where(m => m.MONTHCODE == monthcode).OrderByDescending(m => m.OPTIME).FirstOrDefault(); if (model == null) { return false;//没有月结 } else if (model.OPTYPE == -1) { return false;//已做反月结 } else return true; } } public List GetAllOpYeanAndMonth() { using (var db = new Model.Entity.crmContext()) { return db.QH_MONTHLYSTATEMENT.Where(p => p.OPTYPE == 1).Select(m => m.MONTHCODE).Distinct().OrderByDescending(m => m).ToList(); } } /// /// 获取所有月结年月(不包含反月结) /// /// public List GetAllMonth() { using (var db = new Model.Entity.crmContext()) { return db.QH_MONTHLYSTATEMENT.Where(o => o.OPTYPE == 1).Select(m => m.MONTHCODE).Distinct().OrderByDescending(m => m).ToList(); } } public List GetAllBalanceCode() { using (var db = new Model.Entity.crmContext()) { List list0 = db.QH_MONTHLYSTATEMENT.Where(p => p.OPTYPE == -1).Select(f => f.MONTHLYPKID).Distinct().ToList(); return db.QH_MONTHLYSTATEMENT.Where(p => p.OPTYPE == 1 && !list0.Contains(p.PKID)).Select(m => m.MONTHCODE).Distinct().ToList(); } } public List GetMONTHLYSTATEMENTList(int pageIndex, int pageSize, out int rcount) { rcount = 0; using (var db = new Model.Entity.crmContext()) { var q = db.QH_MONTHLYSTATEMENT.OrderByDescending(p => p.PKID); rcount = q.Count(); int startIndex = 0; if (pageIndex > 1) startIndex = (pageIndex - 1) * pageSize; return q.Skip(startIndex).Take(pageSize).ToList(); } } public bool MonthBalance(int balanceCode, decimal opUser) { return new QH_Gonthlystatement_DAL().MonthBalance(balanceCode, opUser); } public bool MonthBalanceStep(int balanceCode, decimal opUser) { return new QH_Gonthlystatement_DAL().MonthBalanceStep(balanceCode, opUser); } public bool MonthUnBalance(int balanceCode, decimal opUser, decimal baseRef) { return new QH_Gonthlystatement_DAL().MonthUnBalance(balanceCode, opUser, baseRef); } public DataSet MonthCheckBalance(int balanceCode) { return new QH_Gonthlystatement_DAL().MonthCheckBalance(balanceCode); } public bool OrganizeStructureBackup(int balanceCode, BakOrganizeStructure bakType) { return new QH_Gonthlystatement_DAL().OrganizeStructureBackup(balanceCode, bakType); } public bool GenNextRule(decimal opUser) { return new QH_Gonthlystatement_DAL().GenNextRule(opUser); } public List GetMonthByUserPerformanct() { List lis = new List(); var m = getMaxMonthCode(); var curDate = System.DateTime.Now; lis.Clear(); if (m == null) { lis.Add(curDate.ToString("yyyyMM")); curDate = curDate.AddMonths(-1); lis.Add(curDate.ToString("yyyyMM")); curDate = curDate.AddMonths(-1); lis.Add(curDate.ToString("yyyyMM")); } else { string s = string.Format("{0}01", m); curDate = System.DateTime.ParseExact(s, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); curDate = curDate.AddMonths(1); lis.Add(curDate.ToString("yyyyMM")); if (DateTime.Now > curDate) { curDate = curDate.AddMonths(1); lis.Add(curDate.ToString("yyyyMM")); } } return lis; } public bool BackupCommissionRule(int balanceCode, decimal opUser) { return new QH_Gonthlystatement_DAL().BackupCommissionRule(balanceCode, opUser); } } }