/// <summary> /// Metoda koja se poziva prilikom pritiska na gumbić Obriši /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button1_Click(object sender, EventArgs e) { Artikl artiklZaBrisanje = null; try { artiklZaBrisanje = (Artikl)artiklBindingSource.Current; } catch (Exception) { MessageBox.Show("Pogreška!", "Greška!", MessageBoxButtons.OK, MessageBoxIcon.Error); } if (MessageBox.Show("Sigurno želite obrisati artikl " + artiklZaBrisanje.Naziv + " i sve stavke, kompatibilnosti i dostupnosti vezane uz artikl?", "Upozorenje", MessageBoxButtons.YesNo) == DialogResult.Yes) { try { var listaKompatibilnosti = Kompatibilnost.DohvatiKompatibilnosti("SELECT * FROM Kompatibilnost WHERE Komponenta1=" + artiklZaBrisanje.ID + " OR Komponenta2=" + artiklZaBrisanje.ID); foreach (var kompatibilnost in listaKompatibilnosti) { Kompatibilnost.ObrisiKompatibilnost(kompatibilnost); } Artikl.ObrisiArtikl(artiklZaBrisanje); } catch (Exception) { MessageBox.Show("Pogreška!", "Greška!", MessageBoxButtons.OK, MessageBoxIcon.Error); } MessageBox.Show("Artikl je uspješno obrisan!", "Artikl obrisan", MessageBoxButtons.OK); OsvjeziPrikaze(); } }
/// <summary> /// Statièka metoda klase Artikl èije je argument /// novi artikl koji /// se sprema u bazu podataka. /// </summary> /// <param name="noviArtikl"></param> public static void DodajArtikl(Artikl noviArtikl) { using (var db = new TechStoreEntities()) { db.Artikl.Add(noviArtikl); db.SaveChanges(); } }
/// <summary> /// Metoda koja kao parametar prima listu artikala te novi proizvod. /// Dodaje kompatibilnost novog proizvoda s ostalim proizvodima ako /// novi proizvod nije vrste za koje već postoje metode. /// </summary> /// <param name="listaArtikala"></param> /// <param name="noviArtikl"></param> public void SveOstaloKompatibilnost(List <Artikl> listaArtikala, Artikl noviArtikl) { List <string> listaSpecifikacijaNovogArtikla = noviArtikl.Specifikacija.Split(',').ToList(); foreach (var trenutniArtikl in listaArtikala) { ProvjeraPoSvimSpecifikacijama(trenutniArtikl, noviArtikl, listaSpecifikacijaNovogArtikla); } }
/// <summary> /// Metoda koja kao parametar prima listu artikala te novi artikl. /// Dodaje kompatibilnost za svaki proizvod ako je novi objekt /// matična ploča. /// </summary> /// <param name="listaArtikala"></param> /// <param name="noviArtikl"></param> public void MaticnaPlocaKompatibilnost(List <Artikl> listaArtikala, Artikl noviArtikl) { double visinaNoviArtikl = 0; double sirinaNoviArtikl = 0; double duljinaNoviArtikl = 0; List <string> listaSpecifikacijaNovogArtikla = noviArtikl.Specifikacija.Split(',').ToList(); visinaNoviArtikl = DohvatiVisinu(listaSpecifikacijaNovogArtikla); sirinaNoviArtikl = DohvatiSirinu(listaSpecifikacijaNovogArtikla); duljinaNoviArtikl = DohvatiDuljinu(listaSpecifikacijaNovogArtikla); if (visinaNoviArtikl == -1) { MessageBox.Show("Novi artikl nema unesenu visinu!"); return; } if (sirinaNoviArtikl == -1) { MessageBox.Show("Novi artikl nema unesenu širinu!"); return; } if (duljinaNoviArtikl == -1) { MessageBox.Show("Novi artikl nema unesenu duljinu!"); return; } foreach (var trenutniArtikl in listaArtikala) { if (trenutniArtikl.Vrsta_ID == 1) { DodajKompatibilnostPomoc(trenutniArtikl, noviArtikl, true); } else if (trenutniArtikl.Vrsta_ID == 11) { double visinaTrenutniArtikl = 0; double sirinaTrenutniArtikl = 0; double duljinaTrenutniArtikl = 0; List <string> listaSpecifikacijaTrenutnogArtikla = trenutniArtikl.Specifikacija.Split(',').ToList(); visinaTrenutniArtikl = DohvatiVisinu(listaSpecifikacijaTrenutnogArtikla); sirinaTrenutniArtikl = DohvatiSirinu(listaSpecifikacijaTrenutnogArtikla); duljinaTrenutniArtikl = DohvatiDuljinu(listaSpecifikacijaTrenutnogArtikla); if (sirinaNoviArtikl < sirinaTrenutniArtikl && visinaNoviArtikl < visinaTrenutniArtikl && duljinaNoviArtikl < duljinaTrenutniArtikl) { DodajKompatibilnostPomoc(trenutniArtikl, noviArtikl, true); } else { DodajKompatibilnostPomoc(trenutniArtikl, noviArtikl, false); } } else { ProvjeraPoSvimSpecifikacijama(trenutniArtikl, noviArtikl, listaSpecifikacijaNovogArtikla); } } }
/// <summary> /// Statièka metoda koja prima kao argument artikl koji /// se želi obrisati. Metoda briše proslijeðeni artikl /// iz baze podataka. /// </summary> /// <param name="artiklZaBrisanje"></param> public static void ObrisiArtikl(Artikl artiklZaBrisanje) { using (var db = new TechStoreEntities()) { db.Artikl.Attach(artiklZaBrisanje); db.Kompatibilnost.RemoveRange(db.Kompatibilnost.Where(komp => komp.Komponenta1 == artiklZaBrisanje.ID)); db.Artikl.Remove(artiklZaBrisanje); db.SaveChanges(); } }
/// <summary> /// Statièka metoda koja kao argument prima ID artikla. /// Metoda vraæa artikl s primljenim ID - om iz /// baze podataka. /// </summary> /// <param name="id"></param> /// <returns></returns> public static Artikl DohvatiArtikl(int id) { Artikl artikl = null; using (var db = new TechStoreEntities()) { artikl = (from a in db.Artikl where a.ID == id select a).FirstOrDefault(); } return(artikl); }
/// <summary> /// Konstruktor forme uiNoviArtikl. Kao parametar /// prima artikl. /// </summary> /// <param name="proslijedeniArtikl"></param> public uiNoviArtikl(Artikl proslijedeniArtikl) { InitializeComponent(); ArtiklZaIzmjenu = proslijedeniArtikl; uiInputID.Text = ArtiklZaIzmjenu.ID.ToString(); uiInputNaziv.Text = ArtiklZaIzmjenu.Naziv; uiInputKratkiOpis.Text = ArtiklZaIzmjenu.Kratki_opis; uiInputSpecifikacije.Text = ArtiklZaIzmjenu.Specifikacija; uiInputCijena.Text = ArtiklZaIzmjenu.Cijena.ToString(); uiActionDodajArtikl.Text = "Ažuriraj"; }
/// <summary> /// Metoda koja služi za pozivanje metode DodajKompatibilnost u klasi Kompatibilnost. /// </summary> /// <param name="trenutniArtikl"></param> /// <param name="noviArtikl"></param> /// <param name="kompatibilni"></param> public void DodajKompatibilnostPomoc(Artikl trenutniArtikl, Artikl noviArtikl, bool kompatibilni) { Kompatibilnost kompatibilnost = new Kompatibilnost { Komponenta1 = noviArtikl.ID, Komponenta2 = trenutniArtikl.ID, Kompatibilni = kompatibilni }; Kompatibilnost.DodajKompatibilnost(kompatibilnost); }
/// <summary> /// Metoda koja služi za osvježavanje prikaza na datagridview - u. /// </summary> private void OsvjeziPrikaze() { try { artiklBindingSource.DataSource = Artikl.DohvatiSveArtikle(); vrstaArtiklaBindingSource.DataSource = VrstaArtikla.DohvatiVrsteArtikala(); } catch (Exception) { MessageBox.Show("Pogreška!", "Greška!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Metoda koja se poziva prilikom pritiska na gumbić Ažuriraj /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UiActionAzurirajArtikl_Click(object sender, EventArgs e) { try { Artikl artiklZaAzuriranje = (Artikl)artiklBindingSource.Current; uiNoviArtikl formaNoviArtikl = new uiNoviArtikl(artiklZaAzuriranje); formaNoviArtikl.ShowDialog(); } catch (Exception) { } OsvjeziPrikaze(); }
/// <summary> /// Metoda koja provjerava postoji li kompatibilnost između artikala. /// </summary> /// <param name="trenutniArtikl"></param> /// <param name="noviArtikl"></param> /// <param name="listaSpecifikacijaNovogArtikla"></param> public void ProvjeraPoSvimSpecifikacijama(Artikl trenutniArtikl, Artikl noviArtikl, List <string> listaSpecifikacijaNovogArtikla) { List <string> listaSpecifikacijaTrenutnogArtikla = trenutniArtikl.Specifikacija.Split(',').ToList(); if (listaSpecifikacijaNovogArtikla.Intersect(listaSpecifikacijaTrenutnogArtikla).Any()) { DodajKompatibilnostPomoc(trenutniArtikl, noviArtikl, true); } else { DodajKompatibilnostPomoc(trenutniArtikl, noviArtikl, false); } }
/// <summary> /// Metoda koja se poziva prilikom učitavanja forme uiNabava /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FrmNabava_Load(object sender, EventArgs e) { this.KeyPreview = true; this.KeyDown += FrmNabava_KeyDown; try { artiklBindingSource.DataSource = Artikl.DohvatiSveArtikle(); } catch (Exception) { MessageBox.Show("Pogreška!", "Greška!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Konstruktor forme uiPregledNarudzbi /// </summary> public UiPregledNarudzbi() { InitializeComponent(); try { artiklBindingSource.DataSource = Artikl.DohvatiSveArtikle(); vrstaDokumentaBindingSource.DataSource = VrstaDokumenta.DohvatiVrsteDokumenta(); } catch (Exception) { MessageBox.Show("Pogreška!", "Greška!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Statièka metoda koja prima kao argument artikl koji /// se želi ažurirati te sve atribute u tablici. /// Metoda proslijeðeni artikl /// ažurira i sprema u bazu podataka. /// </summary> /// <param name="artiklZaAzuriranje"></param> public static void AzurirajArtikl(Artikl artiklZaAzuriranje, string naziv, string kratkiOpis, string specifikacija, double cijena, int vrstaId) { using (var db = new TechStoreEntities()) { db.Artikl.Attach(artiklZaAzuriranje); artiklZaAzuriranje.Naziv = naziv; artiklZaAzuriranje.Kratki_opis = kratkiOpis; artiklZaAzuriranje.Specifikacija = specifikacija; artiklZaAzuriranje.Cijena = cijena; artiklZaAzuriranje.Vrsta_ID = vrstaId; db.SaveChanges(); } }
/// <summary> /// Metoda koja se poziva na klik gumbića /// uiActionDodajArtikl /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UiActionDodajArtikl_Click(object sender, EventArgs e) { uiNoviArtikl noviArtikl = new uiNoviArtikl(); noviArtikl.ShowDialog(); try { artiklBindingSource.DataSource = Artikl.DohvatiSveArtikle(); vrstaArtiklaBindingSource.DataSource = VrstaArtikla.DohvatiVrsteArtikala(); } catch (Exception) { MessageBox.Show("Pogreška!", "Greška!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Dohvaća grafičke kartice uz pomoć statičke metode DohvatiKomponente, /// te ih prikazuje u ComboBox kontroli. /// </summary> private void OsvjeziGraficke() { List <Artikl> grafickeKartice = null; try { string upit = "SELECT* From Artikl a, Kompatibilnost k WHERE a.Vrsta_ID = 3 AND ((a.ID = k.Komponenta2 AND k.Komponenta1 = " + izabraneKomponente[0].ID + ") OR (a.ID = k.Komponenta1 AND k.Komponenta2 = " + izabraneKomponente[0].ID + " )) AND k.Kompatibilni = 1"; grafickeKartice = Artikl.DohvatiKomponente(upit); RacunajPreporuke(grafickeKartice, uiInputGraficka); } catch (Exception) { MessageBox.Show("Došlo je do pogreške.", "GREŠKA", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Rukuje događajem pokretanja forme. Popunjava ComboBox sa svim artiklima /// uz pomoć statičke metode DohvatiSve artikle. Na Chart kontroli uklanja /// horizontalne crte radi preglednosti grafa. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UiKolicinaArtikala_Load(object sender, EventArgs e) { this.KeyPreview = true; this.KeyDown += UiKolicinaArtikala_KeyDown; try { Artikli = Artikl.DohvatiSveArtikle(); artiklBindingSource.DataSource = Artikli; } catch (Exception) { MessageBox.Show("Došlo je do pogreške.", "GREŠKA", MessageBoxButtons.OK, MessageBoxIcon.Error); } uiOutputGraf.ChartAreas[0].AxisX.MajorGrid.Enabled = false; }
/// <summary> /// Metoda koja kao parametar prima listu artikala te novi artikl. /// Dodaje kompatibilnost novog proizvoda s ostalim proizvodima ako je /// novi proizvod HDD. /// </summary> /// <param name="listaArtikala"></param> /// <param name="noviArtikl"></param> public void HDDKompatibilnost(List <Artikl> listaArtikala, Artikl noviArtikl) { List <string> listaSpecifikacijaNovogArtikla = noviArtikl.Specifikacija.Split(',').ToList(); foreach (var trenutniArtikl in listaArtikala) { if (trenutniArtikl.Vrsta_ID == 2 || trenutniArtikl.Vrsta_ID == 8) { ProvjeraPoSvimSpecifikacijama(trenutniArtikl, noviArtikl, listaSpecifikacijaNovogArtikla); } else { DodajKompatibilnostPomoc(trenutniArtikl, noviArtikl, true); } } }
/// <summary> /// Dohvaća procesore uz pomoć statičke metode DohvatiKomponente, /// te ih prikazuje u ComboBox kontroli. /// </summary> private void OsvjeziProcesore() { List <Artikl> procesori = null; try { string upit = "SELECT a.ID, a.Naziv, a.Kratki_opis, a.Specifikacija, a.Cijena, a.Vrsta_ID FROM Artikl a, Kompatibilnost k WHERE a.Vrsta_ID = 4 AND ((a.ID = k.Komponenta2 AND k.Komponenta1 = " + izabraneKomponente[0].ID + ") OR (a.ID = k.Komponenta1 AND k.Komponenta2 = " + izabraneKomponente[0].ID + ")) AND k.Kompatibilni = 1" + "INTERSECT SELECT a.ID, a.Naziv, a.Kratki_opis, a.Specifikacija, a.Cijena, a.Vrsta_ID FROM Artikl a, Kompatibilnost k WHERE a.Vrsta_ID = 4 AND ((a.ID = k.Komponenta2 AND k.Komponenta1 = " + izabraneKomponente[1].ID + ") OR (a.ID = k.Komponenta1 AND k.Komponenta2 = " + izabraneKomponente[1].ID + ")) AND k.Kompatibilni = 1"; procesori = Artikl.DohvatiKomponente(upit); RacunajPreporuke(procesori, uiInputProcesor); } catch (Exception) { MessageBox.Show("Došlo je do pogreške.", "GREŠKA", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Dodaje odabrani artikl u datagridview iz kojeg se zatim /// popunjavaja narudžba /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UiActionDodaj_Click(object sender, EventArgs e) { try { if (IspravnostKolicine()) { bool nadeno = false; int indexReda = 0; Artikl odabraniArtikl = (Artikl)uiInputArtikl.SelectedItem; foreach (var artikl in artikls) { if (artikl.ID == odabraniArtikl.ID) { nadeno = true; break; } indexReda++; } if (!nadeno) { artikls.Add(odabraniArtikl); uiOutputPopisArtikala.DataSource = artikls; uiOutputPopisArtikala.Rows[artikls.Count - 1].Cells["Kolicina"].Value = int.Parse(uiInputKolicina.Text); } else { int trenutnaKolicina = int.Parse(uiOutputPopisArtikala.Rows[indexReda].Cells["Kolicina"].Value.ToString()); uiOutputPopisArtikala.Rows[indexReda].Cells["Kolicina"].Value = int.Parse(uiInputKolicina.Text) + trenutnaKolicina; uiOutputPopisArtikala.DataSource = artikls; } } else { MessageBox.Show("Unesite pozitivan broj za količinu", "GREŠKA", MessageBoxButtons.OK, MessageBoxIcon.Error); } uiInputKolicina.Clear(); uiInputArtikl.DataSource = artiklBindingSource; } catch (Exception) { MessageBox.Show("Pogreška!", "Greška!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Metoda koja kao parametar prima listu artikala te novi artikl. /// Dodaje kompatibilnost novog proizvoda s ostalim proizvodima ako je /// novi proizvod zvučna kartica. /// </summary> /// <param name="listaArtikala"></param> /// <param name="noviArtikl"></param> public void ZvucnaKarticaKompatibilnost(List <Artikl> listaArtikala, Artikl noviArtikl) { double visinaNoviArtikl = 0; double sirinaNoviArtikl = 0; double duljinaNoviArtikl = 0; List <string> listaSpecifikacijaNovogArtikla = noviArtikl.Specifikacija.Split(',').ToList(); visinaNoviArtikl = DohvatiVisinu(listaSpecifikacijaNovogArtikla); sirinaNoviArtikl = DohvatiSirinu(listaSpecifikacijaNovogArtikla); duljinaNoviArtikl = DohvatiDuljinu(listaSpecifikacijaNovogArtikla); foreach (var trenutniArtikl in listaArtikala) { if (trenutniArtikl.Vrsta_ID == 2) { ProvjeraPoSvimSpecifikacijama(trenutniArtikl, noviArtikl, listaSpecifikacijaNovogArtikla); } else if (trenutniArtikl.Vrsta_ID == 11) { double visinaTrenutniArtikl = 0; double sirinaTrenutniArtikl = 0; double duljinaTrenutniArtikl = 0; List <string> listaSpecifikacijaTrenutnogArtikla = trenutniArtikl.Specifikacija.Split(',').ToList(); visinaTrenutniArtikl = DohvatiVisinu(listaSpecifikacijaTrenutnogArtikla); sirinaTrenutniArtikl = DohvatiSirinu(listaSpecifikacijaTrenutnogArtikla); duljinaTrenutniArtikl = DohvatiDuljinu(listaSpecifikacijaTrenutnogArtikla); if (sirinaNoviArtikl < sirinaTrenutniArtikl && visinaNoviArtikl < visinaTrenutniArtikl && duljinaNoviArtikl < duljinaTrenutniArtikl) { DodajKompatibilnostPomoc(trenutniArtikl, noviArtikl, true); } else { DodajKompatibilnostPomoc(trenutniArtikl, noviArtikl, false); } } else { DodajKompatibilnostPomoc(trenutniArtikl, noviArtikl, true); } } }
/// <summary> /// Dohvaća matične ploče uz pomoć statičke metode DohvatiKomponente, /// te ih prikazuje u ComboBox kontroli. /// </summary> private void OsvjeziMaticne() { List <Artikl> maticnePloce = null; try { string upit = "SELECT * FROM Artikl a WHERE a.Vrsta_ID = 2"; maticnePloce = Artikl.DohvatiKomponente(upit); } catch (Exception) { MessageBox.Show("Došlo je do pogreške.", "GREŠKA", MessageBoxButtons.OK, MessageBoxIcon.Error); } foreach (Artikl maticna in maticnePloce.OrderBy(x => x.Cijena)) { uiInputMaticna.Items.Add(maticna); } NajvisaCijena = maticnePloce.Max(x => x.Cijena); }
/// <summary> /// Dohvaća zvučne kartice uz pomoć statičke metode DohvatiKomponente, /// te ih prikazuje u ComboBox kontroli. /// </summary> private void OsvjeziZvucneKartice() { List <Artikl> zvucnaKartica = null; try { string upit = "SELECT a.ID, a.Naziv, a.Kratki_opis, a.Specifikacija, a.Cijena, a.Vrsta_ID FROM Artikl a, Kompatibilnost k WHERE a.Vrsta_ID = 10 AND ((a.ID = k.Komponenta2 AND k.Komponenta1 = " + izabraneKomponente[0].ID + ") OR (a.ID = k.Komponenta1 AND k.Komponenta2 = " + izabraneKomponente[0].ID + ")) AND k.Kompatibilni = 1" + "INTERSECT SELECT a.ID, a.Naziv, a.Kratki_opis, a.Specifikacija, a.Cijena, a.Vrsta_ID FROM Artikl a, Kompatibilnost k WHERE a.Vrsta_ID = 10 AND ((a.ID = k.Komponenta2 AND k.Komponenta1 = " + izabraneKomponente[1].ID + ") OR (a.ID = k.Komponenta1 AND k.Komponenta2 = " + izabraneKomponente[1].ID + ")) AND k.Kompatibilni = 1" + "INTERSECT SELECT a.ID, a.Naziv, a.Kratki_opis, a.Specifikacija, a.Cijena, a.Vrsta_ID FROM Artikl a, Kompatibilnost k WHERE a.VRSTA_ID = 10 AND ((a.ID = k.Komponenta2 AND k.Komponenta1 = " + izabraneKomponente[2].ID + ") OR (a.ID = k.Komponenta1 AND k.Komponenta2 = " + izabraneKomponente[2].ID + ")) AND k.Kompatibilni = 1" + "INTERSECT SELECT a.ID, a.Naziv, a.Kratki_opis, a.Specifikacija, a.Cijena, a.Vrsta_ID FROM Artikl a, Kompatibilnost k WHERE a.VRSTA_ID = 10 AND ((a.ID = k.Komponenta2 AND k.Komponenta1 = " + izabraneKomponente[3].ID + ") OR (a.ID = k.Komponenta1 AND k.Komponenta2 = " + izabraneKomponente[3].ID + ")) AND k.Kompatibilni = 1" + "INTERSECT SELECT a.ID, a.Naziv, a.Kratki_opis, a.Specifikacija, a.Cijena, a.Vrsta_ID FROM Artikl a, Kompatibilnost k WHERE a.VRSTA_ID = 10 AND ((a.ID = k.Komponenta2 AND k.Komponenta1 = " + izabraneKomponente[4].ID + ") OR (a.ID = k.Komponenta1 AND k.Komponenta2 = " + izabraneKomponente[4].ID + ")) AND k.Kompatibilni = 1" + "INTERSECT SELECT a.ID, a.Naziv, a.Kratki_opis, a.Specifikacija, a.Cijena, a.Vrsta_ID FROM Artikl a, Kompatibilnost k WHERE a.VRSTA_ID = 10 AND ((a.ID = k.Komponenta2 AND k.Komponenta1 = " + izabraneKomponente[5].ID + ") OR (a.ID = k.Komponenta1 AND k.Komponenta2 = " + izabraneKomponente[5].ID + ")) AND k.Kompatibilni = 1" + "INTERSECT SELECT a.ID, a.Naziv, a.Kratki_opis, a.Specifikacija, a.Cijena, a.Vrsta_ID FROM Artikl a, Kompatibilnost k WHERE a.VRSTA_ID = 10 AND ((a.ID = k.Komponenta2 AND k.Komponenta1 = " + izabraneKomponente[6].ID + ") OR (a.ID = k.Komponenta1 AND k.Komponenta2 = " + izabraneKomponente[6].ID + ")) AND k.Kompatibilni = 1" + "INTERSECT SELECT a.ID, a.Naziv, a.Kratki_opis, a.Specifikacija, a.Cijena, a.Vrsta_ID FROM Artikl a, Kompatibilnost k WHERE a.VRSTA_ID = 10 AND ((a.ID = k.Komponenta2 AND k.Komponenta1 = " + izabraneKomponente[7].ID + ") OR (a.ID = k.Komponenta1 AND k.Komponenta2 = " + izabraneKomponente[7].ID + ")) AND k.Kompatibilni = 1"; zvucnaKartica = Artikl.DohvatiKomponente(upit); RacunajPreporuke(zvucnaKartica, uiInputZvucna); } catch (Exception) { MessageBox.Show("Došlo je do pogreške.", "GREŠKA", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Metoda koja kao parametar prima listu artikala te novi artikl. /// Dodaje kompatibilnost novog proizvoda s ostalim proizvodima ako je novi /// proizvod kučište. /// </summary> /// <param name="listaArtikala"></param> /// <param name="noviArtikl"></param> public void KucisteKompatibilnost(List <Artikl> listaArtikala, Artikl noviArtikl) { double visinaNoviArtikl = 0; double sirinaNoviArtikl = 0; double duljinaNoviArtikl = 0; List <string> listaSpecifikacijaNovogArtikla = noviArtikl.Specifikacija.Split(',').ToList(); visinaNoviArtikl = DohvatiVisinu(listaSpecifikacijaNovogArtikla); sirinaNoviArtikl = DohvatiSirinu(listaSpecifikacijaNovogArtikla); duljinaNoviArtikl = DohvatiDuljinu(listaSpecifikacijaNovogArtikla); foreach (var trenutniArtikl in listaArtikala) { List <string> listaSpecifikacijaTrenutnogArtikla = trenutniArtikl.Specifikacija.Split(',').ToList(); if (trenutniArtikl.Vrsta_ID == 2 || trenutniArtikl.Vrsta_ID == 3 || trenutniArtikl.Vrsta_ID == 8 || trenutniArtikl.Vrsta_ID == 9 || trenutniArtikl.Vrsta_ID == 10) { double visinaTrenutniArtikl = 0; double sirinaTrenutniArtikl = 0; double duljinaTrenutniArtikl = 0; visinaTrenutniArtikl = DohvatiVisinu(listaSpecifikacijaTrenutnogArtikla); sirinaTrenutniArtikl = DohvatiSirinu(listaSpecifikacijaTrenutnogArtikla); duljinaTrenutniArtikl = DohvatiDuljinu(listaSpecifikacijaTrenutnogArtikla); if (sirinaNoviArtikl > sirinaTrenutniArtikl && visinaNoviArtikl > visinaTrenutniArtikl && duljinaNoviArtikl > duljinaTrenutniArtikl) { DodajKompatibilnostPomoc(trenutniArtikl, noviArtikl, true); } else { DodajKompatibilnostPomoc(trenutniArtikl, noviArtikl, false); } } else { DodajKompatibilnostPomoc(trenutniArtikl, noviArtikl, true); } } }
/// <summary> /// Metoda koja se poziva prilikom pritiska na gumbić Dodaj artikl. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UiActionDodajArtikl_Click(object sender, EventArgs e) { try { if (ArtiklZaIzmjenu == null) { if (uiInputNaziv.Text != "" && uiInputKratkiOpis.Text != "" && uiInputSpecifikacije.Text != "" && double.TryParse(uiInputCijena.Text, out double cijena) && uiInputVrstaArtikla.SelectedValue.ToString() != "") { Artikl noviArtikl = new Artikl { Naziv = uiInputNaziv.Text, Kratki_opis = uiInputKratkiOpis.Text, Specifikacija = uiInputSpecifikacije.Text, Cijena = cijena, Vrsta_ID = int.Parse(uiInputVrstaArtikla.SelectedValue.ToString()) }; Artikl.DodajArtikl(noviArtikl); var listaArtikala = Artikl.DohvatiKomponente("SELECT * FROM Artikl WHERE ID !=(SELECT MAX(ID) FROM Artikl)"); if (noviArtikl.Vrsta_ID == 1) { OstaloKompatibilnost(listaArtikala, noviArtikl); } else if (noviArtikl.Vrsta_ID == 2) { MaticnaPlocaKompatibilnost(listaArtikala, noviArtikl); } else if (noviArtikl.Vrsta_ID == 3) { GrafickaKarticaKompatibilnost(listaArtikala, noviArtikl); } else if (noviArtikl.Vrsta_ID == 4) { ProcesorKompatibilnost(listaArtikala, noviArtikl); } else if (noviArtikl.Vrsta_ID == 5) { RAMKompatibilnost(listaArtikala, noviArtikl); } else if (noviArtikl.Vrsta_ID == 6) { SSDKompatibilnost(listaArtikala, noviArtikl); } else if (noviArtikl.Vrsta_ID == 7) { HDDKompatibilnost(listaArtikala, noviArtikl); } else if (noviArtikl.Vrsta_ID == 8) { NapajanjeKompatibilnost(listaArtikala, noviArtikl); } else if (noviArtikl.Vrsta_ID == 9) { HladnjakKompatibilnost(listaArtikala, noviArtikl); } else if (noviArtikl.Vrsta_ID == 10) { ZvucnaKarticaKompatibilnost(listaArtikala, noviArtikl); } else if (noviArtikl.Vrsta_ID == 11) { KucisteKompatibilnost(listaArtikala, noviArtikl); } else { SveOstaloKompatibilnost(listaArtikala, noviArtikl); } MessageBox.Show("Artikl je uspješno dodan.", "Artikl dodan!", MessageBoxButtons.OK); this.Close(); } else { MessageBox.Show("Nisu uneseni svi podaci!", "Greška!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { if (uiInputNaziv.Text != "" && uiInputKratkiOpis.Text != "" && uiInputSpecifikacije.Text != "" && double.TryParse(uiInputCijena.Text, out double cijena) && uiInputVrstaArtikla.SelectedValue.ToString() != "") { Artikl.AzurirajArtikl(ArtiklZaIzmjenu, uiInputNaziv.Text, uiInputKratkiOpis.Text, uiInputSpecifikacije.Text, cijena, int.Parse(uiInputVrstaArtikla.SelectedValue.ToString())); var listaKompatibilnosti = Kompatibilnost.DohvatiKompatibilnosti("SELECT * FROM Kompatibilnost WHERE Komponenta1=" + ArtiklZaIzmjenu.ID); foreach (var kompatibilnost in listaKompatibilnosti) { Kompatibilnost.ObrisiKompatibilnost(kompatibilnost); } var listaArtikala = Artikl.DohvatiKomponente("SELECT * FROM Artikl WHERE ID !=" + ArtiklZaIzmjenu.ID); if (ArtiklZaIzmjenu.Vrsta_ID == 1) { OstaloKompatibilnost(listaArtikala, ArtiklZaIzmjenu); } else if (ArtiklZaIzmjenu.Vrsta_ID == 2) { MaticnaPlocaKompatibilnost(listaArtikala, ArtiklZaIzmjenu); } else if (ArtiklZaIzmjenu.Vrsta_ID == 3) { GrafickaKarticaKompatibilnost(listaArtikala, ArtiklZaIzmjenu); } else if (ArtiklZaIzmjenu.Vrsta_ID == 4) { ProcesorKompatibilnost(listaArtikala, ArtiklZaIzmjenu); } else if (ArtiklZaIzmjenu.Vrsta_ID == 5) { RAMKompatibilnost(listaArtikala, ArtiklZaIzmjenu); } else if (ArtiklZaIzmjenu.Vrsta_ID == 6) { SSDKompatibilnost(listaArtikala, ArtiklZaIzmjenu); } else if (ArtiklZaIzmjenu.Vrsta_ID == 7) { HDDKompatibilnost(listaArtikala, ArtiklZaIzmjenu); } else if (ArtiklZaIzmjenu.Vrsta_ID == 8) { NapajanjeKompatibilnost(listaArtikala, ArtiklZaIzmjenu); } else if (ArtiklZaIzmjenu.Vrsta_ID == 9) { HladnjakKompatibilnost(listaArtikala, ArtiklZaIzmjenu); } else if (ArtiklZaIzmjenu.Vrsta_ID == 10) { ZvucnaKarticaKompatibilnost(listaArtikala, ArtiklZaIzmjenu); } else if (ArtiklZaIzmjenu.Vrsta_ID == 11) { KucisteKompatibilnost(listaArtikala, ArtiklZaIzmjenu); } else { SveOstaloKompatibilnost(listaArtikala, ArtiklZaIzmjenu); } MessageBox.Show("Artikl je uspješno ažuriran.", "Artikl ažuriran!", MessageBoxButtons.OK); this.Close(); } else { MessageBox.Show("Nisu uneseni svi podaci!", "Greška!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } catch (Exception) { MessageBox.Show("Pogreška!", "Greška!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }