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); }
//----------------------------------------------------------------------------------------- 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); }
public static void Populate() { List <OtkupnoMesto> otkupnaMesta = new List <OtkupnoMesto>(); string connectionString = Pomocna.ConStr; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlCommand command = connection.CreateCommand()) { command.CommandText = "SELECT ID, ime, otkupljivac_ID FROM otkupno_mesto"; using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { int id = (int)reader.GetValue(0); string ime = (string)reader.GetValue(1); int? otkupljivacId = null; if (!reader.IsDBNull(2)) { otkupljivacId = (int?)reader.GetValue(2); } OtkupnoMesto otkupnoMesto = new OtkupnoMesto(ime) { Id = id }; otkupnoMesto.PopuniProizvodjace(otkupljivacId); otkupnoMesto.PopuniVoce(); otkupnaMesta.Add(otkupnoMesto); } } } } OtkupnaMesta = otkupnaMesta; Otkup.Populate(); }
//----------------------------------------------------------------------------------------- static void OdabirAkcije() { try { while (true) { WriteLine("Izaberite akciju:"); WriteLine("0) Izlaz iz programa"); WriteLine("1) Unos otkupnog mesta"); WriteLine("2) Unos proizvodjaca"); WriteLine("3) Postavi otkupljivaca"); WriteLine("4) Unos voca"); WriteLine("5) Unos zaduzenja ambalaze"); WriteLine("6) Unos otkupa"); WriteLine("7) Pregled otkupa"); WriteLine("8) Pregled salda"); string izbor = ReadLine(); izbor = izbor.ToLower(); switch (izbor) { case "0": case "izlaz": return; case "1": case "unos otkupnog mesta": WriteLine("Ime otkupnog mesta?"); OtkupnoMesto.UnosOtkupnogMesta(ReadLine()); break; case "2": case "unos proizvodjaca": UnosProizvodjaca(); break; case "3": case "postavi otkupljivaca": PostaviOtkupljivaca(); break; case "4": case "unos voca": UnosVoca(); break; case "5": case "unos zaduzenja ambalaze": UnosZaduzenjaAmbalaze(); break; case "6": case "unos otkupa": UnosOtkupa(); break; case "7": case "pregled otkupa": WriteLine(Otkup.PregledOtkupa()); break; case "8": case "pregled salda": WriteLine(CitajOtkupnoMesto().PregledSalda()); break; default: WriteLine("Nepostojeca akcija."); break; } } } catch (KorisnickiException e) { WriteLine(e); OdabirAkcije(); } catch (SqlException) { WriteLine("Proveri ispravnost podataka i pokusaj ponovo."); OdabirAkcije(); } catch (DataException) { WriteLine("Proveri ispravnost podataka i pokusaj ponovo."); OdabirAkcije(); } }