示例#1
0
        public async Task <IActionResult> Create(ProductViewModel model)
        {
            if (ModelState.IsValid)
            {
                var newProduct = new Product
                {
                    Description = model.Description,
                    Type        = model.Type,
                    Category    = model.Category
                };

                await _iProductApp.Add(newProduct);

                var newStockProducts = new StockProducts
                {
                    ProductID = newProduct.ID
                };

                await _iStockProductApp.Add(newStockProducts);

                return(RedirectToAction(nameof(Index),
                                        routeValues: new { stockID = 1, type = model.Type }));
            }
            return(View(model));
        }
示例#2
0
        /// <summary>
        /// Tutti gli articoli che sono con il flag CaricainECommerce e
        /// </summary>
        public void AggiornaWeb()
        {
            using (var uof = new UnitOfWork())
            {
                using (var groupsync = new CategorySync())
                {
                    groupsync.AllineaCategorieReparti();
                }
                var listArt = UpdateProducts(uof);

                using (var stockPr = new StockProducts(this))
                {
                    var listStockArt = stockPr.UpdateStock(uof);

                    listArt.AddRange(listStockArt);
                }
                using (var imgPr = new ImageProduct(this))
                {
                    listArt.AddRange(imgPr.UpdateImages(uof));
                }
                var listArtId = listArt.FindAll(a => a.Aggiornamento.ForzaAggiornamento == true).Select(a => a.ArticoloID).Distinct().ToList();

                var aggToFix = uof.AggiornamentoWebArticoloRepository.Find(a => listArtId.Contains(a.ArticoloID) && a.ForzaAggiornamento).ToList();
                foreach (var item in aggToFix)
                {
                    uof.AggiornamentoWebArticoloRepository.Update(item);
                }
                uof.Commit();
            }
        }
        public ActionResult DeleteConfirmed(int id)
        {
            StockProducts stockproducts = db.StocProduse.Find(id);

            db.StocProduse.Remove(stockproducts);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#4
0
        private void UpdateProdotti(List <long> prodotti, UnitOfWork uof, Deposito depoPrinc)
        {
            foreach (var idProdotto in prodotti)
            {
                var prodotto = _productFactory.Get(idProdotto);

                var stock         = _StockAvailableFactory.Get(prodotto.associations.stock_availables.First().id);
                var aggiornamento = uof.AggiornamentoWebArticoloRepository.
                                    Find(a => a.CodiceArticoloEcommerce == idProdotto.ToString()).FirstOrDefault();
                /*è nullo solo se l'articolo è nel web ma non in locale*/
                if (aggiornamento == null)
                {
                    continue;
                }
                if (aggiornamento.GiacenzaMagazzinoWebInDataAggWeb != stock.quantity)
                {
                    using (var stockProd = new StockProducts(this))
                    {
                        var qtaStockLocale = StockProducts.CalcolaStock(new ArticoloBase()
                        {
                            ArticoloID = aggiornamento.ArticoloID
                        });
                        var forzaUpdateGiacenza = (aggiornamento.GiacenzaMagazzinoWebInDataAggWeb != qtaStockLocale);


                        var dataAgg = DateTime.Now;
                        ///se c'è stata una vendita allora aggiungo un movimento di magazzino
                        uof.MagazzinoRepository.Add(new Library.Entity.Magazzino()
                        {
                            ArticoloID     = aggiornamento.ArticoloID,
                            DepositoID     = depoPrinc.ID,
                            Qta            = -(aggiornamento.GiacenzaMagazzinoWebInDataAggWeb - stock.quantity),
                            PrezzoAcquisto = 0,
                            Note           = aggiornamento.GiacenzaMagazzinoWebInDataAggWeb > stock.quantity ? "Vendita web Annullata" : "Vendita web Annullata",
                            OperazioneWeb  = true
                        });

                        aggiornamento.GiacenzaMagazzinoWebInDataAggWeb = stock.quantity;
                        aggiornamento.DataUltimoAggMagazzinoWeb        = dataAgg;
                        aggiornamento.DataUltimoAggMagazzino           = dataAgg;
                        uof.AggiornamentoWebArticoloRepository.Update(aggiornamento);
                        uof.Commit();

                        if (forzaUpdateGiacenza)
                        {
                            stockProd.UpdateStockArt(prodotto, new ArticoloBase()
                            {
                                ArticoloID              = aggiornamento.ArticoloID,
                                Aggiornamento           = aggiornamento,
                                CodiceArticoloEcommerce = aggiornamento.CodiceArticoloEcommerce,
                                ArticoloDb              = aggiornamento.Articolo
                            }, uof, true);
                        }
                    }
                }
            }
        }
        //
        // GET: /StockProducts/Delete/5

        public ActionResult Delete(int id = 0)
        {
            StockProducts stockproducts = db.StocProduse.Find(id);

            if (stockproducts == null)
            {
                return(HttpNotFound());
            }
            return(View(stockproducts));
        }
 public ActionResult Edit(StockProducts stockproducts)
 {
     if (ModelState.IsValid)
     {
         db.Entry(stockproducts).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(stockproducts));
 }
        public void VendingMachine_CorrectlyStocksItems_Test()
        {
            StockProducts  stock = new StockProducts();
            VendingMachine test  = new VendingMachine();

            // go through the intermediary method to check stock
            Assert.IsTrue(test.CheckCurrentStock("A1") == 5);
            Assert.IsTrue(test.CheckCurrentStock("B2") == 5);
            Assert.IsTrue(test.CheckCurrentStock("C3") == 5);
            Assert.IsTrue(test.CheckCurrentStock("D4") == 5);
        }
示例#8
0
 public async Task Add(StockProducts Object)
 {
     Object.DateInput      = DateTime.Now;
     Object.DateOutput     = DateTime.Now;
     Object.QuantityTotal  = 0;
     Object.Quant_Input    = 0;
     Object.Quant_Output   = 0;
     Object.Quant_Shortage = 0;
     Object.StockID        = 1;
     await _IStockProducts.Add(Object);
 }
        public ActionResult Create(StockProducts stockproducts)
        {
            if (ModelState.IsValid)
            {
                db.StocProduse.Add(stockproducts);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(stockproducts));
        }
示例#10
0
 public async Task Update(StockProducts Object)
 {
     await _IStockProducts.Update(Object);
 }
示例#11
0
 public async Task Delete(StockProducts Object)
 {
     await _IStockProducts.Delete(Object);
 }