/// <summary>
        /// Briše se materijal sa odabrane faze odabranog projekta ako ta faza nije zaključana ili
        /// ako za projekt nije izdan račun
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void brisiMaterijalButton_Click(object sender, EventArgs e)
        {
            Faza_ima_materijal selektiranaFazaImaMaterijal = fazaimamaterijalBindingSource.Current as Faza_ima_materijal;
            Projekt            selektiraniProjekt          = projektBindingSource.Current as Projekt;

            if (selektiraniProjekt.gotovo != 1)
            {
                if (selektiranaFazaImaMaterijal != null)
                {
                    if (selektiranaFazaImaMaterijal.Faze_projekta.zakljucano == 0)
                    {
                        using (var db = new UpravljanjeProjektimaEntities())
                        {
                            db.Faza_ima_materijal.Attach(selektiranaFazaImaMaterijal);
                            db.Faza_ima_materijal.Remove(selektiranaFazaImaMaterijal);
                            db.SaveChanges();
                        }
                        PrikaziMaterijal();
                    }
                    else
                    {
                        MessageBox.Show("Materijal pripada zaključanoj fazi, nije moguće brisati");
                    }
                }
            }
            else
            {
                MessageBox.Show("Projekt je završen!");
            }
        }
        /// <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);
        }
        /// <summary>
        /// Briše se faza samo ako nije zaključana i ako za projekt nije izdan račun
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void brisiFazuButton_Click(object sender, EventArgs e)
        {
            Projekt selektiraniProjekt = projektBindingSource.Current as Projekt;

            if (MessageBox.Show("Da li ste sigurni?", "Upozorenje!", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
            {
                if (selektiraniProjekt.gotovo != 1)
                {
                    Faze_projekta selektiranaFazaProjekta = vratiFazuProjekta(0);
                    if (selektiranaFazaProjekta.zakljucano == 0)
                    {
                        using (var db = new UpravljanjeProjektimaEntities())
                        {
                            db.Faze_projekta.Attach(selektiranaFazaProjekta);
                            db.Faze_projekta.Remove(selektiranaFazaProjekta);
                            db.SaveChanges();
                        }
                        MessageBox.Show("Uspješno obrisana faza");
                    }
                    else
                    {
                        MessageBox.Show("Faza je zaključana, nije moguće brisati zaključane faze");
                    }
                    PrikaziFaze(projektBindingSource.Current as Projekt);
                }
                else
                {
                    MessageBox.Show("Projekt je završen!");
                }
            }
        }
        /// <summary>
        /// Ako se potvri poruka pokreće se projekt, postavlja se datum početka na trenutni datum,
        /// ažurira se datum završetka prema potrebnom vremenu i datumu početka, postavlja se aktivan na 1
        /// Projekt se neć pokrenuti ako nema faza na sebi
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void pokreniProjektButton_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 UpravljanjeProjektimaEntities())
                    {
                        db.Projekt.Attach(selektiraniProjekt);
                        if (selektiraniProjekt.aktivan == 0 && selektiraniProjekt.Faze_projekta.Count > 0)
                        {
                            selektiraniProjekt.aktivan       = 1;
                            selektiraniProjekt.datum_pocetka = DateTime.Today;
                            DateTime datum = DateTime.Today;
                            selektiraniProjekt.datum_zavrsetka = datum.AddDays((double)selektiraniProjekt.potrebno_vrijeme);
                            db.SaveChanges();
                            PrikaziProjekte();
                        }
                        else
                        {
                            MessageBox.Show("Projekt je već pokrenut ili nema postavljenih faza");
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Briše se projekt ako nema dodijeljenih faza, osvježavaju se datagridview-ovi
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>

        private void brisiProjektButton_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 UpravljanjeProjektimaEntities())
                    {
                        db.Projekt.Attach(selektiraniProjekt);
                        if (selektiraniProjekt.Faze_projekta.Count == 0)
                        {
                            db.Projekt.Remove(selektiraniProjekt);
                            db.SaveChanges();
                        }
                        else
                        {
                            MessageBox.Show("Nije moguće obrisati projekt koji sadrži faze");
                        }
                    }
                    PrikaziProjekte();
                    PrikaziFaze(projektBindingSource.Current as Projekt);
                }
            }
        }
Beispiel #6
0
        /// <summary>
        /// Provjerava se ako označeni materijal nije u listi već dodanog materijala
        /// dodaje se u listu materijala faze(kako se opet ne bi mogao dodati) i
        /// ako je odabrana količina manja od one na skladištu stvara se stavka materijala
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dodajMaterijalButton_Click(object sender, EventArgs e)
        {
            Materijal selektiranMaterijal = materijalBindingSource.Current as Materijal;

            if (selektiranMaterijal != null && listaM.SingleOrDefault(x => x.materijalId == selektiranMaterijal.materijalId) == null)
            {
                if (selektiranMaterijal.kolicina > (int)numKolicina.Value)
                {
                    listaM.Add(selektiranMaterijal);
                    using (var db = new UpravljanjeProjektimaEntities())
                    {
                        Faza_ima_materijal noviMaterijalFaza = new Faza_ima_materijal
                        {
                            id          = odabranaFazaProjekta.id,
                            materijalId = selektiranMaterijal.materijalId,
                            kolicina    = (int)numKolicina.Value,
                        };
                        db.Faza_ima_materijal.Add(noviMaterijalFaza);
                        db.SaveChanges();
                    }
                    MessageBox.Show("Uspješno dodan materijal");
                }
                else
                {
                    MessageBox.Show("Nema toliko traženog materijala na skladištu");
                }
            }
            else
            {
                MessageBox.Show("Taj materijal je već dodan na fazu!");
            }
            PrikaziMaterijal();
        }
Beispiel #7
0
        //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>
        /// Pretražuju se projekti prema datumu početka
        /// </summary>
        private void PretraziPoDatumu()
        {
            projektiDataGridView.Rows.Clear();
            BindingList <Projekt>  listaProjekta        = null;
            BindingList <Projekt>  bindingListaProjekta = new BindingList <Projekt>();
            BindingList <Korisnik> listaKorisnika       = new BindingList <Korisnik>();
            BindingList <Partner>  listaPartnera        = new BindingList <Partner>();

            using (var db = new UpravljanjeProjektimaEntities())
            {
                listaProjekta = new BindingList <Projekt>(db.Projekt.ToList());

                foreach (var P in listaProjekta)
                {
                    if (P.datum_pocetka > dtProjekti1.Value && P.datum_pocetka < dtProjekti2.Value)
                    {
                        bindingListaProjekta.Add(P);
                        listaKorisnika.Add(P.Korisnik as Korisnik);
                        listaPartnera.Add(P.Partner as Partner);
                    }
                }
            }
            projektBindingSource.DataSource  = bindingListaProjekta;
            korisnikBindingSource.DataSource = listaKorisnika;
            partnerBindingSource.DataSource  = listaPartnera;
        }
Beispiel #9
0
        /// <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>
        /// Pretražuju se projekti prema nazivu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tboxPretrazi_TextChanged(object sender, EventArgs e)
        {
            projektiDataGridView.Rows.Clear();
            BindingList <Projekt>  listaProjekta        = null;
            BindingList <Projekt>  bindingListaProjekta = new BindingList <Projekt>();
            BindingList <Korisnik> listaKorisnika       = new BindingList <Korisnik>();
            BindingList <Partner>  listaPartnera        = new BindingList <Partner>();

            using (var db = new UpravljanjeProjektimaEntities())
            {
                listaProjekta = new BindingList <Projekt>(db.Projekt.ToList());

                foreach (var P in listaProjekta)
                {
                    if (P.ime.ToLower().Contains(tboxPretrazi.Text))
                    {
                        bindingListaProjekta.Add(P);
                        listaKorisnika.Add(P.Korisnik as Korisnik);
                        listaPartnera.Add(P.Partner as Partner);
                    }
                }
            }
            projektBindingSource.DataSource  = bindingListaProjekta;
            korisnikBindingSource.DataSource = listaKorisnika;
            partnerBindingSource.DataSource  = listaPartnera;
        }
Beispiel #11
0
        /// <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();
                }
            }
        }
Beispiel #12
0
        /// <summary>
        /// Metoda za prikazivanje svih materijala
        /// </summary>
        private void PrikaziMaterijal()
        {
            BindingList <Materijal> listaMaterijala = null;

            using (var db = new UpravljanjeProjektimaEntities())
            {
                listaMaterijala = new BindingList <Materijal>(db.Materijal.ToList());
            }
            materijalBindingSource.DataSource = listaMaterijala;
        }
Beispiel #13
0
        /// <summary>
        /// Metoda za prikaz svih faza
        /// </summary>
        private void PrikaziFaze()
        {
            BindingList <Faza> listaFaza = null;

            using (var db = new UpravljanjeProjektimaEntities())
            {
                listaFaza = new BindingList <Faza>(db.Faza.ToList());
            }
            fazaBindingSource.DataSource = listaFaza;
        }
Beispiel #14
0
        /// <summary>
        /// Dohvaćaju se partneri koji su tipa klijent za ispis u padajućem izborniku
        /// ako se radi o izmjeni projekta ispinjuju se polja podacima projekta
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void NoviProjektForm_Load(object sender, EventArgs e)
        {
            BindingList <Partner> listaPartnera = null;

            using (var db = new UpravljanjeProjektimaEntities())
            {
                listaPartnera = new BindingList <Partner>(db.Partner.Where(x => x.tip_partnera == "k").ToList());
            }
            partnerBindingSource.DataSource = listaPartnera;

            if (odabraniProjekt != null)
            {
                tboxNaziv.Text   = odabraniProjekt.ime.ToString();
                dtDatum.Text     = odabraniProjekt.datum_pocetka.ToString();
                cboxPartner.Text = odabraniProjekt.Partner.ime;
            }
        }
Beispiel #15
0
        /// <summary>
        /// Pretraživanje faza prema nazivu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tboxPretrazi_TextChanged(object sender, EventArgs e)
        {
            BindingList <Faza> listaFaza        = null;
            BindingList <Faza> bindingListaFaza = new BindingList <Faza>();

            using (var db = new UpravljanjeProjektimaEntities())
            {
                listaFaza = new BindingList <Faza>(db.Faza.ToList());

                foreach (var F in listaFaza)
                {
                    if (F.naziv.ToLower().Contains(tboxPretrazi.Text))
                    {
                        bindingListaFaza.Add(F);
                    }
                }
            }
            fazaBindingSource.DataSource = bindingListaFaza;
        }
Beispiel #16
0
        /// <summary>
        /// Pretraživanje materijala prema nazivu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tboxPretrazi_TextChanged(object sender, EventArgs e)
        {
            BindingList <Materijal> listaMaterijala        = null;
            BindingList <Materijal> bindingListaMaterijala = new BindingList <Materijal>();

            using (var db = new UpravljanjeProjektimaEntities())
            {
                listaMaterijala = new BindingList <Materijal>(db.Materijal.ToList());

                foreach (var M in listaMaterijala)
                {
                    if (M.naziv.ToLower().Contains(tboxPretrazi.Text))
                    {
                        bindingListaMaterijala.Add(M);
                    }
                }
            }
            materijalBindingSource.DataSource = bindingListaMaterijala;
        }
        /// <summary>
        /// Mateoda za prikazivanje faza označenog projekta, radi se preko faza_projekta(veza između projekta i faze)
        /// </summary>
        /// <param name="projekt"></param>
        private void PrikaziFaze(Projekt projekt)
        {
            fazeDataGridView.Rows.Clear();
            if (projekt != null)
            {
                List <Faze_projekta> listaFaze_projekta = null;
                BindingList <Faza>   listaFaza          = new BindingList <Faza>();
                using (var db = new UpravljanjeProjektimaEntities())
                {
                    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 prikazivanje svih projekata na datagridviewu
        /// dohvaća se iz korisnici i partneri za prikazivanje naziva
        /// umjesto id-eva
        /// </summary>
        private void PrikaziProjekte()
        {
            projektiDataGridView.Rows.Clear();
            BindingList <Projekt>  listaProjekta  = null;
            BindingList <Korisnik> listaKorisnika = new BindingList <Korisnik>();
            BindingList <Partner>  listaPartnera  = new BindingList <Partner>();

            using (var db = new UpravljanjeProjektimaEntities())
            {
                listaProjekta = new BindingList <Projekt>(db.Projekt.ToList());

                foreach (var 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>
        /// Metoda za prikazivanje materijala na datagridviewu prema označenom projektu i fazi
        /// koristi metodu vratifazuProjekta za dohvaćanje faze_projekta i preko toga dohvaća faza_ima_materijal
        /// i pripadajući materijal
        /// </summary>
        private void PrikaziMaterijal()
        {
            materijalDataGridView.Rows.Clear();
            Faze_projekta materijal = vratiFazuProjekta(1);
            BindingList <Faza_ima_materijal> listaMaterijala  = null;
            BindingList <Materijal>          listaMaterijalId = new BindingList <Materijal>();

            if (materijal != null)
            {
                using (var db = new UpravljanjeProjektimaEntities())
                {
                    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;
            }
        }
Beispiel #20
0
 /// <summary>
 /// Ako je novi projekt, stvara se objekt i dodaijeljuju se početne vrijednosti
 /// ako je izmjena mijenjaju se samo vrijednosti za koje postoje kontrole na formi
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void spremiButton_Click(object sender, EventArgs e)
 {
     if (odabraniProjekt == null)
     {
         using (var db = new UpravljanjeProjektimaEntities())
         {
             Projekt noviProjekt = new Projekt
             {
                 ime              = tboxNaziv.Text,
                 datum_pocetka    = dtDatum.Value,
                 partnerId        = int.Parse(cboxPartner.SelectedValue.ToString()),
                 aktivan          = 0,
                 gotovo           = 0,
                 ukupna_cijena    = 0,
                 cijena_bez_pdv   = 0,
                 iznos_pdv        = 0,
                 datum_zavrsetka  = null,
                 korisnikId       = idKorisnik,
                 potrebno_vrijeme = 0,
                 kod              = GenerirajKod(6),
             };
             db.Projekt.Add(noviProjekt);
             db.SaveChanges();
         }
     }
     else
     {
         using (var db = new UpravljanjeProjektimaEntities())
         {
             db.Projekt.Attach(odabraniProjekt);
             odabraniProjekt.ime           = tboxNaziv.Text;
             odabraniProjekt.datum_pocetka = dtDatum.Value;
             odabraniProjekt.partnerId     = int.Parse(cboxPartner.SelectedValue.ToString());
             db.SaveChanges();
         }
     }
     MessageBox.Show("Uspješno dodan projekt");
 }