//Metoda briše zapisnik
        public int ObrisiVozilo(Vozilo vozilo)
        {
            string sql = $"DELETE vozilo WHERE registracija = '{vozilo.Registracija}';";
            int    i   = Database.Instance.IzvrsiUpit(sql);

            return(i);
        }
        //Metoda koja vraća rutu u koju su pohranjeni svi podaci u kontroli IspisRutaUC na pritisak tipke Dodaj nakon zatvaranja
        //DodajRutuForma i zatim se pomoću klase RutaRepozotorij upisuje nova ruta u bazu
        public Ruta VratiRutu()
        {
            Zaposlenik selektiran  = cmbBoxZaposlenik.SelectedItem as Zaposlenik;
            Vozilo     selektirano = cmbBoxVozilo.SelectedItem as Vozilo;
            Ruta       ruta        = new Ruta();

            if (staraRuta != null)
            {
                ruta.Ruta_id = staraRuta.Ruta_id;
            }
            if (selektiran != null && selektirano != null && txtBoxPolazište.Text != "" && txtBoxOdredište.Text != "" && txtBoxBrojOtpremnice.Text != "")
            {
                ruta.Zaposlenik_id       = selektiran.OIB;
                ruta.Kreirao             = PrijavaForma.oib;
                ruta.Vozilo_registracija = selektirano.Registracija;
                ruta.Polazište           = txtBoxPolazište.Text;
                ruta.Odredište           = txtBoxOdredište.Text;
                ruta.Broj_otpremnice     = txtBoxBrojOtpremnice.Text;
                DateTime polazak = dtpPolazakDatum.Value.Date + dtpPolazakSat.Value.TimeOfDay;
                DateTime dolazak = dtpdolazakDatum.Value.Date + dtpDolazakSat.Value.TimeOfDay;
                ruta.Datum_i_vrijeme_polaska   = polazak.ToString();
                ruta.Očekivano_vrijeme_dolaska = dolazak.ToString();
                return(ruta);
            }
            else
            {
                return(null);
            }
        }
        // metoda koja vraća zaposlenika u kojeg su pohranjeni svi podaci kontroli IspisVozilaUC koja na prisitak tipke Spremi zatvara formu
        // i pomoću klase ZaposlenikRepozitorij azurira zaposlenika u bazi
        public Vozilo VratiVozilo()
        {
            VrstaVozila vrstaVozila = cmbVrstaVozila.SelectedItem as VrstaVozila;
            Vozilo      vozilo      = new Vozilo();

            vozilo.Registracija       = txtRegistacija.Text;
            vozilo.Vrsta_vozila       = vrstaVozila.vrsta_id;
            vozilo.Godina_proizvodnje = int.Parse(txtGodinaProizvodnje.Text);
            vozilo.Marka    = txtMarkaVozila.Text;
            vozilo.Nosivost = txtNosivost.Text;
            return(vozilo);
        }
 //Konstruktor koji se poziva kod ažuriranja, prima parametar trenutnoVozilo koje se dohvaća iz kontrole IspisVozilaUC pomoću metode
 //DohvatiSelektiranoVozilo, i zatim podatke o tom vozilu stavlja unutar textboxeva itd. u formi koji se mogu mijenjati
 public DodajVoziloForma(Vozilo vozilo)
 {
     InitializeComponent();
     txtRegistacija.ReadOnly      = true;
     staroVozilo                  = vozilo;
     txtRegistacija.Text          = staroVozilo.Registracija;
     cmbVrstaVozila.DataSource    = voziloRepozitorij.DohvatiVrsteVozila();
     cmbVrstaVozila.SelectedIndex = staroVozilo.Vrsta_vozila - 1;
     txtMarkaVozila.Text          = staroVozilo.Marka;
     txtGodinaProizvodnje.Text    = (staroVozilo.Godina_proizvodnje).ToString();
     txtNosivost.Text             = staroVozilo.Nosivost;
 }
 //Metoda koja prima staro i ažurirano vozilo od IspisVozilaUC i staro vozilo ažurira u novo
 public int AzurirajVozilo(Vozilo vozilo)
 {
     if (vozilo.Registracija == "" || vozilo.Marka == "" || vozilo.Vrsta_vozila.ToString() == "" || vozilo.Nosivost == "")
     {
         throw new System.FormatException();
     }
     else
     {
         string sql = $"UPDATE vozilo SET vrsta_vozila_id = {vozilo.Vrsta_vozila}, marka = '{vozilo.Marka}', godina_proizvodnje = {vozilo.Godina_proizvodnje}, nosivost = '{vozilo.Nosivost}' WHERE registracija = '{vozilo.Registracija}';";
         int    i   = Database.Instance.IzvrsiUpit(sql);
         return(i);
     }
 }
 //Metoda koja prima vozilo od IspisVozilaUC i dodaje ga u bazu
 public int DodajVozilo(Vozilo vozilo)
 {
     if (vozilo.Registracija == "" || vozilo.Marka == "" || vozilo.Vrsta_vozila.ToString() == "" || vozilo.Nosivost == "")
     {
         throw new System.FormatException();
     }
     else
     {
         string sql = $"INSERT INTO vozilo (registracija, vrsta_vozila_id, marka, godina_proizvodnje, nosivost, tvrtka_id) VALUES ('{vozilo.Registracija}', {vozilo.Vrsta_vozila}, '{vozilo.Marka}', {vozilo.Godina_proizvodnje}, '{vozilo.Nosivost}', {PrijavaForma.prijavljeniZaposlenik.Tvrtka.Tvrtka_id});";
         int    i   = Database.Instance.IzvrsiUpit(sql);
         return(i);
     }
 }
        //Metoda vraća sva slobodna vozila unutar željenog intervala prilikom kreiranja ruta
        public List <Vozilo> DohvatiVoziloRuta()
        {
            List <Vozilo> listaVozila = new List <Vozilo>();
            string        sqlUpit     = $"SELECT * from vozilo v where not exists ( select 1 from ruta r where '{DodajRutuForma.vrijemePolaska.ToString("yyyy-MM-dd HH:mm:ss")}' < r.očekivano_vrijeme_dolaska and '{DodajRutuForma.vrijemeDolaska.ToString("yyyy-MM-dd HH:mm:ss")}' > r.datum_i_vrijeme_polaska and registracija=vozilo_registracija) and tvrtka_id={PrijavaForma.prijavljeniZaposlenik.Tvrtka.Tvrtka_id}";
            SqlDataReader dr          = Database.Instance.DohvatiDataReader(sqlUpit);

            while (dr.Read())
            {
                Vozilo vozilo = DohvatiVozilo(dr);
                listaVozila.Add(vozilo);
            }
            dr.Close();
            return(listaVozila);
        }
        public Vozilo DohvatiVozilo(SqlDataReader dr)
        {
            Vozilo vozilo = new Vozilo();

            if (dr != null)
            {
                vozilo.Registracija       = dr["registracija"].ToString();
                vozilo.Vrsta_vozila       = int.Parse(dr["vrsta_vozila_id"].ToString());
                vozilo.Marka              = dr["marka"].ToString();
                vozilo.Godina_proizvodnje = int.Parse(dr["godina_proizvodnje"].ToString());
                vozilo.Nosivost           = dr["nosivost"].ToString();
            }
            return(vozilo);
        }
        //Metoda vraća sva vozila za ispis u datagridview
        public List <Vozilo> DohvatiVozila()
        {
            List <Vozilo> lista = new List <Vozilo>();
            string        sql   = $"SELECT * FROM vozilo WHERE tvrtka_id = {PrijavaForma.prijavljeniZaposlenik.Tvrtka.Tvrtka_id};";
            SqlDataReader dr    = Database.Instance.DohvatiDataReader(sql);

            while (dr.Read())
            {
                Vozilo vozilo = new Vozilo();
                vozilo.Registracija       = dr["registracija"].ToString();
                vozilo.Vrsta_vozila       = int.Parse(dr["vrsta_vozila_id"].ToString());
                vozilo.Marka              = dr["marka"].ToString();
                vozilo.Godina_proizvodnje = int.Parse(dr["godina_proizvodnje"].ToString());
                vozilo.Nosivost           = dr["nosivost"].ToString();

                lista.Add(vozilo);
            }
            dr.Close();
            return(lista);
        }