public ReturnType RemoveStockProduct(string skuOutID)
        {
            try
            {
                using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString()))
                {
                    /*List<StockProduct> list = alading.StockProduct.Where(p => p.StockProductID == stockproductID).ToList();*/
                    List <StockProduct> list = alading.StockProduct.Where(p => p.SkuOuterID == skuOutID).ToList();
                    if (list.Count == 0)
                    {
                        return(ReturnType.NotExisted);
                    }

                    else
                    {
                        StockProduct sy = list.First();
                        alading.DeleteObject(sy);
                        alading.SaveChanges();
                        return(ReturnType.Success);
                    }
                }
            }
            catch (SqlException sex)
            {
                return(ReturnType.ConnFailed);
            }
            catch (System.Exception ex)
            {
                return(ReturnType.OthersError);
            }
        }
예제 #2
0
        public void QuantityReturnInitialQuantity()
        {
            var iq = 1;
            var sp = new StockProduct(p, iq);

            Assert.Equal(iq, sp.Quantity);
        }
 public ReturnType AddStockProduct(StockProduct stockproduct)
 {
     try
     {
         using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString()))
         {
             alading.AddToStockProduct(stockproduct);
             if (alading.SaveChanges() == 1)
             {
                 return(ReturnType.Success);
             }
             else
             {
                 return(ReturnType.PropertyExisted);
             }
         }
     }
     catch (SqlException sex)
     {
         return(ReturnType.ConnFailed);
     }
     catch (Exception ex)
     {
         return(ReturnType.OthersError);
     }
 }
예제 #4
0
        public void DecreaseStock_ThrowsWhenCurrentQuantityIsZero()
        {
            var iq = 0;
            var sp = new StockProduct(p, iq);

            Assert.Throws <InvalidOperationException>(() => sp.DecreaseStock(10));
        }
예제 #5
0
        public void DecreaseStock_ThrowsWhenCurrentQuantityWouldBeNegativeAfterOperation()
        {
            var iq = 10;
            var sp = new StockProduct(p, iq);

            Assert.Throws <InvalidOperationException>(() => sp.DecreaseStock(11));
        }
예제 #6
0
        private void ExportStockProduct(HttpContext context)
        {
            var bll = new StockProduct();
            var ds  = bll.GetExportData();
            var dt  = ds.Tables[0];

            OpenXmlHelper.Export(context, dt);
        }
예제 #7
0
        public void DecreaseStock_ReducesStockByQuantity()
        {
            var iq = 11;
            var sp = new StockProduct(p, iq);

            sp.DecreaseStock(10);
            Assert.Equal(1, sp.Quantity);
        }
예제 #8
0
        public void Create_Success(IProduct prod, int quantity)
        {
            var sp = new StockProduct(prod, quantity);

            Assert.NotNull(sp);
            Assert.Equal(prod, sp.Product);
            Assert.Equal(quantity, sp.Quantity);
        }
예제 #9
0
        private IEnumerable <StockProduct> GetDummyStock()
        {
            var stockProduct = new StockProduct(PRODUCT_ID_ONE, TOTAL_QUANTITY, PRODUCT_NAME);

            return(new List <StockProduct> {
                stockProduct
            });
        }
예제 #10
0
        public void ProductReturnsInitialProduct()
        {
            var iq = 1;
            var sp = new StockProduct(p, iq);

            Assert.IsAssignableFrom <IProduct>(sp.Product);
            Assert.Equal(p, sp.Product);
        }
        public int updateProduct(StockProduct Pro)
        {
            dbCon.openCon();
            cmd = new SqlCommand("update Stock_Product set Product_Type = '" + Pro.ProType + "', Size =  '" + Pro.Size + "', Color = '" + Pro.Color + "', Fabric_Type = '" + Pro.FabricType + "', Quantity = '" + Pro.Quantity + "', Descriptions = '" + Pro.Description + "' where Pro_id = '" + Pro.ProId + "'", dbCon.con);
            int status = cmd.ExecuteNonQuery();

            dbCon.closeCon();
            return(status);
        }
예제 #12
0
 public ReturnType AddInOutAndDetails(StockInOut stockInOut, PayCharge payChage, List <StockDetail> sdList, List <StockHouseProduct> shpList, List <View_StockItemProduct> vsipList)
 {
     System.Data.Common.DbTransaction tran = null;
     using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString()))
     {
         try
         {
             alading.Connection.Open();
             tran = alading.Connection.BeginTransaction();
             alading.AddToPayCharge(payChage);
             alading.AddToStockInOut(stockInOut);
             foreach (StockDetail sd in sdList)
             {
                 alading.AddToStockDetail(sd);
             }
             foreach (StockHouseProduct shp in shpList)
             {
                 StockHouseProduct tmpshp = alading.StockHouseProduct.FirstOrDefault(c => c.HouseProductCode == shp.HouseProductCode);
                 if (tmpshp != null)
                 {
                     tmpshp.Num = shp.Num;
                 }
                 else
                 {
                     alading.AddToStockHouseProduct(shp);
                 }
             }
             foreach (View_StockItemProduct vsip in vsipList)
             {
                 StockItem    stockItem    = alading.StockItem.FirstOrDefault(s => s.OuterID == vsip.OuterID);
                 StockProduct stockProduct = alading.StockProduct.FirstOrDefault(s => s.SkuOuterID == vsip.SkuOuterID);
                 stockItem.TotalQuantity     = Math.Round(vsip.TotalQuantity, 3);
                 stockProduct.SkuQuantity    = vsip.SkuQuantity;
                 stockProduct.LastStockPrice = vsip.LastStockPrice;
                 stockProduct.AvgStockPrice  = vsip.AvgStockPrice;
             }
             alading.SaveChanges();
             tran.Commit();
             return(ReturnType.Success);
         }
         catch (System.Exception ex)
         {
             if (tran != null)
             {
                 tran.Rollback();
             }
             return(ReturnType.SaveFailed);
         }
         finally
         {
             if (alading != null && alading.Connection.State != System.Data.ConnectionState.Closed)
             {
                 alading.Connection.Close();
             }
         }
     }
 }
        public IHttpActionResult AddProductBrand(ProductBrandEntity model)
        {
            try
            {
                var existe = context.ProductBrand.FirstOrDefault(x => x.ProductId == model.ProductId && x.BrandId == model.BrandId && x.Status == ConstantHelpers.ESTADO.ACTIVO);

                using (var ts = new TransactionScope())
                {
                    ProductBrand ProductBrand = new ProductBrand();
                    if (model.ProductBrandId.HasValue)
                    {
                        ProductBrand = context.ProductBrand.FirstOrDefault(x => x.ProductBrandId == model.ProductBrandId);
                    }
                    else
                    {
                        if (existe != null)
                        {
                            response.Data    = "Marca producto ya registrado";
                            response.Error   = true;
                            response.Message = "Error";
                            return(Content(HttpStatusCode.Conflict, response));
                        }

                        context.ProductBrand.Add(ProductBrand);
                        ProductBrand.Status = ConstantHelpers.ESTADO.ACTIVO;
                    }

                    ProductBrand.BrandId   = model.BrandId;
                    ProductBrand.ProductId = model.ProductId;

                    context.SaveChanges();

                    //CREAR STOCK PRODUCTO

                    if (!model.ProductBrandId.HasValue)
                    {
                        StockProduct stockProduct = new StockProduct();
                        context.StockProduct.Add(stockProduct);
                        stockProduct.Amount         = 0;
                        stockProduct.ProductBrandId = ProductBrand.ProductBrandId;
                        stockProduct.Status         = ConstantHelpers.ESTADO.ACTIVO;
                        context.SaveChanges();
                    }

                    ts.Complete();
                }
                response.Data    = "Product brand added";
                response.Error   = false;
                response.Message = "Success";
                return(Ok(response));
            }
            catch (Exception e)
            {
                return(Unauthorized());
            }
        }
예제 #14
0
        public async Task <IActionResult> Create(MedicamentViewModel model)
        {
            if (ModelState.IsValid)
            {
                var userID     = _userManager.GetUserId(User);
                var newProduct = new Medicament
                {
                    Name = model.Name,
                    PharmaceuticalForm   = model.PharmaceuticalForm,
                    Availability         = model.Availability,
                    Section              = _dbContext.Sections.Find(int.Parse(model.Section)).Description,
                    PharmacologicalGroup = _dbContext.PharmacologicalGroups.Find(int.Parse(model.PharmacologicalGroup)).Description,
                    UserID = userID
                };

                if (!string.IsNullOrEmpty(model.FirstSubGroup))
                {
                    newProduct.FirstSubGroup = _dbContext.FirstSubGroups.Find(int.Parse(model.FirstSubGroup)).Description;
                }

                if (!string.IsNullOrEmpty(model.SecondSubGroup))
                {
                    newProduct.SecondSubGroup = _dbContext.SecondSubGroups.Find(int.Parse(model.SecondSubGroup)).Description;
                }

                if (!string.IsNullOrEmpty(model.ThirdSubGroup))
                {
                    newProduct.ThirdSubGroup = _dbContext.ThirdSubGroups.Find(int.Parse(model.ThirdSubGroup)).Description;
                }

                _ = _dbContext.Medicaments.Add(newProduct);
                _ = await _dbContext.SaveChangesAsync();

                var newStockProduct = new StockProduct
                {
                    MedicamentID    = newProduct.ID,
                    StockID         = 1,
                    DateInput       = DateTime.Now,
                    DateOutput      = DateTime.MinValue,
                    UserID          = userID,
                    InputQuantity   = model.Quantity,
                    OutputQuantity  = 0,
                    MissingQuantity = 0,
                    TotalQuantity   = model.Quantity
                };

                _ = _dbContext.StockProducts.Add(newStockProduct);
                _ = await _dbContext.SaveChangesAsync();

                TempData["Message"] = "Produto adicionado ao estoque.";
                return(RedirectToAction("Index", new { stockID = 1 }));
            }

            return(View(model));
        }
        public int createProduct(StockProduct Pro)
        {
            dbCon.openCon();
            String Status = "Not Damaged";

            cmd = new SqlCommand("insert into Stock_Product (Pro_id,Product_Type,Brand,Design,Size,Color,Fabric_Type,Quantity,Descriptions,Damage_Status) values('" + Pro.ProId + "','" + Pro.ProType + "','" + Pro.Brand + "','" + Pro.Design + "','" + Pro.Size + "','" + Pro.Color + "','" + Pro.FabricType + "','" + Pro.Quantity + "','" + Pro.Description + "','" + Status + "')", dbCon.con);
            int status = cmd.ExecuteNonQuery();

            dbCon.closeCon();
            return(status);
        }
예제 #16
0
        public ActionResult _AddEditEntryExitProduct(_AddEditEntryExitProductViewModel model)
        {
            try
            {
                using (var ts = new TransactionScope())
                {
                    EntryExitProduct entryExitProduct = new EntryExitProduct();
                    if (model.EntryExitProductId.HasValue)
                    {
                        entryExitProduct = context.EntryExitProduct.FirstOrDefault(x => x.EntryExitProductId == model.EntryExitProductId);
                    }
                    else
                    {
                        context.EntryExitProduct.Add(entryExitProduct);
                        entryExitProduct.StatusType    = ConstantHelpers.ESTADO.ENTRADA;
                        entryExitProduct.Creation_Date = DateTime.Now;
                    }

                    entryExitProduct.Amount         = model.Amount;
                    entryExitProduct.UserId         = Session.GetUserId();
                    entryExitProduct.ProductBrandId = model.ProductBrandId;
                    context.SaveChanges();
                    //INSERTAR EN EL STOCK

                    Decimal?entradasProducto = context.EntryExitProduct.Where(x => x.StatusType == ConstantHelpers.ESTADO.ENTRADA && x.ProductBrandId == model.ProductBrandId).Sum(x => x.Amount);
                    Decimal?salidasProducto  = context.EntryExitProduct.Where(x => x.StatusType == ConstantHelpers.ESTADO.SALIDA && x.ProductBrandId == model.ProductBrandId).Sum(x => x.Amount);

                    StockProduct stockProduct = new StockProduct();
                    if (context.StockProduct.FirstOrDefault(x => x.ProductBrandId == model.ProductBrandId) != null)
                    {
                        stockProduct = context.StockProduct.FirstOrDefault(x => x.ProductBrandId == model.ProductBrandId);
                    }
                    else
                    {
                        context.StockProduct.Add(stockProduct);
                    }

                    stockProduct.Amount         = (entradasProducto.HasValue ? Convert.ToDecimal(entradasProducto) : Convert.ToDecimal(0)) - (salidasProducto.HasValue ? Convert.ToDecimal(salidasProducto) : Convert.ToDecimal(0));
                    stockProduct.Status         = ConstantHelpers.ESTADO.ACTIVO;
                    stockProduct.ProductBrandId = model.ProductBrandId;
                    context.SaveChanges();

                    ts.Complete();

                    PostMessage(MessageType.Success, "Entrada de producto Guardado");
                    return(RedirectToAction("ListStockProduct", "StockProduct"));
                }
            }
            catch (Exception e)
            {
                return(View(model));
            }
        }
예제 #17
0
        public ActionResult _AddEditProductBrand(_AddEditProductBrandViewModel model)
        {
            try
            {
                var existe = context.ProductBrand.FirstOrDefault(x => x.ProductId == model.ProductId && x.BrandId == model.BrandId && x.Status == ConstantHelpers.ESTADO.ACTIVO);

                using (var ts = new TransactionScope())
                {
                    ProductBrand ProductBrand = new ProductBrand();
                    if (model.ProductBrandId.HasValue)
                    {
                        ProductBrand = context.ProductBrand.FirstOrDefault(x => x.ProductBrandId == model.ProductBrandId);
                    }
                    else
                    {
                        if (existe != null)
                        {
                            PostMessage(MessageType.Info, "Marca producto ya registrado");
                            return(RedirectToAction("ListProductBrand"));
                        }

                        context.ProductBrand.Add(ProductBrand);
                        ProductBrand.Status = ConstantHelpers.ESTADO.ACTIVO;
                    }

                    ProductBrand.BrandId   = model.BrandId;
                    ProductBrand.ProductId = model.ProductId;

                    context.SaveChanges();

                    //CREAR STOCK PRODUCTO

                    if (!model.ProductBrandId.HasValue)
                    {
                        StockProduct stockProduct = new StockProduct();
                        context.StockProduct.Add(stockProduct);
                        stockProduct.Amount         = 0;
                        stockProduct.ProductBrandId = ProductBrand.ProductBrandId;
                        stockProduct.Status         = ConstantHelpers.ESTADO.ACTIVO;
                        context.SaveChanges();
                    }

                    ts.Complete();
                }
                PostMessage(MessageType.Success, "Marca Producto Guardado");
                return(RedirectToAction("ListProductBrand"));
            }
            catch (Exception e)
            {
                return(View(model));
            }
        }
예제 #18
0
        public void SaveStockProduct(StockProductDTO stockProductDTO)
        {
            var stockProduct = new StockProduct()
            {
                StockId   = stockProductDTO.StockId,
                ProductId = stockProductDTO.ProductId,
                Quantity  = stockProductDTO.Quantity,
                TimeStamp = DateTime.Now
            };

            this.UnitOfWork.Get <StockProduct>().AddNew(stockProduct);
            this.UnitOfWork.SaveChanges();
        }
예제 #19
0
        public ReturnType UpdateStockProduct(string skuOutID, StockProduct stockproduct)
        {
            try
            {
                using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString()))
                {
                    /*var result = alading.StockProduct.Where(p => p.StockProductID == stockproductID).ToList();*/
                    var result = alading.StockProduct.Where(p => p.SkuOuterID == skuOutID).ToList();
                    if (result.Count == 0)
                    {
                        return(ReturnType.NotExisted);
                    }

                    //StockProduct ob = result.First();
                    //ob.OuterID = stockproduct.OuterID;
                    //ob.SkuOuterID = stockproduct.SkuOuterID;
                    //ob.SkuProps = stockproduct.SkuProps;
                    //ob.SkuQuantity = stockproduct.SkuQuantity;
                    //ob.SkuPrice = stockproduct.SkuPrice;
                    //ob.LastInputPrice = stockproduct.LastInputPrice;
                    //ob.AvgInputPrice = stockproduct.AvgInputPrice;
                    //ob.WarningCount = stockproduct.WarningCount;
                    //ob.OccupiedQuantity = stockproduct.OccupiedQuantity;
                    //ob.BCode = stockproduct.BarCode;
                    //ob.BarCodeUrl = stockproduct.BarCodeUrl;
                    //ob.BuyTaxRate = stockproduct.BuyTaxRate;
                    //ob.SaleTaxRate = stockproduct.SaleTaxRate;
                    //ob.StockProductRemark = stockproduct.StockProductRemark;
                    //ob.ProductModel = stockproduct.ProductModel;
                    //ob.ProductSpecification = stockproduct.ProductSpecification;
                    //ob.ProductUnit = stockproduct.ProductUnit;

                    if (alading.SaveChanges() == 1)
                    {
                        return(ReturnType.Success);
                    }
                    else
                    {
                        return(ReturnType.OthersError);
                    }
                }
            }
            catch (SqlException sex)
            {
                return(ReturnType.ConnFailed);
            }
            catch (System.Exception ex)
            {
                return(ReturnType.OthersError);
            }
        }
예제 #20
0
        public async Task <IActionResult> SaveProduct(AddOrUpdateProductVM model)
        {
            if (ModelState.IsValid)
            {
                string uniquefileName = null;
                if (model.Image != null)
                {
                    string uploadsFolder = Path.Combine(hosting.WebRootPath, "images");
                    uniquefileName = Guid.NewGuid().ToString() + "_" + model.Image.FileName;
                    string filePath = Path.Combine(uploadsFolder, uniquefileName);
                    model.Image.CopyTo(new FileStream(filePath, FileMode.Create));
                }
                Product neki;
                if (model.ProductID == 0)
                {
                    neki = new Product();
                    _Iproduct.AddProduct(neki);
                }
                else
                {
                    neki = _database.product.Find(model.ProductID);
                }

                neki.ProductNumber  = model.ProductNumber;
                neki.SubCategoryID  = model.SubCategoryID;
                neki.ManufacturerID = model.ManufacturerID;
                neki.ProductName    = model.ProductName;
                neki.ImageUrl       = uniquefileName;
                neki.Description    = model.Description;
                neki.UnitPrice      = model.UnitPrice;
                neki.UnitsInStock   = model.UnitsInStock;

                await _database.SaveChangesAsync();

                if (model.ProductID != neki.ProductID)
                {
                    var st_pr = new StockProduct
                    {
                        StockID   = 1,
                        ProductID = neki.ProductID,
                        Quantity  = neki.UnitsInStock
                    };
                    _database.Add(st_pr);
                    await _database.SaveChangesAsync();
                }
            }
            await _notificationService.SendNotification($"Dodan je novi artikal ili je izmjenjen postojeći");

            return(Redirect("/Product/Show"));
        }
        public IHttpActionResult AddEntryExitProduct(EntryExitProductEntity model)
        {
            try
            {
                using (var ts = new TransactionScope())
                {
                    EntryExitProduct entryExitProduct = new EntryExitProduct();
                    if (!model.EntryExitProductId.HasValue)
                    {
                        context.EntryExitProduct.Add(entryExitProduct);
                        entryExitProduct.StatusType    = ConstantHelpers.ESTADO.ENTRADA;
                        entryExitProduct.Creation_Date = DateTime.Now;
                    }

                    entryExitProduct.Amount         = model.Amount;
                    entryExitProduct.UserId         = model.UserId;
                    entryExitProduct.ProductBrandId = model.ProductBrandId;
                    context.SaveChanges();

                    Decimal?entradasProducto = context.EntryExitProduct.Where(x => x.StatusType == ConstantHelpers.ESTADO.ENTRADA && x.ProductBrandId == model.ProductBrandId).Sum(x => x.Amount);
                    Decimal?salidasProducto  = context.EntryExitProduct.Where(x => x.StatusType == ConstantHelpers.ESTADO.SALIDA && x.ProductBrandId == model.ProductBrandId).Sum(x => x.Amount);

                    StockProduct stockProduct = new StockProduct();
                    if (context.StockProduct.FirstOrDefault(x => x.ProductBrandId == model.ProductBrandId) != null)
                    {
                        stockProduct = context.StockProduct.FirstOrDefault(x => x.ProductBrandId == model.ProductBrandId);
                    }
                    else
                    {
                        context.StockProduct.Add(stockProduct);
                    }

                    stockProduct.Amount         = (entradasProducto.HasValue ? Convert.ToDecimal(entradasProducto) : Convert.ToDecimal(0)) - (salidasProducto.HasValue ? Convert.ToDecimal(salidasProducto) : Convert.ToDecimal(0));
                    stockProduct.Status         = ConstantHelpers.ESTADO.ACTIVO;
                    stockProduct.ProductBrandId = model.ProductBrandId;
                    context.SaveChanges();

                    ts.Complete();
                }
                response.Data    = "User added";
                response.Error   = false;
                response.Message = "Success";
                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(Unauthorized());
            }
        }
예제 #22
0
        //属性改变时相应的处理
        private void cmbProperties_EditValueChanged(object sender, EventArgs e)
        {
            string skuProsName = cmbProperties.EditValue.ToString();

            if (_tradeStock.ItemType == "组合商品")
            {
                List <View_AssembleProduct> detailAssemble = AssembleItemService.GetView_AssembleProduct(p => p.AssembleOuterID == _tradeStock.outer_id &&
                                                                                                         p.AssembleProps_Str == skuProsName);
                txtStockNum.Text = detailAssemble.Min(p => (p.SkuQuantity - p.OccupiedQuantity) / p.Count).ToString();
            }
            else
            {
                StockProduct product = StockProductService.GetStockProduct(_tradeStock.SkuOuterID);
                txtStockNum.Text = (product.SkuQuantity - product.OccupiedQuantity).ToString();
            }
        }
예제 #23
0
 /// <summary>
 /// 更新StockItem的StockProduct
 /// </summary>
 /// <param name="stockitemCode"></param>
 /// <param name="productList"></param>
 /// <returns></returns>
 public ReturnType UpdateStockItem(string outerID, List <StockProduct> productList)
 {
     try
     {
         using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString()))
         {
             var result = alading.StockProduct.Where(i => i.OuterID == outerID);
             if (result != null && result.Count() > 0)
             {
                 foreach (StockProduct product in result)
                 {
                     StockProduct src = productList.FirstOrDefault(i => i.StockProductID == product.StockProductID);
                     if (src != null)
                     {
                         product.OuterID    = src.OuterID;
                         product.SkuOuterID = src.SkuOuterID;
                         //product.SkuProps = src.SkuProps;
                         //product.SkuProps_Str = src.SkuProps_Str;
                         // product.SkuQuantity = src.SkuQuantity;
                         product.MarketPrice     = src.MarketPrice;
                         product.SkuPrice        = src.SkuPrice;
                         product.MinSkuPrice     = src.MinSkuPrice;
                         product.MaxSkuPrice     = src.MaxSkuPrice;
                         product.CommissionPrice = src.CommissionPrice;
                         product.WholeSalePrice  = src.WholeSalePrice;
                         product.LastStockPrice  = src.LastStockPrice;
                         product.AvgStockPrice   = src.AvgStockPrice;
                         product.IsUsingWarn     = src.IsUsingWarn;
                         product.LowestNum       = src.LowestNum;
                         product.HighestNum      = src.HighestNum;
                         //product.OccupiedQuantity = src.OccupiedQuantity;
                         product.StockProductRemark = src.StockProductRemark;
                         product.ProductStatus      = src.ProductStatus;
                         product.WarningCount       = src.WarningCount;
                         //product.PropsAlias = src.PropsAlias;
                     }
                 }
             }
             alading.SaveChanges();
             return(ReturnType.Success);
         }
     }
     catch (System.Exception ex)
     {
         throw ex;
     }
 }
        private void RemoveUsedPackFromStock(List <RobotPack> usedStock)
        {
            if (usedStock.Count == 0)
            {
                return;
            }

            StockProduct productStock = this.stock.GetStockProduct(usedStock[0].RobotArticleCode);

            if (productStock != null)
            {
                foreach (RobotPack usedPack in usedStock)
                {
                    productStock.RemoveItem(usedPack);
                }
            }
        }
예제 #25
0
파일: PdaService.cs 프로젝트: songfang/Wms
        public ResResultModel GetStockLocationProductList(StockLocationProductModel model)
        {
            try
            {
                if (model.PageIndex < 1)
                {
                    model.PageIndex = 1;
                }
                if (model.PageSize < 1)
                {
                    model.PageSize = 10;
                }

                if (model.KeyName == "OrderSendProduct" || model.KeyName == "OrderPickProduct")
                {
                    var spBll = new StockProduct();
                    if (model.KeyName == "OrderSendProduct")
                    {
                        var ospList = spBll.GetSelectProductListByStepName(model.PageIndex, model.PageSize, EnumData.EnumStep.发货.ToString(), null, null, model.Qty);
                        return(ResResult.Response(true, "", JsonConvert.SerializeObject(ospList)));
                    }
                    else if (model.KeyName == "OrderPickProduct")
                    {
                        var oppslList = spBll.GetSelectProductListByStepName(model.PageIndex, model.PageSize, EnumData.EnumStep.拣货.ToString(), model.ProductId, model.CustomerId, model.Qty);
                        return(ResResult.Response(true, "", JsonConvert.SerializeObject(oppslList)));
                    }
                }

                var slpBll = new StockLocationProduct();
                switch (model.KeyName)
                {
                case "ShelfMissionProduct":
                    var smpList = slpBll.GetListForShelfMissionProduct(Guid.Parse(model.ProductId.ToString()), model.Qty);
                    return(ResResult.Response(true, "", JsonConvert.SerializeObject(smpList)));

                default:
                    throw new ArgumentException(MC.GetString(MC.Params_SwitchNameNotExist, model.KeyName));
                }
            }
            catch (Exception ex)
            {
                return(ResResult.Response(false, ex.Message, null));
            }
        }
예제 #26
0
        /// <summary>
        /// 点击显示商品属性
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gvProductSJ_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            DataRow row = gvProductSJ.GetFocusedDataRow();

            if (row != null && row["OuterID"] != null && row["SkuOuterID"] != null)
            {
                StockItem    stockItem    = StockItemService.GetStockItemByOutId(row["OuterID"].ToString());
                StockProduct stockProduct = StockProductService.GetStockProduct(row["SkuOuterID"].ToString());
                if (stockItem != null && stockProduct != null)
                {
                    View_ShopItem item = new View_ShopItem();
                    item.props          = stockItem.Props;
                    item.input_pids     = stockItem.InputPids;
                    item.input_str      = stockItem.InputStr;
                    item.property_alias = stockProduct.PropsAlias;
                    item.cid            = stockItem.Cid;
                    UIHelper.LoadItemPropValue(item, categoryKeyProps, categorySaleProps, categoryNotKeyProps, categoryInputProps);
                }
            }
        }
        public void SendStockInfoMessage(string productID)
        {
            // send a StockInfoMessage to every PMR conencted  for there related tenant stock.
            foreach (IConverterStream stream in this.converterStreamList)
            {
                StockInfoMessage stockInfoMessage = new StockInfoMessage(stream)
                {
                    ID            = MessageId.Next,
                    TenantID      = stream.TenantID,
                    Source        = 999, // 999 is Mosaic
                    Destination   = 100,
                    StockInfoType = StockInfoType.StockUpdate
                };

                StockProduct stockProduct = this.stock.GetStockProduct(productID);
                stockInfoMessage.Packs.AddRange(stockProduct.GetPackList(stream.TenantID));
                stockInfoMessage.Articles.AddRange(this.BuildArticleList(stockInfoMessage.Packs, true));

                stream.Write(stockInfoMessage);
            }
        }
예제 #28
0
    public StockProduct SelectProduct(string code)
    {
        StockProduct product = null;

        this.connection.Open();
        string select = "SELECT * FROM \"product\" WHERE(code=:code)";

        this.command = new NpgsqlCommand(select, this.connection);

        this.command.Parameters.Add(new NpgsqlParameter("code", NpgsqlDbType.Varchar)).Value = code;

        NpgsqlDataReader reader = this.command.ExecuteReader();

        while (reader.Read())
        {
            product = GenerateProduct(reader);
        }
        reader.Close();
        this.connection.Close();
        return(product);
    }
        private List <RobotPack> GetStock(StockOutputOrderItem stockOutputOrderItem, string tenantID)
        {
            var articleCode = String.IsNullOrWhiteSpace(stockOutputOrderItem.RobotArticleCode) ?
                              stockOutputOrderItem.PISArticleCode : stockOutputOrderItem.RobotArticleCode;

            StockProduct productStock = this.stock.GetStockProduct(articleCode);

            if (productStock != null)
            {
                return(productStock.GetPackList(
                           stockOutputOrderItem.BatchNumber,
                           stockOutputOrderItem.ExternalID,
                           stockOutputOrderItem.MachineLocation,
                           stockOutputOrderItem.StockLocationID,
                           stockOutputOrderItem.PackID,
                           tenantID));
            }
            else
            {
                return(new List <RobotPack>());
            }
        }
예제 #30
0
        /// <summary>
        /// 加载库位和商品属性
        /// </summary>
        /// <param name="repositoryItemComboBoxLayout"></param>
        /// <param name="houseCode"></param>
        /// <param name="skuOuterID"></param>
        /// <param name="outerID"></param>
        /// <param name="categoryRowKeyProps"></param>
        /// <param name="categoryRowSaleProps"></param>
        /// <param name="categoryRowNotKeyProps"></param>
        /// <param name="categoryRowStockProps"></param>
        public void LoadLayoutAndProps(RepositoryItemComboBox repositoryItemComboBoxLayout, GridView gridView
                                       , CategoryRow categoryRowKeyProps, CategoryRow categoryRowSaleProps, CategoryRow categoryRowNotKeyProps, CategoryRow categoryRowStockProps)
        {
            DataRow row = gridView.GetFocusedDataRow();

            if (row == null)
            {
                return;
            }

            string houseCode  = row["HouseCode"] == null ? string.Empty : row["HouseCode"].ToString();
            string outerID    = row["OuterID"] == null ? string.Empty : row["OuterID"].ToString();
            string skuOuterID = row["SkuOuterID"] == null ? string.Empty : row["SkuOuterID"].ToString();

            repositoryItemComboBoxLayout.Items.Clear();
            if (!string.IsNullOrEmpty(houseCode))
            {
                LoadLayout(repositoryItemComboBoxLayout, houseCode);
            }

            /*点击显示商品属性*/
            if (!string.IsNullOrEmpty(outerID) && !string.IsNullOrEmpty(skuOuterID))
            {
                StockItem    stockItem    = StockItemService.GetStockItemByOutId(outerID);
                StockProduct stockProduct = StockProductService.GetStockProduct(skuOuterID);
                if (stockItem != null && stockProduct != null)
                {
                    View_ShopItem item = new View_ShopItem();
                    item.props          = stockItem.Props;
                    item.input_pids     = stockItem.InputPids;
                    item.input_str      = stockItem.InputStr;
                    item.property_alias = stockProduct.PropsAlias;
                    item.cid            = stockItem.Cid;
                    UIHelper.LoadItemPropValue(item, categoryRowKeyProps, categoryRowSaleProps, categoryRowNotKeyProps, categoryRowStockProps);
                }
            }
        }