Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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);
        }