/// <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(); } }
/// <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); }
/// <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); }