Example #1
0
        public override void OnNavigatedTo(INavigationParameters parameters)
        {
            base.OnNavigatedTo(parameters);

            //获取选择的商品回传
            if (parameters.ContainsKey("Products"))
            {
                parameters.TryGetValue <List <ProductModel> >("Products", out List <ProductModel> products);

                //默认条件
                int pId   = 0;
                int pTId  = 0;
                var pArry = Settings.DefaultPricePlan.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries).Select(p => int.Parse(p)).ToList();
                if (pArry.Count > 0)
                {
                    pId  = pArry[0];
                    pTId = pArry[1];
                }

                products.ForEach(async product =>
                {
                    var sprice = product.SmallProductPrices;
                    var bprice = product.BigProductPrices;

                    //默认进价
                    if (sprice != null)
                    {
                        product.SmallPriceUnit.Price = sprice.PurchasePrice ?? 0;
                    }
                    if (bprice != null)
                    {
                        product.BigPriceUnit.Price = bprice.PurchasePrice ?? 0;
                    }

                    //上次进价
                    if (JsonConvert.DeserializeObject <CompanySettingModel>(Settings.CompanySetting).DefaultPurchasePrice == 0)
                    {
                        var lastprices = await _purchaseBillService.AsyncPurchaseItemByProductIdForAsync(product.ProductId, false);
                        if (lastprices != null && lastprices.Count > 0)
                        {
                            if (lastprices.Count(l => l.UnitId == product.BigUnitId) > 0)
                            {
                                product.BigPriceUnit.Price = lastprices.FirstOrDefault(l => l.UnitId == (product.BigUnitId ?? 0))?.Price ?? 0;
                            }

                            if (lastprices.Count(l => l.UnitId == product.SmallUnitId) > 0)
                            {
                                product.SmallPriceUnit.Price = lastprices.FirstOrDefault(l => l.UnitId == (product.SmallUnitId ?? 0))?.Price ?? 0;
                            }
                        }
                    }
                    else //预设进价
                    {
                        product.BigPriceUnit.Price   = product.BigProductPrices.TradePrice ?? 0;
                        product.SmallPriceUnit.Price = product.SmallProductPrices.TradePrice ?? 0;
                    }
                });

                ProductSeries = new ObservableCollection <ProductModel>(products);
            }
        }