private void hlkb_SOElectronicCard_Caculater_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(txtOriginalPrice.Text) || string.IsNullOrEmpty(txtQuantity.Text) || string.IsNullOrEmpty(txtPrice.Text)) { CPApplication.Current.CurrentPage.Context.Window.Alert(ResSOMaintain.Info_ElectronicCard_Error, MessageType.Error); } else { try { decimal OriginalPrice = Convert.ToDecimal(txtOriginalPrice.Text); int Quantity = Convert.ToInt32(txtQuantity.Text); decimal Price = Convert.ToDecimal(txtPrice.Text); SOItemInfoVM soItemInfoVM = new SOItemInfoVM(); soItemInfoVM.OriginalPrice = OriginalPrice; soItemInfoVM.Quantity = Quantity; soItemInfoVM.Price = Price; soItemInfoVM.ProductType = ECCentral.BizEntity.SO.SOProductType.Product; if (OriginalPrice < Price) { CPApplication.Current.CurrentPage.Context.Window.Alert(ResSOMaintain.Info_ElectronicCard_Price_Error, MessageType.Error); } else if (soItemInfoVM.Quantity < 0 || soItemInfoVM.Price < 0) { CPApplication.Current.CurrentPage.Context.Window.Alert(ResSOMaintain.Info_ElectronicCard_Price_Value_Error, MessageType.Error); } else { decimal TotalAmount = (decimal)(soItemInfoVM.Quantity * soItemInfoVM.OriginalPrice); decimal TotalReceiveAmount = (decimal)(soItemInfoVM.Quantity * soItemInfoVM.Price); //总面额 txtTotalAmount.Text = TotalAmount.ToString(); //总数量 txtTotalQuantity.Text = soItemInfoVM.Quantity.ToString(); //应付金额 txtReceiveAmount.Text = TotalReceiveAmount.ToString(); decimal DiscountRate = Math.Abs((decimal)(TotalAmount - TotalReceiveAmount) / TotalAmount) * 100; txtDiscountRate.Text = Math.Round(DiscountRate, 2) + "%"; soItemInfoVM.PromotionAmount = -(TotalAmount - TotalReceiveAmount); soItemInfoVM.Price = soItemInfoVM.OriginalPrice; soItemInfoVM.OnlineQty = 99999; soItemInfoVM.AvailableQty = 99999; ECCentral.Portal.Basic.Utilities.AppSettingHelper.GetSetting(ConstValue.DomainName_SO, ConstValue.SOElectronicCard_ProductID, (obj, args) => { if (!string.IsNullOrEmpty(args.Result)) { soItemInfoVM.ProductID = args.Result; } }); ECCentral.Portal.Basic.Utilities.AppSettingHelper.GetSetting(ConstValue.DomainName_SO, ConstValue.SOElectronicCard_ProductName, (obj, args) => { if (!string.IsNullOrEmpty(args.Result)) { soItemInfoVM.ProductName = args.Result; } }); ECCentral.Portal.Basic.Utilities.AppSettingHelper.GetSetting(ConstValue.DomainName_IM, ConstValue.IM_ElectronicCard_ProductSysNo_Key, (obj, args) => { int pSysNo = 0; if (int.TryParse(args.Result, out pSysNo)) { soItemInfoVM.ProductSysNo = pSysNo; } SelectedItemInfo = new List <SOItemInfoVM>(); SelectedItemInfo.Add(soItemInfoVM); }); } } catch (Exception) { CPApplication.Current.CurrentPage.Context.Window.Alert(ResSOMaintain.Info_ElectronicCard_Price_Format_Error, MessageType.Information); } } }
/// <summary> /// 添加赠品订单 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAddGiftSO_Click(object sender, RoutedEventArgs e) { if (giftList != null && giftList.Count > 0) { SOVM giftSOVM = new SOVM(); giftSOVM.BaseInfoVM.SOType = SOType.Gift; giftSOVM.BaseInfoVM.Memo = txtAddGiftNote.Text; giftSOVM.BaseInfoVM.CustomerChannel = CurrentSOVM.BaseInfoVM.CustomerChannel; giftSOVM.BaseInfoVM.CustomerSysNo = CurrentSOVM.BaseInfoVM.CustomerSysNo; SOItemInfoVM soItem = null; foreach (dynamic g in dataGridGift.ItemsSource) { if (g.IsChecked) { soItem = giftSOVM.ItemsVM.FirstOrDefault(item => item.ProductSysNo == g.ProductSysNo); if (soItem == null) { soItem = new SOItemInfoVM { Quantity = 1, Price = 0, ProductSysNo = g.ProductSysNo, ProductType = 0, OriginalPrice = 0, MasterProductSysNo = g.MasterProductSysNo.ToString() }; giftSOVM.ItemsVM.Add(soItem); } else { soItem.Quantity += 1; } } } if (giftSOVM.ItemsVM.Count > 0) { string errMsg = string.Empty; #region 原订单中是否已经存在赠品 List <string> existsGifts = new List <string>(); foreach (var gift in giftSOVM.ItemsVM) { if (CurrentSOVM.ItemsVM.FirstOrDefault(x => { return(x.ProductSysNo == gift.ProductSysNo); }) != null) { existsGifts.Add(gift.ProductID); } } if (existsGifts.Count > 0) { errMsg = string.Format(ResSO.Msg_ConfirmCreateRepeatGiftSOOrder, string.Join(",", existsGifts.ToArray())); } #endregion #region 订单是否创建过赠品单 SOLogQueryFilter query = new SOLogQueryFilter(); query.SOSysNo = SOSysNo; query.PagingInfo = new PagingInfo() { PageSize = int.MaxValue, PageIndex = 0, SortBy = "SO_Log.OptTime DESC" }; SOQueryFacade facade = new SOQueryFacade(); facade.QuerySOSystemLog(query, (obj, args) => { if (args.FaultsHandle()) { return; } foreach (var item in args.Result.Rows) { //note需要特殊处理 if ((BizLogType)item["OptType"] == BizLogType.Sale_SO_CreateGiftSO) { errMsg += string.Format(ResSO.Msg_ConfirmCreateRepeatSOGiftOrder , item["OptTime"] , item["Note"]); break; } } if (errMsg.Length > 0) { Window.Confirm(errMsg, (giftCreaterSender, giftCreaterArgs) => { if (giftCreaterArgs.DialogResult == DialogResultType.OK) { ConfirmCreateGiftSO(giftSOVM); } }); } else { ConfirmCreateGiftSO(giftSOVM); } }); #endregion } else { Page.Context.Window.Alert(ResSO.Info_GiftSO_ItemIsNull); } } else { Page.Context.Window.Alert(ResSO.Info_GiftSO_ItemIsNull); } }