Exemple #1
0
        public ActionResult Index(int?id, int?page)
        {
            int Id       = Convert.ToInt32(id);
            int thispage = 0;

            if (page != 0)
            {
                thispage = Convert.ToInt32(page);
            }
            if (Id == 0)
            {//tüm gruplar için
                var user          = _userService.GetByUserName(User.Identity.Name);
                var eczaneGruplar = _eczaneGrupService.GetDetayListByUser(user);
                var alimlar       = _alimService.GetListByEczaneGruplar(eczaneGruplar);
                var teklifler     = _teklifService.GetMyDetayListByEczaneGruplar(eczaneGruplar);
                var grupIdler     = eczaneGruplar.Select(s => s.GrupId).Distinct().ToList();
                var gruplar       = _grupService.GetList().Where(w => grupIdler.Contains(w.Id));
                var ilaclar       = _ilacService.GetList();

                var alimlarGroupByIlacId = teklifler.GroupBy(g => g.IlacId) //.Select(s => s.Sum(d => d.Miktar));
                                           .Select(g => new AlimGroupByIlacId
                {
                    IlacId = g.Key,
                    //AlimDurumAdi = alimlar.Where(w => w.TeklifId == g.Key).Select(s => s.AlimDurumAdi).FirstOrDefault(),
                    //AlimDurumId = alimlar.Where(w => w.TeklifId == g.Key).Select(s => s.AlimDurumId).FirstOrDefault(),
                    //ToplamAlimMiktari = g.Sum(x => x.Miktar),
                    //AlimTarihi = alimlar.Where(w => w.TeklifId == g.Key).Select(s => s.AlimTarihi).FirstOrDefault(),
                    //NetFiyat = teklifler.Where(w => w.Id == g.Key).Select(s => s.NetFiyat).FirstOrDefault(),
                    //YayinlamaTurAdi = teklifler.Where(w => w.Id == g.Key).Select(s => s.YayinlamaTurAdi).FirstOrDefault(),
                    //TeklifiVerenEczaneAdi = teklifler.Where(w => w.Id == g.Key).Select(s => s.TeklifiVerenEczaneAdi).FirstOrDefault(),
                    //Kalan = teklifler.Where(w => w.Id == g.Key).Select(s => s.HedeflenenAlim).FirstOrDefault() - g.Sum(x => x.Miktar),
                    //ToplamFiyat = g.Sum(x => x.Miktar) * teklifler.Where(w => w.Id == g.Key).Select(s => s.NetFiyat).FirstOrDefault(),

                    IlacAdi = teklifler.Where(w => w.IlacId == g.Key).Select(s => s.IlacAdi).FirstOrDefault(),


                    BuAyHareketleri = _alimService.GetDetaylar().Where(w =>
                                                                       (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId) &&
                                                                       w.GonderimTarihi > DateTime.Now.AddMonths(-1)).Count(),
                    GecenAyHareketleri = _alimService.GetDetaylar().Where(w =>
                                                                          (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId) &&
                                                                          w.GonderimTarihi > DateTime.Now.AddMonths(-2) && w.GonderimTarihi < DateTime.Now.AddMonths(-1)).Count(),
                    DagitilanTeklifSayisi = teklifler.Where(w => w.IlacId == g.Key && alimlar.
                                                            Where(x => x.AlimDurumId == 4).Select(s => s.TeklifId).Contains(w.Id)).Count(),
                    DagitimToplami = _alimService.GetDetaylar().Where(w =>
                                                                      (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId)).Sum(s => s.Miktar),
                    GrubaGirdigiTeklifSayisi       = teklifler.Where(w => w.IlacId == g.Key).Count(),
                    TekliflerdenKazandirdigiMiktar = _alimService.GetDetaylar().Where(w =>
                                                                                      (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId))
                                                     .Sum(s => s.EtiketFiyati * s.Miktar) - _alimService.GetDetaylar().Where(w =>
                                                                                                                             (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId))
                                                     .Sum(s => s.NetFiyat * s.Miktar)
                }).OrderByDescending(o => o.TekliflerdenKazandirdigiMiktar).ToList();

                ViewBag.EczaneGrupId = new SelectList(gruplar, "Id", "Adi", Id);
                var pager = new Pager(alimlarGroupByIlacId.Count(), thispage);

                var model = new IlacRaporViewModel()
                {
                    AlimlarGroupByIlacIdler = alimlarGroupByIlacId.Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize).ToList(),

                    //AlimDetaylar = alimlar,
                    //Eczaneler = eczaneler,
                    Ilaclar = ilaclar,
                    //TeklifDetaylar = teklifler,
                    Pager = pager
                };
                return(View(model));
            }
            else
            {//seçili grup için
                var user            = _userService.GetByUserName(User.Identity.Name);
                var eczaneGruplar   = _eczaneGrupService.GetDetayListByUser(user).ToList();
                var eczaneGruplarAz = _eczaneGrupService.GetDetaylar().Where(w => w.GrupId == Id).ToList();
                //var grupId = Id;
                var eczaneGrupIdler = eczaneGruplar.Where(w => w.GrupId == Id).Select(s => s.Id).Distinct().ToList();
                var grupIdler       = eczaneGruplar.Select(s => s.GrupId).Distinct().ToList();
                var gruplar         = _grupService.GetList().Where(w => grupIdler.Contains(w.Id));
                var ilaclar         = _ilacService.GetList();


                var teklifIdler = _teklifService.GetList()
                                  .Where(w => eczaneGrupIdler.Contains(w.TeklifiVerenEczaneGrupId))
                                  .Select(s => s.Id).ToList();
                var alimlar = _alimService.GetDetayListByTeklifler(teklifIdler).ToList();

                var teklifler = _teklifService.GetMyListByEczaneGruplar(eczaneGruplar);


                var alimlarGroupByIlacId = alimlar.GroupBy(g => g.IlacId) //.Select(s => s.Sum(d => d.Miktar));
                                           .Select(g => new AlimGroupByIlacId
                {
                    IlacId = g.Key,
                    //AlimDurumAdi = alimlar.Where(w => w.TeklifId == g.Key).Select(s => s.AlimDurumAdi).FirstOrDefault(),
                    //AlimDurumId = alimlar.Where(w => w.TeklifId == g.Key).Select(s => s.AlimDurumId).FirstOrDefault(),
                    //ToplamAlimMiktari = g.Sum(x => x.Miktar),
                    //AlimTarihi = alimlar.Where(w => w.TeklifId == g.Key).Select(s => s.AlimTarihi).FirstOrDefault(),
                    //NetFiyat = teklifler.Where(w => w.Id == g.Key).Select(s => s.NetFiyat).FirstOrDefault(),
                    //YayinlamaTurAdi = teklifler.Where(w => w.Id == g.Key).Select(s => s.YayinlamaTurAdi).FirstOrDefault(),
                    //TeklifiVerenEczaneAdi = teklifler.Where(w => w.Id == g.Key).Select(s => s.TeklifiVerenEczaneAdi).FirstOrDefault(),
                    //Kalan = teklifler.Where(w => w.Id == g.Key).Select(s => s.HedeflenenAlim).FirstOrDefault() - g.Sum(x => x.Miktar),
                    //ToplamFiyat = g.Sum(x => x.Miktar) * teklifler.Where(w => w.Id == g.Key).Select(s => s.NetFiyat).FirstOrDefault(),

                    IlacAdi = alimlar.Where(w => w.IlacId == g.Key).Select(s => s.IlacAdi).FirstOrDefault(),


                    BuAyHareketleri = _alimService.GetDetaylar().Where(w =>
                                                                       (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId) &&
                                                                       w.GonderimTarihi > DateTime.Now.AddMonths(-1)).Count(),
                    GecenAyHareketleri = _alimService.GetDetaylar().Where(w =>
                                                                          (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId) &&
                                                                          w.GonderimTarihi > DateTime.Now.AddMonths(-2) && w.GonderimTarihi < DateTime.Now.AddMonths(-1)).Count(),
                    DagitilanTeklifSayisi = teklifler.Where(w => w.IlacId == g.Key && alimlar.
                                                            Where(x => x.AlimDurumId == 4).Select(s => s.TeklifId).Contains(w.Id)).Count(),
                    DagitimToplami = _alimService.GetDetaylar().Where(w =>
                                                                      (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId)).Sum(s => s.Miktar),
                    GrubaGirdigiTeklifSayisi       = teklifler.Where(w => w.IlacId == g.Key).Count(),
                    TekliflerdenKazandirdigiMiktar = _alimService.GetDetaylar().Where(w =>
                                                                                      (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId))
                                                     .Sum(s => s.EtiketFiyati * s.Miktar) - _alimService.GetDetaylar().Where(w =>
                                                                                                                             (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId))
                                                     .Sum(s => s.NetFiyat * s.Miktar)
                }).OrderByDescending(o => o.TekliflerdenKazandirdigiMiktar).ToList();

                ViewBag.EczaneGrupId = new SelectList(gruplar, "Id", "Adi", Id);
                var pager = new Pager(alimlarGroupByIlacId.Count(), thispage);


                var model = new IlacRaporViewModel()
                {
                    AlimlarGroupByIlacIdler = alimlarGroupByIlacId.Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize).ToList(),

                    //AlimDetaylar = alimlar,
                    //Eczaneler = eczaneler,
                    Ilaclar = ilaclar,
                    //TeklifDetaylar = teklifler,
                    Pager = pager
                };
                return(View(model));
            }
        }
Exemple #2
0
        public ActionResult Search(string Keywords)
        {
            int Id = 0;


            if (Id == 0)
            {//tüm gruplar için
                var user          = _userService.GetByUserName(User.Identity.Name);
                var eczaneGruplar = _eczaneGrupService.GetDetayListByUser(user);
                var alimlar       = _alimService.GetListByEczaneGruplar(eczaneGruplar);
                var teklifler     = _teklifService.GetMyDetayListByEczaneGruplar(eczaneGruplar);
                var grupIdler     = eczaneGruplar.Select(s => s.GrupId).Distinct().ToList();
                var gruplar       = _grupService.GetList().Where(w => grupIdler.Contains(w.Id));
                var ilaclar       = _ilacService.GetList();

                var alimlarGroupByIlacId = teklifler.GroupBy(g => g.IlacId) //.Select(s => s.Sum(d => d.Miktar));
                                           .Select(g => new AlimGroupByIlacId
                {
                    IlacId = g.Key,
                    //AlimDurumAdi = alimlar.Where(w => w.TeklifId == g.Key).Select(s => s.AlimDurumAdi).FirstOrDefault(),
                    //AlimDurumId = alimlar.Where(w => w.TeklifId == g.Key).Select(s => s.AlimDurumId).FirstOrDefault(),
                    //ToplamAlimMiktari = g.Sum(x => x.Miktar),
                    //AlimTarihi = alimlar.Where(w => w.TeklifId == g.Key).Select(s => s.AlimTarihi).FirstOrDefault(),
                    //NetFiyat = teklifler.Where(w => w.Id == g.Key).Select(s => s.NetFiyat).FirstOrDefault(),
                    //YayinlamaTurAdi = teklifler.Where(w => w.Id == g.Key).Select(s => s.YayinlamaTurAdi).FirstOrDefault(),
                    //TeklifiVerenEczaneAdi = teklifler.Where(w => w.Id == g.Key).Select(s => s.TeklifiVerenEczaneAdi).FirstOrDefault(),
                    //Kalan = teklifler.Where(w => w.Id == g.Key).Select(s => s.HedeflenenAlim).FirstOrDefault() - g.Sum(x => x.Miktar),
                    //ToplamFiyat = g.Sum(x => x.Miktar) * teklifler.Where(w => w.Id == g.Key).Select(s => s.NetFiyat).FirstOrDefault(),

                    IlacAdi = teklifler.Where(w => w.IlacId == g.Key).Select(s => s.IlacAdi).FirstOrDefault(),
                    GrupAdi = teklifler.Where(w => w.IlacId == g.Key).Select(s => s.TeklifiVerenEczaneGrupAdi).FirstOrDefault(),


                    BuAyHareketleri = _alimService.GetDetaylar().Where(w =>
                                                                       (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId) &&
                                                                       w.GonderimTarihi > DateTime.Now.AddMonths(-1)).Count(),
                    GecenAyHareketleri = _alimService.GetDetaylar().Where(w =>
                                                                          (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId) &&
                                                                          w.GonderimTarihi > DateTime.Now.AddMonths(-2) && w.GonderimTarihi < DateTime.Now.AddMonths(-1)).Count(),
                    DagitilanTeklifSayisi = teklifler.Where(w => w.IlacId == g.Key && alimlar.
                                                            Where(x => x.AlimDurumId == 4).Select(s => s.TeklifId).Contains(w.Id)).Count(),
                    DagitimToplami = _alimService.GetDetaylar().Where(w =>
                                                                      (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId)).Sum(s => s.Miktar),
                    GrubaGirdigiTeklifSayisi       = teklifler.Where(w => w.IlacId == g.Key).Count(),
                    TekliflerdenKazandirdigiMiktar = _alimService.GetDetaylar().Where(w =>
                                                                                      (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId))
                                                     .Sum(s => s.DepoFiyati * s.Miktar) - _alimService.GetDetaylar().Where(w =>
                                                                                                                           (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId))
                                                     .Sum(s => s.NetFiyat * s.Miktar)
                }).Where(p => Regex.Split(Keywords, @"\s")
                         .Any(x => p.IlacAdi.ToLower().Contains(x.ToLower()) || p.IlacAdi.ToLower().Contains(x.ToLower())))
                                           .OrderByDescending(o => o.GrubaGirdigiTeklifSayisi)
                                           .OrderByDescending(o => o.GrubaGirdigiTeklifSayisi).ToList();

                ViewBag.EczaneGrupId = new SelectList(gruplar, "Id", "Adi", Id);

                var model = new IlacRaporViewModel()
                {
                    AlimlarGroupByIlacIdler = alimlarGroupByIlacId,

                    //AlimDetaylar = alimlar,
                    //Eczaneler = eczaneler,
                    Ilaclar = ilaclar,
                    //TeklifDetaylar = teklifler,
                };
                return(View("Index", model));
            }
            else
            {//seçili grup için
                var user          = _userService.GetByUserName(User.Identity.Name);
                var eczaneGruplar = _eczaneGrupService.GetDetayListByUser(user);
                //var grupId = Id;
                var eczaneGrupId = eczaneGruplar.Where(w => w.GrupId == Id).Select(s => s.Id).Distinct().ToList();
                var grupIdler    = eczaneGruplar.Select(s => s.GrupId).Distinct().ToList();
                var gruplar      = _grupService.GetList().Where(w => grupIdler.Contains(w.Id));
                var ilaclar      = _ilacService.GetList();


                var teklifIdler = _teklifService.GetList()
                                  .Where(w => eczaneGrupId.Contains(w.TeklifiVerenEczaneGrupId))
                                  .Select(s => s.Id).ToList();
                var alimlar = _alimService.GetDetayListByTeklifler(teklifIdler).ToList();

                var teklifler = _teklifService.GetMyDetayListByEczaneGruplar(eczaneGruplar);


                var alimlarGroupByIlacId = alimlar.GroupBy(g => g.IlacId) //.Select(s => s.Sum(d => d.Miktar));
                                           .Select(g => new AlimGroupByIlacId
                {
                    IlacId = g.Key,
                    //AlimDurumAdi = alimlar.Where(w => w.TeklifId == g.Key).Select(s => s.AlimDurumAdi).FirstOrDefault(),
                    //AlimDurumId = alimlar.Where(w => w.TeklifId == g.Key).Select(s => s.AlimDurumId).FirstOrDefault(),
                    //ToplamAlimMiktari = g.Sum(x => x.Miktar),
                    //AlimTarihi = alimlar.Where(w => w.TeklifId == g.Key).Select(s => s.AlimTarihi).FirstOrDefault(),
                    //NetFiyat = teklifler.Where(w => w.Id == g.Key).Select(s => s.NetFiyat).FirstOrDefault(),
                    //YayinlamaTurAdi = teklifler.Where(w => w.Id == g.Key).Select(s => s.YayinlamaTurAdi).FirstOrDefault(),
                    //TeklifiVerenEczaneAdi = teklifler.Where(w => w.Id == g.Key).Select(s => s.TeklifiVerenEczaneAdi).FirstOrDefault(),
                    //Kalan = teklifler.Where(w => w.Id == g.Key).Select(s => s.HedeflenenAlim).FirstOrDefault() - g.Sum(x => x.Miktar),
                    //ToplamFiyat = g.Sum(x => x.Miktar) * teklifler.Where(w => w.Id == g.Key).Select(s => s.NetFiyat).FirstOrDefault(),

                    IlacAdi = alimlar.Where(w => w.IlacId == g.Key).Select(s => s.IlacAdi).FirstOrDefault(),
                    GrupAdi = teklifler.Where(w => w.IlacId == g.Key).Select(s => s.TeklifiVerenEczaneGrupAdi).FirstOrDefault(),


                    BuAyHareketleri = _alimService.GetDetaylar().Where(w =>
                                                                       (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId) &&
                                                                       w.GonderimTarihi > DateTime.Now.AddMonths(-1)).Count(),
                    GecenAyHareketleri = _alimService.GetDetaylar().Where(w =>
                                                                          (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId) &&
                                                                          w.GonderimTarihi > DateTime.Now.AddMonths(-2) && w.GonderimTarihi < DateTime.Now.AddMonths(-1)).Count(),
                    DagitilanTeklifSayisi = teklifler.Where(w => w.IlacId == g.Key && alimlar.
                                                            Where(x => x.AlimDurumId == 4).Select(s => s.TeklifId).Contains(w.Id)).Count(),
                    DagitimToplami = _alimService.GetDetaylar().Where(w =>
                                                                      (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId)).Sum(s => s.Miktar),
                    GrubaGirdigiTeklifSayisi       = teklifler.Where(w => w.IlacId == g.Key).Count(),
                    TekliflerdenKazandirdigiMiktar = _alimService.GetDetaylar().Where(w =>
                                                                                      (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId))
                                                     .Sum(s => s.DepoFiyati * s.Miktar) - _alimService.GetDetaylar().Where(w =>
                                                                                                                           (teklifler.Where(x => x.IlacId == g.Key).Select(s => s.Id)).Contains(w.TeklifId))
                                                     .Sum(s => s.NetFiyat * s.Miktar)
                }).Where(p => Regex.Split(Keywords, @"\s")
                         .Any(x => p.IlacAdi.ToLower().Contains(x.ToLower()) || p.IlacAdi.ToLower().Contains(x.ToLower())))
                                           .OrderByDescending(o => o.GrubaGirdigiTeklifSayisi)
                                           .OrderByDescending(o => o.GrubaGirdigiTeklifSayisi).ToList();

                ViewBag.EczaneGrupId = new SelectList(gruplar, "Id", "Adi", Id);


                var model = new IlacRaporViewModel()
                {
                    AlimlarGroupByIlacIdler = alimlarGroupByIlacId,

                    //AlimDetaylar = alimlar,
                    //Eczaneler = eczaneler,
                    Ilaclar = ilaclar,
                    //TeklifDetaylar = teklifler,
                };
                return(View("Index", model));
            }
            ;//result:model
        }