/// <summary> /// Metoda koja prima listu faza_projekta i za te faze projekta popunjava data sourceove za /// stavke materijala na fazi projekta i materijal /// </summary> /// <param name="listaFaze_projekta"></param> private void Materijal(List <Faze_projekta> listaFaze_projekta) { BindingList <Faza_ima_materijal> listaMaterijala = new BindingList <Faza_ima_materijal>(); BindingList <Materijal> listaMaterijalId = new BindingList <Materijal>(); if (listaFaze_projekta != null) { using (var db = new IzdavanjeRacunEntities()) { foreach (var fp in listaFaze_projekta) { db.Faze_projekta.Attach(fp); foreach (var fm in fp.Faza_ima_materijal) { listaMaterijala.Add(fm); listaMaterijalId.Add(fm.Materijal); } //foreach (Faza_ima_materijal M in listaMaterijala) //{ // if(M.kolicina != 0) // { // listaMaterijalId.Add(M.Materijal as Materijal); // } //} } } Faza_ima_materijalBindingSource.DataSource = listaMaterijala; materijalBindingSource.DataSource = listaMaterijalId; } }
/// <summary> /// Metoda koja za označenu fazu unutar datagridviewa puni listu faza_projekta i za označeni projekt puni listu faza_projekta /// kako bi se uspoređivanjem spremile u listu one faze projekta koje su zajedničke. /// parametar kontroler postoji zbog korištenja na drugoj formi (objašnjeno u PopisProjektiForm) /// Trenutno korištenje je sa parametrom = 1, time vraća prvu fazu_projekta koju nađe /// </summary> /// <param name="kontroler"></param> /// <returns></returns> private Faze_projekta vratiFazuProjekta(int kontroler) { Faza selektiranaFaza = fazaBindingSource.Current as Faza; Projekt selektiraniProjekt = odabraniProjekt; Faze_projekta vrati = null; if (selektiranaFaza != null && selektiraniProjekt != null) { using (var db = new IzdavanjeRacunEntities()) { 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); }
/// <summary> /// Metoda koja se aktivira na promjenu teksta u polju za pretraživanje, /// pretražuje se prema istim uvjetima kao i kod učitavanja, ali se još provjerava /// postojanja dijela teksta u nazivu projekta /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void textBox1_TextChanged(object sender, EventArgs e) { BindingList <Projekt> Projekti = null; BindingList <Projekt> listaProjekta = new BindingList <Projekt>(); BindingList <Korisnik> listaKorisnika = new BindingList <Korisnik>(); BindingList <Partner> listaPartnera = new BindingList <Partner>(); using (var db = new IzdavanjeRacunEntities()) { Projekti = new BindingList <Projekt>(db.Projekt.ToList()); foreach (Projekt p in Projekti) { if (p.aktivan == 1 && p.gotovo == 0 && ProvjeriZavrsenostFaza(p) == true) { if (p.ime.ToLower().Contains(tboxPretrazi.Text)) { listaProjekta.Add(p); } } } foreach (Projekt P in listaProjekta) { listaKorisnika.Add(P.Korisnik as Korisnik); listaPartnera.Add(P.Partner as Partner); } } projektBindingSource.DataSource = listaProjekta; korisnikBindingSource.DataSource = listaKorisnika; partnerBindingSource.DataSource = listaPartnera; }
/// <summary> /// Prilikom promjene teksta u polju za pretraživanje prema nazivu /// učitavaju se u datagridview projekti i njihovi partneri i korisnici /// gdje u nazivu projekta ima dio teksta u polju /// Ukoliko nema takvih projekata pozivaju se metode za generiranje praznih podataka /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tboxPretrazi_TextChanged(object sender, EventArgs e) { BindingList <Projekt> Projekti = null; BindingList <Projekt> listaProjekta = new BindingList <Projekt>(); BindingList <Korisnik> listaKorisnika = new BindingList <Korisnik>(); BindingList <Partner> listaPartnera = new BindingList <Partner>(); using (var db = new IzdavanjeRacunEntities()) { Projekti = new BindingList <Projekt>(db.Projekt.ToList()); foreach (Projekt p in Projekti) { if (p.datum_izdavanja_racuna != null) { if (p.ime.ToLower().Contains(tboxPretrazi.Text)) { listaProjekta.Add(p); } } } foreach (Projekt P in listaProjekta) { listaKorisnika.Add(P.Korisnik as Korisnik); listaPartnera.Add(P.Partner as Partner); } } projektBindingSource.DataSource = listaProjekta; if (listaKorisnika.Count > 0) { korisnikBindingSource.DataSource = listaKorisnika; } else { generirajPrazniKorisnik(listaKorisnika); } if (listaPartnera.Count > 0) { partnerBindingSource.DataSource = listaPartnera; } else { generirajPrazniPartner(listaPartnera); } }
/// <summary> /// Metoda koja vraća sve faze koje projekt sadrži /// prolazi kroz svaku Faze_projekta i dohvaća Faza /// </summary> /// <param name="projekt"></param> private void PrikaziFaze(Projekt projekt) { if (projekt != null) { List <Faze_projekta> listaFaze_projekta = null; BindingList <Faza> listaFaza = new BindingList <Faza>(); using (var db = new IzdavanjeRacunEntities()) { db.Projekt.Attach(projekt); listaFaze_projekta = new List <Faze_projekta>(projekt.Faze_projekta.ToList()); foreach (var F in listaFaze_projekta) { listaFaza.Add(F.Faza as Faza); } } fazaBindingSource.DataSource = listaFaza; } }
/// <summary> /// Metoda za učitavanje projekata za koje je izdan račun u datagridview /// dohvaćaju se odgovarajući korisnici i partneri kako bi se prikazali nazivi a ne id-evi /// Ukoliko nema takvi projekta pozivaju se metoda za generiranje praznih podataka /// </summary> /// <returns></returns> private BindingList <Projekt> PrikaziRacune() { BindingList <Projekt> Projekti = null; BindingList <Projekt> listaProjekta = new BindingList <Projekt>(); BindingList <Korisnik> listaKorisnika = new BindingList <Korisnik>(); BindingList <Partner> listaPartnera = new BindingList <Partner>(); using (var db = new IzdavanjeRacunEntities()) { Projekti = new BindingList <Projekt>(db.Projekt.ToList()); foreach (Projekt p in Projekti) { if (p.datum_izdavanja_racuna != null) { listaProjekta.Add(p); } } foreach (Projekt P in listaProjekta) { listaKorisnika.Add(P.Korisnik as Korisnik); listaPartnera.Add(P.Partner as Partner); } } projektBindingSource.DataSource = listaProjekta; if (listaKorisnika.Count > 0) { korisnikBindingSource.DataSource = listaKorisnika; } else { generirajPrazniKorisnik(listaKorisnika); } if (listaPartnera.Count > 0) { partnerBindingSource.DataSource = listaPartnera; } else { generirajPrazniPartner(listaPartnera); } return(listaProjekta); }
/// <summary> /// Metoda koja koristi metodu za dohvaćanje faze_projekta preko označene faze u datagridviewu /// Za tu fazu_projekta dohvaća sve stavke materijala (Faza_ima_materijal) i preuzima materijala /// iz tih stavki za prikazivanje na datagridviewu /// </summary> private void PrikaziMaterijal() { Faze_projekta materijal = vratiFazuProjekta(1); BindingList <Faza_ima_materijal> listaMaterijala = null; BindingList <Materijal> listaMaterijalId = new BindingList <Materijal>(); if (materijal != null) { using (var db = new IzdavanjeRacunEntities()) { db.Faze_projekta.Attach(materijal); listaMaterijala = new BindingList <Faza_ima_materijal>(materijal.Faza_ima_materijal.ToList()); foreach (Faza_ima_materijal M in listaMaterijala) { listaMaterijalId.Add(M.Materijal as Materijal); } } fazaimamaterijalBindingSource.DataSource = listaMaterijala; materijalBindingSource.DataSource = listaMaterijalId; } }
/// <summary> /// Pritiskom na tipku provjerava se ako je označen projekt, ako je /// javlja se poruka upozorenja čijom se potvrdom onda izdaje račun i zapisuje vrijeme izdaje računa. /// Osvježava se datagridview sa računima /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void izdajRacunButton_Click(object sender, EventArgs e) { Projekt selektiraniProjekt = projektBindingSource.Current as Projekt; if (selektiraniProjekt != null) { if (MessageBox.Show("Da li ste sigurni?", "Upozorenje!", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { using (var db = new IzdavanjeRacunEntities()) { db.Projekt.Attach(selektiraniProjekt); selektiraniProjekt.gotovo = 1; selektiraniProjekt.datum_izdavanja_racuna = DateTime.Now; db.SaveChanges(); } RacunReportForm forma = new RacunReportForm(selektiraniProjekt); forma.ShowDialog(); MessageBox.Show("Uspješno izdan račun"); } PrikaziRacune(); } }