private void PopuniVoce() { List <Voce> voceLista = new List <Voce>(); string connectionString = Pomocna.ConStr; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlCommand command = connection.CreateCommand()) { command.CommandText = $"SELECT ID, naziv, cena_i_klase, cena_ii_klase, cena_iii_klase FROM voce WHERE otkupno_mesto_ID = {Id}"; using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { int id = (int)reader.GetValue(0); string naziv = (string)reader.GetValue(1); decimal cenaIKlase = (decimal)reader.GetValue(2); decimal cenaIIKlase = (decimal)reader.GetValue(3); decimal cenaIIIKlase = (decimal)reader.GetValue(4); Voce voce = new Voce(naziv, this, cenaIKlase, cenaIIKlase, cenaIIIKlase) { Id = id }; voceLista.Add(voce); } } } } VoceLista = voceLista; }
public static void Populate() { List <Otkup> otkupLista = new List <Otkup>(); string connectionString = Pomocna.ConStr; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlCommand command = connection.CreateCommand()) { command.CommandText = $"SELECT jedinstveni_broj_dokumenta, kolicina_i_klase, kolicina_ii_klase, kolicina_iii_klase, ambalaze_uzeto, ambalaze_vraceno, ID, otkupno_mesto_ID FROM otkup INNER JOIN voce ON voce_ID = voce.ID"; using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { int jedinstveniBrojDokumenta = (int)reader.GetValue(0); decimal kolicinaIKlase = (decimal)reader.GetValue(1); decimal kolicinaIIKlase = (decimal)reader.GetValue(2); decimal kolicinaIIIKlase = (decimal)reader.GetValue(3); double ambalazeUzeto = (double)reader.GetValue(4); double ambalazeVraceno = (double)reader.GetValue(5); int voceId = (int)reader.GetValue(6); int otkupnoMestoId = (int)reader.GetValue(7); Voce voce = OtkupnoMesto.OtkupnaMesta.Find(o => o.Id == otkupnoMestoId).VoceLista.Find(v => v.Id == voceId); Otkup otkup = new Otkup(jedinstveniBrojDokumenta, voce, kolicinaIKlase, kolicinaIIKlase, kolicinaIIIKlase, ambalazeUzeto, ambalazeVraceno); otkupLista.Add(otkup); } } } } OtkupLista = otkupLista; }
public static Otkup VrsiOtkup(Proizvodjac proizvodjac, Voce voce, decimal kolicinaIKlase, decimal kolicinaIIKlase, decimal kolicinaIIIKlase, int jedinstveniBrojDokumenta, double ambalazeUzeto, double ambalazeVraceno) { Otkup duplikat = OtkupLista.Find(o => o.JedinstveniBrojDokumenta == jedinstveniBrojDokumenta); if (!(duplikat is null)) { throw new KorisnickiException("Takav broj dokumenta vec postoji"); } if (!voce.OtkupnoMesto.Proizvodjaci.Contains(proizvodjac)) { throw new KorisnickiException("Izabrani proizvodjac ne pripada odgovarajucem otkupnom mestu."); } decimal cena = 0; cena += kolicinaIKlase * voce.CenaIKlase; cena += kolicinaIIKlase * voce.CenaIIKlase; cena += kolicinaIIIKlase * voce.CenaIIIKlase; Otkup otkup = new Otkup(jedinstveniBrojDokumenta, voce, kolicinaIKlase, kolicinaIIKlase, kolicinaIIIKlase, ambalazeUzeto, ambalazeVraceno); proizvodjac.AmbalazeZaduzeno -= ambalazeVraceno; proizvodjac.UnosZaduzenjaAmbalaze(ambalazeUzeto); proizvodjac.Saldo -= cena; proizvodjac.AzurirajSaldo(); otkup.Insert(); OtkupLista.Add(otkup); Pomocna.Loguj($"Otkup br. {jedinstveniBrojDokumenta}."); return(otkup); }
public Otkup(int jedinstveniBroj, Voce voce, decimal kolicinaIKlase, decimal kolicinaIIKlase, decimal kolicinaIIIKlase, double ambalazeUzeto, double ambalazeVraceno) { JedinstveniBrojDokumenta = jedinstveniBroj; Voce = voce; KolicinaIKlase = kolicinaIKlase; KolicinaIIKlase = kolicinaIIKlase; KolicinaIIIKlase = kolicinaIIIKlase; AmbalazeUzeto = ambalazeUzeto; AmbalazeVraceno = ambalazeVraceno; }
//----------------------------------------------------------------------------------------- static Voce CitajVoce(OtkupnoMesto otkupnoMesto) { WriteLine("Izaberi voce."); for (int i = 0; i < otkupnoMesto.VoceLista.Count; i++) { WriteLine($"{i + 1}) {otkupnoMesto.VoceLista[i].Naziv}"); } CitajBroj(out int izbor); if (izbor < 0 || izbor > otkupnoMesto.VoceLista.Count) { throw new KorisnickiException("Neispravan unos."); } Voce voce = otkupnoMesto.VoceLista[izbor - 1]; return(voce); }
public void UnosVoca(string naziv, decimal cenaIKlase, decimal cenaIIKlase, decimal cenaIIIKlase) { Voce postojece = VoceLista.Find(v => v.Naziv == naziv); if (postojece is null) { Voce voce = new Voce(naziv, this, cenaIKlase, cenaIIKlase, cenaIIIKlase); voce.Insert(); VoceLista.Add(voce); } else { postojece.CenaIKlase = cenaIKlase; postojece.CenaIIKlase = cenaIIKlase; postojece.CenaIIIKlase = cenaIIIKlase; postojece.Update(); } Pomocna.Loguj($"Unos voca: {naziv} za {Ime}."); }
//----------------------------------------------------------------------------------------- static void UnosOtkupa() { OtkupnoMesto otkupnoMesto = CitajOtkupnoMesto(); Proizvodjac proizvodjac = CitajProizvodjaca(otkupnoMesto); Voce voce = CitajVoce(otkupnoMesto); WriteLine("Unesi kolicinu I klase."); CitajBroj(out decimal kolicinaI); WriteLine("Unesi kolicinu II klase."); CitajBroj(out decimal kolicinaII); WriteLine("Unesi kolicinu III klase."); CitajBroj(out decimal kolicinaIII); WriteLine("Unesi koliko ambalaze se zaduzuje."); CitajBroj(out double ambZaduzeno); WriteLine("Unesi koliko ambalaze je vraceno."); CitajBroj(out double ambVraceno); WriteLine("Unesi jedinstveni broj dokumenta."); CitajBroj(out int jedinstvBrDok); Otkup.VrsiOtkup(proizvodjac, voce, kolicinaI, kolicinaII, kolicinaIII, jedinstvBrDok, ambZaduzeno, ambVraceno); }