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