Beispiel #1
0
        private List <TeklifDetayAlimDetaylarViewModel> getGonderimlerim_EczaneGrupdetay(List <TeklifDetayAlimDetaylarViewModel>
                                                                                         teklifDetayAlimDetaylarViewModel, string page, string teklifDurumId, string alimDurumId)
        {
            var user              = _userService.GetByUserName(User.Identity.Name);
            var userId            = _userService.GetByUserName(User.Identity.Name).Id;
            var eczaneGrupIdlerim = _eczaneGrupService.GetListByUser(user).Select(s => s.EczaneId).ToList();
            var grupIdler         = _grupService.GetListByUser(user).Select(s => s.Id);
            var bulundugumGruplardakiEczaneGrupIdler = _eczaneGrupService.GetList().Where(w => grupIdler.Contains(w.GrupId))
                                                       .Select(s => s.Id).ToList();

            var verdigimTeklifIdler = _teklifService.GetDetaylar(w => eczaneGrupIdlerim.Contains(w.TeklifiVerenEczaneGrupId))
                                      .Select(s => s.Id).ToList();

            var verdigimTeklifler = new List <TeklifDetay>();

            if (teklifDurumId != null && teklifDurumId != "")
            {
                verdigimTeklifler = _teklifService.GetDetaylar(w => eczaneGrupIdlerim.Contains(w.TeklifiVerenEczaneGrupId))
                                    .Where(w => w.TeklifDurumId == Convert.ToInt32(teklifDurumId))
                                    .OrderByDescending(o => o.BaslangicTarihi).ToList();
            }
            else
            {
                verdigimTeklifler = _teklifService.GetDetaylar(w => eczaneGrupIdlerim.Contains(w.TeklifiVerenEczaneGrupId))
                                    .OrderByDescending(o => o.BaslangicTarihi).ToList();
            }

            var alimDetaylar = _alimService.GetDetaylar();

            if (alimDurumId != null && alimDurumId != "")
            {
                alimDetaylar = _alimService.GetDetaylar(w => verdigimTeklifIdler.Contains(w.TeklifId))
                               .Where(w => w.AlimDurumId == Convert.ToInt32(alimDurumId)).ToList();
            }
            else
            {
                alimDetaylar = _alimService.GetDetaylar(w => verdigimTeklifIdler.Contains(w.TeklifId)).ToList();
            }
            var eczaneGrupDetaylar = _eczaneGrupService.GetDetaylar(w => bulundugumGruplardakiEczaneGrupIdler.Contains(w.Id))
                                     .Distinct().ToList();

            if (page == "" || page == null)
            {
                page = "1";
            }

            var pager = new Pager(verdigimTeklifler.Count(), Convert.ToInt32(page));

            //verdigimTeklifler = verdigimTeklifler.Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize).ToList();
            foreach (var item in verdigimTeklifler)
            {
                var alimDetaylars = alimDetaylar.Where(w => w.TeklifId == item.Id).ToList();
                foreach (var item2 in alimDetaylars)
                {
                    if (item.Id == item2.TeklifId)
                    {
                        if (!teklifDetayAlimDetaylarViewModel.Any(s => s.TeklifDetay.IlacId == item2.IlacId))
                        {//distinct olması için
                            teklifDetayAlimDetaylarViewModel.Add(new TeklifDetayAlimDetaylarViewModel
                            {
                                AlimDetaylar = alimDetaylars,
                                TeklifDetay  = item,
                                Pager        = pager
                            });
                        }
                    }
                }
            }
            var AlimDurumlar = _alimDurumService.GetList();//.Where(w => w.AliciTarafiMi != true);

            ViewBag.AlimDurumIdFilter = new SelectList(AlimDurumlar, "Id", "Adi", alimDurumId);
            var TeklifDurumlar = _teklifDurumService.GetList();

            ViewBag.TeklifDurumIdFilter = new SelectList(TeklifDurumlar, "Id", "Adi", teklifDurumId);
            return(teklifDetayAlimDetaylarViewModel);
        }
Beispiel #2
0
        public ActionResult Index(int?id, int?page)
        {
            int Id       = Convert.ToInt32(id);
            int thispage = 0;

            if (page != 0)
            {
                thispage = Convert.ToInt32(page);
            }

            var user          = _userService.GetByUserName(User.Identity.Name);
            var eczaneGruplar = _eczaneGrupService.GetDetayListByUser(user).ToList();
            var grupIdler     = eczaneGruplar.Select(s => s.GrupId).Distinct().ToList();
            var gruplar       = _grupService.GetList().Where(w => grupIdler.Contains(w.Id)).ToList();

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

            if (Id == 0)
            {//seçilmemiş ise ilk sıradaki grup gelsin
                Id = grupIdler.First();
            }
            var eczaneGruplarSeciliEczaneGrupIdIcin = _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 teklifIdler     = _teklifService.GetList()
                                  .Where(w => eczaneGrupIdler.Contains(w.TeklifiVerenEczaneGrupId))
                                  .Select(s => s.Id).ToList();
            var alimlar   = _alimService.GetDetayListByTeklifler(teklifIdler).ToList();
            var teklifler = _teklifService.GetMyDetayListByEczaneGruplar(eczaneGruplarSeciliEczaneGrupIdIcin).ToList();
            var eczaneler = _eczaneService.GetListByUser(user);

            var alimlarGroupByEczaneGrupId = alimlar.GroupBy(g => g.EczaneGrupId) //.Select(s => s.Sum(d => d.Miktar));
                                             .Select(g => new AlimGroupByEczaneGrupId
            {
                EczaneGrupId = g.Key,
                EczaneAdi    = alimlar.Where(w => w.EczaneGrupId == g.Key).Select(s => s.EczaneAdi).FirstOrDefault(),
                GrupAdi      = eczaneGruplar.Where(w => w.Id == g.Key).Select(s => s.GrupAdi).FirstOrDefault(),
                GrupId       = eczaneGruplar.Where(w => w.Id == g.Key).Select(s => s.GrupId).FirstOrDefault(),
                EczaneGln    = alimlar.Where(w => w.EczaneGrupId == g.Key).Select(s => s.EczaneGln).FirstOrDefault(),
                Gelir        = _alimService.GetDetaylar().Where(w =>
                                                                (teklifler.Where(x => x.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.Id)).Contains(w.TeklifId) &&
                                                                w.AlimDurumId == 4)
                               .Sum(s => s.NetFiyat * s.Miktar),
                Gider = alimlar.Where(w => w.AlimDurumId == 4 && w.EczaneGrupId == g.Key).Sum(s => s.NetFiyat * s.Miktar)
                ,
                Bakiye =
                    _alimService.GetDetaylar().Where(w =>
                                                     (teklifler.Where(x => x.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.Id)).Contains(w.TeklifId) &&
                                                     w.AlimDurumId == 4)
                    .Sum(s => s.NetFiyat * s.Miktar)
                    - alimlar.Where(w => w.AlimDurumId == 4 && w.EczaneGrupId == g.Key).Sum(s => s.NetFiyat * s.Miktar)
                ,
                ToplamAlimMiktari     = alimlar.Where(w => w.EczaneGrupId == g.Key).Sum(s => s.Miktar),
                BuAyHareketleri       = alimlar.Where(w => w.EczaneGrupId == g.Key && w.GonderimTarihi > DateTime.Now.AddMonths(-1)).Sum(s => s.Id),
                GecenAyHareketleri    = alimlar.Where(w => w.EczaneGrupId == g.Key && w.GonderimTarihi > DateTime.Now.AddMonths(-2) && w.GonderimTarihi < DateTime.Now.AddMonths(-1)).Sum(s => s.Id),
                DagittigiTeklifSayisi = teklifler.Where(w => w.TeklifiVerenEczaneGrupId == 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.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.Id))
                                                                  .Contains(w.TeklifId) && w.AlimDurumId == 4).Sum(s => s.Miktar),
                GrubaGirdigiTeklifSayisi       = teklifler.Where(w => w.TeklifiVerenEczaneGrupId == g.Key).Count(),
                TekliflerdenKazandirdigiMiktar =
                    _alimService.GetDetaylar().Where(w =>
                                                     (teklifler.Where(x => x.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.Id)).Contains(w.TeklifId))
                    .Sum(s => s.DepoFiyati * s.Miktar) - _alimService.GetDetaylar().Where(w =>
                                                                                          (teklifler.Where(x => x.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.Id)).Contains(w.TeklifId))
                    .Sum(s => s.NetFiyat * s.Miktar)
            }).Where(w => w.GrupId == Id)
                                             .OrderByDescending(o => o.Bakiye).ToList();

            //alım yapmamış ama teklif vermiş olanlar olabilir, bunlar için teklif tablosundan çekmek gerekir herşeyi:
            var tekliflerGroupByEczaneGrupId = teklifler
                                               .Where(w => !alimlarGroupByEczaneGrupId.Select(s => s.EczaneGrupId).Contains(w.TeklifiVerenEczaneGrupId))
                                               .GroupBy(g => g.TeklifiVerenEczaneGrupId)

                                               .Select(g => new AlimGroupByEczaneGrupId
            {
                EczaneGrupId = g.Key,
                EczaneAdi    = teklifler.Where(w => w.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.TeklifiVerenEczaneAdi).FirstOrDefault(),
                GrupAdi      = eczaneGruplar.Where(w => w.Id == g.Key).Select(s => s.GrupAdi).FirstOrDefault(),
                GrupId       = eczaneGruplar.Where(w => w.Id == g.Key).Select(s => s.GrupId).FirstOrDefault(),
                EczaneGln    = teklifler.Where(w => w.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.TeklifiVerenEczaneGln).FirstOrDefault(),
                //EczaneGln = eczaneler.Where(x => x.Id == eczaneGruplar.Where(w => w.Id == g.Key).Select(s => s.EczaneId).FirstOrDefault()).Select(s => s.EczaneGln).FirstOrDefault(),
                Gelir = _alimService.GetDetaylar().Where(w =>
                                                         (teklifler.Where(x => x.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.Id)).Contains(w.TeklifId) &&
                                                         w.AlimDurumId == 4)
                        .Sum(s => s.NetFiyat * s.Miktar),
                Gider = alimlar.Where(w => w.AlimDurumId == 4 && w.EczaneGrupId == g.Key).Sum(s => s.NetFiyat * s.Miktar)
                ,
                Bakiye = _alimService.GetDetaylar().Where(w =>
                                                          (teklifler.Where(x => x.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.Id)).Contains(w.TeklifId) &&
                                                          w.AlimDurumId == 4)
                         .Sum(s => s.NetFiyat * s.Miktar) - alimlar.Where(w => w.AlimDurumId == 4 && w.EczaneGrupId == g.Key).Sum(s => s.NetFiyat * s.Miktar),


                ToplamAlimMiktari = alimlar.Where(w => w.TeklifVerenEczaneGrupId == teklifler.Where(x => x.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.Id).FirstOrDefault()).Sum(s => s.Miktar),

                BuAyHareketleri       = teklifler.Where(w => w.TeklifiVerenEczaneGrupId == g.Key && w.GonderimTarihi > DateTime.Now.AddMonths(-1)).Sum(s => s.Id),
                GecenAyHareketleri    = teklifler.Where(w => w.TeklifiVerenEczaneGrupId == g.Key && w.GonderimTarihi > DateTime.Now.AddMonths(-2) && w.GonderimTarihi < DateTime.Now.AddMonths(-1)).Sum(s => s.Id),
                DagittigiTeklifSayisi = teklifler.Where(w => w.TeklifiVerenEczaneGrupId == 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.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.Id))
                                                                  .Contains(w.TeklifId) && w.AlimDurumId == 4).Sum(s => s.Miktar),
                GrubaGirdigiTeklifSayisi       = teklifler.Where(w => w.TeklifiVerenEczaneGrupId == g.Key).Count(),
                TekliflerdenKazandirdigiMiktar =
                    _alimService.GetDetaylar().Where(w =>
                                                     (teklifler.Where(x => x.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.Id)).Contains(w.TeklifId))
                    .Sum(s => s.DepoFiyati * s.Miktar) - _alimService.GetDetaylar().Where(w =>
                                                                                          (teklifler.Where(x => x.TeklifiVerenEczaneGrupId == g.Key).Select(s => s.Id)).Contains(w.TeklifId))
                    .Sum(s => s.NetFiyat * s.Miktar)
            })//.Where(w => w.GrupId == Id)
                                               .OrderByDescending(o => o.Bakiye).ToList();

            var unionAll = tekliflerGroupByEczaneGrupId.Union(alimlarGroupByEczaneGrupId)
                           .OrderByDescending(o => o.Bakiye).ToList();
            var pager = new Pager(unionAll.Count(), thispage);
            var model = new GrupRaporViewModel()
            {
                AlimlarGroupByEczaneGrupId = unionAll.Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize).ToList(),

                //AlimDetaylar = alimlar,
                //Eczaneler = eczaneler,
                EczaneGrupDetaylar = eczaneGruplarSeciliEczaneGrupIdIcin,
                //TeklifDetaylar = teklifler,
                Pager = pager,
            };

            return(View(model));
        }
Beispiel #3
0
        private List <AlimDetayAlimDetaylarViewModel> getAlimlarim(List <AlimDetayAlimDetaylarViewModel> AlimDetayAlimDetaylarViewModel,
                                                                   string page, string teklifDurumId, string alimDurumId)
        {
            var user              = _userService.GetByUserName(User.Identity.Name);
            var userId            = _userService.GetByUserName(User.Identity.Name).Id;
            var eczaneler         = _eczaneService.GetListByUser(user);
            var eczaneIdlerim     = _eczaneUserService.GetListByUserId(userId).Select(s => s.EczaneId).ToList();
            var eczaneGrupIdlerim = _eczaneGrupService.GetListByUser(user).Select(s => s.EczaneId);
            var gruplar           = _grupService.GetListByUser(user);
            var eczaneGruplar     = _eczaneGrupService.GetListByUser(user);
            var eczanegrupIdler   = eczaneGruplar.Select(s => s.Id).ToList();
            var eczaneIdler       = eczaneler.Select(s => s.Id).ToList();


            var digerAlimDetaylar = _alimService.GetDetaylar(w => !eczaneGrupIdlerim.Contains(w.EczaneGrupId));

            var alimDetaylar = new List <AlimDetay>();

            if (alimDurumId != null && alimDurumId != "")
            {
                if (teklifDurumId != null && teklifDurumId != "")
                {
                    alimDetaylar = _alimService.GetDetaylar(w => eczaneGrupIdlerim.Contains(w.EczaneGrupId))
                                   .Where(w => w.AlimDurumId == Convert.ToInt32(alimDurumId) &&
                                          w.TeklifDurumId == Convert.ToInt32(teklifDurumId))
                                   .OrderByDescending(o => o.AlimTarihi).ToList();
                }
                else
                {
                    alimDetaylar = _alimService.GetDetaylar(w => eczaneGrupIdlerim.Contains(w.EczaneGrupId))
                                   .Where(w => w.AlimDurumId == Convert.ToInt32(alimDurumId))
                                   .OrderByDescending(o => o.AlimTarihi).ToList();
                }
            }
            else
            {
                if (teklifDurumId != null && teklifDurumId != "")
                {
                    alimDetaylar = _alimService.GetDetaylar(w => eczaneGrupIdlerim.Contains(w.EczaneGrupId))
                                   .Where(w => w.TeklifDurumId == Convert.ToInt32(teklifDurumId))
                                   .OrderByDescending(o => o.AlimTarihi).ToList();
                }
                else
                {
                    alimDetaylar = _alimService.GetDetaylar(w => eczaneGrupIdlerim.Contains(w.EczaneGrupId))
                                   .OrderByDescending(o => o.AlimTarihi).ToList();
                }
            }

            if (page == "" || page == null)
            {
                page = "1";
            }
            var AlimDurumlar = _alimDurumService.GetList();//.Where(w => w.AliciTarafiMi != true);

            ViewBag.AlimDurumIdFilter = new SelectList(AlimDurumlar, "Id", "Adi", alimDurumId);
            var TeklifDurumlar = _teklifDurumService.GetList();

            ViewBag.TeklifDurumIdFilter = new SelectList(TeklifDurumlar, "Id", "Adi", teklifDurumId);

            var pager = new Pager(alimDetaylar.Count(), Convert.ToInt32(page));

            //alimDetaylar = alimDetaylar.Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize).ToList();
            foreach (var item in alimDetaylar)
            {
                var alimDetaylars = digerAlimDetaylar.Where(w => w.TeklifId == item.TeklifId).ToList();

                AlimDetayAlimDetaylarViewModel.Add(new AlimDetayAlimDetaylarViewModel
                {
                    AlimDetay    = item,
                    AlimDetaylar = alimDetaylars,
                    Pager        = pager
                });
            }
            return(AlimDetayAlimDetaylarViewModel);
        }
Beispiel #4
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));
            }
        }
        private List <TeklifDetayAlimDetaylarViewModel> getTeklifler(List <TeklifDetayAlimDetaylarViewModel>
                                                                     teklifDetayAlimDetaylarViewModel, string page, string teklifDurumId, string alimDurumId)
        {
            var user            = _userService.GetByUserName(User.Identity.Name);
            var eczaneler       = _eczaneService.GetListByUser(user);
            var gruplar         = _grupService.GetListByUser(user);
            var eczaneGruplar   = _eczaneGrupService.GetListByUser(user);
            var eczanegrupIdler = eczaneGruplar.Select(s => s.Id).ToList();
            var eczaneIdler     = eczaneler.Select(s => s.Id).ToList();

            var teklifDetaylar = new List <TeklifDetay>();
            var alimDetaylar   = _alimService.GetDetaylar();

            if (alimDurumId != null && alimDurumId != "")
            {
                alimDetaylar = alimDetaylar.Where(w => w.AlimDurumId == Convert.ToInt32(alimDurumId)).ToList();
            }
            if (teklifDurumId != null && teklifDurumId != "")
            {
                teklifDetaylar = _teklifService.GetListByEczaneGrupId(eczanegrupIdler.FirstOrDefault());
                teklifDetaylar = teklifDetaylar
                                 .Where(w => !eczanegrupIdler.Contains(w.TeklifiVerenEczaneGrupId) &&
                                        w.TeklifDurumId == Convert.ToInt32(teklifDurumId) &&
                                        (w.BitisTarihi > System.DateTime.Now || w.BitisTarihi == null) &&
                                        w.BaslangicTarihi < System.DateTime.Now)
                                 .OrderByDescending(o => o.BaslangicTarihi).ToList();
            }
            else
            {
                teklifDetaylar = _teklifService.GetListByEczaneGrupId(eczanegrupIdler.FirstOrDefault());
                teklifDetaylar = teklifDetaylar
                                 .Where(w => !eczanegrupIdler.Contains(w.TeklifiVerenEczaneGrupId) && //&& w.TeklifDurumId == 1
                                        (w.BitisTarihi > System.DateTime.Now || w.BitisTarihi == null) &&
                                        w.BaslangicTarihi < System.DateTime.Now)
                                 .OrderByDescending(o => o.BaslangicTarihi).ToList();
            }
            if (page == "" || page == null)
            {
                page = "1";
            }
            var pager = new Pager(teklifDetaylar.Count(), Convert.ToInt32(page));
            //teklifDetaylar = teklifDetaylar.Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize).ToList();
            var AlimDurumlar = _alimDurumService.GetList();

            ViewBag.AlimDurumIdFilter = new SelectList(AlimDurumlar, "Id", "Adi", alimDurumId);
            var TeklifDurumlar = _teklifDurumService.GetList();

            ViewBag.TeklifDurumIdFilter = new SelectList(TeklifDurumlar, "Id", "Adi", teklifDurumId);
            foreach (var item in teklifDetaylar)
            {
                var alimDetaylars = alimDetaylar.Where(w => w.TeklifId == item.Id).ToList();

                teklifDetayAlimDetaylarViewModel.Add(new TeklifDetayAlimDetaylarViewModel
                {
                    TeklifDetay  = item,
                    AlimDetaylar = alimDetaylars,
                    Pager        = pager
                });
            }
            return(teklifDetayAlimDetaylarViewModel);
        }
Beispiel #6
0
        public ActionResult Index(int?id)
        {
            int Id    = Convert.ToInt32(id);
            var model = new EczaneRaporViewModel();

            if (Id == 0)
            {//tüm gruplar için
                var user = _userService.GetByUserName(User.Identity.Name);

                var eczaneGruplar   = _eczaneGrupService.GetMyDetayListByUser(user);
                var eczaneGrupIdler = eczaneGruplar.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)).ToList();

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

                var eczaneninYaptigiTekliflerdenYapilanAlimlar = alimlar.Where(w => w.AlimDurumId == 4).ToList();
                var tekliftenYapilanAlimTutari = eczaneninYaptigiTekliflerdenYapilanAlimlar.Sum(s => s.NetFiyat * s.Miktar);
                #endregion

                #region Alımlar
                var yapilanAlimIdler = _alimService.GetList()
                                       .Where(w => eczaneGrupIdler.Contains(w.EczaneGrupId))
                                       .Select(s => s.Id).ToList();
                var yapilanAlimlar             = _alimService.GetDetaylar().Where(w => yapilanAlimIdler.Contains(w.Id)).ToList();
                var eczaneninYaptigiAlimlar    = yapilanAlimlar.Where(w => w.AlimDurumId == 4).ToList();
                var eczaneninYaptigiAlimtutari = eczaneninYaptigiAlimlar.Sum(s => s.NetFiyat * s.Miktar);
                #endregion

                #region dropDownList

                // eczaneGruplar.Add(new Northwind.Entities.ComplexTypes.IlacTakip.EczaneGrupDetay { Id = 0, Adi = "Hepsi" });
                ViewBag.EczaneGrupId = new SelectList(gruplar, "Id", "Adi", Id);

                #endregion

                model = new EczaneRaporViewModel()
                {
                    Giderler           = eczaneninYaptigiAlimtutari,
                    Gelirler           = tekliftenYapilanAlimTutari,
                    EczaneGrupDetaylar = eczaneGruplar,
                    Bakiye             = tekliftenYapilanAlimTutari - eczaneninYaptigiAlimtutari
                };
            }
            else
            {//seçili grup için
                var user          = _userService.GetByUserName(User.Identity.Name);
                var eczaneGruplar = _eczaneGrupService.GetMyDetayListByUser(user).ToList();
                var eczaneGrupId  = Id;

                var grupIdler = eczaneGruplar.Select(s => s.GrupId).Distinct().ToList();
                var gruplar   = _grupService.GetList().Where(w => grupIdler.Contains(w.Id)).ToList();


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

                var eczaneninYaptigiTekliflerdenYapilanAlimlar = alimlar.Where(w => w.AlimDurumId == 4).ToList();
                var tekliftenYapilanAlimTutari = eczaneninYaptigiTekliflerdenYapilanAlimlar.Sum(s => s.NetFiyat * s.Miktar);
                #endregion

                #region Alımlar
                var yapilanAlimIdler = _alimService.GetList()
                                       .Where(w => w.EczaneGrupId == eczaneGrupId)
                                       .Select(s => s.Id).ToList();
                var yapilanAlimlar             = _alimService.GetDetaylar().Where(w => yapilanAlimIdler.Contains(w.Id)).ToList();
                var eczaneninYaptigiAlimlar    = yapilanAlimlar.Where(w => w.AlimDurumId == 4).ToList();
                var eczaneninYaptigiAlimtutari = eczaneninYaptigiAlimlar.Sum(s => s.NetFiyat * s.Miktar);
                #endregion

                #region dropDownList

                // eczaneGruplar.Add(new Northwind.Entities.ComplexTypes.IlacTakip.EczaneGrupDetay { Id = 0, Adi = "Hepsi" });
                ViewBag.EczaneGrupId = new SelectList(gruplar, "Id", "Adi", Id);

                #endregion

                model = new EczaneRaporViewModel()
                {
                    Giderler           = eczaneninYaptigiAlimtutari,
                    Gelirler           = tekliftenYapilanAlimTutari,
                    EczaneGrupDetaylar = eczaneGruplar,
                    Bakiye             = tekliftenYapilanAlimTutari - eczaneninYaptigiAlimtutari
                };
            }
            return(View(model));
        }