public override object ExecuteReport(MethodReturn refMr = null) { List <SERVISTEKNISYEN_REPORT_DATA> servisTeknisyenler = R.Query <SERVISTEKNISYEN_REPORT_DATA>(refMr).Where(t => t.SERVISID == ServisId).ToList(); //Tarih Aralığında Personelin Hareketlerini Bul List <TEKNISYENHAREKET> hareketler = R.Query <TEKNISYENHAREKET>(refMr).Where(t => t.GIRISTARIHI.Between(StartDate.startOfDay(), FinishDate.endOfDay()) && t.SERVISTEKNISYENID.In(servisTeknisyenler.select(tks => tks.ID)) && t.DURUM == YeniTeknisyenHareketDurum.Cikis).ToList(); //Bu Hareketlerde Kullanılan İşEmirİşlemleri Çek List <Teknisyen_ViewServisIsEmirIslemIscilikler> iscilikler = Teknisyen_ViewServisIsEmirIslemIscilikler.SelectOverloadFromISLEMID(hareketler.select(t => t.ISEMIRISLEMID).Distinct().toList()); PuantajGunlugu pg = new PuantajGunlugu(); List <ServisGunMola> servisGunMolalari = ServisGunMola.SelectServisGunMolalar(ServisId, refMr); List <HareketNeden> hareketNedenler = HareketNeden.Select_Nedenler(); foreach (SERVISTEKNISYEN_REPORT_DATA servisTeknisyen in servisTeknisyenler) { var teknisyenHareketler = hareketler.where (t => t.SERVISTEKNISYENID == servisTeknisyen.ID).orderBy(t => t.GIRISTARIHI).toList(); List <decimal> teknisyenIslemIds = teknisyenHareketler.select(t => t.ISEMIRISLEMID).Distinct().toList(); var teknisyenIscilikler = iscilikler.where (t => teknisyenIslemIds.contains(t.SERVISISEMIRISLEMID)).toList(); servisTeknisyen.Faturalanan_Dakika = (int)teknisyenIscilikler.Sum(t => t.Iscilik_Dakika_Suresi); List <DateTime> tarihler = teknisyenHareketler.select(t => t.GIRISTARIHI.Date).Distinct().toList(); foreach (var tarih in tarihler) { var firstIn = teknisyenHareketler.where (t => t.GIRISTARIHI.Date == tarih).first().GIRISTARIHI; var lastOut = teknisyenHareketler.where (t => t.GIRISTARIHI.Date == tarih).last().CIKISTARIHI; servisTeknisyen.NetMevcudiyet_Dakika += (int)(lastOut - firstIn).TotalMinutes; } TEKNISYENHAREKET.DAGILIM_SONUCLARI hamPntjData = Puantaj.GetPuantajSonuclari(teknisyenHareketler, pg, servisGunMolalari, hareketNedenler); servisTeknisyen.FiiliCalisma_Dakika = hamPntjData.GetSonucSure(NedenFormati.NormalCalisma); } return(servisTeknisyenler); }
public static List <Teknisyen_ViewServisIsEmirIslemIscilikler> Select_IsEmirIslem_Iscilikleri_View(decimal isEmirIslemId, decimal servisTeknisyenId) { List <Teknisyen_ViewServisIsEmirIslemIscilikler> list = R.Query <Teknisyen_ViewServisIsEmirIslemIscilikler>().Where(t => t.SERVISISEMIRISLEMID == isEmirIslemId).ToList(); List <HareketUstBilgi> isEmirIslem_UstHareketBilgileri = HareketUstBilgi.Select_IsEmirIslem_UstHareketBilgileri(isEmirIslemId); List <TeknisyenHareket> isEmirIslem_TeknisyenHareketleri = TeknisyenHareket.Select_IsEmirIslem_TeknisyenHareketleri(isEmirIslemId); decimal servisId = isEmirIslem_UstHareketBilgileri.first().SERVISID; List <ServisGunMola> servis_gun_molalar = ServisGunMola.SelectServisGunMolalar(servisId); List <HareketNeden> nedenler = HareketNeden.Select_Nedenler(); PuantajGunlugu pg = new PuantajGunlugu(); pg.InitNedenler(nedenler); list.forEach(iscilik => { List <HareketUstBilgi> iscilik_UstBilgileri = isEmirIslem_UstHareketBilgileri.where (t => t.ISEMIRISLEMISCILIKID == iscilik.ID).toList(); List <TeknisyenHareket> iscilik_TeknisyenHareketleri = null; List <TeknisyenHareket> servisTeknisyenHareketleri = null; iscilik.TeknisyenIsDurumu = LocalHelpers.GetTeknisyenDurum(servisTeknisyenId, isEmirIslem_TeknisyenHareketleri, iscilik_UstBilgileri, out iscilik_TeknisyenHareketleri, out servisTeknisyenHareketleri); if (iscilik_UstBilgileri.isNotEmpty()) { iscilik.PlanlananSure = iscilik_UstBilgileri.Sum(t => t.PLANLANANSURE); } TeknisyenHareketDagilimSonuclari puantajSonuclari = Puantaj.GetPuantajSonuclari(iscilik_TeknisyenHareketleri, pg, servis_gun_molalar, nedenler); iscilik.CalisilanSure = puantajSonuclari.GetSonucSure(NedenFormati.NormalCalisma); iscilik.TeknisyenSure = puantajSonuclari.GetSonucSure(servisTeknisyenId, NedenFormati.NormalCalisma); }); return(list); }
public static List <Teknisyen_ViewServisIsEmirIslemler> Select_IsEmir_Islemler_View(decimal ownerIsEmirId, decimal servisTeknisyenId) { MethodReturn mr = new MethodReturn(); List <Teknisyen_ViewServisIsEmirIslemler> servisIsEmirIslemler = R.Query <Teknisyen_ViewServisIsEmirIslemler>(mr).Where(t => t.SERVISISEMIRID == ownerIsEmirId).ToList(); List <HareketUstBilgi> isEmir_UstHareketBilgileri = HareketUstBilgi.Select_IsEmir_UstHareketBilgileri(ownerIsEmirId, mr); List <TeknisyenHareket> isEmir_TeknisyenHareketleri = TeknisyenHareket.Select_IsEmir_TeknisyenHareketleri(ownerIsEmirId, mr); List <Teknisyen_ViewServisIsEmirIslemIscilikler> isEmir_Iscilikleri = Teknisyen_ViewServisIsEmirIslemIscilikler.Select_IsEmir_Iscilikleri(ownerIsEmirId); decimal servisId = isEmir_UstHareketBilgileri.first().SERVISID; List <ServisGunMola> servis_gun_molalar = ServisGunMola.SelectServisGunMolalar(servisId); List <HareketNeden> nedenler = HareketNeden.Select_Nedenler(); PuantajGunlugu pg = new PuantajGunlugu(); pg.InitNedenler(nedenler); servisIsEmirIslemler.forEach(islem => { List <HareketUstBilgi> islem_UstBilgileri = isEmir_UstHareketBilgileri.where (t => t.ISEMIRISLEMID == islem.ID).toList(); List <TeknisyenHareket> islem_TeknisyenHareketleri = null; List <TeknisyenHareket> servisTeknisyenHareketleri = null; islem.TeknisyenIsDurumu = LocalHelpers.GetTeknisyenDurum(servisTeknisyenId, isEmir_TeknisyenHareketleri, islem_UstBilgileri, out islem_TeknisyenHareketleri, out servisTeknisyenHareketleri);; var iscilikler = isEmir_Iscilikleri.where (t => t.SERVISISEMIRISLEMID == islem.ID).toList(); islem.ToplamIscilikSayisi = iscilikler.count(); if (islem_TeknisyenHareketleri.isNotEmpty()) { islem.CalisilanSure = servisTeknisyenHareketleri.Sum(t => t.CalismaDakika); } if (islem_UstBilgileri.isNotEmpty()) { islem.PlanlananSure = islem_UstBilgileri.Sum(t => t.PLANLANANSURE); } TeknisyenHareketDagilimSonuclari puantajSonuclari = Puantaj.GetPuantajSonuclari(islem_TeknisyenHareketleri, pg, servis_gun_molalar, nedenler); islem.CalisilanSure = puantajSonuclari.GetSonucSure(NedenFormati.NormalCalisma); islem.TeknisyenSure = puantajSonuclari.GetSonucSure(servisTeknisyenId, NedenFormati.NormalCalisma); }); return(servisIsEmirIslemler); }
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); }