private void btnProdajFinal_Click(object sender, RoutedEventArgs e) { if (ForceValidation() == true) { return; } if (Korpa.Count() != 0) { bool postojiJP = false; foreach (var item in Korpa) { if (item.GetType() == typeof(JedinicaProdaje)) { postojiJP = true; } } if (postojiJP == false) { ErrorMessagePrint("Ne mozete prodati samo dodatne usluge.", "Upozorenje"); return; } } else { ErrorMessagePrint("Korpa je prazna.", "Upozorenje"); return; } switch (operacija) { case Operacija.DODAVANJE: prodajaNamestaja.BrRacuna = (new Random().Next(1, int.MaxValue)).ToString(); var tempProdaja = ProdajaDAO.Create(prodajaNamestaja); foreach (var item in Korpa) { if (item.GetType() == typeof(JedinicaProdaje)) { var tempItem = (JedinicaProdaje)item; foreach (Namestaj namestaj in Projekat.Instance.Namestaji) { if (namestaj.Id == tempItem.NamestajId) { NamestajDAO.Update(namestaj); break; } } tempItem.ProdajaId = tempProdaja.Id; JedinicaProdajeDAO.Create(tempItem); } else { var tempItem = (ProdataDU)item; tempItem.ProdajaId = tempProdaja.Id; ProdataDodatnaUslugaDAO.Create(tempItem); } } prodajaUspesna = true; this.Close(); break; case Operacija.IZMENA: ProdajaDAO.Update(prodajaNamestaja); var listaJPZaBrisanje = JedinicaProdajeDAO.GetAllForId(prodajaNamestaja.Id); var listaDUZaBrisanje = ProdataDodatnaUslugaDAO.GetAllForId(prodajaNamestaja.Id); foreach (var item in Korpa) { //////////////// if (item.GetType() == typeof(JedinicaProdaje)) { var jpFromKorpa = (JedinicaProdaje)item; bool postoji = false; foreach (var jpFromProdajaEdit in JedinicaProdajeDAO.GetAllForId(prodajaNamestaja.Id)) { if (jpFromProdajaEdit.Id == jpFromKorpa.Id) { postoji = true; listaJPZaBrisanje.ToList().ForEach(x => { if (x.Id == jpFromProdajaEdit.Id) { listaJPZaBrisanje.Remove(x); } return; }); //izbaci ga iz liste zato sto je vec postojao u prodaji. ALI PROVERI KOLICINU, ako je promenjena updejtuj namestaj. if (jpFromKorpa.Kolicina != jpFromProdajaEdit.Kolicina) { JedinicaProdajeDAO.Update(jpFromKorpa); NamestajDAO.Update(Namestaj.GetById(jpFromKorpa.NamestajId)); } break; } } if (postoji == false) { jpFromKorpa.ProdajaId = prodajaNamestaja.Id; JedinicaProdajeDAO.Create(jpFromKorpa); NamestajDAO.Update(Namestaj.GetById(jpFromKorpa.NamestajId)); } } /////////// else { var duFromKorpa = (ProdataDU)item; bool postoji = false; foreach (ProdataDU duFromProdajaEdit in ProdataDodatnaUslugaDAO.GetAllForId(prodajaNamestaja.Id)) { if (duFromProdajaEdit.Id == duFromKorpa.Id) { postoji = true; listaDUZaBrisanje.ToList().ForEach(x => { if (x.Id == duFromProdajaEdit.Id) { listaDUZaBrisanje.Remove(x); } return; }); break; } } if (postoji == false) { duFromKorpa.ProdajaId = prodajaNamestaja.Id; ProdataDodatnaUslugaDAO.Create(duFromKorpa); } } } foreach (JedinicaProdaje jpZaObrisati in listaJPZaBrisanje) { JedinicaProdajeDAO.Delete(jpZaObrisati); var tempNamestaj = Namestaj.GetById(jpZaObrisati.NamestajId); tempNamestaj.BrKomada += jpZaObrisati.Kolicina; NamestajDAO.Update(tempNamestaj); } foreach (ProdataDU duZaObrisati in listaDUZaBrisanje) { ProdataDodatnaUslugaDAO.Delete(duZaObrisati); } prodajaUspesna = true; this.Close(); break; } }
private void ObrisiItem(object sender, RoutedEventArgs e) { if (dgTabela.SelectedItem == null) { ErrorMessagePrint("Niste nista izabrali. ", "Upozorenje"); return; } switch (izabranaOpcija) { case Opcija.NAMESTAJ: var izabraniNamestaj = (Namestaj)dgTabela.SelectedItem; MessageBoxResult namestajMessage = MessageBox.Show("Da li ste sigurni da zelite da obrisete ovaj namestaj?", "Brisanje", MessageBoxButton.YesNo); if (namestajMessage == MessageBoxResult.Yes) { NamestajDAO.Delete(izabraniNamestaj); } ; break; case Opcija.TIPNAMESTAJA: var izabraniTipNamestaja = (TipNamestaja)dgTabela.SelectedItem; if (izabraniTipNamestaja.Id == 1) { MessageBoxResult poruka = MessageBox.Show("Ovaj tip se ne moze obrisati!", "Upozorenje", MessageBoxButton.OK); return; } MessageBoxResult tipNamestajaMessage = MessageBox.Show("Da li ste sigurni da zelite da obrisete ovaj tip namestaja?", "Brisanje", MessageBoxButton.YesNo); if (tipNamestajaMessage == MessageBoxResult.Yes) { var tempListaZaBrisanje = NamestajDAO.GetAllForTipId(izabraniTipNamestaja.Id); foreach (var item in tempListaZaBrisanje) { item.TipNamestaja = TipNamestajaDAO.GetById(1); NamestajDAO.Update(item); } TipNamestajaDAO.Delete(izabraniTipNamestaja); } ; break; case Opcija.KORISNIK: var izabraniKorisnik = (Korisnik)dgTabela.SelectedItem; MessageBoxResult korisnikMessage = MessageBox.Show("Da li ste sigurni da zelite da obrisete ovog korisnika?", "Brisanje", MessageBoxButton.YesNo); if (korisnikMessage == MessageBoxResult.Yes) { KorisnikDAO.Delete(izabraniKorisnik); } ; break; case Opcija.AKCIJA: var izabranaAkcija = (Akcija)dgTabela.SelectedItem; MessageBoxResult akcijaMessage = MessageBox.Show("Da li ste sigurni da zelite da obrisete ovu akciju?", "Brisanje", MessageBoxButton.YesNo); if (akcijaMessage == MessageBoxResult.Yes) { var listaZaBrisanje = NaAkcijiDAO.GetAllNAForActionId(izabranaAkcija.Id); foreach (var item in listaZaBrisanje) { NaAkcijiDAO.Delete(item); } AkcijaDAO.Delete(izabranaAkcija); } ; break; case Opcija.DODATNAUSLUGA: var izabranaDodatnaUsluga = (DodatnaUsluga)dgTabela.SelectedItem; MessageBoxResult dodatnaUslugaMessage = MessageBox.Show("Da li ste sigurni da zelite da obrisete ovu dodatnu uslugu?", "Brisanje", MessageBoxButton.YesNo); if (dodatnaUslugaMessage == MessageBoxResult.Yes) { DodatnaUslugaDAO.Delete(izabranaDodatnaUsluga); } ; break; case Opcija.PRODAJA: var izabranaProdaja = (ProdajaNamestaja)dgTabela.SelectedItem; MessageBoxResult prodajaMessage = MessageBox.Show("Da li ste sigurni da zelite da obrisete ovu prodaju?", "Brisanje", MessageBoxButton.YesNo); if (prodajaMessage == MessageBoxResult.Yes) { var listaZaBrisanje = JedinicaProdajeDAO.GetAllForId(izabranaProdaja.Id); foreach (var item in listaZaBrisanje) { var tempNamestaj = NamestajDAO.GetById(item.NamestajId); tempNamestaj.BrKomada += item.Kolicina; NamestajDAO.Update(tempNamestaj); JedinicaProdajeDAO.Delete(item); } ProdajaDAO.Delete(izabranaProdaja); } ; break; } view.Refresh(); }