public override object IzvrsiKonkretnuSO(OpstiDomenskiObjekat odo) { Rezervacija r = odo as Rezervacija; Broker.DajSesiju().IzmeniUslovPrimarni(r); //moram da zapamtim i stavke kao slab objekat StavkaRezervacije sr = new StavkaRezervacije(); //kako ne bi doslo do dupliranja/brisanja stavki u bazi, pre nego sto dodam nove prvo brisem sve stavke sa tim ID-em rezervacije u bazi, pa dodajem sve ove i dgv (listeStavki) sr.Uslov = " RezervacijaID=" + r.Id; Broker.DajSesiju().ObrisiZaUslovOstalo(sr); foreach (StavkaRezervacije stavka in r.ListaStavki) { stavka.RezervacijaID = r.Id; //kod StavkaRezervacija, sacuvaj mi odmah cuva ceo red, ne samo primarni kljuc Broker.DajSesiju().Sacuvaj(stavka); /*stavka.Uslov = " RezervacijaID=" + r.Id; * Broker.DajSesiju().IzmeniUslovOstalo(stavka);*/ Linija l = Broker.DajSesiju().VratiZaUslovPrimarni(stavka.Linija) as Linija; l.RaspoloziviBrojMesta--; Broker.DajSesiju().IzmeniUslovPrimarni(l); } return(true); }
internal static void DodajStavkuRezervacije(ComboBox cmbLinija, TextBox txtCenaStavke, TextBox txtUkupnaCena, Label lblTrajanjePuta) { StavkaRezervacije sr = new StavkaRezervacije(); sr.RezervacijaID = rezervacija.Id; sr.RedniBroj = rezervacija.ListaStavki.Count + 1; sr.Linija = cmbLinija.SelectedItem as Linija; if (sr.Linija == null) { MessageBox.Show("Izaberite liniju!"); return; } if (sr.Linija.RaspoloziviBrojMesta < 1) { MessageBox.Show("Nema raspolozivih mesta za ovu liniju!"); return; } try { sr.Cena = Convert.ToDouble(txtCenaStavke.Text); } catch (Exception) { MessageBox.Show("Cena nije ispravno uneta!"); return; } if (sr.Cena < 0) { MessageBox.Show("Cena nije ispravno uneta!"); return; } rezervacija.UkupanIznos += sr.Cena; txtUkupnaCena.Text = rezervacija.UkupanIznos.ToString(); foreach (StavkaRezervacije stavka in rezervacija.ListaStavki) { if (stavka.Linija.Id == sr.Linija.Id) { MessageBox.Show("Ta linija je vec izabrana!"); return; } } rezervacija.ListaStavki.Add(sr); lblTrajanjePuta.Text = sr.Linija.TrajanjePuta; PopuniCmbLinija(cmbLinija); txtCenaStavke.Clear(); }
internal static void ObrisiStavkuRezervacije(DataGridView dgvStavkeRezervacije, TextBox txtUkupnaCena) { try { StavkaRezervacije sr = dgvStavkeRezervacije.CurrentRow.DataBoundItem as StavkaRezervacije; rezervacija.ListaStavki.Remove(sr); //update rednih brojeva int i = 1; foreach (StavkaRezervacije stavka in rezervacija.ListaStavki) { stavka.RedniBroj = i; i++; } rezervacija.UkupanIznos -= sr.Cena; txtUkupnaCena.Text = rezervacija.UkupanIznos.ToString(); } catch (Exception) { MessageBox.Show("Izaberite stavku za brisanje!"); } }
public override object IzvrsiKonkretnuSO(OpstiDomenskiObjekat odo) { Rezervacija r = Broker.DajSesiju().VratiZaUslovPrimarni(odo) as Rezervacija; r.Zaposleni = Broker.DajSesiju().VratiZaUslovPrimarni(r.Zaposleni) as Zaposleni; r.Putnik = Broker.DajSesiju().VratiZaUslovPrimarni(r.Putnik) as Putnik; StavkaRezervacije sr = new StavkaRezervacije(); sr.Uslov = " RezervacijaID=" + r.Id; List <StavkaRezervacije> lista = Broker.DajSesiju().VratiSveZaUslovOstalo(sr). OfType <StavkaRezervacije>().ToList <StavkaRezervacije>(); foreach (StavkaRezervacije stavka in lista) { stavka.Linija = Broker.DajSesiju().VratiZaUslovPrimarni(stavka.Linija) as Linija; stavka.Linija.PocetnaStanica = Broker.DajSesiju().VratiZaUslovPrimarni(stavka.Linija.PocetnaStanica) as Stanica; stavka.Linija.KrajnjaStanica = Broker.DajSesiju().VratiZaUslovPrimarni(stavka.Linija.KrajnjaStanica) as Stanica; r.ListaStavki.Add(stavka); } return(r); }