public static bool UpdateSettleAcc(GroupBuyingTicketToAcc entity) { DataCommand command = DataCommandManager.GetDataCommand("UpdateSettleAcc"); command.SetParameterValue("@SysNo", entity.SysNo); command.SetParameterValue("@SettlementItemSysNo", entity.SettlementItemSysNo); command.SetParameterValue("@EditUser", Settings.UserSysNo); return(command.ExecuteNonQuery() > 0); }
//public DateTime BeginDate { get; set; } //public DateTime EndDate { get; set; } #endregion public static void DoWork(JobContext currentContext) { CurrentContext = currentContext; //if (DateTime.Today.Day.ToString() != Settings.RunDay) //{ // OnShowInfo("当前日不为结算日"); //} //else //{ DateTime beginDate = DateTime.Now; DateTime endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")); var settleList = DA.GetSettleGroup(); //OnShowInfo(string.Format("{0}至{1}:获取到{2}条团购记录需要结算", BeginDate.ToDisplay(), EndDate.ToDisplay(), settleList.Count)); OnShowInfo(string.Format("获取到{0}条团购记录需要结算", settleList.Count)); var masters = settleList.GroupBy(p => p.VendorSysNo); OnShowInfo(string.Format("需要生成{0}张结算单", masters.Count())); //结算单集合 List <GroupBuyingSettleMaster> SettleList = new List <GroupBuyingSettleMaster>(); OnShowInfo("开始计算结算单......"); #region Old //foreach (var master in masters) //{ // GroupBuyingSettleMaster entity = new GroupBuyingSettleMaster // { // //BeginDate = BeginDate, // //EndDate = EndDate, // VendorSysNo = master.Key, // SettleAmt = master.Sum(p => p.CostAmt) // }; // List<GroupBuyingSettleItem> itemList = new List<GroupBuyingSettleItem>(); // var items = master.GroupBy(p => p.GroupBuyingSysNo); // foreach (var item in items) // { // GroupBuyingSettleItem settleItem = new GroupBuyingSettleItem // { // SettleAmt = item.Sum(p => p.CostAmt), // GroupBuyingSysNo = item.Key, // SettlementSysNo = entity.SysNo, // AccList = item.ToList() // }; // itemList.Add(settleItem); // } // entity.ItemList = itemList; // SettleList.Add(entity); //} #endregion foreach (var master in masters) { GroupBuyingTicketToAcc GroupBuyingTicketToAcc = master.First(); if (GroupBuyingTicketToAcc.PayPeriodType != Settings.MonthsPaytermsNo && GroupBuyingTicketToAcc.PayPeriodType != Settings.WeeksPaytermsNo) { continue; } else { #region 月结的处理 if (GroupBuyingTicketToAcc.PayPeriodType == Settings.MonthsPaytermsNo) { OnShowInfo("结算方式为月结......"); if (DateTime.Now.Day != Settings.MonthsDay_One && DateTime.Now.Day != Settings.MonthsDay_Two) { OnShowInfo("当前日不为结算日!"); continue; } else { if (DateTime.Now.Day == Settings.MonthsDay_One) { beginDate = Convert.ToDateTime(DateTime.Now.AddMonths(-1).ToString("yyyy-MM-01")).AddDays(Settings.MonthsDay_Two); } else if (DateTime.Now.Day == Settings.MonthsDay_Two) { beginDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-02")); } GroupBuyingSettleMaster entity = new GroupBuyingSettleMaster { BeginDate = beginDate, EndDate = endDate, VendorSysNo = master.Key, SettleAmt = master.Sum(p => p.CostAmt) }; List <GroupBuyingSettleItem> itemList = new List <GroupBuyingSettleItem>(); var items = master.GroupBy(p => p.GroupBuyingSysNo); foreach (var item in items) { GroupBuyingSettleItem settleItem = new GroupBuyingSettleItem { SettleAmt = item.Sum(p => p.CostAmt), GroupBuyingSysNo = item.Key, SettlementSysNo = entity.SysNo, AccList = item.ToList() }; itemList.Add(settleItem); } entity.ItemList = itemList; SettleList.Add(entity); } } #endregion #region 周结的处理 if (GroupBuyingTicketToAcc.PayPeriodType == Settings.WeeksPaytermsNo) { OnShowInfo("结算方式为周结......"); if (DateTime.Now.Day != Settings.WeeksDay_One && DateTime.Now.Day != Settings.WeeksDay_Two && DateTime.Now.Day != Settings.WeeksDay_Three && DateTime.Now.Day != LastDayMonth()) { OnShowInfo("当前日不为结算日!"); continue; } else { if (DateTime.Now.Day == Settings.WeeksDay_One) { beginDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-01")); } else if (DateTime.Now.Day == Settings.WeeksDay_Two) { beginDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-01")).AddDays(Settings.WeeksDay_One); } else if (DateTime.Now.Day == Settings.WeeksDay_Three) { beginDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-01")).AddDays(Settings.WeeksDay_Two); } else if (DateTime.Now.Day == LastDayMonth()) { beginDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-01")).AddDays(Settings.WeeksDay_Three); } GroupBuyingSettleMaster entity = new GroupBuyingSettleMaster { BeginDate = beginDate, EndDate = endDate, VendorSysNo = master.Key, SettleAmt = master.Sum(p => p.CostAmt) }; List <GroupBuyingSettleItem> itemList = new List <GroupBuyingSettleItem>(); var items = master.GroupBy(p => p.GroupBuyingSysNo); foreach (var item in items) { GroupBuyingSettleItem settleItem = new GroupBuyingSettleItem { SettleAmt = item.Sum(p => p.CostAmt), GroupBuyingSysNo = item.Key, SettlementSysNo = entity.SysNo, AccList = item.ToList() }; itemList.Add(settleItem); } entity.ItemList = itemList; SettleList.Add(entity); } } #endregion } } OnShowInfo("开始持久化到数据库......"); SaveToDB(SettleList); OnShowInfo("团购结算单结算完成。"); }