Beispiel #1
0
        /// <summary>
        /// 根据复杂折扣方案更新商品档案和库存价格
        /// </summary>
        /// <param name="discount"></param>
        private OperationResult UpdatePriceOfMulti(ProductDiscount discount)
        {
            #region
            OperationResult resul     = new OperationResult(OperationResultType.Error);
            var             _brandIds = discount.Brands.Select(c => JToken.Parse(c.Id.ToString())).ToArray();

            JArray brandIds = new JArray(_brandIds);

            FilterGroup fg = new FilterGroup(FilterOperate.And);

            if (brandIds.Any())
            {
                fg.Rules.Add(new FilterRule("BrandId", brandIds, FilterOperate.In));
            }

            #endregion

            var exp      = FilterHelper.GetExpression <Product>(fg);
            var products = _productContract.Products.Where(exp);

            products.Each(c => {
                c.ProductOriginNumber.PurchasePrice  = c.ProductOriginNumber.TagPrice;
                c.ProductOriginNumber.WholesalePrice = c.ProductOriginNumber.TagPrice;
                c.ProductOperationLogs.Add(new ProductOperationLog()
                {
                    Description = "根据折扣方案调整商品价格,折扣方案ID:" + discount.Id,
                    OperatorId  = AuthorityHelper.OperatorId,
                });
            });
            var productids = products.Select(c => c.Id).ToList();
            //在更新商品价格时,已销售的商品部更新
            var invents =
                _invenrtoryContract.Inventorys.Where(
                    c =>
                    productids.Contains(c.ProductId) && c.IsEnabled && !c.IsDeleted &&
                    c.Status == (int)InventoryStatus.Default);

            //invents.Each(c => {
            //    c.WholesalePrice = c.WholesalePrice * discount.WholesaleDiscount / 10;
            //    c.PurchasePrice = c.PurchasePrice * discount.PurchaseDiscount / 10;
            //});
            var invetdtos = AutoMapper.Mapper.Map <InventoryDto[]>(invents.ToArray());

            try
            {
                _invenrtoryContract.Update(invetdtos, true);
                resul = _productContract.Update(products.ToArray(), false);
            }
            catch (Exception ex)
            {
                throw;
            }
            return(resul);
        }
Beispiel #2
0
        public JsonResult KillPur(string num)
        {
            OperationResult resu = new OperationResult(OperationResultType.Error);
            string          _num = InputHelper.SafeInput(num);

            if (!string.IsNullOrEmpty(_num))
            {
                var pur = _purchaseContract.Purchases.Where(c => c.PurchaseNumber == _num && c.IsDeleted == false && c.IsEnabled == true).FirstOrDefault();
                if (pur != null)
                {
                    pur.PurchaseStatus = 3;
                    pur.UpdatedTime    = DateTime.Now;
                    resu = _purchaseContract.Update(pur);
                    //取消库存锁定
                    List <Inventory> li = new List <Inventory>();
                    foreach (var item in pur.PurchaseItems)
                    {
                        var invet = _inventoryContract.Inventorys.Where(c => c.ProductId == item.ProductId).FirstOrDefault();
                        if (invet != null)
                        {
                            //invet.LockCoun -= item.Quantity;
                            //if (invet.LockCoun <= 0)
                            //{
                            //    invet.LockCoun = 0;
                            //    invet.IsLock = false;
                            //    invet.UpdatedTime = DateTime.Now;
                            //}
                            li.Add(invet);
                        }
                    }
                    List <InventoryDto> dtoli = AutoMapper.Mapper.Map <List <InventoryDto> >(li);
                    resu = _inventoryContract.Update(dtoli.ToArray());

                    //采购单审核记录
                    PurchaseAudit purcaudit = new PurchaseAudit()
                    {
                        IsDeleted   = false,
                        IsEnabled   = true,
                        Status      = 3,
                        Note        = "采购单废除",
                        UpdatedTime = DateTime.Now,
                        CreatedTime = DateTime.Now,
                        OperatorId  = AuthorityHelper.OperatorId,
                        PurchaseId  = pur.Id,
                    };
                    _purchaseAuditContract.Insert(purcaudit);
                }
            }
            return(Json(resu));
        }