public void RaporGetir(DateTime secilenGun) { KahveciContext db = new KahveciContext(); GunlukRaporViewModel rapor = new GunlukRaporViewModel(); try { rapor.ToplamSatisTutari = db.Siparisler .Where(x => DbFunctions.TruncateTime(x.Tarih).Value.Month == secilenGun.Month && DbFunctions.TruncateTime(x.Tarih).Value.Year == secilenGun.Year) .Sum(x => x.SiparistekiUrunler .Sum(y => y.Tutar)); rapor.ToplamSatilanUrunSayisi = db.Siparisler .Where(x => DbFunctions.TruncateTime(x.Tarih).Value.Month == secilenGun.Month && DbFunctions.TruncateTime(x.Tarih).Value.Year == secilenGun.Year) .Sum(x => x.SiparistekiUrunler .Sum(y => y.Miktar)); rapor.KullaniciBasiSatislar = (from sd in db.Siparisler join k in db.Kullanicilar on sd.KaydedenKullaniciId equals k.KullaniciID where DbFunctions.TruncateTime(sd.Tarih).Value.Month == secilenGun.Month && DbFunctions.TruncateTime(sd.Tarih).Value.Year == secilenGun.Year group sd by k.KullaniciAdi into yeni select new KullaniciSatisViewModel() { KullaniciAdi = yeni.Key, ToplamSatisTutari = yeni.Sum(x => x.SiparistekiUrunler.Sum(a => a.Tutar)) } ).ToList(); rapor.UrunBasiSatislar = (from sd in db.SiparisDetaylar where DbFunctions.TruncateTime(sd.Siparis.Tarih).Value.Month == secilenGun.Month && DbFunctions.TruncateTime(sd.Siparis.Tarih).Value.Year == secilenGun.Year group sd by sd.Urun.UrunID into yeni select new UrunBasiSatisViewModel() { UrunID = yeni.Key, UrunAdi = yeni.Max(x => x.Urun.UrunAdi), Adet = yeni.Sum(x => x.Miktar) } ).ToList(); } catch (Exception ex) { label3.Text = ex.Message; MessageBox.Show("Bu ayda kayıt yok."); } label6.Text = rapor.ToplamSatisTutari.ToString("C"); label7.Text = rapor.ToplamSatilanUrunSayisi.ToString(); dataGridView1.DataSource = null; dataGridView2.DataSource = null; dataGridView1.DataSource = rapor.KullaniciBasiSatislar; dataGridView2.DataSource = rapor.UrunBasiSatislar; }
//private void button1_Click(object sender, EventArgs e) //{ // //Günlük Toplam Satış Tutarı // List<SiparisDetay> kayitlar = db.SiparisDetaylari.Where(x => DbFunctions.TruncateTime(x.Siparis.Tarih) == dateTimePicker1.Value.Date).ToList(); // decimal tutar = kayitlar.Sum(a => a.Tutar); // label2.Text = tutar.ToString(); // //Toplam Satılan Ürün Sayısı // List<SiparisDetay> kayitlar1 = db.SiparisDetaylari.Where(x => DbFunctions.TruncateTime(x.Siparis.Tarih) == dateTimePicker1.Value.Date).ToList(); // int adet = kayitlar1.Sum(a => a.Miktar); // label3.Text = adet.ToString(); // //Kullanıcı Başı Satış Tutarı // ////Benim Yaptığım // //var kayitlar2 = db.SiparisDetaylari.Where(x => x.Siparis.KaydedenKullaniciID.ToString() == comboBox1.SelectedValue.ToString()).ToList(); // //decimal kisiseltoplam = kayitlar2.Sum(x => x.Tutar); // //label6.Text = kisiseltoplam.ToString(); // //Kullanıcı Başı Satış Tutarı // ////Benim Yaptığım // //var kayitlar3 = db.SiparisDetaylari.Where(x => x.Siparis.KaydedenKullaniciID.ToString() == comboBox1.SelectedValue.ToString()).ToList(); // //label7.Text = kayitlar3.GroupBy(a => a.SiparisID).Count().ToString(); // //Hangi Üründen Kaç Tane Satılmış // List<UrunSatisAdediViewModel> liste= db.SiparisDetaylari.Select(x => new UrunSatisAdediViewModel() // { // UrunID = x.UrunID, // UrunAdi = x.Urun.UrunAdi, // Adet = x.Miktar // }).ToList(); //} //private void GunlukRapor_Load(object sender, EventArgs e) //{ // comboBox1.DataSource = db.Siparisler.Select(x => x.KaydedenKullaniciID).ToList(); //} ////Hocanın Yaptığı public void RaporGetir(DateTime secilenGun) { KahveContext db = new KahveContext(); GunlukRaporViewModel rapor = new GunlukRaporViewModel(); try//kayıt olmayan gün seçildiğindede çalışmasını sağlıyoruz. { rapor.ToplamSatisTutari = db.Siparisler.Where(a => DbFunctions.TruncateTime(a.Tarih).Value.Day == secilenGun.Day).Sum(x => x.SiparistekiUrunler.Sum(a => a.Tutar)); ////Diğer Yol //rapor.ToplamSatisTutari = (from x in db.Siparisler select x).Sum(x => x.SiparistekiUrunler.Sum(a => a.Tutar)); rapor.ToplamSatilanUrunSayisi = db.Siparisler.Where(a => DbFunctions.TruncateTime(a.Tarih).Value.Day == secilenGun.Day).Sum(x => x.SiparistekiUrunler.Sum(a => a.Miktar)); } catch { } label2.Text = rapor.ToplamSatisTutari.ToString("C"); label3.Text = rapor.ToplamSatilanUrunSayisi.ToString(); ////SQL'deki karşılığı //SELECT k.KullaniciAdi, COUNT(*) AS SiparisSayisi, SUM(sd.Tutar) AS SatisTutari //FROM Kullanicis k //INNER JOIN Siparis s //ON k.kullaniciID=s.EkleyenKullaniciID //INNER JOIN SiparisDetay sd //ON s.SiparisID=sd.SiparisID //GROUP BY k.KullaniciAdi rapor.KullaniciBasiSatislar = (from sd in db.Siparisler join k in db.Kullanicilar on sd.KaydedenKullaniciID equals k.KullaniciID where DbFunctions.TruncateTime(sd.Tarih).Value.Day == secilenGun.Day group sd by k.KullaniciAdi into yeni select new KullaniciSatisViewModel() { KullaniciAdi = yeni.Key, ToplamSatisTutari = yeni.Sum(x => x.SiparistekiUrunler.Sum(a => a.Tutar)) } ).ToList(); dataGridView1.DataSource = rapor.KullaniciBasiSatislar; rapor.UrunSatisAdedi = (from sd in db.SiparisDetaylari where DbFunctions.TruncateTime(sd.Siparis.Tarih).Value.Day == secilenGun.Day group sd by sd.UrunID into yeni select new UrunSatisAdediViewModel() { UrunID = yeni.Key, UrunAdi = yeni.Max(x => x.Urun.UrunAdi), Adet = yeni.Sum(x => x.Miktar) }).ToList(); dataGridView3.DataSource = rapor.UrunSatisAdedi; }