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; } }
/// <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(); } }