/// <summary> /// Metoda kojom se mogu brisati stavke primke. /// Poziva metodu za provjeru skladišta te ako je /// moguće briše se stavka primke. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BrisiStavkuButton_Click(object sender, EventArgs e) { Stavka_primke trenutnaStavka = stavka_primkeBindingSource.Current as Stavka_primke; if (trenutnaStavka != null) { if (MessageBox.Show("Želite li zaista izbrisati stavku?", "Upozorenje!", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { if (ProvjeraSkladista(trenutnaStavka)) { using (var db = new UpraljanjeSkladistemEntities()) { db.Stavka_primke.Attach(trenutnaStavka); db.Stavka_primke.Remove(trenutnaStavka); db.SaveChanges(); } } else { MessageBox.Show("Nema dovoljno materijala na skladištu za brisanje stavke!", "Greška!"); } } } PrikazPrimki(); }
/// <summary> /// Metoda koja se poziva na tipku ureduButton ("U redu"). /// Sprema novu primku u bazu, odnosno sprema promjene nastale /// na staroj primci. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UreduButton_Click(object sender, EventArgs e) { using (var db = new UpraljanjeSkladistemEntities()) { if (trenutnaPrimka == null) { Primka novaPrimka = new Primka { datumPrimitka = datumPrimitkaDateTimePicker.Value, korisnikId = idKorisnika, partnerId = int.Parse(partnerComboBox.SelectedValue.ToString()) }; db.Primka.Add(novaPrimka); db.SaveChanges(); } else { db.Primka.Attach(trenutnaPrimka); trenutnaPrimka.datumPrimitka = datumPrimitkaDateTimePicker.Value; trenutnaPrimka.partnerId = int.Parse(partnerComboBox.SelectedValue.ToString()); db.SaveChanges(); } Close(); } }
/// <summary> /// Dohvaća sve listu svih materijala na skladištu za provjeru količine. /// </summary> private void DohvatiMaterijale() { using (var db = new UpraljanjeSkladistemEntities()) { materijali = new BindingList <Materijal>(db.Materijal.ToList()); } }
/// <summary> /// Metoda koja se poziva na klik tipke brisiPrimkuButton, /// koja služi za brisanje primki. /// Provjerava ima li stavki na primci, te ako nema dozvoljava /// brisanje primke, ako ne onda prikazuje odgovrajuću poruku. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BrisiPrimkuButton_Click(object sender, EventArgs e) { Primka primka = primkaBindingSource.Current as Primka; if (primka != null) { if (MessageBox.Show("Želite li zaista izbrisati primku?", "Upozorenje!", MessageBoxButtons.YesNo) == DialogResult.Yes) { if (stavke.Count == 0) { using (var db = new UpraljanjeSkladistemEntities()) { db.Primka.Attach(primka); db.Primka.Remove(primka); db.SaveChanges(); } PrikazPrimki(); primka = primkaBindingSource.Current as Primka; if (primka != null) { PrikazStavki(primka); } } else { MessageBox.Show("Nije moguće obrisati primku sa stavkama!", "Greška!"); } } } }
/// <summary> /// Metoda koja se poziva na klik tipke spremiButton /// Sprema nastale promjene na materijalu ili unosi novi materijal u sustav. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SpremiButton_Click(object sender, EventArgs e) { using (var db = new UpraljanjeSkladistemEntities()) { if (materijal == null) { Materijal noviMaterijal = new Materijal { naziv = nazivTextBox.Text, cijena = cijenaNumericUpDown.Value, kolicina = (int)kolicinaNumericUpDown.Value }; db.Materijal.Add(noviMaterijal); db.SaveChanges(); } else { db.Materijal.Attach(materijal); materijal.naziv = nazivTextBox.Text; materijal.cijena = cijenaNumericUpDown.Value; materijal.kolicina = (int)kolicinaNumericUpDown.Value; db.SaveChanges(); } Close(); } }
/// <summary> /// Dohvaća materijale dostupne u sustavu /// </summary> private void DohvatiMaterijale() { materijali = new BindingList <Materijal>(); using (var db = new UpraljanjeSkladistemEntities()) { materijali = new BindingList <Materijal>(db.Materijal.ToList()); } materijalBindingSource.DataSource = materijali; }
/// <summary> /// Metoda koja dohvaća listu partnera iz baze i dodjeljuje ju kao DataSource ComboBox-a /// </summary> private void DohvatiPartnere() { BindingList <Partner> partneri = null; using (var db = new UpraljanjeSkladistemEntities()) { partneri = new BindingList <Partner>(db.Partner.ToList()); } partnerBindingSource.DataSource = partneri; }
/// <summary> /// Dohvaća stavke već dodane na primku. /// </summary> private void DohvatiStavke() { BindingList <Stavka_primke> stavke = null; using (var db = new UpraljanjeSkladistemEntities()) { db.Primka.Attach(trenutnaPrimka); db.Entry(trenutnaPrimka).Collection(p => p.Stavka_primke).Load(); stavke = new BindingList <Stavka_primke>(trenutnaPrimka.Stavka_primke.ToList()); } stavkaprimkeBindingSource.DataSource = stavke; }
/// <summary> /// Dohvaća sve stavke za određenu primku, te dohvaća materijale vezane uz stavke. /// Postavlja DataSource-ove za prikaz podataka. /// </summary> /// <param name="primka">Primka za koju ispisujemo stavke</param> private void PrikazStavki(Primka primka) { using (var db = new UpraljanjeSkladistemEntities()) { db.Primka.Attach(primka); stavke = new BindingList <Stavka_primke>(primka.Stavka_primke.ToList <Stavka_primke>()); materijali = new BindingList <Materijal>(); foreach (Stavka_primke stavka in stavke) { materijali.Add(stavka.Materijal); } } stavka_primkeBindingSource.DataSource = stavke; materijalBindingSource.DataSource = materijali; }
/// <summary> /// Metoda koja se poziva klikom na tipku dodajMaterijalButton. /// Provjerava ima li dodanog materijala već na primci, ako nema /// dodaje ga na primku, ako da onda ispisuje ogovarajuću poruku /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DodajMaterijalButton_Click(object sender, EventArgs e) { Materijal trenutniMaterijal = materijalBindingSource.Current as Materijal; if (trenutniMaterijal != null) { int dodanaKolicina = (int)kolicinaNumericUpDown.Value; if (dodanaKolicina != 0) { bool novaStavka = true; foreach (Stavka_primke stavka in stavkaprimkeBindingSource) { if (trenutniMaterijal.materijalId == stavka.materijalId) { novaStavka = false; } } if (novaStavka) { using (var db = new UpraljanjeSkladistemEntities()) { Stavka_primke stavkaZaDodat = new Stavka_primke { primkaId = trenutnaPrimka.primkaId, materijalId = trenutniMaterijal.materijalId, kolicina = dodanaKolicina }; db.Stavka_primke.Add(stavkaZaDodat); db.SaveChanges(); } DohvatiStavke(); } else { MessageBox.Show("Ne možete dodati istu stavku na primku!", "Greška"); } } } }
/// <summary> /// Metoda koja dohvaća primke i, korisnike i partnere vezane uz primku. /// Postavlja DataSource-ove za prikaz podataka. /// </summary> private void PrikazPrimki() { BindingList <Primka> primke = null; BindingList <Korisnik> korisnici = null; BindingList <Partner> partneri = null; using (var db = new UpraljanjeSkladistemEntities()) { primke = new BindingList <Primka>(db.Primka.ToList()); korisnici = new BindingList <Korisnik>(); partneri = new BindingList <Partner>(); foreach (Primka primka in primke) { korisnici.Add(primka.Korisnik); partneri.Add(primka.Partner); } } korisnikBindingSource.DataSource = korisnici; partnerBindingSource.DataSource = partneri; primkaBindingSource.DataSource = primke; }