Beispiel #1
0
 public PurchaseOrderCheckReasonDetail(PurchaseOrderInfoVM vm, bool isEdit)
 {
     InitializeComponent();
     infoVM       = new PurchaseOrderInfoVM();
     infoVM       = vm;
     this.isEdit  = isEdit;
     this.Loaded += new RoutedEventHandler(PurchaseOrderCheckReasonDetail_Loaded);
 }
Beispiel #2
0
        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);
                    }
                });
            }
        }