示例#1
0
        public override bool LaddaOrdrar(ref List<Order> orderLst)
        {
            orderLst.Clear();

            if (!File.Exists(Path.Combine(dataPath, orderFileName)))
                return false;

            using (StreamReader reader = File.OpenText(Path.Combine(dataPath, orderFileName)))
            {
                string line;

                try
                {
                    while ((line = reader.ReadLine()) != null)
                    {
                        string[] fields = line.Split(';');
                        DateTime dt = new DateTime();
                        dt = DateTime.ParseExact(fields[1], "yyyyMMdd", null);
                        Order order = new Order(Int64.Parse(fields[0]), dt);
                        for(int i=0;i<Int32.Parse(fields[2]);i++)
                        {
                            line = reader.ReadLine();
                            string[] rowFields = line.Split(';');
                            order.AdderaOrderrad(Int64.Parse(rowFields[0]), rowFields[1], Int32.Parse(rowFields[2]), Int32.Parse(rowFields[3]));
                        }
                        orderLst.Add(order);
                    }
                }
                catch(Exception)
                {
                    return false;
                }
                return true;
            }
        }
示例#2
0
 /// <summary>
 /// Denna metod jämför två instanser av klassen. Detta möjliggör sortering i en List<Order>.
 /// </summary>
 public int CompareTo(Order _o)
 {
     if (this.OrderDatum.Year > _o.OrderDatum.Year)
         return 1;
     else if (this.OrderDatum.Year < _o.OrderDatum.Year)
         return -1;
     else
         return 0;
 }
示例#3
0
        /// <summary>
        /// Lägger till en order till listan. Sparas även till fil.
        /// </summary>
        /// <param name="_order">Den order som ska sparas.</param>
        public void AdderaOrder(Order _order)
        {
            if (orderLst.Count > 0)
                _order.Ordernr = orderLst.Max(o => o.Ordernr + 1);
            else
                _order.Ordernr = 1;
            orderLst.Add(_order);
            lagring.SparaOrdrar(orderLst);

            // Räkna ner lagersaldot
            foreach (Orderrad r in _order.RadLst)
                SubtraheraProduktSaldo(r.Varunr, r.BestSaldo);
            lagring.SparaProdukter(produktLst);
        }
示例#4
0
        /// <summary>
        /// Callback-metod som anropas då användaren slutför köpet.
        /// </summary>
        private void execBuyBtn_Click(object sender, EventArgs e)
        {
            bool isOk = true;
            bool skrivUtKvitto = false;
            Order order;

            if (varukorgDgw.RowCount == 0)
                return;

            foreach (DataGridViewRow row in varukorgDgw.Rows)
            {
                if (Int32.Parse(row.Cells["SaldoCol"].Value.ToString()) > ((Produkt)row.Tag).Saldo)
                {
                    isOk = false;
                    break;
                }
            }
            if (!isOk)
                MessageBox.Show("Alla produkter finns inte på lager i önskat antal. Anpassa köpet.", "Lagersaldon", MessageBoxButtons.OK);
            else // Köpet går igenom
            {
                DialogResult res;
                res = MessageBox.Show("Köpet slutförs nu. Vill du skriva ut ett kvitto?", "Slutför köp", MessageBoxButtons.YesNoCancel);
                if (res == DialogResult.Cancel) // Köpet avbryts
                    return;
                else if (res == DialogResult.Yes)
                    skrivUtKvitto = true;

                order = new Order();
                foreach (DataGridViewRow row in varukorgDgw.Rows)
                {
                    Produkt prod = (Produkt)row.Tag;
                    int antal = Int32.Parse(row.Cells["SaldoCol"].Value.ToString());
                    order.AdderaOrderrad(prod.Varunr, prod.Namn, prod.Pris, antal);
                }
                butik.AdderaOrder(order);

                // Kvitto-utskrift
                if (skrivUtKvitto)
                    order.PrintKvitto();

                varukorgDgw.Rows.Clear();
                butikSearchForm.Init();
            }
        }