/// <summary> /// Metoda koja vraća fazu_projekta prema označenom projektu i fazi /// koristi parametar za kontrolu povratne informacije, 1 vraća prvi pronađeni element /// 0 vraća zadnji pronađeni element. Koriste se lista faza_projekta dobivenih iz /// navigacijskog svojstva projekta i lista od navigacijskog od faze /// traže se zajedničke faze_projekta, a važno je koja se vraća zbog /// mogućnosti postojanja istih faza na jednom projektu, /// ako se briše šalje se 0, a ako se dodaje i prikazuje materijal 1 /// </summary> /// <param name="kontroler"></param> /// <returns></returns> private Faze_projekta vratiFazuProjekta(int kontroler) { Faza selektiranaFaza = fazaBindingSource.Current as Faza; Projekt selektiraniProjekt = projektBindingSource.Current as Projekt; Faze_projekta vrati = null; if (selektiranaFaza != null && selektiraniProjekt != null) { using (var db = new UpravljanjeProjektimaEntities()) { db.Projekt.Attach(selektiraniProjekt); db.Faza.Attach(selektiranaFaza); List <Faze_projekta> listaOdProjekta = new List <Faze_projekta>(selektiraniProjekt.Faze_projekta.ToList()); List <Faze_projekta> listaOdFaze = new List <Faze_projekta>(selektiranaFaza.Faze_projekta.ToList()); foreach (var P in listaOdProjekta) { foreach (var F in listaOdFaze) { if (P.id == F.id) { vrati = P; if (kontroler == 1) { return(vrati); } } } } } } return(vrati); }
//private void zamijeniQRKod(string sifra) //{ // generirajQRKod(sifra); // if (File.Exists(staroImeFaze + ".jpeg")) // { // File.Delete(staroImeFaze + ".jpeg"); // } //} /// <summary> /// Ako je novi unos onda se stvara novi objekt i generira se QR kod, /// ako je izmjena onda se mijenjaju podaci /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dodajFazuButton_Click(object sender, EventArgs e) { if (odabranaFaza == null) { string sifra; using (var db = new UpravljanjeProjektimaEntities()) { Faza novaFaza = new Faza { naziv = tboxNaziv.Text, cijena = numCijena.Value, trajanje = (int)numTrajanje.Value, }; db.Faza.Add(novaFaza); db.SaveChanges(); sifra = novaFaza.fazaId.ToString(); } generirajQRKod(sifra); } else { using (var db = new UpravljanjeProjektimaEntities()) { db.Faza.Attach(odabranaFaza); odabranaFaza.naziv = tboxNaziv.Text.ToString(); odabranaFaza.cijena = numCijena.Value; odabranaFaza.trajanje = (int)numTrajanje.Value; db.SaveChanges(); } Close(); } }
/// <summary> /// Dodaje se faza na prosljeđeni projekt ako za projekt nije izdan račun /// stvara se novi objekt faza_projekta /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dodajFazuButton_Click(object sender, EventArgs e) { Faza selektiranaFaza = fazaBindingSource.Current as Faza; if (odabraniProjekt.gotovo != 1) { using (var db = new UpravljanjeProjektimaEntities()) { //db.Faza.Attach(selektiranaFaza); //db.Projekt.Attach(odabraniProjekt); Faze_projekta novaFazaProjekta = new Faze_projekta { fazaId = selektiranaFaza.fazaId, projektId = odabraniProjekt.projektId, zakljucano = 0, }; db.Faze_projekta.Add(novaFazaProjekta); db.SaveChanges(); } MessageBox.Show("Uspješno dodana faza"); } else { MessageBox.Show("Projekt je završen!"); } }
/// <summary> /// Briše se odabrana faza ako se potvrdi poruka i ako baza ne vrati iznimku /// zbog referencijalnog integriteta koja se obrađuje sa try catch /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void obrisiFazuButton_Click(object sender, EventArgs e) { Faza selektiranaFaza = fazaBindingSource.Current as Faza; if (selektiranaFaza != null) { if (MessageBox.Show("Da li ste sigurni?", "Upozorenje!", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { using (var db = new UpravljanjeProjektimaEntities()) { db.Faza.Attach(selektiranaFaza); db.Faza.Remove(selektiranaFaza); try { db.SaveChanges(); } catch (Exception) { MessageBox.Show("Nije moguće izbrisati fazu koja se koristis"); } } PrikaziFaze(); } } }
/// <summary> /// Otvara se nova forma za unos novog materijala samo ako nije izdan račun za projekt, /// prosljeđuje se odabrana faza i lista već dodanog materijala /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dodajMaterijalButton_Click(object sender, EventArgs e) { Faza selektiranaFaza = fazaBindingSource.Current as Faza; Projekt selektiraniProjekt = projektBindingSource.Current as Projekt; BindingList <Materijal> listaMaterijala = (BindingList <Materijal>)materijalBindingSource.DataSource; if (selektiraniProjekt.gotovo != 1) { Faze_projekta selektiranaFazaProjekta = vratiFazuProjekta(1); if (selektiranaFazaProjekta != null) { PopisMaterijalaForm materijaliForma = new PopisMaterijalaForm(selektiranaFazaProjekta, listaMaterijala); materijaliForma.ShowDialog(); PrikaziProjekte(); } } else { MessageBox.Show("Projekt je završen!"); } }
public NovaFazaForm(Faza faza) { InitializeComponent(); odabranaFaza = faza; }