Exemple #1
0
        public static int CalcolaStock(ArticoloBase artDb)
        {
            using (var uof = new UnitOfWork())
            {
                var giacenza = uof.MagazzinoRepository.Find(a => artDb.ArticoloID.Equals(a.ArticoloID))
                               .Select(a => new { a.ArticoloID, a.Qta, a.Deposito }).GroupBy(a => new { a.ArticoloID, a.Deposito })
                               .Select(a => new { Sum = a.Sum(b => b.Qta), Articolo = a.Key }).ToList();



                return(giacenza.Where(a => a.Articolo.Deposito.Principale).Select(a => a.Sum)
                       .DefaultIfEmpty(0).FirstOrDefault());
            }
        }
Exemple #2
0
        /// <summary>
        /// Aggiorna il magazzino del articolo nel web
        /// </summary>
        /// <param name="newArtWeb"></param>
        /// <param name="artDb"></param>
        public static bool UpdateStockArt(ref int qta, ArticoloBase artDb, UnitOfWork uof, bool forzaUpdate = false)
        {
            if (!forzaUpdate && artDb.Aggiornamento.GiacenzaMagazzinoWebInDataAggWeb != qta)
            {
                Core.Manager.ManagerLog.Logger.Info("Il prodotto '" + artDb.ArticoloDb.Titolo +
                                                    "' è stato modificato con gli ordini nel web, occorre prima aspettare che venga " +
                                                    "scaricata la nuova qta dal job delle giacenze.");
                return(false);
            }
            DateTime date = DateTime.Now;

            qta = CalcolaStock(artDb);

            artDb.Aggiornamento.DataUltimoAggMagazzino           = date;
            artDb.Aggiornamento.DataUltimoAggMagazzinoWeb        = date;
            artDb.Aggiornamento.GiacenzaMagazzinoWebInDataAggWeb = qta;
            SalvaAggiornamento(uof, artDb.Aggiornamento);
            return(true);
        }
Exemple #3
0
 public abstract bool UpdateStockArt(ArticoloBase artDb, UnitOfWork uof);