Esempio n. 1
0
        private void btnSpasi_Click(object sender, EventArgs e)
        {
            DialogResult dres = MessageBox.Show("Da li ste sigurni da želite spasiti stanicu?", "Spasiti?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dres == DialogResult.Yes)
            {
                try
                {
                    if (novaStanica)
                    {
                        DAL.Entiteti.Stanica stanica = new DAL.Entiteti.Stanica(tbNaziv.Text, tbMjesto.Text);
                        stanica.SifraStanice = ks.kreirajStanicu(stanica);
                        pozvanOd.dodanaStanica(stanica);
                    }
                    else
                    {
                        odabranaStanica.Naziv  = tbNaziv.Text;
                        odabranaStanica.Mjesto = tbMjesto.Text;
                        ks.updateStanice(odabranaStanica);
                        pozvanOd.promjenjenaStanica();
                    }

                    MessageBox.Show("Promjene su uspješno izvršene!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return;
                }
            }
        }
Esempio n. 2
0
        public List <Entiteti.VoznjaNaStanici> vratiDolazneVoznjeStanice(DAL.Entiteti.Stanica stanica)
        {
            int indeks, minute, sati;
            List <Entiteti.VoznjaNaStanici> voznjeNaStanici = new List <Entiteti.VoznjaNaStanici>();

            foreach (DAL.Entiteti.Linija linija in kolekcijaLinija.Linije)
            {
                indeks = linija.sadrziStanicu(stanica);

                if (indeks >= 0)
                {
                    foreach (DAL.Entiteti.RasporedVoznje rv in linija.RasporediVoznje)
                    {
                        sati   = rv.Vrijeme.Hour;
                        minute = rv.Vrijeme.Minute;

                        minute += linija.TrajanjeDoDolaska[indeks];

                        sati   += (minute / 60);
                        minute %= 60;
                        sati   %= 24;


                        voznjeNaStanici.Add(new Entiteti.VoznjaNaStanici(linija.NazivLinije, sati, minute));
                    }
                }
            }

            return(voznjeNaStanici);
        }
Esempio n. 3
0
 private void updateujCijenu()
 {
     textBox4.Text = "0 KM";
     if (listBox1.SelectedItems.Count > 0 && comboBox2.SelectedIndex > -1 && comboBox3.SelectedIndex > comboBox2.SelectedIndex)
     {
         DAL.Entiteti.Stanica prvaStanica    = staniceUVoznji[comboBox2.SelectedIndex];
         DAL.Entiteti.Stanica drugaStanica   = staniceUVoznji[comboBox3.SelectedIndex];
         DAL.Entiteti.Voznja  voznja         = voznje[listBox1.SelectedIndices[0]];
         DAL.Entiteti.Linija  odabranaLinija = comboBox1.SelectedItem as DAL.Entiteti.Linija;
         double        cijena = odabranaLinija.vratiCijenu(prvaStanica, drugaStanica);
         List <double> cijene = new List <double>();
         for (int i = 0; i < odabranaMjesta.Count; i++)
         {
             cijene.Add(cijena * (1 - tipPopusta[comboBox4.SelectedIndex].VrijednostPopusta / 100.0));
         }
         try
         {
             if (tipPopusta[comboBox4.SelectedIndex].VrijednostPopusta == 0)
             {
                 DAL.Entiteti.KupacKarte kupac = new DAL.Entiteti.KupacKarte(textBox2.Text, prvaStanica, drugaStanica, voznja, odabranaMjesta, cijene, System.DateTime.Now);
                 textBox4.Text = kupac.proracunajCijenu().ToString() + " KM";
             }
             else
             {
                 DAL.Entiteti.KupacSaPopustom kupac = new DAL.Entiteti.KupacSaPopustom(textBox2.Text, prvaStanica, drugaStanica, voznja, odabranaMjesta, cijene, System.DateTime.Now, tipPopusta[comboBox4.SelectedIndex].VrijednostPopusta, textBox3.Text, (DAL.TipoviPodataka.TipoviKupaca)(tipPopusta[comboBox4.SelectedIndex].Indeks));
                 textBox4.Text = kupac.proracunajCijenu().ToString() + " KM";
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
 }
Esempio n. 4
0
        public void brisiStanicu(DAL.Entiteti.Stanica s)
        {
            DAL.DAL            d  = DAL.DAL.Instanca;
            DAL.DAL.StanicaDAO sd = d.getDAO.getStaniceDAO();

            sd.delete(s);
            stanice.Remove(s);
        }
 public string dajNajjeftinijiPut(long sifraPocetneStanice, long sifraKrajnjeStanice)
 {
     DAL.DAL d = DAL.DAL.Instanca;
     d.kreirajKonekciju();
     DAL.Entiteti.Stanica           pocetnaStanica = d.getDAO.getStaniceDAO().getById(sifraPocetneStanice);
     DAL.Entiteti.Stanica           krajnjaStanica = d.getDAO.getStaniceDAO().getById(sifraKrajnjeStanice);
     DesktopAplikacija.Entiteti.Put put            = DesktopAplikacija.Informisanje.InformisanjeKomande.vratiNajjeftinijiPut(pocetnaStanica, krajnjaStanica);
     return(put.ToString().Replace("\n", "; "));
 }
 public double dajCijenuJedneKarte(long sifraLinije, long sifraPocetneStanice, long sifraKrajnjeStanice)
 {
     DAL.DAL d = DAL.DAL.Instanca;
     d.kreirajKonekciju();
     DAL.Entiteti.Linija  odabranaLinija = d.getDAO.getLinijaDAO().getById(sifraLinije);
     DAL.Entiteti.Stanica prvaStanica    = d.getDAO.getStaniceDAO().getById(sifraPocetneStanice);
     DAL.Entiteti.Stanica drugaStanica   = d.getDAO.getStaniceDAO().getById(sifraKrajnjeStanice);
     return(odabranaLinija.vratiCijenu(prvaStanica, drugaStanica));
 }
Esempio n. 7
0
 public int dajPolozajStanice(DAL.Entiteti.Stanica s)
 {
     for (int i = 0; i < stanice.Count; i++)
     {
         if (stanice[i].SifraStanice == s.SifraStanice)
         {
             return(i);
         }
     }
     return(-1);
 }
Esempio n. 8
0
 private int dajIndexStanice(DAL.Entiteti.Stanica stan)
 {
     for (int i = 0; i < staniceUVoznji.Count; i++)
     {
         if (staniceUVoznji[i].SifraStanice == stan.SifraStanice)
         {
             return(i);
         }
     }
     throw new Exception("Greška sa stanicama");
 }
Esempio n. 9
0
 private bool nijeDodanaStanica(DAL.Entiteti.Stanica s)
 {
     foreach (DataGridViewRow dgvr in dgvStanice.Rows)
     {
         if ((dgvr.Tag as DAL.Entiteti.Stanica).SifraStanice == s.SifraStanice)
         {
             return(false);
         }
     }
     return(true);
 }
Esempio n. 10
0
 public UredjivanjeStanice(PregledStanica us, bool nova = true, DAL.Entiteti.Stanica s = null)
 {
     InitializeComponent();
     novaStanica = nova;
     pozvanOd    = us;
     if (!nova)
     {
         odabranaStanica = s;
         tbNaziv.Text    = s.Naziv;
         tbMjesto.Text   = s.Mjesto;
     }
 }
Esempio n. 11
0
 private void button5_Click(object sender, EventArgs e)
 {
     if (textBox2.Text == "" || (textBox3.Enabled && textBox3.Text == ""))
     {
         MessageBox.Show("Molimo unesite sve podatke");
     }
     else
     {
         if (listBox1.SelectedItems.Count > 0 && comboBox2.SelectedIndex > -1 && comboBox3.SelectedIndex > comboBox2.SelectedIndex)
         {
             DAL.Entiteti.Stanica prvaStanica    = staniceUVoznji[comboBox2.SelectedIndex];
             DAL.Entiteti.Stanica drugaStanica   = staniceUVoznji[comboBox3.SelectedIndex];
             DAL.Entiteti.Voznja  voznja         = voznje[listBox1.SelectedIndices[0]];
             DAL.Entiteti.Linija  odabranaLinija = comboBox1.SelectedItem as DAL.Entiteti.Linija;
             double        cijena = odabranaLinija.vratiCijenu(prvaStanica, drugaStanica);
             List <double> cijene = new List <double>();
             for (int i = 0; i < odabranaMjesta.Count; i++)
             {
                 cijene.Add(cijena * (1 - tipPopusta[comboBox4.SelectedIndex].VrijednostPopusta / 100.0));
             }
             try
             {
                 if (tipPopusta[comboBox4.SelectedIndex].VrijednostPopusta == 0)
                 {
                     DAL.Entiteti.KupacKarte kupac = new DAL.Entiteti.KupacKarte(textBox2.Text, prvaStanica, drugaStanica, voznja, odabranaMjesta, cijene, System.DateTime.Today);
                     d.getDAO.getKupacKarteDAO().create(kupac);
                     MessageBox.Show("Obavljeno");
                     StampacKarti stampac = new StampacKarti(kupac, staniceUVoznji, logovaniKorisnik);
                     stampac.DokumentZaPrintanje.PrinterSettings = printDialog.PrinterSettings;
                     stampac.Stampaj();
                 }
                 else
                 {
                     DAL.Entiteti.KupacSaPopustom kupac = new DAL.Entiteti.KupacSaPopustom(textBox2.Text, prvaStanica, drugaStanica, voznja, odabranaMjesta, cijene, System.DateTime.Today, tipPopusta[comboBox4.SelectedIndex].VrijednostPopusta, textBox3.Text, (DAL.TipoviPodataka.TipoviKupaca)(tipPopusta[comboBox4.SelectedIndex].Indeks));
                     d.getDAO.getKupacKarteSPopustomDAO().create(kupac);
                     MessageBox.Show("Obavljeno");
                     StampacKarti stampac = new StampacKarti(kupac, staniceUVoznji, logovaniKorisnik);
                     stampac.DokumentZaPrintanje.PrinterSettings = printDialog.PrinterSettings;
                     stampac.Stampaj();
                 }
                 updateujBrojSlobodnihSjedista();
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message);
             }
         }
     }
 }
Esempio n. 12
0
        public bool linijeSadrzeStanicu(DAL.Entiteti.Stanica s)
        {
            foreach (DAL.Entiteti.Linija l in linije)
            {
                foreach (DAL.Entiteti.Stanica sl in l.Stanice)
                {
                    if (sl.SifraStanice == s.SifraStanice)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Esempio n. 13
0
 private bool ispunjavaUslove(DAL.Entiteti.KupacKarte kupac)
 {
     if (!(tbImeIPrez.Text == "") && !(tbImeIPrez.Text == kupac.Ime))
     {
         return(false);
     }
     if (cbLinije.SelectedIndex > -1)
     {
         DAL.Entiteti.Linija linija = cbLinije.SelectedItem as DAL.Entiteti.Linija;
         bool valja = false;
         foreach (DAL.Entiteti.Voznja voznja in linija.Voznje)
         {
             if (voznja.SifraVoznje == kupac.Voznja.SifraVoznje)
             {
                 valja = true;
             }
         }
         if (!valja)
         {
             return(false);
         }
     }
     if (cbVoznje.SelectedIndex > -1)
     {
         DAL.Entiteti.Voznja voznja = cbVoznje.SelectedItem as DAL.Entiteti.Voznja;
         if (voznja.SifraVoznje != kupac.Voznja.SifraVoznje)
         {
             return(false);
         }
     }
     if (cbPocStan.SelectedIndex > -1)
     {
         DAL.Entiteti.Stanica stanica = cbPocStan.SelectedItem as DAL.Entiteti.Stanica;
         if (stanica.SifraStanice != kupac.PocetnaStanica.SifraStanice)
         {
             return(false);
         }
     }
     if (cbKrajStan.SelectedIndex > -1)
     {
         DAL.Entiteti.Stanica stanica = cbKrajStan.SelectedItem as DAL.Entiteti.Stanica;
         if (stanica.SifraStanice != kupac.KrajnjaStanica.SifraStanice)
         {
             return(false);
         }
     }
     return(true);
 }
Esempio n. 14
0
        public Entiteti.Put vratiNajjeftinijiPut(DAL.Entiteti.Stanica pocetnaStanica, DAL.Entiteti.Stanica krajnjaStanica)
        {
            long velicina = ks.dajMaksimalnuSifru();

            velicina++;
            List <edge>[] v = new List <edge> [velicina];
            for (int i = 0; i < velicina; i++)
            {
                v[i] = new List <edge>();
            }

            napraviGraf(ref v, velicina);

            DesktopAplikacija.Entiteti.Put put = dijkstra(v, pocetnaStanica, krajnjaStanica, velicina);

            return(put);
        }
Esempio n. 15
0
        private void btnDodajStanicu_Click(object sender, EventArgs e)
        {
            int mjestoDodavanja = mjestoDodavanjaStanice();

            DAL.Entiteti.Stanica s = ks.Stanice[cbStanice.SelectedIndex];


            stanice.Insert(mjestoDodavanja, s);
            moguceStanice.RemoveAt(cbStanice.SelectedIndex);
            dgvStanice.Rows.Insert(mjestoDodavanja, 1);
            dgvStanice.Rows[mjestoDodavanja].Cells[0].Value = s.SifraStanice;
            dgvStanice.Rows[mjestoDodavanja].Cells[1].Value = s.Naziv;
            dgvStanice.Rows[mjestoDodavanja].Tag            = s;
            popuniComboBoxStanicama();
            popuniRedneBrojeve();
            rbKraj.Checked = true;

            dgvStanice.Rows[0].ReadOnly = true;
            dgvStanice.Rows[dgvStanice.RowCount - 1].Cells[3].ReadOnly = true;
            dgvStanice.Rows[dgvStanice.RowCount - 1].Cells[3].Style    = crveno;

            if (dgvStanice.RowCount > 1)
            {
                dgvStanice.Rows[1].ReadOnly = false;
                dgvStanice.Rows[dgvStanice.RowCount - 2].Cells[3].ReadOnly = false;
                dgvStanice.Rows[dgvStanice.RowCount - 2].Cells[3].Style    = obicno;
            }

            dgvStanice.Rows[dgvStanice.RowCount - 1].Cells[3].Value = dgvStanice.Rows[dgvStanice.RowCount - 1].Cells[2].Value;

            dgvStanice.Rows[0].Cells[2].Value = 0;
            dgvStanice.Rows[0].Cells[3].Value = 0;

            if (stanice.Count > 1)
            {
                btnUnosCijena.Enabled = true;
                btnRasporedi.Enabled  = true;
            }
        }
        public void dodajKupca(string imeKupca, long sifraLinije, long sifraVoznje, long sifraPocetneStanice, long sifraKrajnjeStanice, List <int> sjedista, string kod)
        {
            DAL.DAL d = DAL.DAL.Instanca;
            d.kreirajKonekciju();
            DAL.Entiteti.Linija  odabranaLinija = d.getDAO.getLinijaDAO().getById(sifraLinije);
            DAL.Entiteti.Voznja  odabranaVoznja = d.getDAO.getVoznjaDAO().getById(sifraVoznje);
            DAL.Entiteti.Stanica prvaStanica    = d.getDAO.getStaniceDAO().getById(sifraPocetneStanice);
            DAL.Entiteti.Stanica drugaStanica   = d.getDAO.getStaniceDAO().getById(sifraKrajnjeStanice);

            double        cijenaKarte = odabranaLinija.vratiCijenu(prvaStanica, drugaStanica);
            List <double> cijene      = new List <double>();

            for (int i = 0; i < sjedista.Count; i++)
            {
                cijene.Add(cijenaKarte);
            }

            DAL.Entiteti.KupacKarte kupac = new DAL.Entiteti.KupacKarte(imeKupca, prvaStanica, drugaStanica, odabranaVoznja, sjedista, cijene, DateTime.Now);
            long sifraKupca = d.getDAO.getKupacKarteDAO().create(kupac);

            d.getDAO.getSifraZaInternetKupovinuDAO().create(new DAL.Entiteti.SifraZaInternetKupovinu(sifraKupca, kod));
        }
Esempio n. 17
0
 public void updateStanice(DAL.Entiteti.Stanica s)
 {
     sd.update(s);
 }
Esempio n. 18
0
        private static DesktopAplikacija.Entiteti.Put dijkstra(List <edge>[] v, DAL.Entiteti.Stanica pocetak, DAL.Entiteti.Stanica kraj, long velicina)
        {
            string s = string.Format("");

            bool[] visited = new bool[velicina];
            edge[] dd      = new edge[velicina];
            for (int i = 0; i < velicina; i++)
            {
                visited[i] = false;
                dd[i]      = new edge(-1, 0, 0);
            }

            SortedSet <edge> ss = new SortedSet <edge>();

            for (int i = 0; i < v[pocetak.SifraStanice].Count; i++)
            {
                ss.Add(new edge(v[pocetak.SifraStanice][i].c, v[pocetak.SifraStanice][i].v, pocetak.SifraStanice));
            }

            dd[pocetak.SifraStanice].v    = pocetak.SifraStanice;
            visited[pocetak.SifraStanice] = true;
            dd[pocetak.SifraStanice].c    = 0;
            edge tmp;

            while (ss.Count > 0)
            {
                tmp = ss.Min;
                ss.Remove(ss.Min);
                if (visited[tmp.v])
                {
                    continue;
                }

                dd[tmp.v].c    = tmp.c;
                visited[tmp.v] = true;
                dd[tmp.v].v    = tmp.parent;

                for (int i = 0; i < v[tmp.v].Count; i++)
                {
                    ss.Add(new edge(dd[tmp.v].c + v[tmp.v][i].c, v[tmp.v][i].v, tmp.v));
                }
            }

            if (dd[kraj.SifraStanice].c == -1)
            {
                return(new Entiteti.Put(-1, "Ne postoji put izmedju trazenih stanica!"));
            }

            long        tmp2 = kraj.SifraStanice;
            List <long> put  = new List <long>();

            put.Add(tmp2);
            while (tmp2 != pocetak.SifraStanice)
            {
                put.Add(dd[tmp2].v);
                tmp2 = dd[tmp2].v;
            }
            double tmpCijena;

            DAL.Entiteti.Stanica stanica1, stanica2;
            for (int i = put.Count - 1; i > 0; i--)
            {
                tmpCijena = 0;
                stanica1  = ks.getById(put[i]);
                stanica2  = ks.getById(put[i - 1]);
                foreach (edge ee in v[put[i]])
                {
                    if (ee.v == put[i - 1])
                    {
                        tmpCijena = ee.c;
                        break;
                    }
                }
                s += stanica1.Naziv + ", " + stanica1.Mjesto + " - " + stanica2.Naziv + ", " + stanica2.Mjesto + ": " + tmpCijena.ToString() + "KM\n";
            }

            return(new Entiteti.Put(dd[kraj.SifraStanice].c, s));
        }
Esempio n. 19
0
        private DesktopAplikacija.Entiteti.Put dijkstra(List <edge>[] v, DAL.Entiteti.Stanica pocetak, DAL.Entiteti.Stanica kraj, long velicina)
        {
            string s = string.Format("");

            bool[] visited = new bool[velicina];
            edge[] dd      = new edge[velicina];
            for (int i = 0; i < velicina; i++)
            {
                visited[i] = false;
                dd[i]      = new edge();
            }

            SortedSet <edge> ss = new SortedSet <edge>();

            for (int i = 0; i < v[pocetak.SifraStanice].Count; i++)
            {
                ss.Add(new edge(v[pocetak.SifraStanice][i].c, v[pocetak.SifraStanice][i].v, pocetak.SifraStanice));
            }

            dd[pocetak.SifraStanice].v    = pocetak.SifraStanice;
            visited[pocetak.SifraStanice] = true;
            dd[pocetak.SifraStanice].c    = 0;
            edge tmp;

            while (ss.Count > 0)
            {
                tmp = ss.Min;
                ss.Remove(ss.Min);
                if (visited[tmp.v])
                {
                    continue;
                }

                dd[tmp.v].c    = tmp.c;
                visited[tmp.v] = true;
                dd[tmp.v].v    = tmp.parent;

                for (int i = 0; i < v[tmp.v].Count; i++)
                {
                    ss.Add(new edge(dd[tmp.v].c + v[tmp.v][i].c, v[tmp.v][i].v, tmp.v));
                }
            }
            long        tmp2 = kraj.SifraStanice;
            List <long> put  = new List <long>();

            put.Add(tmp2);
            while (tmp2 != pocetak.SifraStanice)
            {
                put.Add(dd[tmp2].v);
                tmp2 = dd[tmp2].v;
            }

            DAL.Entiteti.Stanica stanica1, stanica2;
            for (int i = put.Count - 1; i > 0; i--)
            {
                stanica1 = ks.getById(put[i]);
                stanica2 = ks.getById(put[i - 1]);
                s       += stanica1.Naziv + ", " + stanica1.Mjesto + " - " + stanica2.Naziv + ", " + stanica2.Mjesto + "\n";
            }

            return(new Entiteti.Put(dd[kraj.SifraStanice].c, s));
        }
Esempio n. 20
0
 public long kreirajStanicu(DAL.Entiteti.Stanica s)
 {
     s.SifraStanice = sd.create(s);
     stanice.Add(s);
     return(s.SifraStanice);
 }