public static bool ReplaceMonthPay(bool isNeglect, MonthPayOffData data, DateTime MonthPayTime, out string message) { message = string.Empty; #region 错误提示 var UnsomePayOffMonths = MonthPayOffDetail.GetPayOffMonth(new List <int>(new int[] { data.LoadBillBy.ID })).FirstOrDefault(); if (UnsomePayOffMonths.Status == MonthlyBalanceStatus.Locked) { message = string.Format("月结“{0}”已锁定", UnsomePayOffMonths.PayOffMonth.ToString("yyyyMMdd")); return(false); } var monthPayOff = MonthPayOff.GetByPayOffMonth(MonthPayTime).FirstOrDefault(); if (monthPayOff != null && monthPayOff.Status == MonthlyBalanceStatus.Locked) { message = string.Format("异常:{0}已锁定,不可添加提单数据", MonthPayTime.ToString("yyyyMMdd")); return(false); } #endregion if (!isNeglect) { #region 提醒 var problemLoadBill = LoadBillInCome.GetProblemLoadBillCost(new List <string>(new string[] { data.LoadBillBy.LoadBillNum })); if (problemLoadBill.Count > 0) { message = string.Format("提醒:提单集合中存在异常提单:<br/>“{0}”", string.Join("”,<br/>“", problemLoadBill)); return(false); } problemLoadBill = Core.CostFlow.WayBillCost.GetProblemLoadBillNum(new List <string>(new string[] { data.LoadBillBy.LoadBillNum })); if (problemLoadBill.Count > 0) { message = string.Format("提醒:提单集合中存在运单异常的异常提单:<br/>“{0}”<br/>", string.Join("”,<br/>“", problemLoadBill)); return(false); } if (UnsomePayOffMonths.PayOffMonth == MonthPayTime) { message = string.Format("提单“{0}”已在当前月份,是否确定更新", data.LoadBillBy.LoadBillNum); return(false); } #endregion } if (monthPayOff == null) { monthPayOff = new MonthPayOff() { }; } List <MonthPayOffData> li = new List <MonthPayOffData>(); li.Add(data); monthPayOff.InsertLoadBill(MonthPayTime, li); return(true); }
public virtual void InsertLoadBill(DateTime MonthPayTime, IList <MonthPayOffData> data) { using (var tran = Dao.BeginTransaction()) { try { if (this.ID == 0) { List <MonthPayOffDetail> li = new List <MonthPayOffDetail>(); PayOffMonth = MonthPayTime; Status = MonthlyBalanceStatus.WaitLocking; foreach (var item in data) { MonthPayOffDetail de = MonthPayOffDetail.GetByLoadBillID(item.LoadBillBy.ID); if (de == null) { li.Add(new MonthPayOffDetail() { PreTotalCostFee = item.PreTotalCostFee, TotalCostFee = item.TotalCostFee, PreInComeFee = item.PreInComeFee, InComeFee = item.InComeFee, TotalMargin = item.TotalMargin, CreateTime = DateTime.Now, LoadBillBy = item.LoadBillBy, MonthPayOffBy = this }); } else { de.MonthPayOffBy = this; de.PreTotalCostFee = item.PreTotalCostFee; de.TotalCostFee = item.TotalCostFee; de.PreInComeFee = item.PreInComeFee; de.InComeFee = item.InComeFee; de.TotalMargin = item.TotalMargin; de.CreateTime = DateTime.Now; de.LoadBillBy = item.LoadBillBy; li.Add(de); } item.LoadBillBy.IsAddMonthPayOff = true; item.LoadBillBy.Update(); } Items = li; this.Save(); } else { foreach (var item in data) { MonthPayOffDetail monthPayOffDetail = MonthPayOffDetail.GetByLoadBillID(item.LoadBillBy.ID); if (monthPayOffDetail != null) { monthPayOffDetail.PreTotalCostFee = item.PreTotalCostFee; monthPayOffDetail.TotalCostFee = item.TotalCostFee; monthPayOffDetail.PreInComeFee = item.PreInComeFee; monthPayOffDetail.InComeFee = item.InComeFee; monthPayOffDetail.TotalMargin = item.TotalMargin; monthPayOffDetail.CreateTime = DateTime.Now; monthPayOffDetail.MonthPayOffBy = this; } else { monthPayOffDetail = new MonthPayOffDetail(); monthPayOffDetail.PreTotalCostFee = item.PreTotalCostFee; monthPayOffDetail.TotalCostFee = item.TotalCostFee; monthPayOffDetail.PreInComeFee = item.PreInComeFee; monthPayOffDetail.InComeFee = item.InComeFee; monthPayOffDetail.TotalMargin = item.TotalMargin; monthPayOffDetail.CreateTime = DateTime.Now; monthPayOffDetail.LoadBillBy = item.LoadBillBy; monthPayOffDetail.MonthPayOffBy = this; this.Items.Add(monthPayOffDetail); } item.LoadBillBy.IsAddMonthPayOff = true; item.LoadBillBy.Update(); } this.Update(); } tran.Commit(); } catch (Exception ex) { tran.Rollback(); throw ex; } } }