public override object ExecuteReport(MethodReturn refMr = null)
        {
            List <ReportData> reportDataSource = new List <ReportData>();

            PuantajGunlugu           pg                       = new PuantajGunlugu();
            List <ServisGunMola>     gunMolalar               = ServisGunMola.SelectServisGunMolalar(ServisId, refMr);
            HareketNedenContainer    nedenContainer           = new HareketNedenContainer(R.Query <HareketNeden>(refMr).ToList());
            List <HareketNeden>      nedenler                 = nedenContainer.ToList();
            ServisTeknisyenContainer servisTeknisyenContainer = null;

            if (ServisTeknisyenIds.isEmpty())
            {
                servisTeknisyenContainer = new ServisTeknisyenContainer(R.Query <ServisTeknisyen>(refMr).Where(t => t.SERVISID == ServisId).ToList());
            }
            else
            {
                servisTeknisyenContainer = new ServisTeknisyenContainer(R.Query <ServisTeknisyen>(refMr).Where(t => t.ID.In(ServisTeknisyenIds)).ToList());
            }

            List <RptIsEmir>       isEmirler          = R.Query <RptIsEmir>(refMr).Where(t => t.SERVISID == ServisId && t.KAYITTARIH.Between(StartDate, FinishDate)).ToList();
            List <HareketUstBilgi> hareketUstBilgiler = HareketUstBilgi.Select_UstBilgiler_FromBig_IsEmirIds(isEmirler.select(i => i.ID));
            TeknisyenHareketContainer <RptTeknisyenHareket> teknisyenHareketContainer = new TeknisyenHareketContainer <RptTeknisyenHareket>(RptTeknisyenHareket.Select_From_UstBilgi_Ids <RptTeknisyenHareket>(hareketUstBilgiler.select(u => u.ID)).ToList());

            isEmirler.forEach(isEmir =>
            {
                isEmir.Islemler.forEach(islem =>
                {
                    islem.Iscilikler.forEach(iscilik =>
                    {
                        HareketUstBilgi ustBilgi = hareketUstBilgiler.first(t => t.ISEMIRISLEMISCILIKID == iscilik.ID);
                        if (ustBilgi.isNotNull())
                        {
                            teknisyenHareketContainer.GetUstBilgiHareketler(ustBilgi.ID).forEach(hr =>
                            {
                                ServisTeknisyen servisTeknisyen = servisTeknisyenContainer[hr.SERVISTEKNISYENID];
                                if (servisTeknisyen.isNotNull())
                                {
                                    ReportData reportData = new ReportData()
                                    {
                                        Teknisyen          = servisTeknisyen,
                                        Hareket            = hr,
                                        IsEmir             = isEmir,
                                        IsEmirIslem        = islem,
                                        IsEmirIslemIscilik = iscilik
                                    };

                                    hr.GirisNeden = nedenContainer[hr.GIRISNEDENID];
                                    hr.CikisNeden = nedenContainer[hr.CIKISNEDENID];

                                    hr.PSonuc  = Puantaj.GetPuantajSonuclari(hr.MakeList(), pg, gunMolalar, nedenler);
                                    hr.Calisma = hr.PSonuc.GetSonucSure(NedenFormati.NormalCalisma);

                                    reportDataSource.add(reportData);
                                }
                            });
                        }
                    });
                });
            });

            CloseCustomAppPool();
            return(reportDataSource);
        }
Beispiel #2
0
        public override object ExecuteReport(MethodReturn refMr = null)
        {
            List <ReportData> reportDataSource = new List <ReportData>();

            HareketNedenContainer    nedenContainer           = new HareketNedenContainer(R.Query <HareketNeden>(refMr).ToList());
            List <HareketNeden>      nedenler                 = nedenContainer.ToList();
            ServisTeknisyenContainer servisTeknisyenContainer = null;

            if (ServisTeknisyenIds.isEmpty())
            {
                servisTeknisyenContainer = new ServisTeknisyenContainer(R.Query <ServisTeknisyen>(refMr).Where(t => t.SERVISID == ServisId).ToList());
            }
            else
            {
                servisTeknisyenContainer = new ServisTeknisyenContainer(R.Query <ServisTeknisyen>(refMr).Where(t => t.ID.In(ServisTeknisyenIds)).ToList());
            }

            TeknisyenHareketContainer <RptTeknisyenHareket> teknisyenHareketContainer = new TeknisyenHareketContainer <RptTeknisyenHareket>(R.Query <RptTeknisyenHareket>(refMr).Where(h => h.SERVISTEKNISYENID.In(servisTeknisyenContainer.select(t => t.ID))).ToList());

            IEnumerable <decimal>  ustBilgiIds        = teknisyenHareketContainer.select(t => t.THRKUSTBILGIID);
            List <HareketUstBilgi> hareketUstBilgiler = null;

            if (ustBilgiIds.isNotEmpty())
            {
                hareketUstBilgiler = R.Query <HareketUstBilgi>(refMr).Where(t => t.ID.In(ustBilgiIds)).ToList();
            }

            List <ServisGunMola> gunMolalar = ServisGunMola.SelectServisGunMolalar(ServisId, refMr);

            List <RptIsEmir> isEmirler = R.Query <RptIsEmir>(refMr).Where(t => t.SERVISID == ServisId && t.KAYITTARIH.Between(StartDate, FinishDate)).ToList();

            PuantajGunlugu pg = new PuantajGunlugu();

            servisTeknisyenContainer.forEach(st =>
            {
                teknisyenHareketContainer.GetTeknisyenHareketler(st.ID).forEach(hr =>
                {
                    HareketUstBilgi ustBilgi = hareketUstBilgiler.first(t => t.ID == hr.THRKUSTBILGIID);

                    ReportData reportData = new ReportData()
                    {
                        Teknisyen = st,
                        Hareket   = hr,
                        IsEmir    = isEmirler.first(t => t.ID == ustBilgi?.ISEMIRID),
                    };

                    reportData.IsEmirIslem        = reportData.IsEmir?.Islemler.first(t => t.ID == ustBilgi?.ISEMIRISLEMID);
                    reportData.IsEmirIslemIscilik = reportData.IsEmirIslem?.Iscilikler.first(t => t.ID == ustBilgi?.ISEMIRISLEMISCILIKID);

                    hr.GirisNeden = nedenContainer[hr.GIRISNEDENID];
                    hr.CikisNeden = nedenContainer[hr.CIKISNEDENID];

                    hr.PSonuc  = Puantaj.GetPuantajSonuclari(hr.MakeList(), pg, gunMolalar, nedenler);
                    hr.Calisma = hr.PSonuc.GetSonucSure(NedenFormati.NormalCalisma);

                    reportDataSource.add(reportData);
                });
            });

            CloseCustomAppPool();
            return(reportDataSource);
        }
        public override object ExecuteReport(MethodReturn refMr = null)
        {
            List <ReportData> reportDataSource = new List <ReportData>();

            HareketNedenContainer    nedenContainer           = new HareketNedenContainer(R.Query <HareketNeden>(refMr).ToList());
            List <HareketNeden>      nedenler                 = nedenContainer.ToList();
            ServisTeknisyenContainer servisTeknisyenContainer = new ServisTeknisyenContainer(R.Query <ServisTeknisyen>(refMr).Where(t => t.SERVISID == ServisId).ToList());
            List <ServisGunMola>     gunMolalar               = ServisGunMola.SelectServisGunMolalar(ServisId, refMr);
            List <RptIsEmir>         isEmirler                = null;

            List <HareketUstBilgi> hareketUstBilgiler = null;

            TeknisyenHareketContainer <RptTeknisyenHareket> teknisyenHareketContainer = null;

            List <TModel01> sonHareketler = AppPool.EbaTestConnector.CreateQuery(@"
                    select
                        stek.id servisteknisyenid,thrk.sonhareketid, UB.ID USTBILGIID, UB.ISEMIRID, UB.ISEMIRISLEMID, UB.ISEMIRISLEMISCILIKID
                    from (select id, teknisyenid from servisteknisyenler where servisid = {servisId}) stek
                    left join (
                        select
                            servisteknisyenid,
                            max(id) sonHareketId
                        from
                            tteknisyenhrk
                        group by servisteknisyenid
                    ) thrk on THRK.SERVISTEKNISYENID = stek.id
                    left join tteknisyenhrk hrk2 on hrk2.id = thrk.sonhareketid
                    left join thrkustbilgi ub on ub.id = HRK2.THRKUSTBILGIID
                ")
                                            .Parameter("servisId", ServisId)
                                            .GetDataTable(refMr).ToModels <TModel01>();

            //.Select(t => new {
            //        TEKNISYENID = t.ColumnValue<decimal>("SERVISTEKNISYENID"),
            //        SONHAREKETID = t.ColumnValue<decimal>("SONHAREKETID"),
            //        USTBILGIID = t.ColumnValue<decimal>("USTBILGIID"),
            //        ISEMIRID = t.ColumnValue<decimal>("ISEMIRID"),
            //        ISEMIRISLEMID = t.ColumnValue<decimal>("ISEMIRISLEMID"),
            //        ISEMIRISLEMISCILIKID = t.ColumnValue<decimal>("ISEMIRISLEMISCILIKID")
            //});

            if (sonHareketler.isNotEmpty())
            {
                teknisyenHareketContainer = new TeknisyenHareketContainer <RptTeknisyenHareket>(R.Query <RptTeknisyenHareket>(refMr).Where(h => h.ID.In(sonHareketler.select(sh => sh.SONHAREKETID))).ToList());
                isEmirler          = R.Query <RptIsEmir>(refMr).Where(t => t.ID.In(sonHareketler.select(sh => sh.ISEMIRID))).ToList();
                hareketUstBilgiler = R.Query <HareketUstBilgi>(refMr).Where(t => t.ID.In(sonHareketler.select(sh => sh.USTBILGIID))).ToList();
            }

            PuantajGunlugu pg = new PuantajGunlugu();

            servisTeknisyenContainer.forEach(st =>
            {
                teknisyenHareketContainer.GetTeknisyenHareketler(st.ID).forEach(hr =>
                {
                    HareketUstBilgi ustBilgi = hareketUstBilgiler.first(t => t.ID == hr.THRKUSTBILGIID);

                    ReportData reportData = new ReportData()
                    {
                        Teknisyen = st,
                        Hareket   = hr,
                        IsEmir    = isEmirler.first(t => t.ID == ustBilgi?.ISEMIRID),
                    };

                    reportData.IsEmirIslem        = reportData.IsEmir?.Islemler.first(t => t.ID == ustBilgi?.ISEMIRISLEMID);
                    reportData.IsEmirIslemIscilik = reportData.IsEmirIslem?.Iscilikler.first(t => t.ID == ustBilgi?.ISEMIRISLEMISCILIKID);

                    hr.GirisNeden = nedenContainer[hr.GIRISNEDENID];
                    hr.CikisNeden = nedenContainer[hr.CIKISNEDENID];

                    hr.PSonuc  = Puantaj.GetPuantajSonuclari(hr.MakeList(), pg, gunMolalar, nedenler);
                    hr.Calisma = hr.PSonuc.GetSonucSure(NedenFormati.NormalCalisma);

                    reportDataSource.add(reportData);
                });
            });

            CloseCustomAppPool();
            return(reportDataSource);
        }