示例#1
0
        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"));
        }