public PurchaseOrderCheckReasonDetail(PurchaseOrderInfoVM vm, bool isEdit) { InitializeComponent(); infoVM = new PurchaseOrderInfoVM(); infoVM = vm; this.isEdit = isEdit; this.Loaded += new RoutedEventHandler(PurchaseOrderCheckReasonDetail_Loaded); }
private void btnCreatePO_Click(object sender, RoutedEventArgs e) { #region [验证] if (!ValidationManager.Validate(this.LayoutRoot)) { return; } #endregion this.spBasicInfo.Visibility = this.gridFailedInfo.Visibility = System.Windows.Visibility.Collapsed; //创建PO单: int totalCheckCount = 0; if (!CheckHasSelectedItem(out totalCheckCount)) { return; } if (totalCheckCount > 80) { Window.Alert(ResBasketQuery.ErrorMsg_ProductsMaxCount); return; } if (null != QueryResultGrid.ItemsSource) { List <BasketItemsInfoVM> vmList = this.QueryResultGrid.ItemsSource as List <BasketItemsInfoVM>; vmList = vmList.Where(x => x.IsChecked).ToList(); #region Check操作 //供应商必须有 if (vmList.FirstOrDefault(p => !p.VendorSysNo.HasValue) != null) { Window.Alert(ResBasketQuery.ErrorMsg_NotVendor); return; } //中转必须一致 if (vmList.GroupBy(p => p.IsTransfer).Count() > 1) { Window.Alert(ResBasketQuery.ErrorMsg_IsNotTransfer); return; } //目标仓库 if (vmList.GroupBy(p => p.StockSysNo).Count() > 1) { Window.Alert(ResBasketQuery.ErrorMsg_IsNotStock); return; } //是否代销必须一致 if (vmList.GroupBy(p => p.IsConsign).Count() > 1) { Window.Alert(ResBasketQuery.ErrorMsg_IsNotConsign); return; } //是否同一供应商 if (vmList.GroupBy(p => p.VendorSysNo).Count() > 1) { Window.Alert(ResBasketQuery.ErrorMsg_IsNotVendor); return; } //是否同一PM if (vmList.GroupBy(p => p.PMSysNo).Count() > 1) { Window.Alert(ResBasketQuery.ErrorMsg_IsNotPM); return; } string errorMsg = string.Empty; foreach (BasketItemsInfoVM obj in vmList) { //检查PM 信息 if (!obj.PMSysNo.HasValue) { errorMsg += string.Format(ResBasketQuery.ErrorMsg_PMInfoNotExist, obj.ProductSysNo); break; } //检查产品是否已经存在: if (vmList.Where(x => x.ProductSysNo == obj.ProductSysNo && x.ItemSysNo != obj.ItemSysNo).ToList().Count > 0) { errorMsg += string.Format(ResBasketQuery.ErrorMsg_ProductExist, obj.ProductSysNo); break; } } if (!string.IsNullOrEmpty(errorMsg)) { Window.Alert(errorMsg); return; } #endregion Window.Confirm(ResBasketQuery.ConfirmMsg_AddProduct, (obj, args) => { if (args.DialogResult == DialogResultType.OK) { //构建新的PurchaseOrderInfo: PurchaseOrderInfoVM newPOInfoVM = new PurchaseOrderInfoVM(); newPOInfoVM.PurchaseOrderBasicInfo.CurrencyCode = "1"; newPOInfoVM.PurchaseOrderBasicInfo.TaxRate = ((decimal)PurchaseOrderTaxRate.Percent017) / 100; newPOInfoVM.PurchaseOrderBasicInfo.TaxRateType = PurchaseOrderTaxRate.Percent017; var isTransfer = vmList[0].IsTransfer == YNStatus.Yes; if (isTransfer) { newPOInfoVM.PurchaseOrderBasicInfo.StockSysNo = 50; newPOInfoVM.PurchaseOrderBasicInfo.ITStockSysNo = vmList[0].StockSysNo; } else { newPOInfoVM.PurchaseOrderBasicInfo.StockSysNo = vmList[0].StockSysNo; } newPOInfoVM.PurchaseOrderBasicInfo.ConsignFlag = PurchaseOrderConsignFlag.UnConsign;//不代销 newPOInfoVM.PurchaseOrderBasicInfo.SettleCompanySysNo = 3201; newPOInfoVM.PurchaseOrderBasicInfo.SettleCompanyName = ResBasketQuery.Label_DefaultSettleCompany; newPOInfoVM.PurchaseOrderBasicInfo.PurchaseOrderType = PurchaseOrderType.Normal; newPOInfoVM.PurchaseOrderBasicInfo.CurrencyCode = "1"; newPOInfoVM.PurchaseOrderBasicInfo.CurrencySymbol = "¥"; //送货类型默认为“厂方直送”: newPOInfoVM.PurchaseOrderBasicInfo.ShippingTypeSysNo = "12"; int?getVendorSysNo = null; int selectIndex = 0; newPOInfoVM.POItems = new List <PurchaseOrderItemInfoVM>(); foreach (BasketItemsInfoVM item in vmList) { PurchaseOrderItemInfoVM itemVM = new PurchaseOrderItemInfoVM() { CurrencyCode = newPOInfoVM.PurchaseOrderBasicInfo.CurrencyCode.ToNullableToInteger(), OrderPrice = item.OrderPrice, ProductSysNo = item.ProductSysNo, Quantity = string.IsNullOrEmpty(item.Quantity) ? 0 : Convert.ToInt32(item.Quantity), ItemSysNo = item.ItemSysNo, ReadyQuantity = item.ReadyQuantity }; newPOInfoVM.POItems.Add(itemVM); if (0 == selectIndex) { getVendorSysNo = item.VendorSysNo; } selectIndex++; newPOInfoVM.PurchaseOrderBasicInfo.PMSysNo = item.PMSysNo.Value.ToString(); } //供应商信息: newPOInfoVM.VendorInfo = new VendorInfoVM(); newPOInfoVM.VendorInfo.SysNo = getVendorSysNo; Window.Navigate("/ECCentral.Portal.UI.PO/PurchaseOrderNew", newPOInfoVM, true); } }); } }