public FrmKategorijeTransakcijaDodaj(Korisnik korisnik, int vrsta_id, Kategorije_transakcije kategorija) { odabranaKategorija = kategorija; trenutniKorisnik = korisnik; this.idVrste = vrsta_id; InitializeComponent(); if (odabranaKategorija != null) { this.Text = "Wall@ | Uredi kategoriju"; lblNazivKategorije.Text = "Novi naziv kategorije:"; txtNazivKategorije.Text = odabranaKategorija.naziv_kategorije; txtNazivKategorije.SelectAll(); } }
private void btnDodajKategoriju_Click(object sender, EventArgs e) { bool postojeciNaziv = false; using (WalletEntities db = new WalletEntities()) { Kategorije_transakcije novaKategorija = null; if (odabranaKategorija == null) { foreach (var item in db.Kategorije_transakcije) { if (item.naziv_kategorije.ToUpper() == txtNazivKategorije.Text.ToUpper()) { postojeciNaziv = true; } } if (!postojeciNaziv) { novaKategorija = new Kategorije_transakcije { naziv_kategorije = txtNazivKategorije.Text, id_korisnik = trenutniKorisnik.id_korisnik, id_vrsta_transakcije = idVrste }; db.Kategorije_transakcije.Add(novaKategorija); } else { MessageBox.Show("Postoji kategorija sa navedenim nazivom!"); } } else { db.Kategorije_transakcije.Attach(odabranaKategorija); odabranaKategorija.naziv_kategorije = txtNazivKategorije.Text; } db.SaveChanges(); } Close(); }
private void btnUrediKategorijuPrihod_Click(object sender, EventArgs e) { if (chkKategorijePrihod.CheckedItems.Count != 1) { MessageBox.Show("Potrebno je označiti točno jednu kategoriju za uređivanje!"); } else if (chkKategorijePrihod.CheckedItems.Count == 1 && chkKategorijePrihod.CheckedItems[0].ToString() == "Ostali prihodi") { MessageBox.Show("Odabranu kategoriju nije moguće uređivati!"); } else { Kategorije_transakcije kategorija = null; using (WalletEntities db = new WalletEntities()) { foreach (var item in chkKategorijePrihod.CheckedItems) { kategorija = (from t in db.Kategorije_transakcije where t.naziv_kategorije == item.ToString() && t.id_vrsta_transakcije == 1 select t).First(); } } Dialog_forme.FrmKategorijeTransakcijaDodaj frmUrediKategoriju = new Dialog_forme.FrmKategorijeTransakcijaDodaj(trenutniKorisnik, 1, kategorija); frmUrediKategoriju.ShowDialog(); // iz nekog razloga podaci se updateaju jedino kad je ovo ovdje pozvano... bilo gdje izvan, identičan kod, kad ga se pozove ne prikaže novi naziv :( chkKategorijePrihod.Items.Clear(); using (var db = new WalletEntities()) { foreach (var item in db.Kategorije_transakcije.ToList()) { if (item.id_vrsta_transakcije == 1 && (item.id_korisnik == trenutniKorisnik.id_korisnik || item.Korisnik == null)) { chkKategorijePrihod.Items.Add(item.naziv_kategorije); } } } } }
/// <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(); }