Beispiel #1
0
        public void applyDiscount(string discountCode)
        {
            var accountOwner = User.Identity.Name;
            int customerId   = repo.Listele().Where(x => x.email == accountOwner).FirstOrDefault().userId;
            var discount     = repo.Bul(customerId).indirim.FirstOrDefault(i => i.indirimDurum == true && i.indirimKodu == discountCode && DateTime.Now < i.indirimBitis).indirimTutar;

            if (discount != null)
            {
                indirim _indirim = new indirim()
                {
                    indirimTutar = discount,
                    indirimKodu  = discountCode
                };
                Session["discount"] = _indirim;
            }
        }
Beispiel #2
0
        public ActionResult Checkout(user _user, bool?shipbox, string bilgi, string ad, string soyad, string sirket, string adres, string sehir, int?postakodu, string eposta, string telefon)
        {
            string  message         = "";
            bool    status          = false;
            bool    satisTamamlandi = false;
            siparis newOrder        = new siparis();

            // farklı adres seçilmişse(user başkası adına alışveriş yaparsa)
            if (shipbox == true)
            {
                Session["note"]      = bilgi;
                Session["ad"]        = ad;
                Session["soyad"]     = soyad;
                Session["adres"]     = adres;
                Session["sehir"]     = sehir;
                Session["sirket"]    = sirket;
                Session["telefon"]   = telefon;
                Session["postakodu"] = postakodu ?? 0;
                Session["isGuest"]   = true;

                if (string.IsNullOrEmpty(ad))
                {
                    message         = "isim alanı boş bıraktınız";
                    ViewBag.message = message;
                    return(View());
                }
                else
                {
                    newOrder.firstname = ad;
                }
                if (string.IsNullOrEmpty(soyad))
                {
                    message         = "Soyisim alanı boş bıraktınız";
                    ViewBag.message = message;
                    return(View());
                }
                else
                {
                    newOrder.lastname = soyad;
                }
                if (!string.IsNullOrEmpty(sirket))
                {
                    newOrder.company = sirket;
                }
                if (string.IsNullOrEmpty(adres))
                {
                    message         = "Adres alanı boş bıraktınız";
                    ViewBag.message = message;
                    return(View());
                }

                else
                {
                    newOrder.address = adres;
                }
                if (string.IsNullOrEmpty(sehir))
                {
                    message         = "Şehir alanı boş bıraktınız";
                    ViewBag.message = message;
                    return(View());
                }
                else
                {
                    newOrder.city = sehir;
                }
                if (postakodu != null)
                {
                    newOrder.postakodu = postakodu;
                }
                if (!string.IsNullOrEmpty(eposta))
                {
                    newOrder.email = eposta;
                }
                if (!string.IsNullOrEmpty(bilgi))
                {
                    newOrder.note = bilgi;
                }
                if (string.IsNullOrEmpty(telefon))
                {
                    message         = "Telefon alanı boş bıraktınız";
                    ViewBag.message = message;
                    return(View());
                }

                else
                {
                    newOrder.phone = telefon;
                }
                newOrder.farkliadres   = true;
                newOrder.siparisTarihi = DateTime.Now;
                newOrder.musteriNo     = _user.userId;
                // siparisi kaydet
                repoSiparis.Kaydet(newOrder);
            }
            // farklı adress seçilmemişse(normal user alışveriş yaparsa)
            else
            {
                Session.Remove("ad");
                Session.Remove("soyad");
                Session.Remove("adres");
                Session.Remove("sehir");
                Session.Remove("sirket");
                Session.Remove("telefon");
                Session.Remove("postakodu");
                Session.Remove("note");
                Session.Remove("isGuest");
                if (_user != null)
                {
                    if (string.IsNullOrEmpty(_user.firstname))
                    {
                        message         = "ad alanı boş bırakmayınız";
                        ViewBag.message = message;
                        return(View());
                    }

                    if (string.IsNullOrEmpty(_user.lastname))
                    {
                        message         = "soyad alanı boş bırakmayınız";
                        ViewBag.message = message;
                        return(View());
                    }
                    if (string.IsNullOrEmpty(_user.address))
                    {
                        message         = "adres alanı boş bırakmayınız";
                        ViewBag.message = message;
                        return(View());
                    }
                    if (string.IsNullOrEmpty(_user.phone))
                    {
                        message         = "Telefon alanı boş bırakmayınız";
                        ViewBag.message = message;
                        return(View());
                    }
                    if (string.IsNullOrEmpty(_user.city))
                    {
                        message         = "sehir alanı boş bırakmayınız";
                        ViewBag.message = message;
                        return(View());
                    }
                    newOrder.farkliadres   = false;
                    newOrder.siparisTarihi = DateTime.Now;
                    newOrder.user          = _user;

                    repoSiparis.Kaydet(newOrder);
                }
            }
            if (Session["card"] != null)
            {
                List <BasketItem> Basket         = (List <BasketItem>)Session["card"];
                siparisDetay      newOrderDetail = new siparisDetay();

                foreach (var item in Basket)
                {
                    newOrderDetail.miktar    = item.quantity;
                    newOrderDetail.siparisNo = newOrder.siparisNo;
                    newOrderDetail.urunNo    = item.product.urunNo;
                    repoSiparisDetay.Kaydet(newOrderDetail);
                }
                // 5 lira kargo üzreti

                var sepetTutari = Basket.Sum(x => x.quantity * x.product.fiyat) + 5m;
                if (Session["discount"] != null)
                {
                    indirim _indirim = (indirim)Session["discount"];
                    sepetTutari          -= (decimal)_indirim.indirimTutar;
                    newOrder.indirimtutar = _indirim.indirimTutar;
                    // indirim kullanıldığı için indirimi pasif et
                    indirim kullanilanIndirim = repoIndirim.Listele().FirstOrDefault(x => x.indirimKodu == _indirim.indirimKodu);

                    kullanilanIndirim.kullanıldiMi = true;
                    kullanilanIndirim.indirimDurum = false;
                    repoIndirim.Guncelle(kullanilanIndirim);
                }

                // indirim uygulansn yada uygulanmasın. siparişi güncelliyoruz.
                newOrder.siparistutar = sepetTutari;
                repoSiparis.Guncelle(newOrder);
                satisTamamlandi = true;
                status          = true;
                // hediye kupon oluştur
                if (Basket.Sum(x => x.quantity * x.product.fiyat) > 150)
                {
                    string couponCode = createCoupon();
                    string subject    = " Bookstore iİndirim Kuponu";
                    string body       = "Tebrikler! 150 TL alışveriş yaptığınız için % 5 indirim kuponu kazandınız." +
                                        "İndirim kuponunuzu kullanmak için son gün:" + DateTime.Now.AddDays(10);
                    indirim newCoupon = new indirim()
                    {
                        musteriNo        = _user.userId,
                        indirimDurum     = true,
                        indirimBaslangic = DateTime.Now,
                        indirimBitis     = DateTime.Now.AddDays(10),
                        indirimKodu      = couponCode,
                        aciklama         = "%5 Hediye kuponu",
                        indirimTutar     = Basket.Sum(x => x.quantity * x.product.fiyat) * 0.05m,
                        kullanıldiMi     = false
                    };
                    //kupon haketmişse kaydediliyor.
                    repoIndirim.Kaydet(newCoupon);
                    // kupon haketmişse mail gönderiliyor.
                    SendCouponMail(User.Identity.Name, couponCode, subject, body);
                }

                if (satisTamamlandi)
                {
                    // sepeti sil
                    Session.Remove("card");
                    //indirim sil
                    Session.Remove("discount");
                }

                // sipariş maili gönderiliyor.
                SendOrderInfo(repoUser.Listele().Where(x => x.email == User.Identity.Name).FirstOrDefault().email);
                message = " Sipariş işlemi tamamlandı. siparişiniz ile ilgili bilgi mailinize gönderilmiştir." +
                          "Bookstore hesabım sayfasında sipariş detaylarını görebilirisiniz.";
            }
            ViewBag.status  = status;
            ViewBag.message = message;
            return(View());
        }