예제 #1
0
        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;
        }
예제 #2
0
        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);
        }
예제 #3
0
        //-----------------------------------------------------------------------------------------
        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);
        }
예제 #4
0
        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();
        }
예제 #5
0
        //-----------------------------------------------------------------------------------------
        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();
            }
        }