//------------------------ Ürün Çıkarma İşlemler --------------------------------------------------

        public ActionResult stokCikar(int urunStokID)
        {
            try
            {
                UrunStok us = db.UrunStok.Where(x => x.ID == urunStokID).SingleOrDefault();

                if (us.Aktif == false)
                {
                    ViewBag.hata = "Bu Seri Numaralı ürün için stok bulunmamaktadır.";
                    return(RedirectToAction("Listesi"));
                }
                if (us == null)
                {
                    return(RedirectToAction("Hata", "Admin"));
                }

                var urunSepet = (App_Classes.UrunCikisSepet)Session["Urun"];
                if (urunSepet == null)
                {
                    urunSepet       = new App_Classes.UrunCikisSepet();
                    Session["Urun"] = urunSepet;
                }
                urunSepet.ListeyeEkle(us);
                TempData["GenelMesaj"] = "Ürün sepete eklenmiştir.";
                return(RedirectToAction("Listesi"));
            }
            catch (Exception)
            {
                return(Redirect("/Admin/Hata"));
            }
        }
        public ActionResult Garanti(ArizaDurum g, int UrunID)
        {
            Urun u = db.Urun.Where(x => x.ID == UrunID).FirstOrDefault();

            if (u == null)
            {
                return(RedirectToAction("Hata", "Admin"));
            }
            int      id = Convert.ToInt32(g.stkID);
            UrunStok ug = db.UrunStok.Where(x => x.ID == id).SingleOrDefault();

            if (ug == null)
            {
                return(RedirectToAction("Hata", "Admin"));
            }
            if (ug.Aktif == false)
            {
                return(RedirectToAction("Hata", "Admin"));
            }

            ug.Aktif = false;
            db.SaveChanges();
            g.GarantiVerenKisiID = ((Personel)Session["Kullanici"]).ID;
            g.Aktif = true;
            db.ArizaDurum.Add(g);
            db.SaveChanges();
            TempData["GenelMesaj"] = ug.UrunSeriNo + "Seri Numaralı Stok için arıza kaydı işlemi başarılı bir şekilde gerçekleştirilmiştir.";
            return(Redirect("/Urun/Garanti/" + UrunID));
        }
        public void ListeyeEkle(UrunStok urun)
        {
            UrunStok kontrol = urunler.Where(x => x.ID == urun.ID).SingleOrDefault();

            if (kontrol == null)
            {
                urunler.Add(urun);
            }
        }
        public ActionResult stokEkle(UrunGiris veri, string UrunSeriNo, int UrunID)
        {
            try
            {
                Urun urun = db.Urun.FirstOrDefault(x => x.ID == UrunID);
                if (UrunSeriNo != null)
                {
                    string[] Seriparts = UrunSeriNo.Split('^');
                    for (int i = 0; i < Seriparts.Length; i++)
                    {
                        string s = Seriparts[i].ToString();
                        if (s == "")
                        {
                            continue;
                        }
                        UrunStok st = new UrunStok
                        {
                            Aktif      = true,
                            UrunID     = urun.ID,
                            UrunSeriNo = s
                        };

                        db.UrunStok.Add(st); // stok Girildi;
                        db.SaveChanges();

                        UrunStok girilenStok = db.UrunStok.Where(x => x.UrunSeriNo == s).SingleOrDefault();

                        UrunGiris ug = new UrunGiris
                        {
                            StokID      = girilenStok.ID,
                            AlanPerID   = urun.PersonelID,
                            TedarikciID = urun.TedarikciID,
                            Aciklama    = urun.Aciklama,
                            GirisTarihi = DateTime.Now
                        };

                        db.UrunGiris.Add(ug);
                        db.SaveChanges();
                    }
                }
                TempData["GenelMesaj"] = "Stok ekleme işlemi başarılı bir şekilde tamamlanmıştır.";
                return(RedirectToAction("Listesi", "Urun"));
            }
            catch (Exception)
            {
                return(Redirect("/Admin/Hata"));
            }
        }
        public ActionResult stokCikarView(Models.UrunCikis uc)
        {
            try
            {
                int Lastid = 0;
                if (db.UrunCikis.Count() != 0)
                {
                    Lastid = db.UrunCikis.Max(x => x.ID);
                }
                int CikisNumarasi = 1000 + DateTime.Now.Year + (Lastid + 1);
                var urunler       = (App_Classes.UrunCikisSepet)Session["Urun"];

                List <UrunStok> liste = urunler.HepsiniGetir();
                List <UrunStok> temp  = new List <UrunStok>();
                foreach (UrunStok item in liste)
                {
                    if (temp.Where(x => x.ID == item.ID).SingleOrDefault() != null)
                    {
                        continue;
                    }

                    UrunStok stokDus = db.UrunStok.Where(x => x.ID == item.ID).FirstOrDefault();
                    if (stokDus.Aktif == false)
                    {
                        ViewBag.hatali = "Çıkarılacak ürünler arasında stok miktarı 0 olan ürünler bulanmaktadır.";
                        return(View());
                    }
                    stokDus.Aktif = false;
                    db.SaveChanges();
                    uc.StokID        = item.ID;
                    uc.CikisNumarasi = CikisNumarasi;
                    db.UrunCikis.Add(uc);
                    db.SaveChanges();
                    temp.Add(item);
                }
                urunler.ListeTemizle();
                Session.Remove("Urun");
                TempData["basariid"] = CikisNumarasi;
                return(RedirectToAction("CikisBasarili"));
            }
            catch (Exception)
            {
                return(Redirect("/Admin/Hata"));
            }
        }
        public ActionResult SepetSil(int id)
        {
            var      urunler = (App_Classes.UrunCikisSepet)Session["Urun"];
            UrunStok b       = db.UrunStok.Where(x => x.ID == id).SingleOrDefault();

            if (b == null)
            {
                RedirectToAction("Hata", "Admin");
            }
            urunler.ListedenCikart(b);
            if (urunler.HepsiniGetir().Count == 0)
            {
                urunler.ListeTemizle();
                Session.Remove("Urun");
                return(RedirectToAction("Listesi"));
            }
            return(RedirectToAction("stokCikarView"));
        }
 public void ListedenCikart(UrunStok urun)
 {
     urunler.RemoveAll(x => x.ID == urun.ID);
 }
        public ActionResult Ekle(Urun u, string UrunSeriNo)
        {
            try
            {
                //--------------- Ürün Ekle
                int Lastid = 0;
                if (db.Urun.ToList().Count != 0)
                {
                    Lastid = db.Urun.Max(x => x.ID);
                }
                string urunKodu = "BISTK" + DateTime.Now.Year.ToString() + u.altKategoriID.ToString() + (Lastid + 1).ToString();
                u.UrunKodu      = urunKodu;
                u.EklenmeTarihi = DateTime.Now;
                u.Aktif         = true;
                db.Urun.Add(u);
                db.SaveChanges();

                // ------------ Ürün Stok Ekle
                Urun ku = db.Urun.Where(x => x.UrunKodu == urunKodu).SingleOrDefault();
                if (UrunSeriNo != null)
                {
                    string[] Seriparts = UrunSeriNo.Split('^');
                    for (int i = 0; i < Seriparts.Length; i++)
                    {
                        string s = Seriparts[i].ToString();
                        if (s == "")
                        {
                            continue;
                        }
                        UrunStok st = new UrunStok
                        {
                            Aktif      = true,
                            UrunID     = ku.ID,
                            UrunSeriNo = s
                        };

                        db.UrunStok.Add(st); // stok Girildi;
                        db.SaveChanges();

                        UrunStok girilenStok = db.UrunStok.Where(x => x.UrunSeriNo == s).SingleOrDefault();

                        UrunGiris ug = new UrunGiris
                        {
                            StokID      = girilenStok.ID,
                            AlanPerID   = u.PersonelID,
                            TedarikciID = u.TedarikciID,
                            Aciklama    = u.Aciklama,
                            GirisTarihi = DateTime.Now
                        };

                        db.UrunGiris.Add(ug);
                        db.SaveChanges();
                    }
                }
                TempData["GenelMesaj"] = "Ürün ekleme işlemi başarılı bir şekilde tamamlanmıştır.";
                return(RedirectToAction("Listesi"));
            }
            catch (Exception)
            {
                return(Redirect("/Admin/Hata"));
            }
        }