Ejemplo n.º 1
0
        // GET: Magazzino/Create
        /// <summary>
        /// Metodo invocato alla creazione di un magazzino
        /// Crea un nuovo oggetto Magazzino
        /// Assegna a UserId l' ID dell' utente loggato
        /// Ritorna la vista
        /// </summary>
        /// <returns></returns>
        public ActionResult Create()
        {
            var       me = _db.Users.First(x => x.UserName == User.Identity.Name);
            Magazzino m  = new Magazzino
            {
                UserId = me.Id
            };

            return(View(m));
        }
Ejemplo n.º 2
0
 public ActionResult Edit([Bind(Include = "MagazzinoId,UserId")] Magazzino magazzino)
 {
     if (ModelState.IsValid)
     {
         _db.Entry(magazzino).State = EntityState.Modified;
         _db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(magazzino));
 }
Ejemplo n.º 3
0
        public ActionResult Create([Bind(Include = "MagazzinoId,UserId")] Magazzino magazzino)
        {
            if (ModelState.IsValid)
            {
                _db.Magazzinoes.Add(magazzino);
                _db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(magazzino));
        }
Ejemplo n.º 4
0
        // GET: Magazzino/Edit/5
        /// Metodo invocato alla modifica di un magazzino
        /// Se l' ID è nullo ritorna uno StatusCode di BadRequest
        /// Se l' ID non è presente nel database ritorna HttpNotFound
        /// Se è presente ritorna la vista del Magazzino trovato
        /// <param name="id">Valore della chiave per il model Magazzino</param>
        /// <returns></returns>
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Magazzino magazzino = _db.Magazzinoes.Find(id);

            if (magazzino == null)
            {
                return(HttpNotFound());
            }
            return(View(magazzino));
        }
Ejemplo n.º 5
0
        // GET: Magazzino/Details/5
        /// <summary>
        /// Metodo invocato alla richiesta di dettagli sul magazzino
        /// Restituisce errore se id è nullo o non esiste
        /// Altrimenti restituisce l'elemento cercato alla pagina
        /// </summary>
        /// <param name="id">Valore della chiave per model Magazzino</param>
        /// <returns></returns>
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                PathConfig c = new PathConfig();
                return(Redirect(c.error));
            }
            Magazzino magazzino = _db.Magazzinoes.Find(id);

            if (magazzino == null)
            {
                return(HttpNotFound());
            }
            return(View(magazzino));
        }
Ejemplo n.º 6
0
        public ActionResult AggiungiZucchero()
        {
            ZuccheriMagazzino am = new ZuccheriMagazzino();
            var       me         = _db.Users.First(x => x.UserName == User.Identity.Name);
            Magazzino magazzino  = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id);

            am.Magazzino   = magazzino;
            am.MagazzinoId = magazzino.MagazzinoId;
            var listaZuccheri = _db.Zuccheri.Except(_db.ZuccheriMagazzinos
                                                    .Where(x => x.MagazzinoId == magazzino.MagazzinoId).Select(x => x.Zucchero));
            SelectList zuccheri = new SelectList(listaZuccheri, "ZuccheriId", "Nome");

            ViewBag.Zuccheri = zuccheri;
            return(View(am));
        }
Ejemplo n.º 7
0
        public ActionResult AggiungiMalti()
        {
            MaltiMagazzino mm        = new MaltiMagazzino();
            var            me        = _db.Users.First(x => x.UserName == User.Identity.Name);
            Magazzino      magazzino = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id);

            mm.Magazzino   = magazzino;
            mm.MagazzinoId = magazzino.MagazzinoId;
            var listaMalti = _db.Malti.Except(_db.MaltiMagazzinos
                                              .Where(x => x.MagazzinoId == magazzino.MagazzinoId).Select(x => x.Malto));
            SelectList malti = new SelectList(listaMalti, "MaltiId", "Nome");

            ViewBag.Malti = malti;
            return(View(mm));
        }
Ejemplo n.º 8
0
        public ActionResult AggiungiLuppolo()
        {
            LuppoliMagazzino lum = new LuppoliMagazzino();
            var       me         = _db.Users.First(x => x.UserName == User.Identity.Name);
            Magazzino magazzino  = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id);

            lum.Magazzino   = magazzino;
            lum.MagazzinoId = magazzino.MagazzinoId;
            var listaLuppolis = _db.Luppoli.Except(_db.LuppoliMagazzinos
                                                   .Where(x => x.MagazzinoId == magazzino.MagazzinoId).Select(x => x.Luppolo));
            SelectList luppoli = new SelectList(listaLuppolis, "LuppoliId", "Nome");

            ViewBag.Luppoli = luppoli;
            return(View(lum));
        }
Ejemplo n.º 9
0
        public ActionResult AggiungiLievito()
        {
            LievitiMagazzino lm = new LievitiMagazzino();
            var       me        = _db.Users.First(x => x.UserName == User.Identity.Name);
            Magazzino magazzino = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id);

            lm.Magazzino   = magazzino;
            lm.MagazzinoId = magazzino.MagazzinoId;
            var listaLievitis = _db.Lieviti.Except(_db.LievitiMagazzinos
                                                   .Where(x => x.MagazzinoId == magazzino.MagazzinoId).Select(x => x.Lievito));
            SelectList lieviti = new SelectList(listaLievitis, "LievitiId", "Nome");

            ViewBag.Lieviti = lieviti;
            return(View(lm));
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Metodo invocato all' aggiunta di un nuovo additivo nel magazzino
        /// Crea un nuovo AdditiviMagazzino assegnandolo al magazzino collegato all' ID dell' utente
        /// Assegna la lista di additivi alla variabile speciale ViewBag
        /// Ritorna la vista di AdditiviMagazzino
        /// </summary>
        /// <returns></returns>
        public ActionResult AggiungiAdditivo()
        {
            AdditiviMagazzino am = new AdditiviMagazzino();
            var       me         = _db.Users.First(x => x.UserName == User.Identity.Name);
            Magazzino magazzino  = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id);

            am.Magazzino   = magazzino;
            am.MagazzinoId = magazzino.MagazzinoId;
            var listaAdditivi = _db.Additivi.Except(_db.AdditiviMagazzinos
                                                    .Where(x => x.MagazzinoId == magazzino.MagazzinoId).Select(x => x.Additivo));
            SelectList additivi = new SelectList(listaAdditivi, "AdditiviId", "Nome");

            ViewBag.Additivi = additivi;
            return(View(am));
        }
Ejemplo n.º 11
0
        public ActionResult AggiungiZucchero(ZuccheriMagazzino am)
        {
            if (ModelState.IsValid)
            {
                _db.ZuccheriMagazzinos.Add(am);
                _db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            var       me        = _db.Users.First(x => x.UserName == User.Identity.Name);
            Magazzino magazzino = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id);

            am.Magazzino   = magazzino;
            am.MagazzinoId = magazzino.MagazzinoId;
            SelectList zuccheri = new SelectList(_db.Zuccheri, "ZuccheriId", "Nome");

            ViewBag.Zuccheri = zuccheri;
            return(View(am));
        }
Ejemplo n.º 12
0
        public ActionResult AggiungiLievito(LievitiMagazzino lm)
        {
            if (ModelState.IsValid)
            {
                _db.LievitiMagazzinos.Add(lm);
                _db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            var       me        = _db.Users.First(x => x.UserName == User.Identity.Name);
            Magazzino magazzino = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me.Id);

            lm.Magazzino   = magazzino;
            lm.MagazzinoId = magazzino.MagazzinoId;
            SelectList lieviti = new SelectList(_db.Lieviti, "LievitiId", "Nome");

            ViewBag.Lieviti = lieviti;
            return(View(lm));
        }
Ejemplo n.º 13
0
        private void LeggiMagazzino(string nomeDeposito)
        {
            DataTable dt = ReadDatatable(nomeDeposito);

            if (dt.Rows.Count > 1)
            {
                if (dt.Rows[0][2].ToString() == "" &&
                    dt.Rows[0][3].ToString() == "" &&
                    dt.Rows[0][4].ToString() == ""
                    )
                {
                    // remove header
                    dt.Rows[0].Delete();
                    dt.Rows[1].Delete();
                }
            }
            dt.AcceptChanges();

            var list = dt.AsEnumerable().Select(a => new
            {
                // assuming column 0's type is Nullable<long>
                Categoria     = a.Field <string>(1),
                Marca         = a.Field <string>(2),
                Modello       = a.Field <string>(3),
                Note          = a.Field <string>(4),
                DescrBreve    = a.Field <string>(5),
                Colore        = a.Field <string>(6),
                Qta           = (a.Field <string>(7)),
                PrezzoVendita = (a.Field <string>(8)),
                PrezzoAcq     = (a.Field <string>(9)),
                Condizione    = a.Field <string>(10),
            }).Where(a => a.Categoria != null && a.Categoria.Length > 0 && a.Marca != null && a.Marca.Length > 0).ToList();

            ProgressManager.Instance().Value     = 0;
            ProgressManager.Instance().Max       = list.Count;
            ProgressManager.Instance().Messaggio = nomeDeposito;

            using (var uof = new UnitOfWork())
            {
                var deposito = uof.DepositoRepository.Find(a => a.NomeDeposito == nomeDeposito).ToList().DefaultIfEmpty(
                    new Deposito()
                {
                    NomeDeposito = nomeDeposito
                }).FirstOrDefault();

                var listCategorie = uof.CategorieRepository.Find(a => true).ToList();
                foreach (var item in list.ToList())
                {
                    try
                    {
                        var magItem  = new Magazzino();
                        var articolo = new Articolo();
                        articolo.Strumento.Marca = item.Marca;
                        if (item.PrezzoVendita != null)
                        {
                            articolo.Prezzo = decimal.Parse(item.PrezzoVendita.Replace("€", "").Trim());
                        }
                        else
                        {
                            articolo.Prezzo = 0;
                        }


                        articolo.Note1             = (item.Note);
                        articolo.Strumento.Colore  = (item.Colore);
                        articolo.Titolo            = item.Marca + " " + item.Modello + " " + item.DescrBreve + " " + item.Colore;
                        articolo.Titolo            = articolo.Titolo.Trim();
                        articolo.ArticoloWeb.Testo = articolo.Titolo;
                        articolo.TagImport         = "ExcelMagazzini " + nomeDeposito;

                        try
                        {
                            articolo.Condizione = (enCondizioneArticolo)Enum.Parse(typeof(enCondizioneArticolo), item.Condizione, true);
                        }
                        catch
                        {
                            if (item.Condizione.ToUpper().Contains("USATO"))
                            {
                                articolo.Condizione = enCondizioneArticolo.UsatoGarantito;
                            }
                            else if (item.Condizione.ToUpper().Contains("DEMO"))
                            {
                                articolo.Condizione = enCondizioneArticolo.ExDemo;
                            }
                            else
                            {
                                throw new MessageException(
                                          string.Format(@"Non è specificata la condizione (Nuovo\usato\demo) per l'articolo {0}"
                                                        , articolo.Titolo));
                            }
                        }
                        var categoriaName = item.Categoria;

                        if (categoriaName.Equals("Panca", StringComparison.InvariantCultureIgnoreCase))
                        {
                            categoriaName = "Sgabelli e Panche";
                        }
                        if (categoriaName.StartsWith("sax", StringComparison.InvariantCultureIgnoreCase))
                        {
                            categoriaName = "Sax";
                        }
                        categoriaName = categoriaName.Replace(" ", "").ToUpper();

                        var categoriaSel = listCategorie.Where(a => a.Nome.ToUpper().Replace(" ", "")
                                                               == categoriaName).FirstOrDefault();

                        if (categoriaSel == null)
                        {
                            categoriaName = categoriaName.Remove(categoriaName.Length - 1);

                            categoriaSel = listCategorie.Where(a => a.Nome.ToUpper().Replace(" ", "").StartsWith(categoriaName))
                                           .FirstOrDefault();
                        }
                        if (categoriaSel == null)
                        {
                            articolo.Note2 = item.Categoria;
                            categoriaSel   = listCategorie.Where(a => a.Codice == -1000).First();
                        }
                        articolo.CategoriaID = categoriaSel.ID;

                        magItem.Qta      = int.Parse(item.Qta);
                        magItem.Articolo = articolo;
                        magItem.Deposito = deposito;
                        if (!string.IsNullOrEmpty(item.PrezzoAcq) && item.PrezzoAcq.Trim().Length > 0)
                        {
                            articolo.PrezzoAcquisto = decimal.Parse(item.PrezzoAcq);
                        }
                        else
                        {
                            articolo.PrezzoAcquisto = 0;
                        }
                        magItem.Articolo = articolo;
                        //uof.ArticoliRepository.Find(a=>a.)
                        uof.MagazzinoRepository.Add(magItem);
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                    ProgressManager.Instance().Value++;
                }
                uof.Commit();
            }
        }
Ejemplo n.º 14
0
        private void ImportLibri(UnitOfWork uof, Deposito deposito, System.Collections.Generic.List <Categoria> listCategorie)
        {
            DataTable dt = ReadDatatable(enNomeTabellaExcel.LIBRI.ToString());

            var list = dt.AsEnumerable().Select(a => new
            {
                // assuming column 0's type is Nullable<long>
                CodiceABarre  = a.Field <string>(0),
                Titolo        = a.Field <string>(1),
                Autore        = a.Field <string>(2),
                Genere        = a.Field <string>(3),
                Edizione      = a.Field <string>(4),
                Quantita      = int.Parse(a.Field <string>(5)),
                Edizione2     = a.Field <string>(6),
                Ordine        = a.Field <string>(7),
                Varie1        = a.Field <string>(8),
                Settore       = a.Field <string>(9),
                PrezzoVendita = decimal.Parse(a.Field <string>(10)),
                Categoria     = "Libri - Altro",
            }).ToList();

            ProgressManager.Instance().Messaggio = "Libri";
            ProgressManager.Instance().Value     = 0;
            ProgressManager.Instance().Max       = list.Count();

            foreach (var item in list.ToList())
            {
                var magItem  = new Magazzino();
                var articolo = new Articolo();
                articolo.Condizione   = enCondizioneArticolo.Nuovo;
                articolo.Prezzo       = (item.PrezzoVendita);
                articolo.CodiceABarre = item.CodiceABarre;
                var categoriaSel = listCategorie.Where(a =>
                                                       a.Nome.ToUpper() == item.Categoria.ToUpper()).FirstOrDefault();
                if (categoriaSel == null)
                {
                    throw new MessageException(string.Format("Negli strumenti non è specificata una categoria corretta per l'articolo {0}", item.CodiceABarre));
                }
                articolo.CategoriaID = categoriaSel.ID;

                articolo.Titolo = (item.Autore + " " + item.Titolo + " " + item.Genere + " " + item.Edizione + " " + item.Edizione2).Trim().Replace("  ", " ");
                articolo.Libro  = new Libro
                {
                    Autore    = item.Autore,
                    Edizione  = item.Edizione,
                    Edizione2 = item.Edizione2,
                    Genere    = item.Genere,
                    Ordine    = item.Ordine,
                    Settore   = item.Settore
                };
                articolo.Note1      = item.Varie1;
                articolo.TagImport  = "MulinoLibri";
                articolo.Condizione = enCondizioneArticolo.NonSpecificato;

                magItem.Qta      = item.Quantita;
                magItem.Articolo = articolo;
                magItem.Deposito = deposito;

                uof.MagazzinoRepository.Add(magItem);
                ProgressManager.Instance().Value++;
            }
        }
Ejemplo n.º 15
0
        private void ImportArticoli(UnitOfWork uof, Deposito deposito, System.Collections.Generic.List <Categoria> listCategorie)
        {
            DataTable dt = ReadDatatable(enNomeTabellaExcel.artic.ToString());

            try
            {
                var list = dt.AsEnumerable().Select(a => new
                {
                    // assuming column 0's type is Nullable<long>
                    CodiceABarre  = a.Field <string>(0),
                    Marca         = a.Field <string>(1),
                    Articolo      = a.Field <string>(2),
                    Varie1        = a.Field <string>(3),
                    Varie2        = a.Field <string>(4),
                    Varie3        = a.Field <string>(5),
                    PrezzoVendita = a.Field <string>(6),
                    PrezzoAcq     = a.Field <string>(7),
                    Rivenditore   = a.Field <string>(8),
                    Quantita      = a.Field <string>(9),
                    Categoria     = "<Non Specificato>",
                }).ToList();

                ProgressManager.Instance().Messaggio = "Articoli";
                ProgressManager.Instance().Value     = 0;
                ProgressManager.Instance().Max       = list.Count();

                foreach (var item in list.ToList())
                {
                    var magItem  = new Magazzino();
                    var articolo = new Articolo();
                    articolo.Condizione      = enCondizioneArticolo.Nuovo;
                    articolo.Strumento.Marca = item.Marca;

                    articolo.Prezzo       = decimal.Parse(item.PrezzoVendita);
                    articolo.CodiceABarre = item.CodiceABarre;
                    var categoriaSel = listCategorie.Where(a => a.Nome.ToUpper() == item.Categoria.ToUpper()).FirstOrDefault();
                    if (categoriaSel == null)
                    {
                        throw new MessageException(string.Format("Nei libri non è specificata una categoria corretta per l'articolo {0}", item.CodiceABarre));
                    }
                    articolo.CategoriaID = categoriaSel.ID;

                    articolo.Titolo = item.Marca + " " + item.Articolo;

                    if (!string.IsNullOrEmpty(item.Varie1) && !item.Varie1.Contains("?"))
                    {
                        articolo.Titolo += " " + item.Varie1;
                    }

                    articolo.Strumento.Rivenditore = item.Rivenditore;
                    articolo.Note1          = item.Varie1;
                    articolo.Note2          = item.Varie2;
                    articolo.Note3          = item.Varie3;
                    articolo.Condizione     = enCondizioneArticolo.NonSpecificato;
                    articolo.PrezzoAcquisto = decimal.Parse(item.PrezzoAcq);

                    articolo.TagImport     = "MulinoArticoli";
                    magItem.Qta            = int.Parse(item.Quantita);
                    magItem.Articolo       = articolo;
                    magItem.Deposito       = deposito;
                    magItem.PrezzoAcquisto = decimal.Parse(item.PrezzoAcq);

                    //uof.ArticoliRepository.Find(a=>a.)
                    uof.MagazzinoRepository.Add(magItem);
                    ProgressManager.Instance().Value++;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 16
0
        //funzionalità what should I brew Today, suggerisce quale birra preparare in base a ciò che è presente in magazzino
        public ActionResult WhatShoudIBrewToday()
        {
            var            me       = User.Identity.GetUserId();
            List <Ricette> additivi = new List <Ricette>();
            List <Ricette> luppoli  = new List <Ricette>();
            List <Ricette> lieviti  = new List <Ricette>();
            List <Ricette> malti    = new List <Ricette>();
            List <Ricette> zuccheri = new List <Ricette>();
            Magazzino      m        = _db.Magazzinoes.FirstOrDefault(x => x.UserId == me);

            List <Additivi> a = new List <Additivi>();

            if (m?.AdditiviUtente != null)
            {
                foreach (var additiviMagazzino in m.AdditiviUtente)
                {
                    a.Add(_db.Additivi.FirstOrDefault(x => x.AdditiviId == additiviMagazzino.AdditiviId));
                }
            }
            foreach (var ricette in _db.Ricette.Where(x => x.Privata == false || x.UserId == me))
            {
                if (a.All(x => ricette.Additivis.Contains(x)))
                {
                    additivi.Add(ricette);
                }
            }

            List <Luppoli> l = new List <Luppoli>();

            if (m != null)
            {
                foreach (var additiviMagazzino in m.LuppoliUtente)
                {
                    l.Add(_db.Luppoli.FirstOrDefault(x => x.LuppoliId == additiviMagazzino.LuppoliId));
                }
                foreach (var ricette in _db.Ricette.Where(x => x.Privata == false || x.UserId == me))
                {
                    if (l.All(x => ricette.Luppolis.Contains(x)))
                    {
                        luppoli.Add(ricette);
                    }
                }

                List <Lieviti> li = new List <Lieviti>();
                foreach (var additiviMagazzino in m.LievitiUtente)
                {
                    li.Add(_db.Lieviti.FirstOrDefault(x => x.LievitiId == additiviMagazzino.LievitiId));
                }
                foreach (var ricette in _db.Ricette.Where(x => x.Privata == false || x.UserId == me))
                {
                    if (li.All(x => ricette.Lievitis.Contains(x)))
                    {
                        lieviti.Add(ricette);
                    }
                }

                List <Malti> ma = new List <Malti>();
                foreach (var additiviMagazzino in m.MaltiUtente)
                {
                    ma.Add(_db.Malti.Where(x => x.MaltiId == additiviMagazzino.MaltiId).FirstOrDefault());
                }
                foreach (var ricette in _db.Ricette.Where(x => x.Privata == false || x.UserId == me))
                {
                    if (ma.All(x => ricette.Maltis.Contains(x)))
                    {
                        malti.Add(ricette);
                    }
                }

                List <Zuccheri> z = new List <Zuccheri>();
                foreach (var additiviMagazzino in m.ZuccheriUtente)
                {
                    z.Add(_db.Zuccheri.Where(x => x.ZuccheriId == additiviMagazzino.ZuccheriId).FirstOrDefault());
                }
                foreach (var ricette in _db.Ricette.Where(x => x.Privata == false || x.UserId == me))
                {
                    if (z.All(x => ricette.Zuccheris.Contains(x)))
                    {
                        zuccheri.Add(ricette);
                    }
                }
            }
            var    valide = additivi.Intersect(malti).Intersect(luppoli).Intersect(lieviti).Intersect(zuccheri);
            Random r      = new Random();
            var    mex    = User.Identity.GetUserId();

            if (valide.Count() > 0)
            {
                int quale = r.Next(0, valide.Count());
                return(RedirectToAction("Details", new { ricetta = valide.ElementAt(quale).RicettaId }));
            }
            else if (_db.Ricette.Where(x => x.Privata == false || x.UserId == mex).Count() > 0)
            {
                int q    = r.Next(0, _db.Ricette.Where(x => x.Privata == false || x.UserId == mex).Count());
                var dove = _db.Ricette.Where(x => x.Privata == false || x.UserId == mex).ToList().ElementAt(q).RicettaId;
                return(RedirectToAction("Details", new { id = dove }));
            }
            else
            {
                return(Redirect("/Ricette/Nessuna"));
            }
        }