public ActionResult SatUye_kargo_islem(FormCollection col, int kargo_id) { ViewBag.ActiveMenu = "Kargolar"; ViewBag.ActiveSubMenu = "SatUyeKargolari"; projeEntities1 db = new projeEntities1(); try { int kargo_islem = Convert.ToInt32(col["kargo_islem"]); double komisyon = Convert.ToDouble(col["komisyon"]); var kargo = (from k in db.kargolar where k.tur == "Satıcı-Üye" && k.id == kargo_id select k).First(); var teklif = (from t in db.teklifler where t.urun_id == kargo.urun_id select t).First(); var satici = (from u in db.uyeler where u.id == kargo.urunler.uye_id select u).First(); if (kargo_islem == 1 && komisyon < teklif.teklif) { int satici_id = kargo.urunler.uye_id; var urun_adi = kargo.urunler.adi; double kazanc = teklif.teklif - komisyon; satici.bakiye += kazanc; db.SaveChanges(); db.teklifler.Remove(teklif); db.kargolar.Remove(kargo); db.SaveChanges(); var mesaj = new mesajlasmalar(); mesaj.uye_id = satici_id; mesaj.tarih = DateTime.Now; mesaj.mesaj = "<p> '" + urun_adi + "' isimli ürününüzün açık arttırmasından '" + komisyon + "' TL komisyon bedeli düşülerek '" + kazanc + "' TL kazandınız. Bu miktar bakiyenize eklenmiştir.</p>"; mesaj.durum = "Yeni"; mesaj.tur = "Alınan"; mesaj.mesaj_turu = "Satış Sonucu"; db.mesajlasmalar.Add(mesaj); db.SaveChanges(); } } catch { return(RedirectToAction("SatUyeKargolari", "Kargolar")); } return(RedirectToAction("SatUyeKargolari", "Kargolar")); }
public ActionResult Firma_teklif_islem(FormCollection col, int teklif_id) { projeEntities1 db = new projeEntities1(); var teklif = (from t in db.teklifler where t.id == teklif_id && (t.urunler.uyeler.yetki == "Admin" || t.urunler.uyeler.yetki == "Yönetici") select t).First(); int teklif_islem = Convert.ToInt32(col["teklif_islem"]); if (teklif_islem == 1) { // Üyelerin bakiyelerini geri yükle var group = (from gr in db.teklif_miktarlari where gr.urun_id == teklif.urun_id group gr by new { gr.uye_id } into g select new { g.Key.uye_id, Toplam = g.Sum(a => a.teklif_butonlari.miktar) }).ToList(); var uyeler = (from u in db.uyeler select u).ToList(); foreach (var uye in group) { foreach (var item in uyeler) { if (uye.uye_id == item.id) { item.bakiye += uye.Toplam; db.SaveChanges(); break; } } } // Teklif_miktarları tablosunu temizle db.teklif_miktarlari.RemoveRange(db.teklif_miktarlari.Where(c => c.urun_id == teklif.urun_id)); // Urunu resetle var urun = (from u in db.urunler where u.id == teklif.urun_id select u).First(); urun.baslangic_tarihi = null; urun.bitis_tarihi = null; urun.yayin_durumu = "Hayır"; // Urun teklif butonlarını sil db.urun_teklif_butonlari.RemoveRange(db.urun_teklif_butonlari.Where(c => c.urun_id == teklif.urun_id)); // Teklifler tablosunu temizle db.teklifler.RemoveRange(db.teklifler.Where(c => c.id == teklif.id)); db.SaveChanges(); } else if (teklif_islem == 2) { // Kaybeden Üyelerin bakiyelerini geri yükle ve mesaj gönder var group = (from gr in db.teklif_miktarlari where gr.urun_id == teklif.urun_id && gr.uye_id != teklif.uye_id group gr by new { gr.uye_id } into g select new { g.Key.uye_id, Toplam = g.Sum(a => a.teklif_butonlari.miktar) }).ToList(); var uyeler = (from u in db.uyeler where u.id != teklif.uye_id select u).ToList(); foreach (var uye in group) { foreach (var item in uyeler) { if (uye.uye_id == item.id) { item.bakiye += uye.Toplam; var mesaj = new mesajlasmalar(); mesaj.uye_id = uye.uye_id; mesaj.tarih = DateTime.Now; mesaj.mesaj = "<p> '" + teklif.urunler.adi + "' isimli ürünün açık arttırmasını kazanamadınız. Yaptığınız teklifler bakiyenize geri yüklenmiştir.</p>"; mesaj.durum = "Yeni"; mesaj.tur = "Alınan"; mesaj.mesaj_turu = "Açıkarttırma"; db.mesajlasmalar.Add(mesaj); db.SaveChanges(); break; } } } // Kazanan kişi adına kargo oluştur ve mesaj gönder var kargo = new kargolar(); kargo.tur = "Firma-Üye"; kargo.durum = "Kargolama İşlemi Bekleniyor"; kargo.tarih = DateTime.Now; kargo.urun_id = teklif.urun_id; kargo.uye_id = teklif.uye_id; db.kargolar.Add(kargo); var mesaj2 = new mesajlasmalar(); mesaj2.uye_id = teklif.uye_id; mesaj2.tarih = DateTime.Now; mesaj2.mesaj = "<p> '" + teklif.urunler.adi + "' isimli ürünün açık arttırmasını kazandınız. 'Alınan Kargolarım' sayfasından ürünü takip edebilirsiniz.</p>"; mesaj2.durum = "Yeni"; mesaj2.tur = "Alınan"; mesaj2.mesaj_turu = "Açıkarttırma"; db.mesajlasmalar.Add(mesaj2); db.SaveChanges(); // Teklif Miktarları tablosunu temizle db.teklif_miktarlari.RemoveRange(db.teklif_miktarlari.Where(c => c.urun_id == teklif.urun_id)); // Urunu pasif yap var urun = (from u in db.urunler where u.id == teklif.urun_id select u).First(); urun.durum = "Pasif"; // Urun teklif butonlarını sil db.urun_teklif_butonlari.RemoveRange(db.urun_teklif_butonlari.Where(c => c.urun_id == teklif.urun_id)); // Teklifler tablosu durumunu Onaylandı yap teklif.durum = "Onaylandı"; db.SaveChanges(); } return(RedirectToAction("FirmaTeklifler", "Teklifler")); }