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; } }
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()); }