예제 #1
0
        /// <summary>
        /// 0 = Hareketi Yok, veya Devam Etmesi Gereken Hareketi Yok, veya Giris Hareketi Yok
        /// </summary>
        /// <param name="servisId"></param>
        /// <param name="servisTeknisyenId"></param>
        /// <param name="isEmirId"></param>
        /// <param name="isEmirIslemId"></param>
        /// <returns></returns>
        public static decimal IslemeGirisYapabilirMi(decimal servisId, decimal servisTeknisyenId, decimal isEmirId, decimal isEmirIslemId, MethodReturn mr = null)
        {
            decimal result = 0;

            using (var ap = SasonBaseApplicationPool.CreateMask)
            {
                /*
                 * Eğer giriş veya devam etmesi Gereken hareketleri varsa
                 */
                List <TEKNISYENHAREKET> hareketler = GetGirisVeyaDevamEtmesiGerekenHareketler(servisTeknisyenId, mr);
                if (hareketler.isNotEmpty())
                {
                    TEKNISYENHAREKET girisHareketi = hareketler.first(t => t.DURUM == YeniTeknisyenHareketDurum.Giris);
                    if (girisHareketi.isNotNull())
                    {
                        if (girisHareketi.ISEMIRISLEMID != isEmirIslemId)
                        {
                            result = -1;
                        }
                        else
                        {
                            result = girisHareketi.ID;
                        }
                    }
                    else
                    {
                        TEKNISYENHAREKET devamBekliyor = hareketler.first(t => t.DURUM == YeniTeknisyenHareketDurum.DevamBekliyor);
                        if (devamBekliyor.isNotNull())
                        {
                            result = devamBekliyor.ID;
                        }
                    }
                }
            }
            return(result);
        }
예제 #2
0
        public static void CikisiYapilmamisHareketiKapat(decimal servisId, decimal servisTeknisyenId)
        {
            MethodReturn mr = new MethodReturn();

            using (var ap = SasonBaseApplicationPool.CreateMask)
            {
                TEKNISYENHAREKET oncekiHareket = R.Query <TEKNISYENHAREKET>(mr).First(t => t.SERVISID == servisId && t.SERVISTEKNISYENID == servisTeknisyenId && t.GIRISTARIHI < DateTime.Now.startOfDay() && t.DURUM == YeniTeknisyenHareketDurum.Giris);
                if (oncekiHareket.isNotNull())
                {
                    ServisGunMola servisGunMola = ServisGunMola.SelectServisGunMola(servisId, oncekiHareket.GIRISTARIHI.DayOfWeek, mr).createIsNull();
                    if (servisGunMola.BitisSaati == 0)
                    {
                        servisGunMola.BitisSaati = 1080;
                    }

                    //giriş tarihine ait çalışma gününün çıkış saati set edilecek
                    oncekiHareket.CIKISTARIHI           = oncekiHareket.GIRISTARIHI.startOfDay().AddMinutes(servisGunMola.BitisSaati);
                    oncekiHareket.CIKISNEDENID          = 21;
                    oncekiHareket.DURUM                 = YeniTeknisyenHareketDurum.Cikis;
                    oncekiHareket.EXTCSERVISTEKNISYENID = -1;//System User
                    oncekiHareket.Update();
                }
            }
        }