/// <summary> /// Update into LogisticsAging /// </summary> /// <param name="logisticsaging">LogisticsAging</param> public void UpdateLogisticsAging(LogisticsAging logisticsaging) { if (logisticsaging == null) { return; } if (this._context.IsAttached(logisticsaging)) { this._context.LogisticsAgings.Attach(logisticsaging); } this._context.SaveChanges(); }
/// <summary> /// Insert into LogisticsAging /// </summary> /// <param name="logisticsaging">LogisticsAging</param> public void InsertLogisticsAging(LogisticsAging logisticsaging) { if (logisticsaging == null) { return; } if (!this._context.IsAttached(logisticsaging)) { this._context.LogisticsAgings.AddObject(logisticsaging); } this._context.SaveChanges(); }
public List <string> GetFictitiousLogisticsInfoList(DateTime DeliveryTime, int days, LogisticsAging LogisticsAgingInfo) { DateTime LogisticsDate = DeliveryTime; List <string> list = new List <string>(); string Str = LogisticsAgingInfo.DepartureCity + "仓拣单出库,物流开始承运。"; if (LogisticsAgingInfo.Pathway != "") { int Count1 = GetMod((int)LogisticsAgingInfo.PathwayDate, days); for (int i = 0; i < Count1; i++) { Str += "物品正在发往" + LogisticsAgingInfo.Pathway + "中转站,等待转运。"; //XMLogisticsInfo info = new XMLogisticsInfo(); //info.Note = Str; //LogisticsDate = LogisticsDate.AddDays(i * days); //info.LogisticsDate = LogisticsDate; list.Add(Str); Str = ""; } Str = "物品已抵达" + LogisticsAgingInfo.Pathway + "中转站。物品从" + LogisticsAgingInfo.Pathway + "中转站发出。"; } int Count2 = GetMod((int)LogisticsAgingInfo.DestinationDate, days); for (int i = 0; i < Count2; i++) { Str += "物品正在发往" + LogisticsAgingInfo.DestinationCity + "城市途中。"; list.Add(Str); Str = ""; } Str = "物品已经到达" + LogisticsAgingInfo.DestinationCity + ",等待派件员取货。物品已经取走,正在派送。签收人签收,草签。"; list.Add(Str); return(list); }
public int GetDue(int total, LogisticsAging info, int days)//应有记录条数 { int count = 0; if (total == 0) { count++; return(count); } if (info.Pathway != "") { if (total >= info.PathwayDate) { if (info.PathwayDate > days) { count += GetMod((int)info.PathwayDate, days); } else { count++; } } else { if (total > days) { count += GetMod(total, days); } else if (total == days) { count += GetMod(total, days) + 1; } else { count++; } } } else { count++;//发货后,自动生成的第一条记录 } int result = (int)(info.PathwayDate == null ? 0 : info.PathwayDate); if (total >= result) { total = total - result; if (total >= info.DestinationDate) { if (info.DestinationDate > days) { count += GetMod((int)info.DestinationDate, days); int mod = (int)info.DestinationDate % days;//剩余天数,是否正好整除 if (mod == 0) { count++; } } else { count++; } } else { if (total > days) { count += GetMod(total, days); } else if (total == days) { count += GetMod(total, days) + 1; } else { count++; } } } return(count); }
public void TimingGetLogisticsAging() { int UserID = 0; if (HozestERPContext.Current.User != null) { UserID = HozestERPContext.Current.User.CustomerID; } else { string UserName = "******"; List <Customer> customer = IoC.Resolve <ICustomerService>().GetCustomerByUsernameList(UserName); if (customer.Count > 0) { UserID = customer[0].CustomerID; } } int days = 0; var Days = IoC.Resolve <ISettingManager>().GetSettingByName("Logistics.Aging.NumberOfDays"); if (Days != null) { if (int.TryParse(Days.Value.Trim(), out days) && Days.Value.Trim() != "0") { days = int.Parse(Days.Value.Trim()); DateTime End = DateTime.Now; DateTime Begin = End.AddMonths(-6); var OrderIDList = IoC.Resolve <IXMOrderInfoService>().GetVPHXMOrderInfoListByDateTime(Begin, End); if (OrderIDList != null && OrderIDList.Count > 0) { foreach (int ID in OrderIDList) { var OrderInfo = IoC.Resolve <IXMOrderInfoService>().GetXMOrderInfoByID(ID); var LogisticsInfoList = IoC.Resolve <IXMLogisticsInfoService>().GetXMLogisticsInfoListByOrderInfoID(ID).OrderBy(x => x.CreateDate).ToList(); if (OrderInfo != null) { var LogisticsAgingList = IoC.Resolve <ILogisticsAgingService>().GetLogisticsAgingListByParam("", OrderInfo.City.Replace("市", "").Replace("区", ""), "-1"); if (LogisticsAgingList.Count > 0) { int Total = 0; int TotalDay = 0; LogisticsAging LogisticsAgingInfo = LogisticsAgingList[0]; TimeSpan ts1 = new TimeSpan(((DateTime)OrderInfo.DeliveryTime).Ticks); TimeSpan ts2 = new TimeSpan(DateTime.Now.Ticks); TimeSpan ts = ts1.Subtract(ts2).Duration();//显示时间 TotalDay += ts.Days; Total = GetDue(TotalDay, LogisticsAgingInfo, days); if (LogisticsInfoList.Count < Total) { List <string> list = GetFictitiousLogisticsInfoList((DateTime)OrderInfo.DeliveryTime, days, LogisticsAgingInfo); if (list.Count >= Total) { for (int i = LogisticsInfoList.Count; i < Total; i++) { XMLogisticsInfo Info = new XMLogisticsInfo(); Info.OrderInfoID = ID; Info.LogisticsDate = DateTime.Now; if (LogisticsInfoList.Count > 0) { Info.LogisticsNumber = LogisticsInfoList[0].LogisticsNumber; Info.LogisticsCompany = LogisticsInfoList[0].LogisticsCompany; } else { Info.LogisticsNumber = ""; Info.LogisticsCompany = ""; } Info.Note = list[i]; Info.IsExport = false; Info.IsEnable = false; Info.CreateID = UserID; Info.CreateDate = DateTime.Now; Info.UpdateID = UserID; Info.UpdateTime = DateTime.Now; IoC.Resolve <IXMLogisticsInfoService>().InsertXMLogisticsInfo(Info); } } } } } } } } } }