Example #1
0
        private void btnProdajFinal_Click(object sender, RoutedEventArgs e)
        {
            if (ForceValidation() == true)
            {
                return;
            }
            if (Korpa.Count() != 0)
            {
                bool postojiJP = false;
                foreach (var item in Korpa)
                {
                    if (item.GetType() == typeof(JedinicaProdaje))
                    {
                        postojiJP = true;
                    }
                }

                if (postojiJP == false)
                {
                    ErrorMessagePrint("Ne mozete prodati samo dodatne usluge.", "Upozorenje");
                    return;
                }
            }
            else
            {
                ErrorMessagePrint("Korpa je prazna.", "Upozorenje");
                return;
            }
            switch (operacija)
            {
            case Operacija.DODAVANJE:
                prodajaNamestaja.BrRacuna = (new Random().Next(1, int.MaxValue)).ToString();
                var tempProdaja = ProdajaDAO.Create(prodajaNamestaja);
                foreach (var item in Korpa)
                {
                    if (item.GetType() == typeof(JedinicaProdaje))
                    {
                        var tempItem = (JedinicaProdaje)item;
                        foreach (Namestaj namestaj in Projekat.Instance.Namestaji)
                        {
                            if (namestaj.Id == tempItem.NamestajId)
                            {
                                NamestajDAO.Update(namestaj);
                                break;
                            }
                        }
                        tempItem.ProdajaId = tempProdaja.Id;
                        JedinicaProdajeDAO.Create(tempItem);
                    }
                    else
                    {
                        var tempItem = (ProdataDU)item;
                        tempItem.ProdajaId = tempProdaja.Id;
                        ProdataDodatnaUslugaDAO.Create(tempItem);
                    }
                }
                prodajaUspesna = true;
                this.Close();
                break;

            case Operacija.IZMENA:
                ProdajaDAO.Update(prodajaNamestaja);
                var listaJPZaBrisanje = JedinicaProdajeDAO.GetAllForId(prodajaNamestaja.Id);
                var listaDUZaBrisanje = ProdataDodatnaUslugaDAO.GetAllForId(prodajaNamestaja.Id);
                foreach (var item in Korpa)
                {
                    ////////////////
                    if (item.GetType() == typeof(JedinicaProdaje))
                    {
                        var  jpFromKorpa = (JedinicaProdaje)item;
                        bool postoji     = false;
                        foreach (var jpFromProdajaEdit in JedinicaProdajeDAO.GetAllForId(prodajaNamestaja.Id))
                        {
                            if (jpFromProdajaEdit.Id == jpFromKorpa.Id)
                            {
                                postoji = true;
                                listaJPZaBrisanje.ToList().ForEach(x => { if (x.Id == jpFromProdajaEdit.Id)
                                                                          {
                                                                              listaJPZaBrisanje.Remove(x);
                                                                          }
                                                                          return; });
                                //izbaci ga iz liste zato sto je vec postojao u prodaji. ALI PROVERI KOLICINU, ako je promenjena updejtuj namestaj.
                                if (jpFromKorpa.Kolicina != jpFromProdajaEdit.Kolicina)
                                {
                                    JedinicaProdajeDAO.Update(jpFromKorpa);
                                    NamestajDAO.Update(Namestaj.GetById(jpFromKorpa.NamestajId));
                                }
                                break;
                            }
                        }
                        if (postoji == false)
                        {
                            jpFromKorpa.ProdajaId = prodajaNamestaja.Id;
                            JedinicaProdajeDAO.Create(jpFromKorpa);
                            NamestajDAO.Update(Namestaj.GetById(jpFromKorpa.NamestajId));
                        }
                    }    ///////////
                    else
                    {
                        var  duFromKorpa = (ProdataDU)item;
                        bool postoji     = false;
                        foreach (ProdataDU duFromProdajaEdit in ProdataDodatnaUslugaDAO.GetAllForId(prodajaNamestaja.Id))
                        {
                            if (duFromProdajaEdit.Id == duFromKorpa.Id)
                            {
                                postoji = true;
                                listaDUZaBrisanje.ToList().ForEach(x => { if (x.Id == duFromProdajaEdit.Id)
                                                                          {
                                                                              listaDUZaBrisanje.Remove(x);
                                                                          }
                                                                          return; });
                                break;
                            }
                        }
                        if (postoji == false)
                        {
                            duFromKorpa.ProdajaId = prodajaNamestaja.Id;
                            ProdataDodatnaUslugaDAO.Create(duFromKorpa);
                        }
                    }
                }
                foreach (JedinicaProdaje jpZaObrisati in listaJPZaBrisanje)
                {
                    JedinicaProdajeDAO.Delete(jpZaObrisati);
                    var tempNamestaj = Namestaj.GetById(jpZaObrisati.NamestajId);
                    tempNamestaj.BrKomada += jpZaObrisati.Kolicina;
                    NamestajDAO.Update(tempNamestaj);
                }
                foreach (ProdataDU duZaObrisati in listaDUZaBrisanje)
                {
                    ProdataDodatnaUslugaDAO.Delete(duZaObrisati);
                }
                prodajaUspesna = true;
                this.Close();
                break;
            }
        }
Example #2
0
        private void Potvrdi_click(object sender, RoutedEventArgs e)
        {
            var listaStavki = ProdajaNamestaj.NadjiStavkuProdaje(prodaja.ListaProdajeNamestajaId);

            if (ForceValidation() == true)
            {
                return;
            }

            if (prodaja.ListaProdajeNamestaja.Count < 1)
            {
                MessageBox.Show("Morate kupiti barem jedan namestaj", "Upozorenje", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            else
            {
                switch (operacija)
                {
                case Operacija.DODAVANJE:
                    this.DialogResult  = true;
                    prodaja.ProdavacId = korisnik.Id;

                    ProdajaDAO.Create(prodaja);
                    foreach (var item in prodaja.ListaProdajeNamestaja)
                    {
                        item.ProdajaId = ProdajaDAO.GetLastId();
                        ProdajaNamestajDAO.Create(item);
                    }
                    foreach (var item in prodaja.ListaDodatnihUsluga)
                    {
                        item.ProdajaId = ProdajaDAO.GetLastId();
                        ProdajaDodatnaUslugaDAO.Create(item);
                    }
                    break;

                case Operacija.IZMENA:
                    this.DialogResult = true;
                    var listaProvera = ProdajaNamestajDAO.LoadByProdajaId(prodaja.Id);
                    foreach (var prodajaNamestaj in prodaja.ListaProdajeNamestaja.ToList())
                    {
                        bool postojiProdajaNamestaj = false;
                        foreach (var item in listaProvera.ToList())
                        {
                            if (item.Id == prodajaNamestaj.Id)
                            {
                                postojiProdajaNamestaj = true;
                                listaProvera.Remove(item);
                                break;
                            }
                            if (item.NamestajId == prodajaNamestaj.NamestajId)
                            {
                                if (item.Kolicina != prodajaNamestaj.Kolicina)
                                {
                                    ProdajaNamestajDAO.Update(item);
                                    break;
                                }
                            }
                        }
                        if (postojiProdajaNamestaj == false)
                        {
                            prodajaNamestaj.ProdajaId = prodaja.Id;
                            ProdajaNamestajDAO.Create(prodajaNamestaj);
                        }
                    }
                    foreach (var item in listaProvera.ToList())
                    {
                        ProdajaNamestajDAO.Delete(item, ProdajaNamestajDAO.TipBrisanja.ProdajaNamestaj, 0);
                    }
                    //Provera za Dodatnu uslugu
                    var listaProveraDU = ProdajaDodatnaUslugaDAO.LoadByProdajaId(prodaja.Id);
                    foreach (var prodajaDodatnaUsluga in prodaja.ListaDodatnihUsluga.ToList())
                    {
                        bool postojiProdajaDU = false;
                        foreach (var item in listaProveraDU.ToList())
                        {
                            if (item.Id == prodajaDodatnaUsluga.Id)
                            {
                                postojiProdajaDU = true;
                                listaProveraDU.Remove(item);
                                break;
                            }
                        }
                        if (postojiProdajaDU == false)
                        {
                            prodajaDodatnaUsluga.ProdajaId = prodaja.Id;
                            ProdajaDodatnaUslugaDAO.Create(prodajaDodatnaUsluga);
                        }
                    }
                    foreach (var item in listaProveraDU.ToList())
                    {
                        ProdajaDodatnaUslugaDAO.Delete(item, ProdajaDodatnaUslugaDAO.TipBrisanja.ProdajaDodatnaUsluga, 0);
                    }
                    ProdajaDAO.Update(prodaja);
                    break;
                }
            }
        }