void SplitInvoice_Loaded(object sender, RoutedEventArgs e) { SOQueryFacade = new SOQueryFacade(Page); SOFacade = new SOFacade(Page); int totalQty = 0; //need reload sovm SOQueryFacade.QuerySOInfo(m_soSysNo, vm => { if (vm == null) { Window.Alert(ResSO.Info_SOIsNotExist, ResSO.Info_SOIsNotExist, MessageType.Warning, (obj, args) => { Window.Close(); }); return; } m_soVM = vm; m_soVM.ItemsVM.ForEach(soItem => { if (soItem.ProductType != SOProductType.Coupon) { if (soItem.ProductType != SOProductType.ExtendWarranty) { totalQty += soItem.Quantity.Value; } InvoiceProductVM invoiceProductVM = new InvoiceProductVM { InvoiceNo = 1, Price = soItem.Price.Value, ProductID = soItem.ProductID, ProductName = soItem.ProductName, ProductSysNo = soItem.ProductSysNo.Value, Quantity = soItem.Quantity.Value, StockSysNo = soItem.StockSysNo, InvoiceQuantity = soItem.Quantity.Value, IsExtendWarrantyItem = soItem.ProductType == SOProductType.ExtendWarranty }; string[] mpSysNo = null; if (soItem.MasterProductSysNo != null) { mpSysNo = soItem.MasterProductSysNo.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); } if (mpSysNo != null) { invoiceProductVM.MasterProductSysNo = invoiceProductVM.MasterProductSysNo ?? new List <int>(); mpSysNo.ForEach(n => { int no; if (int.TryParse(n, out no)) { invoiceProductVM.MasterProductSysNo.Add(no); } }); } PageView.OriginalProductList.Add(invoiceProductVM); } }); SOFacade.GetSOInvoiceList(m_soSysNo, PageView.OriginalProductList, (isSplited, invoiceList) => { if (isSplited) { PageView.SplitedProductList = invoiceList; btnSave.IsEnabled = false; btnCancelSplit.IsEnabled = true; } else { PageView.SplitedProductList = PageView.OriginalProductList.DeepCopy(); ECCentral.BizEntity.SO.SOStatus soStatus = m_soVM.BaseInfoVM.Status.Value; btnSave.IsEnabled = totalQty > 1 && (soStatus == ECCentral.BizEntity.SO.SOStatus.Origin || soStatus == ECCentral.BizEntity.SO.SOStatus.WaitingOutStock || soStatus == ECCentral.BizEntity.SO.SOStatus.Shipping); btnCancelSplit.IsEnabled = false; } btnGroupSort.IsEnabled = btnSave.IsEnabled; SortInvoice(); }); }); }