Пример #1
0
 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);
 }
Пример #2
0
 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;
         }
     }
 }