/// <summary>
        /// dohvaćanje stanja s drugog projekta
        /// </summary>
        public void DohvacanjeStanjaInvesticija()
        {
            DohvacanjeAPI.GetData getData = new DohvacanjeAPI.GetData();
            getData.Dohvacanje();
            int idInv = 0;

            using (var db = new WalletEntities())
            {
                foreach (var item in getData.lista())
                {
                    foreach (var it in db.Investicija)
                    {
                        if (item.Simbol == it.naziv_investicije)
                        {
                            Investicija investicija = it;
                            db.Investicija.Attach(investicija);
                            idInv = investicija.id_investicije;
                            db.Entry(investicija).State = System.Data.Entity.EntityState.Detached;
                            Stanje_investicije stanje_Investicije = new Stanje_investicije
                            {
                                id_investicije         = idInv,
                                vrijednost_investicije = decimal.Parse(item.Vrijednost),
                                vrijeme_stanja         = DateTime.Parse(item.Datum)
                            };
                            db.Stanje_investicije.Add(stanje_Investicije);
                        }
                    }
                }
                db.SaveChanges();
            }
        }
        /// <summary>
        /// Ova metoda služi kako bi korisnik mogao kupiti investiciju
        /// </summary>
        private void KupiInvesticiju()
        {
            Bankovni_racun bankovni_Racun = null;

            bankovni_Racun = bankovniracunBindingSource.Current as Bankovni_racun;
            Investicija investicija = null;

            investicija = investicijaBindingSource.Current as Investicija;

            using (var db = new WalletEntities())
            {
                db.Korisnik.Attach(trenutniKorisnik);
                db.Investicija.Attach(investicija);
                db.Bankovni_racun.Attach(bankovni_Racun);
                int idPort       = 0;
                int idVrsteTrans = 0;
                //dobavlja vanjski kljuc id_portfolia
                foreach (var item in db.Investicijski_portfolio)
                {
                    Investicijski_portfolio investicijski = (from t in db.Investicijski_portfolio
                                                             where t.id_korisnik == trenutniKorisnik.id_korisnik
                                                             select t).First();
                    idPort = investicijski.id_portfolia;
                }
                //dobavlja vanjski kljuc  za kupi transakciju, vrstu transakcije
                if (rBtnKupi.Checked == true)
                {
                    foreach (var item in db.Vrsta_transakcije)
                    {
                        Vrsta_transakcije vrsta = (from t in db.Vrsta_transakcije
                                                   where t.id_vrsta_transakcije == 2
                                                   select t).First();
                        idVrsteTrans = 2;
                    }
                }
                lblKriviTipPodatakaIznos.Hide();
                lblKriviTipPodatakaKolicina.Hide();

                Transakcija_investicije transakcija_Investicije = new Transakcija_investicije
                {
                    Investicija = investicija,
                    vrijeme_transakcije_investicije = dtpDatum.Value,
                    kolicina_investicije            = decimal.Parse(txtKolicina.Text),
                    iznos_transakcije_investicije   = decimal.Parse(txtIznosTransInv.Text),
                    Bankovni_racun       = bankovni_Racun,
                    id_portfolia         = idPort,
                    id_vrsta_transakcije = idVrsteTrans,
                };

                //lblKriviTipPodatakaKolicina.Visible = false;
                decimal ukupniIznos = decimal.Parse(txtKolicina.Text) * decimal.Parse(txtIznosTransInv.Text);
                bankovni_Racun.stanje_racuna = bankovni_Racun.stanje_racuna - ukupniIznos;
                db.Transakcija_investicije.Add(transakcija_Investicije);
                db.SaveChanges();
                txtKolicina.Clear();
                txtIznosTransInv.Clear();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// metoda koja sluzi da se izračunaju ukupni iznosi rashoda za svaki dan
        /// </summary>
        public decimal DohvatiSveZapise()
        {
            //trebam:
            //vrstu transakcije, rashod
            //listu transakcija rashoda i podijelit po datumu


            listaBankovnihRacuna = new BindingList <Bankovni_racun>();
            listaBankovnihRacuna = radnjaNadBankovnimRacunima.PrikaziBankovneRacunePremaKorisniku(trenutniKorisnik);


            listaVrstaTransakcija = new BindingList <Vrsta_transakcije>();
            listaVrstaTransakcija = radnjaNadTransakcijom.DohvatiVrsteTransakcija();

            listaTransakcijaInvesticija = new BindingList <Transakcija_investicije>();
            listaTransakcijaInvesticija = radnjaNadTransakcijom.DohvatiSveTransakcijeInvesticija(listaBankovnihRacuna);
            listaTransakcija            = new BindingList <Transakcija>();
            listaTransakcija            = radnjaNadTransakcijom.DohvatiSveTransakcije(listaBankovnihRacuna);
            //dodaje sve transakcije i sve transakcije investicija u listu prikaza transakcija
            using (var db = new WalletEntities())
            {
                foreach (Transakcija transakcija in listaTransakcija)
                {
                    if (transakcija != null)
                    {
                        db.Transakcija.Attach(transakcija);

                        BindingList <Kategorije_transakcije> listaKategorijaTransakcijeListeTransakcija = new BindingList <Kategorije_transakcije>(transakcija.Kategorije_transakcije.ToList());
                        Kategorije_transakcije kategorije = null;
                        kategorije = listaKategorijaTransakcijeListeTransakcija[0];
                        db.Kategorije_transakcije.Attach(kategorije);

                        PrikazTransakcije noviPrikazTransakcije = new PrikazTransakcije(
                            transakcija,
                            transakcija.vrijeme_transakcije.Value,
                            transakcija.Bankovni_racun,
                            transakcija.iban,
                            transakcija.iznos_transakcije,
                            listaKategorijaTransakcijeListeTransakcija,
                            transakcija.opis_transakcije,
                            kategorije.id_kategorije_transakcije,
                            transakcija.lokacija_slike_racuna
                            );
                        db.Entry(transakcija).State = System.Data.Entity.EntityState.Detached;
                        db.Entry(kategorije).State  = System.Data.Entity.EntityState.Detached;
                        listaPrikazaTransacija.Add(noviPrikazTransakcije);
                    }
                }
                foreach (Transakcija_investicije transakcija in listaTransakcijaInvesticija)
                {
                    if (transakcija != null)
                    {
                        db.Transakcija_investicije.Attach(transakcija);
                        Investicija investicija = transakcija.Investicija;
                        db.Investicija.Attach(investicija);

                        PrikazTransakcije noviPrikazTransakcije = new PrikazTransakcije(
                            transakcija,
                            transakcija.vrijeme_transakcije_investicije.Value,
                            transakcija.Bankovni_racun,
                            transakcija.iban,
                            transakcija.iznos_transakcije_investicije.Value,
                            transakcija.kolicina_investicije,
                            investicija.naziv_investicije,
                            transakcija.id_vrsta_transakcije);
                        db.Entry(transakcija).State = System.Data.Entity.EntityState.Detached;
                        listaPrikazaTransacija.Add(noviPrikazTransakcije);
                    }
                }
                //lista svih investicija
            }
            BindingList <PrikazTransakcije> listaPrihoda = new BindingList <PrikazTransakcije>();
            BindingList <PrikazTransakcije> listaRashoda = new BindingList <PrikazTransakcije>();
            //djeli listu prikaza transakcije u listu rashoda i listu prihoda
            decimal ukupniIznosRashoda = 0;
            decimal ukupniIznosPrihoda = 0;

            foreach (var item in listaPrikazaTransacija)
            {
                if (item.VrstaTransakcije == 2)
                {
                    listaRashoda.Add(item);
                    foreach (var i in listaRashoda)
                    {
                        ukupniIznosRashoda = ukupniIznosRashoda + i.Iznos;

                        chartLinearRashodi.Series["Rashodi"].Points.AddXY(i.Vrijeme.Date, -(i.Iznos));
                    }
                }
                if (item.VrstaTransakcije == 1)
                {
                    listaPrihoda.Add(item);
                    foreach (var i in listaPrihoda)
                    {
                        ukupniIznosPrihoda = ukupniIznosPrihoda + i.Iznos;
                    }
                }
            }
            decimal ukupniIznosSvihTransackija = ukupniIznosPrihoda + ukupniIznosRashoda;

            //punjenje pie charta
            try
            {
                chartPrihodivRashodi.Series["PChart"].Points.AddXY("Rashodi", ukupniIznosRashoda / ukupniIznosSvihTransackija);
                chartPrihodivRashodi.Series["PChart"].Points.AddXY("Prihodi", ukupniIznosPrihoda / ukupniIznosSvihTransackija);
            }
            catch (Exception)
            {
                chartPrihodivRashodi.Hide();
            }

            lblRashodi.Text = ukupniIznosRashoda.ToString();
            lblPrihodi.Text = ukupniIznosPrihoda.ToString();
            lblRazlika.Text = (ukupniIznosPrihoda + ukupniIznosRashoda).ToString();

            return(ukupniIznosSvihTransackija);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Dohvaćanje svih korisnikovih bankovnih računa, transakcija, kategorija i transakcija investicije.
        /// Dohvaćaju se još i vrste transakcija.
        /// </summary>
        private void DohvatiSveKorisnikoveZapise()
        {
            //Dohvaćanje i prikazivanje svih korisnikovih bankovnih računa (uključujući vrstu računa).
            listaBankovnihRacuna = new BindingList <Bankovni_racun>();
            listaBankovnihRacuna = radnjaNadBankovnimRacunom.PrikaziBankovneRacunePremaKorisniku(trenutniKorisnik);
            listaVrstaRacuna     = new BindingList <Vrsta_racuna>();
            listaVrstaRacuna     = radnjaNadBankovnimRacunom.PrikaziVrsteBankovnihRacuna();

            //Dohvaćanje vrsta transakcija.
            listaVrstaTransakcije = new BindingList <Vrsta_transakcije>();
            listaVrstaTransakcije = radnjaNadTransakcijom.DohvatiVrsteTransakcija();

            //Dohvaćanje Transakcija i transakcija investicija.
            listaTransakcijaInvesticije = new BindingList <Transakcija_investicije>();
            listaTransakcijaInvesticije = radnjaNadTransakcijom.DohvatiSveTransakcijeInvesticija(listaBankovnihRacuna);
            listaTransakcija            = new BindingList <Transakcija>();
            listaTransakcija            = radnjaNadTransakcijom.DohvatiSveTransakcije(listaBankovnihRacuna);

            //Dohvaćanje svih korisnikovih kategorije
            OsvjeziKategorije();

            //Poruka greške.
            if (listaBankovnihRacuna == null)
            {
                MessageBox.Show("Ne postoje bankovni računi!");
                return;
            }
            else
            {
                btnOsvjeziTransakcije.Enabled = true;
            }


            //Vezemo sve bankovne racune, vrste racuna, vrste transakcija na binding source-ove
            bindingSourceBankovniRacuni.DataSource   = listaBankovnihRacuna;
            BindingSourceVrstaRacuna.DataSource      = listaVrstaRacuna;
            bindingSourceVrstaTransakcije.DataSource = listaVrstaTransakcije;

            using (var db = new WalletEntities())
            {
                //Sve transakcije spremamo u listu prikaza transakcije
                foreach (Transakcija transakcija in listaTransakcija)
                {
                    if (transakcija != null)
                    {
                        db.Transakcija.Attach(transakcija);

                        BindingList <Kategorije_transakcije> listaKategorijaTransakcijeListeTransakcija = new BindingList <Kategorije_transakcije>(transakcija.Kategorije_transakcije.ToList());
                        Kategorije_transakcije kategorija = null;
                        kategorija = listaKategorijaTransakcijeListeTransakcija[0];
                        db.Kategorije_transakcije.Attach(kategorija);

                        PrikazTransakcije noviPrikazTransakcije = new PrikazTransakcije(
                            transakcija,
                            transakcija.vrijeme_transakcije.Value,
                            transakcija.Bankovni_racun,
                            transakcija.iban,
                            transakcija.iznos_transakcije,
                            listaKategorijaTransakcijeListeTransakcija,
                            transakcija.opis_transakcije,
                            kategorija.id_vrsta_transakcije,
                            transakcija.lokacija_slike_racuna
                            );

                        db.Entry(transakcija).State = System.Data.Entity.EntityState.Detached;
                        db.Entry(kategorija).State  = System.Data.Entity.EntityState.Detached;
                        listaPrikazaTransakcija.Add(noviPrikazTransakcije);
                    }
                }
                //Sve transakcije investicije spremamo u listu prikaza transakcije
                foreach (Transakcija_investicije transakcija in listaTransakcijaInvesticije)
                {
                    if (transakcija != null)
                    {
                        db.Transakcija_investicije.Attach(transakcija);
                        Investicija investicija = transakcija.Investicija;
                        db.Investicija.Attach(investicija);

                        PrikazTransakcije noviPrikazTransakcije = new PrikazTransakcije(
                            transakcija,
                            transakcija.vrijeme_transakcije_investicije.Value,
                            transakcija.Bankovni_racun,
                            transakcija.iban,
                            transakcija.iznos_transakcije_investicije.Value,
                            transakcija.kolicina_investicije,
                            investicija.naziv_investicije,
                            transakcija.id_vrsta_transakcije
                            );
                        db.Entry(transakcija).State = System.Data.Entity.EntityState.Detached;
                        listaPrikazaTransakcija.Add(noviPrikazTransakcije);
                    }
                }
            }
            OsvjeziPrikazTransakcija();
        }
        /// <summary>
        /// metoda koja sluzi da se dohvate svi podaci potrebni za prikaz investicije (stanje naziv itd)
        /// </summary>
        private void DohvacanjePodatakaZaDGV()
        {
            UpravljanjeTransakcijom      upravljanjeTransakcijom      = new UpravljanjeTransakcijom();
            UpravljanjeBankovnimRacunima upravljanjeBankovnimRacunima = new UpravljanjeBankovnimRacunima();
            BindingList <Bankovni_racun> listaBankovnikRacuna         = upravljanjeBankovnimRacunima.PrikaziBankovneRacunePremaKorisniku(trenutniKorisnik);

            BindingList <Transakcija_investicije> listaSvihTransakcijaInvesticija = upravljanjeTransakcijom.DohvatiSveTransakcijeInvesticija(listaBankovnikRacuna);

            dgvVlastiteInvesticije.Rows.Clear();

            dgvVlastiteInvesticije.ColumnCount = 6;

            dgvVlastiteInvesticije.Columns[0].Name = "Naziv investicije";
            dgvVlastiteInvesticije.Columns[1].Name = "Vrijeme transakcije investicije";
            dgvVlastiteInvesticije.Columns[2].Name = "Naziv vrste investicije";
            dgvVlastiteInvesticije.Columns[3].Name = "Vrijednost investicije";
            dgvVlastiteInvesticije.Columns[4].Name = "Kolicina investicije";
            dgvVlastiteInvesticije.Columns[5].Name = "Ukupni iznos";

            string      naziv = "";
            DateTime?   vrijeme;
            string      nazivVrsteInvesticije = "";
            decimal?    vrijednost            = 0;
            decimal?    kolicina    = 0;
            Investicija investicija = null;

            using (var db = new WalletEntities())
            {
                foreach (Transakcija_investicije transakcijaInvesticije in listaSvihTransakcijaInvesticija)
                {
                    if (transakcijaInvesticije == null)
                    {
                        continue;
                    }
                    db.Transakcija_investicije.Attach(transakcijaInvesticije);

                    vrijednost = transakcijaInvesticije.iznos_transakcije_investicije;
                    kolicina   = transakcijaInvesticije.kolicina_investicije;
                    vrijeme    = transakcijaInvesticije.vrijeme_transakcije_investicije;

                    if (transakcijaInvesticije.id_vrsta_transakcije == 2)
                    {
                        vrijednost = 0 - vrijednost;
                    }

                    investicija = transakcijaInvesticije.Investicija;
                    db.Investicija.Attach(investicija);
                    naziv = investicija.naziv_investicije;

                    if (investicija.id_vrsta_investicije == 1)
                    {
                        nazivVrsteInvesticije = "Dionica";
                    }
                    if (investicija.id_vrsta_investicije == 2)
                    {
                        nazivVrsteInvesticije = "Kriptovaluta";
                    }

                    db.Entry(investicija).State            = System.Data.Entity.EntityState.Detached;
                    db.Entry(transakcijaInvesticije).State = System.Data.Entity.EntityState.Detached;

                    string[] row = new string[] { naziv, vrijeme.ToString(), nazivVrsteInvesticije, vrijednost.ToString(), kolicina.ToString(), (vrijednost * kolicina).ToString() };
                    dgvVlastiteInvesticije.Rows.Add(row);
                }
            }

            dgvVlastiteInvesticije.Columns[2].ValueType = typeof(DateTime);
            dgvVlastiteInvesticije.Sort(dgvVlastiteInvesticije.Columns["Vrijeme transakcije investicije"], ListSortDirection.Descending);
        }