public static List <Teknisyen_ViewServisIsEmirler> Select_Servis_IsEmirler_View(decimal servisId, decimal servisTeknisyenId) { MethodReturn mr = new MethodReturn(); List <Teknisyen_ViewServisIsEmirler> servis_IsEmirleri = R.Query <Teknisyen_ViewServisIsEmirler>().Where(t => t.SERVISID == servisId && t.TEKNIKOLARAKTAMAMLA == 0).ToList(); List <decimal> isEmirIds = servis_IsEmirleri.select(t => t.ID).ToList(); List <HareketUstBilgi> servis_UstHareketBilgileri = HareketUstBilgi.Select_IsEmirler_UstHareketBilgileri(isEmirIds); List <TeknisyenHareket> servis_TeknisyenHareketleri = TeknisyenHareket.Select_IsEmirler_TeknisyenHareketleri(isEmirIds); List <Teknisyen_ViewServisIsEmirIslemler> servis_IsEmirIslemleri = Teknisyen_ViewServisIsEmirIslemler.Select_IsEmirler_Islemler(isEmirIds); List <Teknisyen_ViewServisIsEmirIslemIscilikler> servis_IsEmirIslem_Iscilikleri = Teknisyen_ViewServisIsEmirIslemIscilikler.Select_IsEmirler_Iscilikleri(isEmirIds); List <ServisGunMola> servis_Gun_Molalar = ServisGunMola.SelectServisGunMolalar(servisId); List <HareketNeden> nedenler = HareketNeden.Select_Nedenler(); PuantajGunlugu pg = new PuantajGunlugu(); pg.InitNedenler(nedenler); servis_IsEmirleri.forEach(isemir => { List <HareketUstBilgi> isEmir_ustBilgileri = servis_UstHareketBilgileri.Where(t => t.ISEMIRID == isemir.ID).toList(); List <TeknisyenHareket> isEmir_TeknisyenHareketleri = null; List <TeknisyenHareket> servisTeknisyenHareketleri = null; isemir.TeknisyenIsDurumu = LocalHelpers.GetTeknisyenDurum(servisTeknisyenId, servis_TeknisyenHareketleri, isEmir_ustBilgileri, out isEmir_TeknisyenHareketleri, out servisTeknisyenHareketleri); if (isEmir_TeknisyenHareketleri.isNotEmpty()) { isemir.IlkHareketTarihi = isEmir_TeknisyenHareketleri.Min(t => t.GIRISTARIHI); isemir.SonHareketTarihi = isEmir_TeknisyenHareketleri.OrderByDescending(t => t.GIRISTARIHI).first().AktifCikisTarih; } if (isEmir_ustBilgileri.isNotEmpty()) { isemir.PlanlananSure = isEmir_ustBilgileri.Sum(t => t.PLANLANANSURE); } TeknisyenHareketDagilimSonuclari puantajSonuclari = Puantaj.GetPuantajSonuclari(isEmir_TeknisyenHareketleri, pg, servis_Gun_Molalar, nedenler); isemir.CalisilanSure = puantajSonuclari.GetSonucSure(NedenFormati.NormalCalisma);// isEmir_TeknisyenHareketleri.Sum(t => t.CalismaDakika); isemir.TeknisyenSure = puantajSonuclari.GetSonucSure(servisTeknisyenId, NedenFormati.NormalCalisma); }); return(servis_IsEmirleri.orderByDesc(t => t.TeknisyenDurumResim).toList()); }
public override object ExecuteReport(MethodReturn refMr = null) { List <RptServisIsEmirlerInfo01> isEmirler = null; List <RptServisTeknisyenInfo> servisTeknisyenler = null; List <HareketUstBilgi> hareketUstBilgiler = null; List <HareketNeden> hareketNedenler = null; List <TeknisyenHareket> teknisyenHareketler = null; List <ServisGunMola> servisGunMolalari = null; PuantajGunlugu pg = new PuantajGunlugu(); List <decimal> isEmirIdler = null; //ToplamGunHesapla(); //isEmirler = R.Query<RptServisIsEmirlerInfo01>(refMr).Where(t => t.SERVISID == pServisId && t.KAYITTARIH.Between(pStart, pFinish) && t.TEKNIKOLARAKTAMAMLA == 1).ToList(); isEmirler = R.Query <RptServisIsEmirlerInfo01>(refMr).Where(t => t.SERVISID == ServisId && t.KAYITTARIH.Between(StartDate, FinishDate)).ToList(); if (refMr.ok()) { isEmirIdler = isEmirler.select(t => t.ID).toList(); servisTeknisyenler = R.Query <RptServisTeknisyenInfo>(refMr).Where(t => t.SERVISID == ServisId).ToList(); } if (refMr.ok()) { hareketUstBilgiler = HareketUstBilgi.Select_IsEmirler_UstHareketBilgileri(isEmirIdler, refMr); } if (refMr.ok()) { hareketNedenler = HareketNeden.Select_Nedenler(); } if (refMr.ok()) { servisGunMolalari = ServisGunMola.SelectServisGunMolalar(ServisId, refMr); } //if (refMr.ok()) // pg.InitNedenler(hareketNedenler); if (refMr.ok()) { teknisyenHareketler = TeknisyenHareket.Select_IsEmirler_TeknisyenHareketleri(isEmirIdler, refMr); } decimal faturalananCarpan = 0.90m; decimal oran = 5; foreach (RptServisTeknisyenInfo teknisyenInfo in servisTeknisyenler) { oran += 0.6m; //faturalananCarpan += 0.01m; List <TeknisyenHareket> hareketler = teknisyenHareketler.where (t => t.SERVISTEKNISYENID == teknisyenInfo.ID).ToList().orderBy(t => t.GIRISTARIHI).toList(); List <decimal> ustBilgiIdler = hareketler.select(t => t.THRKUSTBILGIID).toList(); int toplamGun = hareketler.select(t => t.GIRISTARIHI.Date).Distinct().Count(); List <HareketUstBilgi> ustBilgiler = hareketUstBilgiler.where (t => ustBilgiIdler.contains(t.ID)).toList(); List <decimal> iscilikIdler = ustBilgiler.select(t => t.ISEMIRISLEMISCILIKID).toList(); TeknisyenHareketDagilimSonuclari hamPntjData = Puantaj.GetPuantajSonuclari(hareketler, pg, servisGunMolalari, hareketNedenler); //teknisyenInfo.FiiliCalisma = hamPntjData.GetSonucSure(NedenFormati.NormalCalisma); teknisyenInfo.NetMevcudiyet = (gunlukNetCalismaSuresi * toplamGun) * 60; teknisyenInfo.FiiliCalisma = teknisyenInfo.NetMevcudiyet.RemovePercent(oran).RoundToDecimals(0); teknisyenInfo.FaturalananDakika = (teknisyenInfo.FiiliCalisma * faturalananCarpan).RoundToDecimals(0); //List<Teknisyen_ViewServisIsEmirIslemIscilikler> iscilikler = Teknisyen_ViewServisIsEmirIslemIscilikler.SelectOverloadFromIDs(iscilikIdler); //if (iscilikler.isNotEmpty()) // teknisyenInfo.FaturalananDakika = iscilikler.Sum(t => t.Iscilik_Dakika_Suresi); } Toplam sonuc = new Toplam() { ToplamFaturalananDakika = servisTeknisyenler.Sum(t => t.FaturalananDakika), ToplamNetMevcudiyet = servisTeknisyenler.Sum(t => t.NetMevcudiyet), ToplamFiiliCalisma = servisTeknisyenler.Sum(t => t.FiiliCalisma), }; servisTeknisyenler.forEach(servisTeknisyen => { servisTeknisyen.Sonuc = sonuc; }); CloseCustomAppPool(); return(servisTeknisyenler); }