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 Potvrdi_click(object sender, RoutedEventArgs e) { var listaStavki = ProdajaNamestaj.NadjiStavkuProdaje(prodaja.ListaProdajeNamestajaId); if (ForceValidation() == true) { return; } if (prodaja.ListaProdajeNamestaja.Count < 1) { MessageBox.Show("Morate kupiti barem jedan namestaj", "Upozorenje", MessageBoxButton.OK, MessageBoxImage.Information); } else { switch (operacija) { case Operacija.DODAVANJE: this.DialogResult = true; prodaja.ProdavacId = korisnik.Id; ProdajaDAO.Create(prodaja); foreach (var item in prodaja.ListaProdajeNamestaja) { item.ProdajaId = ProdajaDAO.GetLastId(); ProdajaNamestajDAO.Create(item); } foreach (var item in prodaja.ListaDodatnihUsluga) { item.ProdajaId = ProdajaDAO.GetLastId(); ProdajaDodatnaUslugaDAO.Create(item); } break; case Operacija.IZMENA: this.DialogResult = true; var listaProvera = ProdajaNamestajDAO.LoadByProdajaId(prodaja.Id); foreach (var prodajaNamestaj in prodaja.ListaProdajeNamestaja.ToList()) { bool postojiProdajaNamestaj = false; foreach (var item in listaProvera.ToList()) { if (item.Id == prodajaNamestaj.Id) { postojiProdajaNamestaj = true; listaProvera.Remove(item); break; } if (item.NamestajId == prodajaNamestaj.NamestajId) { if (item.Kolicina != prodajaNamestaj.Kolicina) { ProdajaNamestajDAO.Update(item); break; } } } if (postojiProdajaNamestaj == false) { prodajaNamestaj.ProdajaId = prodaja.Id; ProdajaNamestajDAO.Create(prodajaNamestaj); } } foreach (var item in listaProvera.ToList()) { ProdajaNamestajDAO.Delete(item, ProdajaNamestajDAO.TipBrisanja.ProdajaNamestaj, 0); } //Provera za Dodatnu uslugu var listaProveraDU = ProdajaDodatnaUslugaDAO.LoadByProdajaId(prodaja.Id); foreach (var prodajaDodatnaUsluga in prodaja.ListaDodatnihUsluga.ToList()) { bool postojiProdajaDU = false; foreach (var item in listaProveraDU.ToList()) { if (item.Id == prodajaDodatnaUsluga.Id) { postojiProdajaDU = true; listaProveraDU.Remove(item); break; } } if (postojiProdajaDU == false) { prodajaDodatnaUsluga.ProdajaId = prodaja.Id; ProdajaDodatnaUslugaDAO.Create(prodajaDodatnaUsluga); } } foreach (var item in listaProveraDU.ToList()) { ProdajaDodatnaUslugaDAO.Delete(item, ProdajaDodatnaUslugaDAO.TipBrisanja.ProdajaDodatnaUsluga, 0); } ProdajaDAO.Update(prodaja); break; } } }