Exemple #1
0
 public Produkt(long _varunr, ProdKategoriEnum _kategori, string _namn, int _pris=0, int _saldo=0)
 {
     varunr = _varunr;
     Kategori = _kategori;
     Namn = _namn;
     Pris = _pris;
     Saldo = _saldo;
 }
Exemple #2
0
 /// <summary>
 /// Lägger till en ny produkt till sortementet. Sparas även till fil.
 /// </summary>
 /// <param name="_namn">Produktens namn.</param>
 /// <param name="_kategori">Produktens kategori.</param>
 /// <param name="_pris">Produktens pris.</param>
 /// <param name="_saldo">Produktens lagersaldo.</param>
 /// <returns>Returnerar adderad produkts varunr.</returns>
 public long AdderaProdukt(string _namn, ProdKategoriEnum _kategori, int _pris=0, int _saldo=0, long _varunr=0)
 {
     Produkt prod;
     if(produktLst.Count == 0 && _varunr != 0) // Tomt produktregister, produkten som ska adderas är inte importerad
         prod = new Produkt(1 , _kategori, _namn, _pris, _saldo);
     else if(_varunr != 0) // Produkten är importerad (har ett varunr)
         prod = new Produkt(_varunr, _kategori, _namn, _pris, _saldo);
     else // Produkten är nyupplaggd här i programmet
         prod = new Produkt(produktLst.Max(p => p.Varunr+1), _kategori, _namn, _pris, _saldo);
     produktLst.Add(prod);
     lagring.SparaProdukter(produktLst);
     return prod.Varunr;
 }
Exemple #3
0
        /// <summary>
        /// Beräknar och returnerar en sorterad lista på produkterna under angiven tidsperiod.
        /// </summary>
        /// <param name="_year">Önskat år för urvalet.</param>
        /// <param name="_month">Önskad månad för urvalet. Om värdet är 0 ska alla månader inkluderas.</param>
        /// <param name="_kategori">Önskad kategori för urvalet.</param>
        /// <returns>Returnerar en lista med ProdSales innehållande samtliga produkter som sålts under angiven tidsperiod, samt antalet sålda.
        /// Listan är sorterad från flest sålda till minst sålda.</returns>
        public List<ProdSales> GetSoldProductsOrdered(int _year, int _month, ProdKategoriEnum _kategori)
        {
            // Sorterar fram endast de ordrar som ligger inom önskat tidsintervall.
            List<Order> oList = orderLst.Where(delegate(Order o)
            {
                // Årtal
                if (o.OrderDatum.Year != _year)
                    return false;

                // Månad
                if (_month != 0 && o.OrderDatum.Month != _month)
                    return false;

                return true;
            }
            ).ToList();

            List<ProdSales> salesLst = new List<ProdSales>();
            foreach (Order o in oList)
            {
                foreach (Orderrad r in o)
                {
                    // Verifierar att produkten är av rätt kategori
                    try
                    {
                        Produkt prod = produktLst.First(p => p.Varunr == r.Varunr);
                        if (_kategori == 0 || prod.Kategori == _kategori)
                        {
                            if (salesLst.Exists(p => p.Prod.Varunr == r.Varunr))
                            {
                                ProdSales ps = salesLst.First(p => p.Prod.Varunr == r.Varunr);
                                ps.Antal += r.BestSaldo;
                            }
                            else
                                salesLst.Add(new ProdSales(prod, r.BestSaldo));
                        }
                    }
                    catch (InvalidOperationException) // Produkten finns inte i produktlistan fastän den finns i en order. Det betyder att den är raderad. Vi ignorerar den.
                    {}
                }
            }
            salesLst.Sort((o1, o2) => o1.CompareTo(o2));

            return salesLst;
        }