public ProduktForm(List<Produkt> _produktLst, ProduktFormStatus _status, Produkt _produkt) : this(_produktLst) { formStatus = _status; ProduktAkt = _produkt; if (formStatus == ProduktFormStatus.Addera) { this.Text = "Addera produkt"; prisTbx.Text = "0"; saldoTbx.Text = "0"; } else if (formStatus == ProduktFormStatus.Uppdatera) { this.Text = "Redigera produkt"; varunrTbx.Text = ProduktAkt.Varunr.ToString(); kategoriCbx.SelectedIndex = (int)ProduktAkt.Kategori; namnTbx.Text = ProduktAkt.Namn; prisTbx.Text = ProduktAkt.Pris.ToString(); saldoTbx.Text = ProduktAkt.Saldo.ToString(); } }
// Methods /// <summary> /// Kopierar en produkt. /// </summary> /// <param name="_p">Den produkt som ska kopieras.</param> public void Copy(Produkt _p) { varunr = _p.Varunr; Kategori = _p.Kategori; Namn = _p.Namn; Pris = _p.Pris; Saldo = _p.Saldo; }
// Copy-konstruktor public Produkt(Produkt _p) { this.Copy(_p); }
public ProdSales(Produkt _prod, int _antal) { Prod = _prod; Antal = _antal; }
/////////////////////////////////////////////////// ///// Metoder som relaterar till Lager-fliken ///// /////////////////////////////////////////////////// /// <summary> /// Metod som fyller i vald produkts egenskaper i formen. /// </summary> /// <param name="_prod">Den produkt som ska visas.</param> private void UpdateLagerProduktInfo(Produkt _prod) { lagerVarunrTbx.Text = _prod.Varunr.ToString(); lagerKategoriTbx.Text = _prod.Kategori.ToString(); lagerNamnTbx.Text = _prod.Namn; lagerPrisTbx.Text = _prod.Pris.ToString(); lagerSaldoTbx.Text = _prod.Saldo.ToString(); }
/// <summary> /// Callback-metod som anropas då användaren väljer att redigera uppgifterna för en befintlig produkt. /// </summary> private void lagerRedigeraProdBtn_Click(object sender, EventArgs e) { if (lagerVarunrTbx.Text.Length == 0) return; Produkt aktProd = butik.GetProdukt(Int64.Parse(lagerVarunrTbx.Text)); Produkt tmpProd = new Produkt(aktProd); using (ProduktForm ap = new ProduktForm(butik.ProduktLst, ProduktFormStatus.Uppdatera, tmpProd)) { if (ap.ShowDialog() == DialogResult.OK) { aktProd.Copy(tmpProd); lagerSearchForm.UpdateList(aktProd.Varunr); butik.RedigeraProdukt(aktProd); } } }
/// <summary> /// Callback-metod som anropas då användaren väljer att lägga till en ny produkt. /// </summary> private void addProductBtn_Click(object sender, EventArgs e) { Produkt prod = new Produkt(); using (ProduktForm ap = new ProduktForm(butik.ProduktLst, ProduktFormStatus.Addera, prod)) { if (ap.ShowDialog() == DialogResult.OK) { long varunr = butik.AdderaProdukt(prod.Namn, prod.Kategori, prod.Pris); lagerSearchForm.UpdateList(varunr); } } }
/// <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; }
/// <summary> /// Redigerar uppgifterna på en befintlig produkt. Redigerar även i filen. /// </summary> /// <param name="_prod">Aktuell produkt med redigerade uppgifter.</param> public void RedigeraProdukt(Produkt _prod) { if(produktLst.Exists(p => p.Varunr == _prod.Varunr)) { Produkt prod = produktLst.First(p => p.Varunr == _prod.Varunr); prod.Copy(_prod); lagring.SparaProdukter(produktLst); } }