protected void rptList_ItemCommand(object source, RepeaterCommandEventArgs e) { OrderInfo orderInfo = OrderHelper.GetOrderInfo(e.CommandArgument.ToString()); if (orderInfo != null) { if ((e.CommandName == "CONFIRM_PAY") && orderInfo.CheckAction(OrderActions.SELLER_CONFIRM_PAY)) { if (OrderHelper.ConfirmPay(orderInfo)) { DebitNoteInfo info2 = new DebitNoteInfo();; info2 = new DebitNoteInfo { NoteId = Globals.GetGenerateId(), OrderId = e.CommandArgument.ToString(), Operator = ManagerHelper.GetCurrentManager().UserName, Remark = "后台" + info2.Operator + "收款成功" }; OrderHelper.SaveDebitNote(info2); this.BindOrders(); orderInfo.OnPayment(); this.ShowMsg("成功的确认了订单收款", true); } else { this.ShowMsg("确认订单收款失败", false); } } else if (e.CommandName == "FINISH_TRADE") { orderInfo.CheckAction(OrderActions.SELLER_FINISH_TRADE); } } }
protected void LbxlsClick(object sender, EventArgs e) { IList <DebitNoteInfo> pList = new List <DebitNoteInfo>(); foreach (GridDataItem dataItem in RG_DebitNote.Items) { var cbCheck = (CheckBox)dataItem.FindControl("CB_Check"); if (cbCheck.Checked) { var purchasingId = new Guid(dataItem.GetDataKeyValue("PurchasingId").ToString()); DebitNoteInfo priceInfo = _debitNoteDao.GetDebitNoteInfo(purchasingId); if (priceInfo != null) { pList.Add(priceInfo); } } } if (pList.Count == 0) { RAM.Alert("请选择要导出的借记单!"); } else { OutPutExcel(pList); } }
protected void btnConfirmPay_Click(object sender, EventArgs e) { OrderInfo orderInfo = OrderHelper.GetOrderInfo(this.orderId); if ((orderInfo != null) && orderInfo.CheckAction(OrderActions.SELLER_CONFIRM_PAY)) { if (OrderHelper.ConfirmPay(orderInfo)) { DebitNoteInfo info2; info2 = new DebitNoteInfo { NoteId = Globals.GetGenerateId(), OrderId = this.orderId, Operator = ManagerHelper.GetCurrentManager().UserName, Remark = "后台" + ManagerHelper.GetCurrentManager().UserName + "收款成功" }; OrderHelper.SaveDebitNote(info2); orderInfo.OnPayment(); this.ShowMsgAndReUrl("成功的确认了订单收款", true, "OrderDetails.aspx?OrderId=" + this.orderId + "&t=" + DateTime.Now.ToString("HHmmss")); } else { this.ShowMsg("确认订单收款失败", false); } } }
/// <summary> /// 添加借记单和明细 /// </summary> /// <param name="info"></param> /// <param name="debitNoteDetailList">借记单明细</param> public bool AddPurchaseSetAndDetail(DebitNoteInfo info, List <DebitNoteDetailInfo> debitNoteDetailList) { SqlParameter[] parms = GetDebitNotetParameters(); parms[0].Value = info.PurchasingId; parms[1].Value = info.PurchasingNo; parms[2].Value = info.CompanyId; parms[3].Value = info.PresentAmount; parms[4].Value = info.CreateDate; parms[5].Value = info.FinishDate == DateTime.MinValue ? SqlDateTime.MinValue : info.FinishDate; parms[6].Value = info.State; parms[7].Value = info.WarehouseId; parms[8].Value = info.Memo; parms[9].Value = info.PersonResponsible; parms[10].Value = info.PurchaseGroupId; parms[11].Value = info.Title; parms[12].Value = info.ActivityTimeStart; parms[13].Value = info.ActivityTimeEnd; SqlParameter[] detailParms = GetDebitNoteDetailParameters(); using (var conn = Databases.GetSqlConnection(GlobalConfig.ERP_DB_NAME, false)) { if (conn.State == ConnectionState.Closed) { conn.Open(); } SqlTransaction trans = conn.BeginTransaction(); try { SqlHelper.ExecuteNonQuery(trans, SQL_INSERT_DEBITNOTE, parms); foreach (var detailInfo in debitNoteDetailList) { detailParms[0].Value = info.PurchasingId; detailParms[1].Value = detailInfo.GoodsId; detailParms[2].Value = detailInfo.GoodsName; detailParms[3].Value = detailInfo.Specification; detailParms[4].Value = detailInfo.GivingCount; detailParms[5].Value = detailInfo.ArrivalCount; detailParms[6].Value = detailInfo.Price; detailParms[7].Value = detailInfo.State; detailParms[8].Value = detailInfo.Amount; detailParms[9].Value = detailInfo.Memo; detailParms[10].Value = detailInfo.Id; SqlHelper.ExecuteNonQuery(trans, SQL_INSERT_DEBITNOTEDETAIL, detailParms); } trans.Commit(); } catch (SqlException ex) { trans.Rollback(); throw new ApplicationException(ex.Message); } } return(true); }
protected void btnConfirmSelPayment_Click(object sender, System.EventArgs e) { string text = ""; if (!string.IsNullOrEmpty(base.Request["CheckBoxGroup"])) { text = base.Request["CheckBoxGroup"]; } if (text.Length <= 0) { this.ShowMsg("请先选择要批量确认付款的订单", false); return; } string[] array = text.Trim(new char[] { ',' }).Split(new char[] { ',' }); int num = 0; string[] array2 = array; for (int i = 0; i < array2.Length; i++) { string text2 = array2[i]; if (!string.IsNullOrEmpty(text2)) { OrderInfo orderInfo = OrderHelper.GetOrderInfo(text2); if (orderInfo != null && OrderHelper.ConfirmPay(orderInfo)) { num++; DebitNoteInfo debitNoteInfo = new DebitNoteInfo(); debitNoteInfo.NoteId = Globals.GetGenerateId(); debitNoteInfo.OrderId = text2; debitNoteInfo.Operator = ManagerHelper.GetCurrentManager().UserName; debitNoteInfo.Remark = "后台" + debitNoteInfo.Operator + "收款成功"; OrderHelper.SaveDebitNote(debitNoteInfo); orderInfo.OnPayment(); } } } if (num > 0) { this.BindOrders(); this.ShowMsg("成功的确认了" + num.ToString() + "个订单收款", true); } else { this.ShowMsg("确认订单收款失败", false); } this.BindOrders(); }
public bool SaveDebitNote(DebitNoteInfo note) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(" insert into Hishop_OrderDebitNote(NoteId,OrderId,Operator,Remark) values(@NoteId,@OrderId,@Operator,@Remark)"); System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(stringBuilder.ToString()); this.database.AddInParameter(sqlStringCommand, "NoteId", System.Data.DbType.String, note.NoteId); this.database.AddInParameter(sqlStringCommand, "OrderId", System.Data.DbType.String, note.OrderId); this.database.AddInParameter(sqlStringCommand, "Operator", System.Data.DbType.String, note.Operator); this.database.AddInParameter(sqlStringCommand, "Remark", System.Data.DbType.String, note.Remark); return(this.database.ExecuteNonQuery(sqlStringCommand) > 0); }
protected void dlstOrders_ItemCommand(object sender, DataListCommandEventArgs e) { OrderInfo orderInfo = OrderHelper.GetOrderInfo(e.CommandArgument.ToString()); if (orderInfo != null) { if ((e.CommandName == "CONFIRM_PAY") && orderInfo.CheckAction(OrderActions.SELLER_CONFIRM_PAY)) { int num2 = 0; int num3 = 0; int groupBuyId = orderInfo.GroupBuyId; if (OrderHelper.ConfirmPay(orderInfo)) { DebitNoteInfo info2 = new DebitNoteInfo(); info2.NoteId = Globals.GetGenerateId(); info2.OrderId = e.CommandArgument.ToString(); info2.Operator = ManagerHelper.GetCurrentManager().UserName; info2.Remark = "后台" + info2.Operator + "收款成功"; OrderHelper.SaveDebitNote(info2); if (orderInfo.GroupBuyId > 0) { int num4 = num2 + num3; } this.BindOrders(); orderInfo.OnPayment(); this.ShowMsg("成功的确认了订单收款", true); } else { this.ShowMsg("确认订单收款失败", false); } } else if ((e.CommandName == "FINISH_TRADE") && orderInfo.CheckAction(OrderActions.SELLER_FINISH_TRADE)) { if (OrderHelper.ConfirmOrderFinish(orderInfo)) { MemberProcessor.RemoveUserCache(orderInfo.UserId); this.BindOrders(); DistributorsBrower.UpdateCalculationCommission(orderInfo); this.ShowMsg("成功的完成了该订单", true); } else { this.ShowMsg("完成订单失败", false); } } } }
protected void btnConfirmSelPayment_Click(object sender, EventArgs e) { string str = ""; if (!string.IsNullOrEmpty(base.Request["CheckBoxGroup"])) { str = base.Request["CheckBoxGroup"]; } if (str.Length <= 0) { this.ShowMsg("请先选择要批量确认付款的订单", false); } else { string[] strArray = str.Trim(new char[] { ',' }).Split(new char[] { ',' }); int num = 0; foreach (string str2 in strArray) { if (!string.IsNullOrEmpty(str2)) { OrderInfo orderInfo = OrderHelper.GetOrderInfo(str2); if ((orderInfo != null) && OrderHelper.ConfirmPay(orderInfo)) { DebitNoteInfo info2 = new DebitNoteInfo();; num++; info2 = new DebitNoteInfo { NoteId = Globals.GetGenerateId(), OrderId = str2, Operator = ManagerHelper.GetCurrentManager().UserName, Remark = "后台" + info2.Operator + "收款成功" }; OrderHelper.SaveDebitNote(info2); orderInfo.OnPayment(); } } } if (num > 0) { this.BindOrders(); this.ShowMsg("成功的确认了" + num.ToString() + "个订单收款", true); } else { this.ShowMsg("确认订单收款失败", false); } this.BindOrders(); } }
private static Parameter[] GetDebitNotetParameters(DebitNoteInfo info) { return(new[] { new Parameter(PARM_PURCHASINGID, info.PurchasingId), new Parameter(PARM_PURCHASINGNO, info.PurchasingNo), new Parameter(PARM_COMPANYID, info.CompanyId), new Parameter(PARM_PRESENTAMOUNT, info.PresentAmount), new Parameter(PARM_CREATEDATE, info.CreateDate), new Parameter(PARM_FINISHDATE, info.FinishDate == DateTime.MinValue ? SqlDateTime.MinValue : info.FinishDate), new Parameter(PARM_STATE, info.State), new Parameter(PARM_WAREHOUSEID, info.WarehouseId), new Parameter(PARM_MEMO, info.Memo), new Parameter(PARM_PERSONRESPONSIBLE, info.PersonResponsible) }); }
/// <summary> /// 根据新采购单ID获取借记单 /// </summary> /// <param name="newPurchasingId"></param> /// <returns></returns> public DebitNoteInfo GetDebitNoteInfoByNewPurchasingId(Guid newPurchasingId) { const string SQL = SQL_SELECT_DEBITNOTE + " WHERE [NewPurchasingId]=@NewPurchasingId"; var parm = new SqlParameter(PARM_NEWPURCHASINGID, SqlDbType.UniqueIdentifier) { Value = newPurchasingId }; DebitNoteInfo info = null; using (var dr = SqlHelper.ExecuteReader(GlobalConfig.ERP_DB_NAME, true, SQL, parm)) { if (dr.Read()) { info = ReaderDebitNote(dr); } } return(info); }
private static DebitNoteInfo ReaderDebitNote(IDataReader dr) { var info = new DebitNoteInfo { PurchasingId = dr["PurchasingId"] == DBNull.Value ? Guid.Empty : new Guid(dr["PurchasingId"].ToString()), PurchasingNo = dr["PurchasingNo"] == DBNull.Value ? string.Empty : dr["PurchasingNo"].ToString(), CompanyId = dr["CompanyId"] == DBNull.Value ? Guid.Empty : new Guid(dr["CompanyId"].ToString()), PresentAmount = dr["PresentAmount"] == DBNull.Value ? 0 : decimal.Parse(dr["PresentAmount"].ToString()), CreateDate = dr["CreateDate"] == DBNull.Value ? DateTime.MinValue : DateTime.Parse(dr["CreateDate"].ToString()), FinishDate = dr["FinishDate"] == DBNull.Value ? DateTime.MinValue : DateTime.Parse(dr["FinishDate"].ToString()), State = dr["State"] == DBNull.Value ? 0 : int.Parse(dr["State"].ToString()), WarehouseId = dr["WarehouseId"] == DBNull.Value ? Guid.Empty : new Guid(dr["WarehouseId"].ToString()), Memo = dr["Memo"] == DBNull.Value ? string.Empty : dr["Memo"].ToString(), PersonResponsible = dr["PersonResponsible"] == DBNull.Value ? Guid.Empty : new Guid(dr["PersonResponsible"].ToString()), NewPurchasingId = dr["NewPurchasingId"] == DBNull.Value ? Guid.Empty : new Guid(dr["NewPurchasingId"].ToString()), PurchaseGroupId = dr["PurchaseGroupId"] == DBNull.Value ? (Guid?)null : new Guid(dr["PurchaseGroupId"].ToString()), Title = dr["Title"] == DBNull.Value ? string.Empty : dr["Title"].ToString() }; return(info); }
protected void btnConfirmPay_Click(object sender, System.EventArgs e) { OrderInfo orderInfo = OrderHelper.GetOrderInfo(this.orderId); if (orderInfo != null && orderInfo.CheckAction(OrderActions.SELLER_CONFIRM_PAY)) { if (OrderHelper.ConfirmPay(orderInfo)) { DebitNoteInfo debitNoteInfo = new DebitNoteInfo(); debitNoteInfo.NoteId = Globals.GetGenerateId(); debitNoteInfo.OrderId = this.orderId; debitNoteInfo.Operator = ManagerHelper.GetCurrentManager().UserName; debitNoteInfo.Remark = "后台" + debitNoteInfo.Operator + "收款成功"; OrderHelper.SaveDebitNote(debitNoteInfo); orderInfo.OnPayment(); this.ShowMsgAndReUrl("成功的确认了订单收款", true, "OrderDetails.aspx?OrderId=" + this.orderId + "&t=" + System.DateTime.Now.ToString("HHmmss")); return; } this.ShowMsg("确认订单收款失败", false); } }
/// <summary> /// 添加借记单和明细 /// </summary> /// <param name="info"></param> /// <param name="debitNoteDetailList">借记单明细</param> public static bool AddPurchaseSetAndDetail(DebitNoteInfo info, IList <DebitNoteDetailInfo> debitNoteDetailList) { const string SQL_INSERT_DEBITNOTE = @" IF EXISTS(SELECT 0 FROM [lmshop_DebitNote] WHERE [PurchasingId]=@PurchasingId) BEGIN UPDATE [lmshop_DebitNote] SET [PresentAmount]+=@PresentAmount WHERE [PurchasingId]=@PurchasingId END ELSE BEGIN INSERT INTO [lmshop_DebitNote]([PurchasingId],[PurchasingNo],[CompanyId],[PresentAmount],[CreateDate],[FinishDate],[State],[WarehouseId],[Memo],[PersonResponsible]) VALUES(@PurchasingId,@PurchasingNo,@CompanyId,@PresentAmount,@CreateDate,@FinishDate,@State,@WarehouseId,@Memo,@PersonResponsible) END "; const string SQL_INSERT_DEBITNOTEDETAIL = @" IF EXISTS(SELECT 0 FROM [lmshop_DebitNoteDetail] WHERE [PurchasingId]=@PurchasingId AND [GoodsId]=@GoodsId) BEGIN UPDATE [lmshop_DebitNoteDetail] SET [GivingCount]+=@GivingCount WHERE [PurchasingId]=@PurchasingId AND [GoodsId]=@GoodsId END ELSE BEGIN INSERT INTO [lmshop_DebitNoteDetail]([PurchasingId],[GoodsId],[GoodsName],[Specification],[GivingCount],[ArrivalCount],[Price],[State],[Amount],[Memo],[ID]) VALUES(@PurchasingId,@GoodsId,@GoodsName,@Specification,@GivingCount,@ArrivalCount,@Price,@State,@Amount,@Memo,@ID) END "; using (var db = DatabaseFactory.Create()) { db.BeginTransaction(); var parms = GetDebitNotetParameters(info); db.Execute(false, SQL_INSERT_DEBITNOTE, parms); foreach (var detailInfo in debitNoteDetailList) { Parameter[] detailParms = GetDebitNoteDetailParameters(detailInfo); db.Execute(false, SQL_INSERT_DEBITNOTEDETAIL, detailParms); } db.CompleteTransaction(); } return(true); }
protected void rptList_ItemCommand(object source, RepeaterCommandEventArgs e) { bool flag = false; OrderInfo orderInfo = OrderHelper.GetOrderInfo(e.CommandArgument.ToString()); if (orderInfo != null) { if ((e.CommandName == "CONFIRM_PAY") && orderInfo.CheckAction(OrderActions.SELLER_CONFIRM_PAY)) { int num2 = 0; int num3 = 0; int groupBuyId = orderInfo.GroupBuyId; if (OrderHelper.ConfirmPay(orderInfo)) { DebitNoteInfo info2 = new DebitNoteInfo(); info2.NoteId = Globals.GetGenerateId(); info2.OrderId = e.CommandArgument.ToString(); info2.Operator = ManagerHelper.GetCurrentManager().UserName; info2.Remark = "后台" + info2.Operator + "收款成功"; OrderHelper.SaveDebitNote(info2); if (orderInfo.GroupBuyId > 0) { int num4 = num2 + num3; } this.BindOrders(); orderInfo.OnPayment(); this.ShowMsg("成功的确认了订单收款", true); } else { this.ShowMsg("确认订单收款失败", false); } } else if ((e.CommandName == "FINISH_TRADE") && orderInfo.CheckAction(OrderActions.SELLER_FINISH_TRADE)) { Dictionary <string, LineItemInfo> lineItems = orderInfo.LineItems; LineItemInfo info3 = new LineItemInfo(); foreach (KeyValuePair <string, LineItemInfo> pair in lineItems) { info3 = pair.Value; if ((info3.OrderItemsStatus == OrderStatus.ApplyForRefund) || (info3.OrderItemsStatus == OrderStatus.ApplyForReturns)) { flag = true; } } if (!flag) { if (OrderHelper.ConfirmOrderFinish(orderInfo)) { this.BindOrders(); DistributorsBrower.UpdateCalculationCommission(orderInfo, wid); foreach (LineItemInfo info4 in orderInfo.LineItems.Values) { if (info4.OrderItemsStatus.ToString() == OrderStatus.SellerAlreadySent.ToString()) { RefundHelper.UpdateOrderGoodStatu(orderInfo.OrderId, info4.SkuId, 5); } } this.ShowMsg("成功的完成了该订单", true); } else { this.ShowMsg("完成订单失败", false); } } else { this.ShowMsg("订单中商品有退货(款)不允许完成!", false); } } } }
public static bool SaveDebitNote(DebitNoteInfo note) { return(new DebitNoteDao().SaveDebitNote(note)); }
protected void rptList_ItemCommand(object source, RepeaterCommandEventArgs e) { bool flag = false; OrderInfo orderInfo = OrderHelper.GetOrderInfo(e.CommandArgument.ToString()); if (orderInfo != null) { if ((e.CommandName == "CONFIRM_PAY") && orderInfo.CheckAction(OrderActions.SELLER_CONFIRM_PAY)) { int num2 = 0; int num3 = 0; int groupBuyId = orderInfo.GroupBuyId; if (OrderHelper.ConfirmPay(orderInfo)) { DebitNoteInfo info2 = new DebitNoteInfo(); info2 = new DebitNoteInfo { NoteId = Globals.GetGenerateId(), OrderId = e.CommandArgument.ToString(), Operator = ManagerHelper.GetCurrentManager().UserName, Remark = "后台" + info2.Operator + "收款成功" }; OrderHelper.SaveDebitNote(info2); if (orderInfo.GroupBuyId > 0) { int num4 = num2 + num3; } this.BindOrders(); orderInfo.OnPayment(); this.ShowMsg("成功的确认了订单收款", true); } else { this.ShowMsg("确认订单收款失败", false); } } else if ((e.CommandName == "FINISH_TRADE") && orderInfo.CheckAction(OrderActions.SELLER_FINISH_TRADE)) { Dictionary <string, LineItemInfo> lineItems = orderInfo.LineItems; LineItemInfo info3 = new LineItemInfo(); foreach (KeyValuePair <string, LineItemInfo> pair in lineItems) { info3 = pair.Value; if ((info3.OrderItemsStatus == OrderStatus.ApplyForRefund) || (info3.OrderItemsStatus == OrderStatus.ApplyForReturns)) { flag = true; } } if (!flag) { if (OrderHelper.ConfirmOrderFinish(orderInfo)) { this.BindOrders(); this.myNotifier.updateAction = UpdateAction.OrderUpdate; this.myNotifier.actionDesc = "订单已完成"; if (orderInfo.PayDate.HasValue) { this.myNotifier.RecDateUpdate = orderInfo.PayDate.Value; } else { this.myNotifier.RecDateUpdate = DateTime.Today; } this.myNotifier.DataUpdated += new StatisticNotifier.DataUpdatedEventHandler(this.myEvent.Update); this.myNotifier.UpdateDB(); this.ShowMsg("成功的完成了该订单", true); } else { this.ShowMsg("完成订单失败", false); } } else { this.ShowMsg("订单中商品有退货(款)不允许完成!", false); } } } }
/// <summary> /// /// </summary> /// <param name="purDics"></param> /// <param name="dicGoods"></param> /// <param name="purchaseSetList"></param> /// <param name="msg"></param> public bool CreatePurchasing(Dictionary <PurchasingInfo, IList <PurchasingDetailInfo> > purDics, Dictionary <string, Guid> dicGoods, IList <PurchaseSetInfo> purchaseSetList, out string msg) { if (dicGoods == null || dicGoods.Count == 0) { msg = string.Empty; return(true); } using (var ts = new TransactionScope(TransactionScopeOption.Required)) { foreach (KeyValuePair <PurchasingInfo, IList <PurchasingDetailInfo> > keyValue in purDics) { var pInfo = keyValue.Key; IList <PurchasingDetailInfo> plist = keyValue.Value; IList <PurchasingDetailInfo> plist2 = plist.Where(w => w.PurchasingGoodsType != (int)PurchasingGoodsType.Gift).ToList(); //如果赠送方式为总数量赠送时使用 key 主商品ID value 额外赠送 var dics = new Dictionary <string, int>(); //需赠送 var sendDics = new Dictionary <string, int>(); //现返已赠送 var debitExtraDics = new Dictionary <string, int>(); //借计单已送 var addDetailsList = new List <PurchasingDetailInfo>(); //添加赠品 #region [现返] //处理原理: //赠品数量=原采购数量/(买几个+送几个)*送几个 //购买数量=原采购数量-赠品数量 foreach (var pdInfo in plist2) { if (!dicGoods.ContainsKey(pdInfo.GoodsName)) { continue; } var goodsBaseInfo = dicGoods[pdInfo.GoodsName]; PurchaseSetInfo purchaseSetInfo = purchaseSetList.FirstOrDefault(w => w.GoodsId == goodsBaseInfo && pInfo.WarehouseID == w.WarehouseId && pInfo.PurchasingFilialeId == w.HostingFilialeId); if (purchaseSetInfo == null) { continue; } IList <PurchasePromotionInfo> ppList = _purchasePromotionManager.GetPurchasePromotionList(purchaseSetInfo.PromotionId, purchaseSetInfo.GoodsId, purchaseSetInfo.WarehouseId, purchaseSetInfo.HostingFilialeId, (int)PurchasePromotionType.Back); PurchasePromotionInfo ppInfo = ppList.FirstOrDefault(w => w.GivingCount > 0 && w.StartDate <= DateTime.Now && w.EndDate >= DateTime.Now); if (ppInfo != null) { #region 新增 if (!ppInfo.IsSingle) //按商品总数量进行赠送 { if (!dics.ContainsKey(pdInfo.GoodsName)) { var dataList = plist2.Where(act => act.GoodsName == pdInfo.GoodsName).OrderByDescending(act => act.PlanQuantity).ToList(); //余数 var extra = dataList.Sum(act => Convert.ToInt32(act.PlanQuantity)) % (ppInfo.BuyCount + ppInfo.GivingCount); if (extra == ppInfo.BuyCount) { dataList[0].PlanQuantity += ppInfo.GivingCount; } else { //应赠送次数 int actquantity = extra % (ppInfo.BuyCount + ppInfo.GivingCount); if (actquantity >= ((ppInfo.BuyCount + ppInfo.GivingCount) / float.Parse("2.0"))) { dataList[0].PlanQuantity = dataList[0].PlanQuantity + (ppInfo.BuyCount + ppInfo.GivingCount) - actquantity; } } //总商品赠送商品总数 var sumTotal = dataList.Sum(act => Convert.ToInt32(act.PlanQuantity)) * ppInfo.GivingCount / (ppInfo.BuyCount + ppInfo.GivingCount); dics.Add(pdInfo.GoodsName, sumTotal); if (dics[pdInfo.GoodsName] > 0) { foreach (var item in dataList.OrderByDescending(act => act.PlanQuantity)) { if (dics[item.GoodsName] == 0) { continue; } var count = dics[item.GoodsName] - Convert.ToInt32(item.PlanQuantity); if (count > 0) //赠品数>购买数 { item.Price = 0; item.PurchasingGoodsType = (int)PurchasingGoodsType.Gift; item.RealityQuantity = 0; dics[item.GoodsName] = count; } else if (count < 0) //赠送数小于采购数 { addDetailsList.Add(new PurchasingDetailInfo { PurchasingGoodsID = Guid.NewGuid(), PurchasingID = item.PurchasingID, GoodsID = item.GoodsID, GoodsName = item.GoodsName, GoodsCode = item.GoodsCode, Specification = item.Specification, CompanyID = item.CompanyID, Price = 0, PlanQuantity = dics[item.GoodsName], PurchasingGoodsType = (int)PurchasingGoodsType.Gift, RealityQuantity = 0, State = item.State, Description = "", Units = item.Units, SixtyDaySales = item.SixtyDaySales, ThirtyDaySales = item.ThirtyDaySales, ElevenDaySales = item.ElevenDaySales, CPrice = 0 }); item.RealityQuantity = 0; item.PlanQuantity = Math.Abs(count); dics[item.GoodsName] = 0; } else //赠送数=采购数 { item.Price = 0; item.PurchasingGoodsType = (int)PurchasingGoodsType.Gift; item.RealityQuantity = 0; item.CPrice = 0; dics[item.GoodsName] = 0; } } } } } else //按单光度 { //应赠余数 var actquantity = pdInfo.PlanQuantity % (ppInfo.BuyCount + ppInfo.GivingCount); if (actquantity > 0) { if (actquantity >= ((ppInfo.BuyCount + ppInfo.GivingCount) / float.Parse("2.0"))) { pdInfo.PlanQuantity = pdInfo.PlanQuantity + (ppInfo.BuyCount + ppInfo.GivingCount) - actquantity; } } int pQuantity = int.Parse(pdInfo.PlanQuantity.ToString(CultureInfo.InvariantCulture)); //赠品数量=原采购数量/(买几个+送几个)*送几个 int quantity = pQuantity / (ppInfo.BuyCount + ppInfo.GivingCount) * ppInfo.GivingCount; if (quantity > 0) { var oldPurchasingDetailInfo = plist.FirstOrDefault(w => w.PurchasingGoodsID == pdInfo.PurchasingGoodsID); if (oldPurchasingDetailInfo != null) { //购买数量=原采购数量-赠品数量 oldPurchasingDetailInfo.PlanQuantity -= (quantity); } var purchasingDetailInfo = plist.FirstOrDefault(w => w.GoodsID == pdInfo.GoodsID && w.PurchasingGoodsType == (int)PurchasingGoodsType.Gift); if (purchasingDetailInfo != null) { //在原赠品数量累加 purchasingDetailInfo.PlanQuantity += (quantity); } else { purchasingDetailInfo = new PurchasingDetailInfo { PurchasingGoodsID = Guid.NewGuid(), PurchasingID = pInfo.PurchasingID, GoodsID = pdInfo.GoodsID, GoodsName = pdInfo.GoodsName, GoodsCode = pdInfo.GoodsCode, Specification = pdInfo.Specification, CompanyID = pdInfo.CompanyID, Price = 0, PlanQuantity = (quantity), PurchasingGoodsType = (int)PurchasingGoodsType.Gift, RealityQuantity = 0, State = 0, Description = "", Units = pdInfo.Units, SixtyDaySales = pdInfo.SixtyDaySales, ThirtyDaySales = pdInfo.ThirtyDaySales, ElevenDaySales = pdInfo.ElevenDaySales }; addDetailsList.Add(purchasingDetailInfo); } } } #endregion } } if (addDetailsList.Count > 0) { foreach (var purchasingDetailInfo in addDetailsList) { purchasingDetailInfo.Price = 0; plist.Add(purchasingDetailInfo); } } #endregion #region [非现返生成借记单] var debitNoteDetailList = new List <DebitNoteDetailInfo>(); foreach (var pdInfo in plist2) { if (!dicGoods.ContainsKey(pdInfo.GoodsName)) { continue; } var goodsBaseInfo = dicGoods[pdInfo.GoodsName]; PurchaseSetInfo purchaseSetInfo = purchaseSetList.FirstOrDefault(w => w.GoodsId == goodsBaseInfo && w.HostingFilialeId == pInfo.PurchasingFilialeId); if (purchaseSetInfo != null) { IList <PurchasePromotionInfo> ppList = _purchasePromotionManager.GetPurchasePromotionList(purchaseSetInfo.PromotionId, purchaseSetInfo.GoodsId, purchaseSetInfo.WarehouseId, purchaseSetInfo.HostingFilialeId, (int)PurchasePromotionType.NoBack); PurchasePromotionInfo ppInfo = ppList.FirstOrDefault(w => w.GivingCount > 0 && w.StartDate <= DateTime.Now && w.EndDate >= DateTime.Now); if (ppInfo != null) { int pQuantity = Convert.ToInt32(pdInfo.PlanQuantity); //赠品数量=原采购数量/买几个*送几个 int quantity = pQuantity / ppInfo.BuyCount * ppInfo.GivingCount; #region 新增 //按商品总数量进行赠送 if (!ppInfo.IsSingle) { if (!dics.ContainsKey(pdInfo.GoodsName)) { var dataList = plist2.Where(act => act.GoodsName == pdInfo.GoodsName).ToList(); //单光度赠送商品总数 var total = dataList.Sum(act => (Convert.ToInt32(act.PlanQuantity) / (ppInfo.BuyCount + ppInfo.GivingCount))); //总商品赠送商品总数 var sumTotal = dataList.Sum(act => Convert.ToInt32(act.PlanQuantity)) / (ppInfo.BuyCount + ppInfo.GivingCount); if (sumTotal > total) { dics.Add(pdInfo.GoodsName, sumTotal); } } } #endregion if (quantity > 0) { var debitNoteDetailInfo = new DebitNoteDetailInfo { PurchasingId = pInfo.PurchasingID, GoodsId = pdInfo.GoodsID, GoodsName = pdInfo.GoodsName, Specification = pdInfo.Specification, GivingCount = quantity, ArrivalCount = 0, Price = pdInfo.Price, State = 0, Amount = quantity * pdInfo.Price, Memo = "", Id = Guid.NewGuid() }; if (debitExtraDics.ContainsKey(pdInfo.GoodsName)) { debitExtraDics[pdInfo.GoodsName] = debitExtraDics[pdInfo.GoodsName] + quantity; } else { debitExtraDics.Add(pdInfo.GoodsName, quantity); } debitNoteDetailList.Add(debitNoteDetailInfo); } } } } #endregion #region 处理额外赠送商品 foreach (var dic in dics) { KeyValuePair <string, int> dic1 = dic; if (sendDics.ContainsKey(dic.Key)) { var total = dic1.Value - sendDics[dic.Key]; if (total > 0) { var data = plist.Where(act => act.GoodsName == dic1.Key && act.PurchasingGoodsType != (int)PurchasingGoodsType.Gift) .OrderByDescending(act => act.PlanQuantity).ToList(); var data2 = plist.Where(act => act.GoodsName == dic1.Key && act.PurchasingGoodsType == (int)PurchasingGoodsType.Gift) .OrderByDescending(act => act.PlanQuantity); for (int i = 0; i < total; i++) { var purchasingDetailInfo = data2.FirstOrDefault(w => w.GoodsID == plist[i].GoodsID); if (purchasingDetailInfo != null) { data[i].PlanQuantity -= 1; purchasingDetailInfo.PlanQuantity += 1; } } } } if (debitExtraDics.ContainsKey(dic.Key)) { var total = dic1.Value - debitExtraDics[dic.Key]; if (total > 0) { var data = debitNoteDetailList.Where(act => act.GoodsName == dic1.Key).OrderByDescending(act => act.GivingCount).ToList(); for (int i = 0; i < total; i++) { data[i].GivingCount += 1; data[i].Amount = data[i].Price * data[i].GivingCount; } } } } #endregion var originalDetails = _purchasingDetailManager.Select(pInfo.PurchasingID); _purchasingDetailManager.Delete(pInfo.PurchasingID); _purchasing.DeleteById(pInfo.PurchasingID); //pInfo.IsOut = true; //插入采购单 _purchasing.PurchasingInsert(pInfo); //保存采购单明细 foreach (var item in plist.Where(act => act.Price == 0 && act.PurchasingGoodsType != (int)PurchasingGoodsType.Gift)) { var info = plist.FirstOrDefault(act => act.GoodsName == item.GoodsName && act.Price > 0); item.Price = info != null?info.Price:0; } var ids = new List <Guid>(); if (originalDetails.Count > 0) { foreach (var purchasingDetailInfo in originalDetails) { var info = plist.FirstOrDefault(act => act.GoodsID == purchasingDetailInfo.GoodsID && act.PurchasingGoodsType == purchasingDetailInfo.PurchasingGoodsType); if (info != null) { purchasingDetailInfo.PlanQuantity += info.PlanQuantity; ids.Add(info.PurchasingGoodsID); } _purchasingDetailManager.Insert(purchasingDetailInfo); } } foreach (var item in plist.Where(act => !ids.Contains(act.PurchasingGoodsID))) { _purchasingDetailManager.Insert(item); } //添加借记单 if (debitNoteDetailList.Count > 0) { IDebitNote debitNoteManager = new DebitNote(Environment.GlobalConfig.DB.FromType.Write); var debitNoteInfo = new DebitNoteInfo { PurchasingId = pInfo.PurchasingID, PurchasingNo = pInfo.PurchasingNo, CompanyId = pInfo.CompanyID, PresentAmount = debitNoteDetailList.Sum(w => w.Amount), CreateDate = DateTime.Now, FinishDate = DateTime.MinValue, State = (int)DebitNoteState.ToPurchase, WarehouseId = pInfo.WarehouseID, Memo = "", PersonResponsible = pInfo.PersonResponsible, NewPurchasingId = Guid.Empty }; debitNoteManager.AddPurchaseSetAndDetail(debitNoteInfo, debitNoteDetailList); } } ts.Complete(); } msg = string.Empty; return(true); }
protected void rptList_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e) { bool flag = false; OrderInfo orderInfo = OrderHelper.GetOrderInfo(e.CommandArgument.ToString()); if (orderInfo != null) { if (e.CommandName == "CONFIRM_PAY" && orderInfo.CheckAction(OrderActions.SELLER_CONFIRM_PAY)) { int num = 0; int num2 = 0; int arg_49_0 = orderInfo.GroupBuyId; if (OrderHelper.ConfirmPay(orderInfo)) { DebitNoteInfo debitNoteInfo = new DebitNoteInfo(); debitNoteInfo.NoteId = Globals.GetGenerateId(); debitNoteInfo.OrderId = e.CommandArgument.ToString(); debitNoteInfo.Operator = ManagerHelper.GetCurrentManager().UserName; debitNoteInfo.Remark = "后台" + debitNoteInfo.Operator + "收款成功"; OrderHelper.SaveDebitNote(debitNoteInfo); if (orderInfo.GroupBuyId > 0) { int arg_BE_0 = num + num2; } this.BindOrders(); orderInfo.OnPayment(); this.ShowMsg("成功的确认了订单收款", true); return; } this.ShowMsg("确认订单收款失败", false); return; } else if (e.CommandName == "FINISH_TRADE" && orderInfo.CheckAction(OrderActions.SELLER_FINISH_TRADE)) { System.Collections.Generic.Dictionary <string, LineItemInfo> lineItems = orderInfo.LineItems; LineItemInfo lineItemInfo = new LineItemInfo(); foreach (System.Collections.Generic.KeyValuePair <string, LineItemInfo> current in lineItems) { lineItemInfo = current.Value; if (lineItemInfo.OrderItemsStatus == OrderStatus.ApplyForRefund || lineItemInfo.OrderItemsStatus == OrderStatus.ApplyForReturns) { flag = true; } } if (!flag) { if (OrderHelper.ConfirmOrderFinish(orderInfo)) { this.BindOrders(); DistributorsBrower.UpdateCalculationCommission(orderInfo); foreach (LineItemInfo current2 in orderInfo.LineItems.Values) { if (current2.OrderItemsStatus.ToString() == OrderStatus.SellerAlreadySent.ToString()) { RefundHelper.UpdateOrderGoodStatu(orderInfo.OrderId, current2.SkuId, 5, current2.ID); } } this.ShowMsg("成功的完成了该订单", true); return; } this.ShowMsg("完成订单失败", false); return; } else { this.ShowMsg("订单中商品有退货(款)不允许完成!", false); } } } }
/// <summary> /// 循环遍历子商品的销售和采购信息 /// </summary> /// <param name="p"></param> /// <param name="childGoodsSaleAll"></param> /// <param name="warehouseId"></param> /// <param name="hostingFilialeId"></param> /// <param name="avgStockDays"></param> /// <param name="nextStockDate"></param> /// <param name="taskType"></param> /// <param name="step"></param> /// <param name="nextPurchasingDate"></param> private static void OperationSaleAndPurchasing(PurchasingGoods p, IEnumerable <ChildGoodsSalePurchasing> childGoodsSaleAll, Guid warehouseId, Guid hostingFilialeId, int avgStockDays, DateTime nextStockDate, TaskType taskType, int step, DateTime nextPurchasingDate, List <ERP.SAL.WMS.StockStatisticsDTO> stocks) { //如果传过来的仓库ID是空,说明是指定仓库 if (warehouseId == Guid.Empty) { warehouseId = p.WarehouseId; } //产生一个采购单ID var purchasingId = Guid.NewGuid(); var tempPurchasingId = DataAccessor.GetSamePurchasingId(p.CompanyId, p.PersonResponsible, warehouseId, hostingFilialeId); if (tempPurchasingId != Guid.Empty) { purchasingId = tempPurchasingId; } //是否有子商品采购信息 var hasChildGoodsPurchasingInfo = false; var isException = false; string purchasingNo = DataAccessor.GetCode(BaseInfo.CodeType.PH); List <ChildGoodsSalePurchasing> childGoodsSalePurchasingList = childGoodsSaleAll.ToList(); List <Guid> goodsIdOrRealGoodsIdList = childGoodsSalePurchasingList.Select(w => w.GoodsId).Distinct().ToList(); Dictionary <Guid, GoodsInfo> dicGoods = _goodsCenterSao.GetGoodsBaseListByGoodsIdOrRealGoodsIdList(goodsIdOrRealGoodsIdList); //如果赠送方式为总数量赠送时使用 key 主商品ID value 额外赠送 var dics = new Dictionary <Guid, int>(); //循环遍历子商品的销售和采购信息 foreach (var sale in childGoodsSaleAll) { #if debug Console.WriteLine("规格:{0},销售一:{1},销售二:{2},销售三:{3},平均销售:{4},增长率:{5}", sale.Specification, sale.FirstNumberOneStockUpSale, sale.FirstNumberTwoStockUpSale, sale.FirstNumberThreeStockUpSale, sale.WeightedAverageSaleQuantity, sale.SaleInCrease); #endif //计算计划采购数量 if (taskType == TaskType.Warning) { if (step == 4) { sale.PlanPurchasingquantity = sale.WeightedAverageSaleQuantity * ((nextStockDate - DateTime.Now).Days + 1 + p.ArrivalDays); } else { sale.PlanPurchasingquantity = sale.WeightedAverageSaleQuantity * (avgStockDays + p.ArrivalDays); } } else if (taskType == TaskType.Routine) { if (step == 3) { sale.PlanPurchasingquantity = sale.WeightedAverageSaleQuantity * ((nextPurchasingDate - DateTime.Now).Days + (avgStockDays * 2) + 1 + p.ArrivalDays); } else { sale.PlanPurchasingquantity = sale.WeightedAverageSaleQuantity * ((nextStockDate - DateTime.Now).Days + 1 + p.ArrivalDays); } } //计算当前的采购商品数量,包含扣除的已经采购完成和部分采购完成和赠品类型 sale.SubtractPurchasingQuantity = DataAccessor.GetSumPurchasingQuantity(sale.GoodsId, warehouseId, hostingFilialeId); //计算当前仓库存货数量 var info = stocks.FirstOrDefault(act => act.RealGoodsId == sale.GoodsId); sale.NonceWarehouseStockQuantity = info != null ? info.CurrentStock + info.UppingQuantity - info.RequireQuantity : 0; #if debug Console.WriteLine("预计采购:{0},采购中的数量:{1},当前库存数量:{2}", sale.PlanPurchasingquantity, sale.SubtractPurchasingQuantity, sale.NonceWarehouseStockQuantity); if (sale.GoodsId == "D41FBCB0-DB51-447D-8F7C-9767D612EC2B".ToGuid()) { sale.IsNull(); } #endif //判断实际的采购数量大于零时,新增一条采购记录 if (sale.RealityNeedPurchasingQuantity > 0) { //如果是预警报备,计划采购还是到下一次周期的报备 if (taskType == TaskType.Warning) { sale.PlanPurchasingquantity = sale.WeightedAverageSaleQuantity * ((nextStockDate - DateTime.Now).Days + 1 + p.ArrivalDays); } #if debug Console.WriteLine("实际采购数量:{0}", sale.RealityNeedPurchasingQuantity); #endif //判断是否有最低库存,如果有要判断采购是否满足最低库存 var minStockQuantity = DataAccessor.GetGoodsStockMinQuantity(sale.GoodsId, p.WarehouseId); if (minStockQuantity > 0) { if (sale.RealityNeedPurchasingQuantity < minStockQuantity) { var newPlanPurchasingquantity = (minStockQuantity - sale.RealityNeedPurchasingQuantity) + sale.PlanPurchasingquantity; sale.PlanPurchasingquantity = newPlanPurchasingquantity; } } //采购数 int purchasingQuantity = 0; #region [现返] //处理原理: //赠品数量=原采购数量/(买几个+送几个)*送几个 //购买数量=原采购数量-赠品数量 int zpquantity = 0; var goodsInfo = new GoodsInfo(); if (dicGoods != null) { bool hasKey = dicGoods.ContainsKey(sale.GoodsId); if (hasKey) { goodsInfo = dicGoods.FirstOrDefault(w => w.Key == sale.GoodsId).Value; } } IList <PurchasePromotionInfo> ppList = DataAccessor.GetPurchasePromotionList(goodsInfo.GoodsId, (int)PurchasePromotionType.Back, hostingFilialeId); PurchasePromotionInfo ppInfo = ppList.FirstOrDefault(w => w.GivingCount > 0 && w.StartDate <= DateTime.Now && w.EndDate >= DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 17:29:59")); if (ppInfo != null) { //赠品数量=原采购数量/(买几个+送几个)*送几个 zpquantity = (int)sale.RealityNeedPurchasingQuantity / (ppInfo.BuyCount + ppInfo.GivingCount) * ppInfo.GivingCount; if (zpquantity > 0) { int xfQuantity = (int)sale.RealityNeedPurchasingQuantity - zpquantity; //现返类型实际要采购多少数量 purchasingQuantity = (int)GetBoxNumber(p.PackQuantity, xfQuantity); //加入箱数采购算法计算采购数 } } else { purchasingQuantity = (int)GetBoxNumber(p.PackQuantity, (int)sale.RealityNeedPurchasingQuantity);//加入箱数采购算法计算采购数 } #endregion #region [非现返生成借记单] var addedExtra = new List <Guid>(); //借记单明细 var debitNoteDetailList = new List <DebitNoteDetailInfo>(); IList <PurchasePromotionInfo> ppList2 = DataAccessor.GetPurchasePromotionList(goodsInfo.GoodsId, (int)PurchasePromotionType.NoBack, hostingFilialeId); PurchasePromotionInfo ppInfo2 = ppList2.FirstOrDefault(w => w.GivingCount > 0 && w.StartDate <= DateTime.Now && w.EndDate >= DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 17:29:59")); if (ppInfo2 != null) { int pQuantity = (int)sale.RealityNeedPurchasingQuantity; //赠品数量=原采购数量/买几个*送几个 int fxfzpquantity = pQuantity / ppInfo2.BuyCount * ppInfo2.GivingCount; int extra = addedExtra.Contains(goodsInfo.GoodsId) ? 0 : dics[goodsInfo.GoodsId]; if (!addedExtra.Contains(goodsInfo.GoodsId)) { addedExtra.Add(goodsInfo.GoodsId); } if (fxfzpquantity > 0 || extra > 0) { var debitNoteDetailInfo = new DebitNoteDetailInfo { PurchasingId = purchasingId, GoodsId = sale.GoodsId, GoodsName = p.GoodsName, Specification = sale.Specification, GivingCount = fxfzpquantity + extra, ArrivalCount = 0, Price = p.Price, State = 0, Amount = fxfzpquantity * p.Price, Memo = "", Id = Guid.NewGuid() }; debitNoteDetailList.Add(debitNoteDetailInfo); } if (debitNoteDetailList.Count > 0) { var debitNoteInfo = new DebitNoteInfo { PurchasingId = purchasingId, PurchasingNo = purchasingNo, CompanyId = p.CompanyId, PresentAmount = debitNoteDetailList.Sum(w => w.Amount), CreateDate = DateTime.Now, FinishDate = DateTime.MinValue, State = (int)DebitNoteState.ToPurchase, WarehouseId = p.WarehouseId, Memo = "", PersonResponsible = p.PersonResponsible, NewPurchasingId = Guid.Empty }; var dnInfo = DataAccessor.GetDebitNoteInfo(purchasingId); //是否已经有借记单 if (dnInfo != null && dnInfo.PurchasingId != Guid.Empty) //已经有借记单则修改借记单 { var dnlist = DataAccessor.GetDebitNoteDetailList(purchasingId); if (dnlist != null && dnlist.Any(act => act.GoodsId == sale.GoodsId)) { DataAccessor.UpdateDebitNoteDetail(purchasingId, sale.GoodsId, fxfzpquantity); } else { foreach (var dinfo in debitNoteDetailList) { DataAccessor.AddDebitNoteDetail(dinfo); } } } else { DataAccessor.AddPurchaseSetAndDetail(debitNoteInfo, debitNoteDetailList); } } } #endregion var purchasingGoodsId = Guid.Empty; if (tempPurchasingId != Guid.Empty) { purchasingGoodsId = DataAccessor.GetSamePurchasingGoodsId(tempPurchasingId, sale.GoodsId, sale.Specification, sale.HostingFilialeId); } if (purchasingGoodsId != Guid.Empty) { DataAccessor.UpdatePurchasingGoodsPlanQuantity(purchasingGoodsId, purchasingQuantity); if (zpquantity > 0)//如果有现反赠品则添加一条采购明细记录 { var salesinfo = DataAccessor.GetChildGoodsSale(sale.GoodsId, warehouseId, hostingFilialeId, DateTime.Now); DataAccessor.InsertPurchasingDetail(Guid.NewGuid(), (tempPurchasingId == Guid.Empty ? purchasingId : tempPurchasingId), sale.GoodsId, p.GoodsName, p.Units, p.GoodsCode, sale.Specification, p.CompanyId, 0, zpquantity, 0, 0, string.Empty, sale.WeightedAverageSaleQuantity / 30, zpquantity, p.StockingDays + p.ArrivalDays, isException, salesinfo.SixtyDaySales, salesinfo.ThirtyDaySales, (salesinfo.ElevenDaySales / 11), (int)PurchasingGoodsType.Gift); } } else { if (sale.RealityNeedPurchasingQuantity > 0) { var salesinfo = DataAccessor.GetChildGoodsSale(sale.GoodsId, warehouseId, hostingFilialeId, DateTime.Now); if (salesinfo.GoodsId != Guid.Empty) { //当前活动报备异常 if ((salesinfo.ElevenDaySales / 11) >= ((salesinfo.ThirtyDaySales / 30) * 1.8)) { isException = true; } //历史活动报备异常 if ((salesinfo.ElevenDaySales / 11) * 1.6 <= (salesinfo.ThirtyDaySales / 30) || (salesinfo.ElevenDaySales / 11) * 1.6 <= (salesinfo.SixtyDaySales / 30)) { isException = true; } } //插入具体的商品采购信息记录 if (zpquantity > 0)//如果有现反赠品则添加一条采购明细记录 { DataAccessor.InsertPurchasingDetail(Guid.NewGuid(), (tempPurchasingId == Guid.Empty ? purchasingId : tempPurchasingId), sale.GoodsId, p.GoodsName, p.Units, p.GoodsCode, sale.Specification, p.CompanyId, 0, zpquantity, 0, 0, string.Empty, sale.WeightedAverageSaleQuantity / 30, zpquantity, p.StockingDays + p.ArrivalDays, isException, salesinfo.SixtyDaySales, salesinfo.ThirtyDaySales, (salesinfo.ElevenDaySales / 11), (int)PurchasingGoodsType.Gift);//赠品 } DataAccessor.InsertPurchasingDetail(Guid.NewGuid(), purchasingId, sale.GoodsId, p.GoodsName, p.Units, p.GoodsCode, sale.Specification, p.CompanyId, p.Price, purchasingQuantity, 0, 0, string.Empty, sale.WeightedAverageSaleQuantity / 30, purchasingQuantity, p.StockingDays + p.ArrivalDays, isException, salesinfo.SixtyDaySales, salesinfo.ThirtyDaySales, (salesinfo.ElevenDaySales / 11), (int)PurchasingGoodsType.NoGift);//非赠品 hasChildGoodsPurchasingInfo = true; #if debug Console.WriteLine("新增采购单成功,单据ID:{0}", purchasingId); #endif } } } } //插入采购单记录 if (hasChildGoodsPurchasingInfo && tempPurchasingId == Guid.Empty) { if (step == 3) { nextPurchasingDate.AddDays(avgStockDays * 2); } DataAccessor.InsertPurchasing(purchasingId, purchasingNo, p.CompanyId, p.CompanyName, hostingFilialeId, warehouseId, hostingFilialeId, 0, 1, DateTime.Now, DateTime.Now, "[自动报备]", Guid.Empty, nextStockDate.AddDays(p.ArrivalDays), nextPurchasingDate, isException, p.PersonResponsible); } }
// 采购中 protected void IbnPurchasing_Click(object sender, EventArgs eventArgs) { bool isHave = false; var codeManager = new CodeManager(); foreach (GridDataItem dataItem in RG_DebitNote.Items) { var purchasingId = new Guid(dataItem.GetDataKeyValue("PurchasingId").ToString()); var personResponsible = new Guid(dataItem.GetDataKeyValue("PersonResponsible").ToString()); var cbCheck = (CheckBox)dataItem.FindControl("CB_Check"); if (cbCheck.Checked) { using (var ts = new TransactionScope(TransactionScopeOption.Required)) { isHave = true; _debitNoteDao.UpdateDebitNoteStateByPurchasingId(purchasingId, (int)DebitNoteState.Purchasing); //生成采购单 DebitNoteInfo debitNoteInfo = _debitNoteDao.GetDebitNoteInfo(purchasingId) ?? new DebitNoteInfo(); IList <DebitNoteDetailInfo> debitNoteDetailList = _debitNoteDao.GetDebitNoteDetailList(purchasingId); CompanyCussentInfo companyCussentInfo = CompanyCussentList.FirstOrDefault(w => w.CompanyId == debitNoteInfo.CompanyId); //var warehouseInfo = WarehouseManager.Get(debitNoteInfo.WarehouseId); PersonnelInfo personnelInfo = PersonnelList.FirstOrDefault(w => w.PersonnelId == debitNoteInfo.PersonResponsible) ?? new PersonnelInfo(null); PurchasingInfo oldPurchasingInfo = _purchasing.GetPurchasingById(purchasingId); var realName = CurrentSession.Personnel.Get().RealName; var filialeId = string.IsNullOrWhiteSpace(debitNoteInfo.PurchasingNo) || debitNoteInfo.PurchasingNo == "-"?FilialeManager.GetHeadList().First(ent => ent.Name.Contains("可得")).ID : _purchasing.GetPurchasingList(debitNoteInfo.PurchasingNo).FilialeID; var pInfo = new PurchasingInfo { PurchasingID = Guid.NewGuid(), PurchasingNo = codeManager.GetCode(CodeType.PH), CompanyID = debitNoteInfo.CompanyId, CompanyName = companyCussentInfo == null ? "" : companyCussentInfo.CompanyName, FilialeID = filialeId, WarehouseID = debitNoteInfo.WarehouseId, PurchasingState = (int)PurchasingState.Purchasing, PurchasingType = (int)PurchasingType.Custom, StartTime = DateTime.Now, EndTime = DateTime.MaxValue, //Description = "[采购类别:{0}赠品借记单][对应采购单号" + debitNoteInfo.PurchasingNo + "]" + CurrentSession.Personnel.Get().RealName, Description = string.Format("[采购类别:{0},赠品借记单对应采购单号{1};采购人:{2}]", EnumAttribute.GetKeyName(PurchasingType.Custom), debitNoteInfo.PurchasingNo, realName), PmId = personnelInfo.PersonnelId, PmName = personnelInfo.RealName, ArrivalTime = oldPurchasingInfo.ArrivalTime, PersonResponsible = personResponsible, PurchasingFilialeId = filialeId }; IList <PurchasingDetailInfo> purchasingDetailList = new List <PurchasingDetailInfo>(); if (debitNoteDetailList.Count > 0) { List <Guid> goodsIdOrRealGoodsIdList = debitNoteDetailList.Select(w => w.GoodsId).Distinct().ToList(); Dictionary <Guid, GoodsInfo> dicGoods = _goodsCenterSao.GetGoodsBaseListByGoodsIdOrRealGoodsIdList(goodsIdOrRealGoodsIdList); if (dicGoods != null && dicGoods.Count > 0) { foreach (var debitNoteDetailInfo in debitNoteDetailList) { bool hasKey = dicGoods.ContainsKey(debitNoteDetailInfo.GoodsId); if (hasKey) { GoodsInfo goodsBaseInfo = dicGoods.FirstOrDefault(w => w.Key == debitNoteDetailInfo.GoodsId).Value; // 获取商品的60、30、11天销量 var purchasingDetailInfo = _purchasingDetail.GetChildGoodsSale(debitNoteDetailInfo.GoodsId, debitNoteInfo.WarehouseId, DateTime.Now, pInfo.PurchasingFilialeId) ?? new PurchasingDetailInfo(); var durchasingDetailInfo = new PurchasingDetailInfo { PurchasingID = pInfo.PurchasingID, PurchasingGoodsID = Guid.NewGuid(), GoodsID = debitNoteDetailInfo.GoodsId, GoodsName = debitNoteDetailInfo.GoodsName, GoodsCode = goodsBaseInfo.GoodsCode, Specification = debitNoteDetailInfo.Specification, CompanyID = pInfo.CompanyID, Price = debitNoteDetailInfo.Price, PlanQuantity = debitNoteDetailInfo.GivingCount, RealityQuantity = 0, State = 0, Description = "", Units = goodsBaseInfo.Units, PurchasingGoodsType = (int)PurchasingGoodsType.Gift, SixtyDaySales = purchasingDetailInfo.SixtyDaySales, ThirtyDaySales = purchasingDetailInfo.ThirtyDaySales, ElevenDaySales = purchasingDetailInfo.ElevenDaySales == 0 ? 0 : purchasingDetailInfo.ElevenDaySales, // 11 //日均销量(11天) CPrice = debitNoteDetailInfo.Price }; purchasingDetailList.Add(durchasingDetailInfo); } } } } if (purchasingDetailList.Count > 0) { _debitNoteDao.UpdateDebitNoteNewPurchasingIdByPurchasingId(purchasingId, pInfo.PurchasingID); _purchasing.PurchasingInsert(pInfo); _purchasing.PurchasingUpdateIsOut(pInfo.PurchasingID); //报备管理生成采购单操作记录添加 WebControl.AddOperationLog(personnelInfo.PersonnelId, personnelInfo.RealName, pInfo.PurchasingID, pInfo.PurchasingNo, OperationPoint.ReportManage.DebitToAddPurchasingList.GetBusinessInfo(), string.Empty); var purchasingDetailManager = new PurchasingDetailManager(_purchasingDetail, _purchasing); purchasingDetailManager.Save(purchasingDetailList); } ts.Complete(); } } } if (isHave == false) { RAM.Alert("未勾选借记单!"); } else { RAM.ResponseScripts.Add("setTimeout(function(){ refreshGrid(); }, " + GlobalConfig.PageAutoRefreshDelayTime + ");"); } }
private static void PurchasingPromotion(Dictionary <PurchasingInfo, List <PurchasingDetailInfo> > dictPurchase, Dictionary <Guid, GoodsInfo> dicGoods, IList <PurchasingGoods> pg) { if (dictPurchase.Count > 0) { //IList<PurchaseSetInfo> purchaseSetList = _purchaseSetBll.GetPurchaseSetList(); foreach (KeyValuePair <PurchasingInfo, List <PurchasingDetailInfo> > keyValuePair in dictPurchase) { keyValuePair.Key.PurchasingNo = DataAccessor.GetCode(BaseInfo.CodeType.PH); var pInfo = keyValuePair.Key; IList <PurchasingDetailInfo> plist = keyValuePair.Value; //pInfo.IsOut = true; _purchasing.PurchasingInsert(pInfo); //非赠品采购商品 IList <PurchasingDetailInfo> plist2 = plist.Where(w => w.PurchasingGoodsType != (int)PurchasingGoodsType.Gift).ToList(); #region [现返] //如果赠送方式为总数量赠送时使用 key 主商品ID value 额外赠送 var dics = new Dictionary <string, int>(); //需赠送 var debitExtraDics = new Dictionary <string, int>(); //借计单已送 var addDetailsList = new List <PurchasingDetailInfo>(); //添加赠品 //处理原理: //赠品数量=原采购数量/(买几个+送几个)*送几个 //购买数量=原采购数量-赠品数量 foreach (var pdInfo in plist2) { var goodsBaseInfo = new GoodsInfo(); if (dicGoods != null) { bool hasKey = dicGoods.ContainsKey(pdInfo.GoodsID); if (hasKey) { goodsBaseInfo = dicGoods.FirstOrDefault(w => w.Key == pdInfo.GoodsID).Value; } } PurchasingGoods purchaseSetInfo = pg.FirstOrDefault(w => w.GoodsId == goodsBaseInfo.GoodsId && w.WarehouseId == pInfo.WarehouseID); if (purchaseSetInfo == null) { continue; } IList <PurchasePromotionInfo> ppList = _purchasePromotionBll.GetPurchasePromotionList(purchaseSetInfo.PromotionId, purchaseSetInfo.GoodsId, purchaseSetInfo.WarehouseId, pInfo.PurchasingFilialeId, (int)PurchasePromotionType.Back); PurchasePromotionInfo ppInfo = ppList.FirstOrDefault(w => w.GivingCount > 0 && w.StartDate <= DateTime.Now && w.EndDate >= DateTime.Now); if (ppInfo != null) { #region 新增 if (!ppInfo.IsSingle) //按商品总数量进行赠送 { if (!dics.ContainsKey(goodsBaseInfo.GoodsName)) { var dataList = plist2.Where(act => act.GoodsName == goodsBaseInfo.GoodsName).OrderByDescending(act => act.PlanQuantity).ToList(); //余数 var extra = dataList.Sum(act => Convert.ToInt32(act.PlanQuantity)) % (ppInfo.BuyCount + ppInfo.GivingCount); if (extra == ppInfo.BuyCount) { dataList[0].PlanQuantity += ppInfo.GivingCount; } else { //应赠送次数 int actquantity = extra % (ppInfo.BuyCount + ppInfo.GivingCount); if (actquantity >= (ppInfo.BuyCount / float.Parse("2.0"))) { dataList[0].PlanQuantity = dataList[0].PlanQuantity + (ppInfo.BuyCount + ppInfo.GivingCount) - actquantity; } } //总商品赠送商品总数 var sumTotal = dataList.Sum(act => Convert.ToInt32(act.PlanQuantity)) / (ppInfo.BuyCount + ppInfo.GivingCount); dics.Add(goodsBaseInfo.GoodsName, sumTotal); if (dics[goodsBaseInfo.GoodsName] > 0) { foreach (var item in dataList.OrderByDescending(act => act.PlanQuantity)) { var count = dics[item.GoodsName] - Convert.ToInt32(item.PlanQuantity); if (count > 0) //赠品数>购买数 { item.Price = 0; item.PurchasingGoodsType = (int)PurchasingGoodsType.Gift; item.RealityQuantity = 0; dics[item.GoodsName] = count; } else if (count < 0) { addDetailsList.Add(new PurchasingDetailInfo { PurchasingGoodsID = Guid.NewGuid(), PurchasingID = item.PurchasingID, GoodsID = item.GoodsID, GoodsName = item.GoodsName, GoodsCode = item.GoodsCode, Specification = item.Specification, CompanyID = item.CompanyID, Price = 0, PlanQuantity = dics[item.GoodsName], PurchasingGoodsType = (int)PurchasingGoodsType.Gift, RealityQuantity = 0, State = item.State, Description = "", Units = item.Units, SixtyDaySales = item.SixtyDaySales, ThirtyDaySales = item.ThirtyDaySales, ElevenDaySales = item.ElevenDaySales, CPrice = 0 }); item.RealityQuantity = 0; item.PlanQuantity = Math.Abs(count); dics[item.GoodsName] = 0; } else { item.Price = 0; item.PurchasingGoodsType = (int)PurchasingGoodsType.Gift; item.RealityQuantity = 0; item.CPrice = 0; dics[item.GoodsName] = 0; } if (dics[item.GoodsName] == 0) { break; } } } } } else //按单光度 { //应赠余数 var actquantity = pdInfo.PlanQuantity % (ppInfo.BuyCount + ppInfo.GivingCount); if (actquantity > 0) { if (actquantity >= ((ppInfo.BuyCount + ppInfo.GivingCount) / float.Parse("2.0"))) { pdInfo.PlanQuantity = pdInfo.PlanQuantity + (ppInfo.BuyCount + ppInfo.GivingCount) - actquantity; } } int pQuantity = int.Parse(pdInfo.PlanQuantity.ToString(CultureInfo.InvariantCulture)); //赠品数量=原采购数量/(买几个+送几个)*送几个 int quantity = pQuantity / (ppInfo.BuyCount + ppInfo.GivingCount) * ppInfo.GivingCount; if (quantity > 0) { var oldPurchasingDetailInfo = plist.FirstOrDefault(w => w.PurchasingGoodsID == pdInfo.PurchasingGoodsID); if (oldPurchasingDetailInfo != null) { //购买数量=原采购数量-赠品数量 oldPurchasingDetailInfo.PlanQuantity -= (quantity); } var purchasingDetailInfo = plist.FirstOrDefault(w => w.GoodsID == pdInfo.GoodsID && w.PurchasingGoodsType == (int)PurchasingGoodsType.Gift); if (purchasingDetailInfo != null) { //在原赠品数量累加 purchasingDetailInfo.PlanQuantity += (quantity); } else { purchasingDetailInfo = new PurchasingDetailInfo { PurchasingGoodsID = Guid.NewGuid(), PurchasingID = pInfo.PurchasingID, GoodsID = pdInfo.GoodsID, GoodsName = pdInfo.GoodsName, GoodsCode = pdInfo.GoodsCode, Specification = pdInfo.Specification, CompanyID = pdInfo.CompanyID, Price = 0, PlanQuantity = (quantity), PurchasingGoodsType = (int)PurchasingGoodsType.Gift, RealityQuantity = 0, State = 0, Description = "", Units = pdInfo.Units, SixtyDaySales = pdInfo.SixtyDaySales, ThirtyDaySales = pdInfo.ThirtyDaySales, ElevenDaySales = pdInfo.ElevenDaySales }; addDetailsList.Add(purchasingDetailInfo); } } } #endregion } } #endregion #region [非现返生成借记单] var debitNoteDetailList = new List <DebitNoteDetailInfo>(); foreach (var pdInfo in plist2) { var goodsBaseInfo = new GoodsInfo(); if (dicGoods != null) { bool hasKey = dicGoods.ContainsKey(pdInfo.GoodsID); if (hasKey) { goodsBaseInfo = dicGoods.FirstOrDefault(w => w.Key == pdInfo.GoodsID).Value; } } PurchasingGoods purchaseSetInfo = pg.FirstOrDefault(w => w.GoodsId == goodsBaseInfo.GoodsId && w.WarehouseId == pInfo.WarehouseID); if (purchaseSetInfo != null) { IList <PurchasePromotionInfo> ppList = _purchasePromotionBll.GetPurchasePromotionList(purchaseSetInfo.PromotionId, purchaseSetInfo.GoodsId, purchaseSetInfo.WarehouseId, pInfo.PurchasingFilialeId, (int)PurchasePromotionType.NoBack); PurchasePromotionInfo ppInfo = ppList.FirstOrDefault(w => w.GivingCount > 0 && w.StartDate <= DateTime.Now && w.EndDate >= DateTime.Now); if (ppInfo != null) { int pQuantity = Convert.ToInt32(pdInfo.PlanQuantity); //赠品数量=原采购数量/买几个*送几个 #region 新增 //按商品总数量进行赠送 if (!ppInfo.IsSingle && dicGoods != null) { if (!dics.ContainsKey(goodsBaseInfo.GoodsName)) { var dataList = plist2.Where(act => act.GoodsName == goodsBaseInfo.GoodsName).ToList(); //单光度赠送商品总数 var total = dataList.Sum(act => (Convert.ToInt32(act.PlanQuantity) / (ppInfo.BuyCount + ppInfo.GivingCount))); //总商品赠送商品总数 var sumTotal = dataList.Sum(act => Convert.ToInt32(act.PlanQuantity)) / (ppInfo.BuyCount + ppInfo.GivingCount); if (sumTotal > total) { dics.Add(goodsBaseInfo.GoodsName, sumTotal); } } } #endregion int quantity = pQuantity / ppInfo.BuyCount * ppInfo.GivingCount; if (quantity > 0) { var debitNoteDetailInfo = new DebitNoteDetailInfo { PurchasingId = pInfo.PurchasingID, GoodsId = pdInfo.GoodsID, GoodsName = pdInfo.GoodsName, Specification = pdInfo.Specification, GivingCount = quantity, ArrivalCount = 0, Price = pdInfo.Price, State = 0, Amount = quantity * pdInfo.Price, Memo = "", Id = Guid.NewGuid() }; debitNoteDetailList.Add(debitNoteDetailInfo); } } } } if (addDetailsList.Count > 0) { foreach (var purchasingDetailInfo in addDetailsList) { purchasingDetailInfo.Price = 0; plist.Add(purchasingDetailInfo); } } #endregion #region 处理额外赠送商品 foreach (var dic in dics) { KeyValuePair <string, int> dic1 = dic; if (debitExtraDics.ContainsKey(dic.Key)) { var total = dic1.Value - debitExtraDics[dic.Key]; if (total > 0) { var data = debitNoteDetailList.Where(act => act.GoodsName == dic1.Key).OrderByDescending(act => act.GivingCount).ToList(); for (int i = 0; i < total; i++) { data[i].GivingCount += 1; data[i].Amount = data[i].Price * data[i].GivingCount; } } } } #endregion foreach (var item in plist.Where(act => act.Price == 0 && act.PurchasingGoodsType != (int)PurchasingGoodsType.Gift)) { var info = plist.FirstOrDefault(act => act.GoodsName == item.GoodsName && act.Price > 0); item.Price = info != null ? info.Price : 0; } //保存采购单明细 _purchasingDetailBll.Save(plist); //添加借记单 if (debitNoteDetailList.Count > 0) { var debitNoteInfo = new DebitNoteInfo { PurchasingId = pInfo.PurchasingID, PurchaseGroupId = pInfo.PurchaseGroupId, PurchasingNo = pInfo.PurchasingNo, CompanyId = pInfo.CompanyID, PresentAmount = debitNoteDetailList.Sum(w => w.Amount), CreateDate = DateTime.Now, FinishDate = DateTime.MinValue, State = (int)DebitNoteState.ToPurchase, WarehouseId = pInfo.WarehouseID, Memo = "", PersonResponsible = pInfo.PersonResponsible, NewPurchasingId = Guid.Empty }; _debitNoteBll.AddPurchaseSetAndDetail(debitNoteInfo, debitNoteDetailList); } } if (dicGoods != null && dicGoods.Count > 0) { var completeGoodsIds = dicGoods.Select(keyValuePair => keyValuePair.Value.GoodsId).ToList(); foreach (var item in pg.Where(ent => completeGoodsIds.Contains(ent.GoodsId))) { DataAccessor.UpdateLastPurchasingDate(item.WarehouseId, item.HostingFilialeId, item.GoodsId, DateTime.Now); } } } }
protected void rptList_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e) { bool flag = false; OrderInfo orderInfo = OrderHelper.GetOrderInfo(e.CommandArgument.ToString()); if (orderInfo != null) { if (e.CommandName == "CONFIRM_PAY" && orderInfo.CheckAction(OrderActions.SELLER_CONFIRM_PAY)) { int num = 0; int num2 = 0; int arg_49_0 = orderInfo.GroupBuyId; if (OrderHelper.ConfirmPay(orderInfo)) { DebitNoteInfo debitNoteInfo = new DebitNoteInfo(); debitNoteInfo.NoteId = Globals.GetGenerateId(); debitNoteInfo.OrderId = e.CommandArgument.ToString(); debitNoteInfo.Operator = ManagerHelper.GetCurrentManager().UserName; debitNoteInfo.Remark = "后台" + debitNoteInfo.Operator + "收款成功"; OrderHelper.SaveDebitNote(debitNoteInfo); if (orderInfo.GroupBuyId > 0) { int arg_BE_0 = num + num2; } this.BindOrders(); orderInfo.OnPayment(); this.ShowMsg("成功的确认了订单收款", true); return; } this.ShowMsg("确认订单收款失败", false); return; } else if (e.CommandName == "FINISH_TRADE" && orderInfo.CheckAction(OrderActions.SELLER_FINISH_TRADE)) { System.Collections.Generic.Dictionary <string, LineItemInfo> lineItems = orderInfo.LineItems; LineItemInfo lineItemInfo = new LineItemInfo(); foreach (System.Collections.Generic.KeyValuePair <string, LineItemInfo> current in lineItems) { lineItemInfo = current.Value; if (lineItemInfo.OrderItemsStatus == OrderStatus.ApplyForRefund || lineItemInfo.OrderItemsStatus == OrderStatus.ApplyForReturns) { flag = true; } } if (!flag) { if (OrderHelper.ConfirmOrderFinish(orderInfo)) { this.BindOrders(); this.myNotifier.updateAction = UpdateAction.OrderUpdate; this.myNotifier.actionDesc = "订单已完成"; if (orderInfo.PayDate.HasValue) { this.myNotifier.RecDateUpdate = orderInfo.PayDate.Value; } else { this.myNotifier.RecDateUpdate = System.DateTime.Today; } this.myNotifier.DataUpdated += new StatisticNotifier.DataUpdatedEventHandler(this.myEvent.Update); this.myNotifier.UpdateDB(); this.ShowMsg("成功的完成了该订单", true); return; } this.ShowMsg("完成订单失败", false); return; } else { this.ShowMsg("订单中商品有退货(款)不允许完成!", false); } } } }
protected void rptList_ItemCommand(object source, RepeaterCommandEventArgs e) { bool flag = false; OrderInfo orderInfo = OrderHelper.GetOrderInfo(e.CommandArgument.ToString()); if (orderInfo != null) { if ((e.CommandName == "CONFIRM_PAY") && orderInfo.CheckAction(OrderActions.SELLER_CONFIRM_PAY)) { int num2 = 0; int num3 = 0; int groupBuyId = orderInfo.GroupBuyId; if (OrderHelper.ConfirmPay(orderInfo)) { DebitNoteInfo info2; info2 = new DebitNoteInfo { NoteId = Globals.GetGenerateId(), OrderId = e.CommandArgument.ToString(), Operator = ManagerHelper.GetCurrentManager().UserName, Remark = "后台" + ManagerHelper.GetCurrentManager().UserName + "收款成功" }; OrderHelper.SaveDebitNote(info2); if (orderInfo.GroupBuyId > 0) { int num6 = num2 + num3; } this.BindOrders(); orderInfo.OnPayment(); this.ShowMsg("成功的确认了订单收款", true); } else { this.ShowMsg("确认订单收款失败", false); } } else if ((e.CommandName == "FINISH_TRADE") && orderInfo.CheckAction(OrderActions.SELLER_FINISH_TRADE)) { Dictionary <string, LineItemInfo> lineItems = orderInfo.LineItems; LineItemInfo info3 = new LineItemInfo(); foreach (KeyValuePair <string, LineItemInfo> pair in lineItems) { info3 = pair.Value; if ((info3.OrderItemsStatus == OrderStatus.ApplyForRefund) || (info3.OrderItemsStatus == OrderStatus.ApplyForReturns)) { flag = true; } } if (!flag) { if (OrderHelper.ConfirmOrderFinish(orderInfo)) { this.BindOrders(); DistributorsBrower.UpdateCalculationCommission(orderInfo); foreach (LineItemInfo info4 in orderInfo.LineItems.Values) { if (info4.OrderItemsStatus.ToString() == OrderStatus.SellerAlreadySent.ToString()) { RefundHelper.UpdateOrderGoodStatu(orderInfo.OrderId, info4.SkuId, 5); } } this.myNotifier.updateAction = UpdateAction.OrderUpdate; this.myNotifier.actionDesc = "订单已完成"; if (orderInfo.PayDate.HasValue) { this.myNotifier.RecDateUpdate = orderInfo.PayDate.Value; } else { this.myNotifier.RecDateUpdate = DateTime.Today; } this.ShowMsg("成功的完成了该订单", true); } else { this.ShowMsg("完成订单失败", false); } } else { this.ShowMsg("订单中商品有退货(款)不允许完成!", false); } } else if (e.CommandName == "delete") { string str = e.CommandArgument.ToString(); int num4 = OrderHelper.RealDeleteOrders("'" + str.Replace(",", "','") + "'"); this.BindOrders(); this.ShowMsg(string.Format("成功删除了{0}个订单", num4), true); } else if (e.CommandName == "restore") { string str2 = e.CommandArgument.ToString(); int num5 = OrderHelper.RestoreOrders("'" + str2.Replace(",", "','") + "'"); this.BindOrders(); this.ShowMsg(string.Format("成功还原了订单", num5), true); } } }