예제 #1
0
        /// <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!");
                }
            }
        }
예제 #2
0
        /// <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);
        }
예제 #3
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!");
            }
        }
예제 #4
0
        /// <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!");
            }
        }
예제 #5
0
        /// <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;
            }
        }
예제 #6
0
 /// <summary>
 /// Prima se prosljeđena faza_projekta i lista već dodanog materijala
 /// </summary>
 /// <param name="faze_Projekta"></param>
 /// <param name="lista"></param>
 public PopisMaterijalaForm(Faze_projekta faze_Projekta, BindingList <Materijal> lista)
 {
     InitializeComponent();
     odabranaFazaProjekta = faze_Projekta;
     listaM = lista;
 }