public async Task <IEnumerable <SellBrandDetailDto> > GetYeniCari(string interval, int?sayfa) { var date = Methods.GetDateFromInterval(interval); var plasiyerler = await _db.Tblcariplasiyer.Where(s => s.Aciklama1 == "1").Select(a => new { plasiyeradi = a.PlasiyerAciklama, plasiyerkodu = a.PlasiyerKodu }).ToListAsync(); var newcari = await _db.Tblcasabit.Where(a => a.Kayittarihi >= date).Select(a => new { CariKod = a.CariKod, PlasiyerKodu = a.PlasiyerKodu }).ToListAsync(); var returnmodel = new List <SellBrandDetailDto>(); foreach (var plasiyer in plasiyerler) { var onemodel = new SellBrandDetailDto(); onemodel.Marka = plasiyer.plasiyeradi; onemodel.SatisToplam = newcari.Where(a => a.PlasiyerKodu == plasiyer.plasiyerkodu).Count(); returnmodel.Add(onemodel); } var toplam = new SellBrandDetailDto() { Marka = "--Toplam--", SatisToplam = newcari.Count() }; returnmodel = returnmodel.OrderByDescending(a => a.SatisToplam).Where(a => a.SatisToplam > 0).Take(15).ToList(); returnmodel.Add(toplam); return(returnmodel); }
public async Task <IActionResult> Sell(string interval, DateTime?begindate, DateTime?enddate) { var satis = _db.Tblcahar.Where(a => a.HareketTuru == "B" && a.Borc > 0); var satisstok = _db.Tblsthar.Where(a => a.StharBgtip == "F" && a.StharGckod == "C"); var tahsilat = _db.Tblcahar.Where(a => a.HareketTuru == "D" || a.HareketTuru == "E" || a.HareketTuru == "G" || a.HareketTuru == "K" && a.Aciklama.Contains("HAVALE")); var plasiyerler = new List <Tblcariplasiyer>(); var cariler = new List <Tblcasabit>(); if (User.IsInRole(SD.Plasiyer)) { //string plakod = HttpContext.Session.GetString("plakod"); string plakod = User.FindFirst("plakod").Value; plasiyerler = await _db.Tblcariplasiyer.Where(a => a.PlasiyerKodu == plakod).ToListAsync(); cariler = await _db.Tblcasabit.Where(a => a.PlasiyerKodu == plakod).ToListAsync(); } else { plasiyerler = await _db.Tblcariplasiyer.OrderBy(a => a.PlasiyerAciklama).ToListAsync(); cariler = await _db.Tblcasabit.ToListAsync(); } var tahsilatlist = new List <Tblcahar>(); var satislist = new List <Tblcahar>(); var satisstoklist = new List <Tblsthar>(); var date = DateTime.Today; if (!string.IsNullOrEmpty(interval)) { date = Methods.GetDateFromInterval(interval); tahsilatlist = await tahsilat.Where(a => a.Tarih >= date).ToListAsync(); satislist = await satis.Where(a => a.Tarih >= date).ToListAsync(); satisstoklist = await satisstok.Where(a => a.StharTarih >= date).Include(a => a.Tblstsabit).ToListAsync(); } else if (begindate != null && enddate != null) { tahsilatlist = await tahsilat.Where(a => a.Tarih >= begindate && a.Tarih <= enddate).ToListAsync(); satislist = await satis.Where(a => a.Tarih >= begindate && a.Tarih <= enddate).ToListAsync(); satisstoklist = await satisstok.Where(a => a.StharTarih >= begindate && a.StharTarih <= enddate).Include(a => a.Tblstsabit).ToListAsync(); ViewData["aralik"] = "Rapor Aralığı : " + begindate.Value.ToShortDateString() + " - " + enddate.Value.ToShortDateString(); } else { ViewData["aralik"] = "Günlük Rapor"; tahsilatlist = await tahsilat.Where(a => a.Tarih >= date).ToListAsync(); satislist = await satis.Where(a => a.Tarih >= date).ToListAsync(); satisstoklist = await satisstok.Where(a => a.StharTarih >= date).Include(a => a.Tblstsabit).ToListAsync(); } var liste = new List <SellReportDTO>(); foreach (var plas in plasiyerler) { var templist = new List <SellBrandDetailDto>(); var yeni = new SellReportDTO() { plasiyerAdi = plas.PlasiyerAciklama, plasiyerKodu = plas.PlasiyerKodu, satismiktari = 0, satistoplam = 0, tahsilattoplam = 0 }; foreach (var cari in cariler.Where(a => a.PlasiyerKodu == plas.PlasiyerKodu)) { yeni.satismiktari += satislist.Where(a => a.CariKod == cari.CariKod).Count(); yeni.satistoplam += satislist.Where(a => a.CariKod == cari.CariKod).Sum(a => a.Borc); yeni.tahsilattoplam += tahsilatlist.Where(a => a.CariKod == cari.CariKod).Sum(a => a.Alacak); var tempdata = satisstoklist.Where(a => a.StharCarikod == cari.CariKod); foreach (var marka in tempdata) { var t = new SellBrandDetailDto() { Marka = marka.Tblstsabit.GrupKodu, SatisToplam = marka.StharGcmik }; templist.Add(t); } } var toplamsatis = templist.Sum(a => a.SatisToplam).Value; yeni.SatisStok = templist.GroupBy(a => a.Marka).Select(a => new SellBrandDetailDto { Marka = a.FirstOrDefault().Marka, SatisToplam = a.Sum(b => b.SatisToplam) }).OrderByDescending(a => a.SatisToplam).ToList(); yeni.SatisStok.Add(new SellBrandDetailDto { Marka = "-Toplam-", SatisToplam = toplamsatis }); yeni.markaSatis = toplamsatis; liste.Add(yeni); } return(View(liste)); }