Exemplo n.º 1
0
        /// <summary>
        /// Provjera retervacije za slanje maila
        /// </summary>
        public void provjeriRezervacije()
        {
            using (var db = new ProgramskoInzenjerstvoDBEntities())
            {
                int lokacijaID = Convert.ToInt32(ConfigurationManager.AppSettings["LokacijaID"]);
                foreach (Rezervacija rez in db.Rezervacijas.Where(x => x.izvrseno == false && x.lokacija == lokacijaID))
                {
                    List <Djelovi> listaDjelovaRezervacija = new List <Djelovi>();

                    foreach (Rezervacija_has_Djelovi rhd in rez.Rezervacija_has_Djelovi)
                    {
                        Djelovi dio = db.Djelovis.Where(x => x.id == rhd.int_djelovi).Single();
                        Lokacija_has_djelovi lhd = db.Lokacija_has_djelovi.Where(y => y.id_djelovi == dio.id && y.id_lokacija == lokacijaID).SingleOrDefault();

                        if (rhd.kolicina <= lhd.kolicina)
                        {
                            listaDjelovaRezervacija.Add(dio);
                        }
                    }
                    if (listaDjelovaRezervacija.Count > 0 && listaDjelovaRezervacija.Count == rez.Rezervacija_has_Djelovi.Count)
                    {
                        string lokacijaAdresa = db.Lokacijas.Where(x => x.id == lokacijaID).Select(x => x.Adresa).SingleOrDefault();

                        pripremiMail(rez.kupacEmail, lokacijaAdresa, listaDjelovaRezervacija);
                        Rezervacija rezervacija = db.Rezervacijas.Single(x => x.id == rez.id);
                        rezervacija.izvrseno = true;
                    }
                }
                db.SaveChanges();
            }
        }
        /// <summary>
        /// Funkcija za izdavanje računa
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bntIzdaj_Click(object sender, EventArgs e)
        {
            if (bl.Count == 0)
            {
                MessageBox.Show("Ne možete napraviti račun bez djelova");
            }
            else
            {
                using (var db = new ProgramskoInzenjerstvoDBEntities())
                {
                    Racun noviRacun = new Racun();
                    noviRacun.zaposlenik = FrmGlavna.prijavljeniKorisnik.ID;
                    noviRacun.datum      = DateTime.Now;
                    noviRacun.iznos      = txtIznos.Text;
                    noviRacun.Maloprodaja_veleprodaja = "Veleprodaja";
                    int lokacijaId = int.Parse(ConfigurationManager.AppSettings["LokacijaID"]);
                    noviRacun.lokacija = lokacijaId;
                    Trgovina trgovina = cboxTvrtka.SelectedItem as Trgovina;
                    noviRacun.trgovina = trgovina.id;

                    db.Racuns.Attach(noviRacun);
                    db.Racuns.Add(noviRacun);
                    db.SaveChanges();

                    Racun dodaniRacun = db.Racuns.OrderByDescending(x => x.id).First();

                    var listaZaIzbrisati = bl.Where(x => x.kolicina == 0).ToList();
                    listaZaIzbrisati.ForEach(x => bl.Remove(x));

                    foreach (Djelovi djelovi in bl)
                    {
                        Racun_Has_Djelovi rhd = new Racun_Has_Djelovi();
                        rhd.id_racun = dodaniRacun.id;

                        rhd.id_djelovi = djelovi.id;
                        rhd.kolicina   = djelovi.kolicina;
                        dodaniRacun.Racun_Has_Djelovi.Add(rhd);

                        //Djelovi dioOduzmiKolicinu = db.Djelovis.First(x => x.id == djelovi.id);
                        //dioOduzmiKolicinu.kolicina -= djelovi.kolicina;
                        Lokacija_has_djelovi lhd = db.Lokacija_has_djelovi.Where(x => x.id_lokacija == lokacijaId && x.id_djelovi == djelovi.id).SingleOrDefault();
                        if (lhd != null)
                        {
                            lhd.kolicina    -= djelovi.kolicina;
                            djelovi.kolicina = 0;
                        }
                    }

                    db.SaveChanges();
                    MessageBox.Show("Uspješno ste izdali novi račun");
                }
            }
        }