//Bu işlevi sadece labpers çalıştırabilir
    protected void lnkSeciliIsteklereOnayVer_Click(object sender, EventArgs e)
    {
        int IstekNo = int.Parse(txtIstekNo.Text.Trim());
        int Yil = int.Parse(txtYil.Text.Trim());
        string KullanilacakFaturaNo="";
        EFDal ed = new EFDal();
        int BolgeKodu = ed.kal_BolgeKoduDon(Context.User.Identity.Name);
        string VirgulleAyrilmisIDler = GridUzerindeSecilmisSatirlarinIdleriniDon();
        string[] IstIdler = VirgulleAyrilmisIDler.Split(',');
        if (VirgulleAyrilmisIDler != "")
        {
            //İlk Onay geldiginde ve bu istek no içinde daha once onay alan hiç IstId olmadiginda, alinan ilk Fatura no yu paket içindeki  tüm  IstIdler için ata.Boylece baslangicta istenirse sonradan bölünmek üzere tümünün bir FatNoSu olsun
            using (Service1Client proxy = new Service1Client())
            {
                //List<kal_IstekNoIcinDahaOnceAlinmisFaturaNumarasiniDon_Result> IstekIcinDahaOnceAlinmisFaturaNo = proxy.IstekNoIcinDahaOnceAlinmisFaturaNumarasiniDon(BolgeKodu, Yil, IstekNo).ToList();
                //if (IstekIcinDahaOnceAlinmisFaturaNo.First().FATURANO.Length > 3)//Evet birisi daha once bu istek no için bir fatno almış
                //{
                //}
                //else//Hayır! Bu istek paketi için daha önce hiçkimsecikler faturano almamış
                //{
                //    KullanilacakFaturaNo = DateTime.Now.ToString("dd/MM/yy").Replace(".", "") + "-" + ed.kal_FaturaOnYaziIcinSiradakiGunlukSiraNoDon(BolgeKodu).ToString();
                //    proxy.FaturaOnYaziTablosundaBelirliBirIstekNoIcinFaturaNoAta(BolgeKodu, Yil, IstekNo, KullanilacakFaturaNo);
                //}

                foreach (var item in IstIdler)
                {
                    if (!KayitKilitlimi(int.Parse(item)))//yani daha once onay almis mi?
                    {
                       if (proxy.OnayaUygunMu(int.Parse(item)) == "")// "" olarak yani boş string gelirse sorun yok. Böyle gelmezse stringi hata tanımı olarak bas
                            {
                                proxy.OnaylanmisIsteklereEkle(int.Parse(item));
                                List<kal_IstekNoIcinDahaOnceAlinmisFaturaNumarasiniDon_Result> IstekIcinDahaOnceAlinmisFaturaNo = proxy.IstekNoIcinDahaOnceAlinmisFaturaNumarasiniDon(BolgeKodu, Yil, IstekNo).ToList();

                                if (IstekIcinDahaOnceAlinmisFaturaNo.First().FATURANO.Length > 3)//Evet birisi daha once bu istek no için bir fatno almış
                                {
                                    KullanilacakFaturaNo = IstekIcinDahaOnceAlinmisFaturaNo.First().FATURANO;
                                    proxy.IstIdliFaturaOnyaziKaydinaFaturaNoAta(int.Parse(item), IstekIcinDahaOnceAlinmisFaturaNo.First().FATURANO);
                                }
                                else//Hayır! Bu istek paketi için daha önce hiçkimsecikler faturano almamış
                                {
                                    //İlk Onay geldiginde ve bu istek no içinde daha once onay alan hiç IstId olmadiginda, alinan ilk Fatura no yu paket içindeki  tüm  IstIdler için ata.Boylece baslangicta istenirse sonradan bölünmek üzere tümünün bir FatNoSu olsun
                                    KullanilacakFaturaNo = DateTime.Now.ToString("dd/MM/yy").Replace(".", "") + "-" + ed.kal_FaturaOnYaziIcinSiradakiGunlukSiraNoDon(BolgeKodu).ToString();
                                    //proxy.IstIdliFaturaOnyaziKaydinaFaturaNoAta(int.Parse(item), KullanilacakFaturaNo);
                                    //FaturaOnYaziTablosundaBelirliBirIstekNoIcinFaturaNoAta fonksiyonunda FATONYAZITAR i DateTime.Now olarak güncelle
                                    proxy.FaturaOnYaziTablosundaBelirliBirIstekNoIcinFaturaNoAta(BolgeKodu, Yil, IstekNo, KullanilacakFaturaNo, ed.kal_FaturaOnYaziIcinSiradakiGunlukSiraNoDon(BolgeKodu));//istek içindeki tüm kayitlara ilk onay işlmei sırasında Fatno atanadı
                                }
                            }
                            else
                            {
                                string radalertscript = "<script language='javascript'>function f(){radalert('" + item + " IstIdli cihaz onaya uygun değil.Hata tanımı:" + proxy.OnayaUygunMu(int.Parse(item)) + "', 330, 210); Sys.Application.remove_load(f);}; Sys.Application.add_load(f);</script>";
                                Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", radalertscript);
                            }
                    }
                }
                //int DahaOnayVerilmemisCihazSayisi = proxy.kal_IstekIcindeOnayVerilmemisIstIdleriDon_ResultDon((short)BolgeKodu, Yil, IstekNo).Count();
                int DahaOnayVerilmemisCihazSayisi = proxy.FaturaNoIcindeOnayVerilmemisIstIdleriDon((short)BolgeKodu, KullanilacakFaturaNo).Count();
                if (DahaOnayVerilmemisCihazSayisi > 0)
                {
                    string radalertscript = "<script language='javascript'>function f(){radalert('Onaylama işlemi başarılı. Ancak bu istek numarası içerisinde hala onay bekleyen  " + DahaOnayVerilmemisCihazSayisi.ToString() + "   adet cihaz bulunmaktadır. ', 330, 210); Sys.Application.remove_load(f);}; Sys.Application.add_load(f);</script>";
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", radalertscript);
                }
                else//Yani onay gelmeyen cihaz kalmamış
                {
                    //if (!proxy.IstekNoDahaOnceFaturaOnyaziyaHazirlarTablosunaEklenmismi(BolgeKodu, Yil, IstekNo))
                    if (!proxy.FaturaNoDahaOnceFaturaOnyaziyaHazirlarTablosunaEklenmismi(BolgeKodu, KullanilacakFaturaNo))//hata burada
                    {
                        //proxy.FaturaOnYaziyaHazirIstekNolaraEkle(Yil, (short)BolgeKodu, IstekNo, DateTime.Now, "-", false);//false yaptık çünkü daha faturaönyazi bastirilmadi.
                        proxy.FaturaOnYaziyaHazirFaturaNolaraEkle(Yil, (short)BolgeKodu, KullanilacakFaturaNo, DateTime.Now, "-", false);//false yaptık çünkü daha faturaönyazi bastirilmadi.
                        //Önbüroya görünür durumda kalacak.Önbüro işini yaptıktan sonra görünmez duruma getirmek için bir tetikleyici gerekli
                    }
                }
                //Burada birde bu istekno için artık bir faturano saptamalıyız. Bunun için yapacağıomız daha önce bu  istek numarası için bir kullanıcıcın
                //faturano alip almadiginikontrol etmek olacak önceliklle.Eger istek için alınan bir fatura no  yoksa gecerli bir faturano alınmalı.Eger istek icin
                //daha önce bir fatura no alındı ise bu fatıra no kullanılmalı

                if (chkOnaylarkenMasrafIncelemedeVermekIsterim.Checked)
                {
                    //MasrafIncelemeBedelleri tablosunda Bu
                    if (!proxy.KullaniciIstekNoIcinDahaOnceMasrafIncelemeGirmismi(KullanilacakFaturaNo, Context.User.Identity.Name))
                    {
                        MasrafIncelemePostaBedeliIsle();
                    }
                    else
                    {
                        string radalertscript = "<script language='javascript'>function f(){radalert('Onaylama işlemi başarılı. Ancak bu istek numarası için daha önce sizin tarafınızdan masraf, inceleme ya da posta bedeli girilmiş. İkinci kez bu masrafları giremezsiniz. ', 330, 210); Sys.Application.remove_load(f);}; Sys.Application.add_load(f);</script>";
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", radalertscript);
                    }
                }
            }

            }

        else
        {
            string radalertscript = "<script language='javascript'>function f(){radalert('Seçili cihaz yok. Listeden en az bir cihaz seçip yeniden deneyiniz', 330, 210); Sys.Application.remove_load(f);}; Sys.Application.add_load(f);</script>";
            Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", radalertscript);
        }

        YilIstekAltIstekNoAramadanGridiBagla();
    }
    protected void lnkFaturaBolme_Click(object sender, EventArgs e)
    {
        string DahaOnceBolunmusFaturaKapsaminaAlinanIstIdler = "";
        int IstekNo = int.Parse(txtIstekNo.Text.Trim());
        short SiradakiFaturaAltNo = 0;
        string BolunecekFaturaNo="";
        int Yil = int.Parse(txtYil.Text.Trim());
        EFDal ed = new EFDal();
        int BolgeKodu = ed.kal_BolgeKoduDon(Context.User.Identity.Name);
        string UserName=Context.User.Identity.Name;
        string VirgulleAyrilmisIDler = GridUzerindeSecilmisSatirlarinIdleriniDon();
        string[] IstIdler = VirgulleAyrilmisIDler.Split(',');
        //Once bir kontrol et. Daha once bolunmus fatura kapsamına alınan bir ıstId var mı?
        if (VirgulleAyrilmisIDler != "")
        {
            using (Service1Client proxy = new Service1Client())
            {
                int Sayac = 0;
                foreach (var item in IstIdler)
                {
                    if (proxy.IstIdDahaOnceBolunmusBirFaturaKapsaminaAlinmimi(int.Parse(item)))
                    {
                        if (Sayac == 0)
                        {
                            DahaOnceBolunmusFaturaKapsaminaAlinanIstIdler += item;
                        }
                        else
                        {
                            DahaOnceBolunmusFaturaKapsaminaAlinanIstIdler += "," + item;
                        }
                        Sayac++;
                    }
                }
                //bool bak= proxy.IstIdDahaOnceBolunmusBirFaturaKapsaminaAlinmimi(158150);
            }
            if (DahaOnceBolunmusFaturaKapsaminaAlinanIstIdler == "")//Hiçbir IstID daha once bolunmus fat kapsaminda değil
            {
                    //foreach (var item in IstIdler)
                    //{
                    using (Service1Client proxy = new Service1Client())
                    {
                        //Fatura Bolme işlemi uygulanacak cihazlar mutlaka onay almışlardır onaylama işlemi sırasında. Bu nedenle FaturaNo verilmiş mi neyin bakmak gereksiz!
                        List<kal_IstekNoIcinDahaOnceAlinmisFaturaNumarasiniDon_Result> IstekIcinDahaOnceAlinmisFaturaNo = proxy.IstekNoIcinDahaOnceAlinmisFaturaNumarasiniDon(BolgeKodu, Yil, IstekNo).ToList();
                        if (IstekIcinDahaOnceAlinmisFaturaNo.First().FATURANO.Length > 3)//Evet birisi daha once bu istek no için bir fatno almış
                        {
                            BolunecekFaturaNo = IstekIcinDahaOnceAlinmisFaturaNo.First().FATURANO;//Aha bölünecek daha önce onay aşamasında alınan FaturaNo elimizde artıkın
                            SiradakiFaturaAltNo = (short)proxy.BelirliBolunmusFaturaIcinSiradakiFaturaAltNoDon((short)BolgeKodu, BolunecekFaturaNo).ToList().First().SiradakiFaturaNo;
                            proxy.BolunmusFaturalarTablosunaEkle(BolunecekFaturaNo, SiradakiFaturaAltNo);
                            //Şİmdi Böldüğümüz tarafta bulalan istek kayıtlarını FaturaNosunu yeni AltFaturaNo eklnemiş biçimde güncellemeliyiz
                            proxy.BolunmedenSonraFaturaOnyaziTablundakiFaturaNoSunuBolunmusFaturaNoIleGuncelle(VirgulleAyrilmisIDler, BolunecekFaturaNo + "&" + SiradakiFaturaAltNo);
                            //Ve nihai sonuc olarak FaturaOnyaziyaHazirFaturaNolar tablosuna ekle.Eklendikten sonra Onburo önüne görev olarak da düşecek
                            string YazilacakFaturaNo = BolunecekFaturaNo + "&" + SiradakiFaturaAltNo;
                            if(!proxy.FaturaNoDahaOnceFaturaOnyaziyaHazirlarTablosunaEklenmismi(BolgeKodu,YazilacakFaturaNo))
                            {
                                proxy.FaturaOnYaziyaHazirFaturaNolaraEkle(Yil, (short)BolgeKodu, YazilacakFaturaNo, DateTime.Now, UserName, false);//false cunku daha bastırılmadı
                            }

                        }
                        else//Hayır! Bu istek paketi için daha önce hiçkimsecikler faturano almamış.Bu aşamada bu büyük bir öngörü hatası oluyor
                        {
                            string radalertscript = "<script language='javascript'>function f(){radalert('Büyük Hata. Fatura bölme işlemine kadar gelinmiş olmasına rağmen hala istek paketine verilmiş bir fatura numarası yok. Bu durumu yöneticiye bildiriniz lütfen', 330, 210); Sys.Application.remove_load(f);}; Sys.Application.add_load(f);</script>";
                            Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", radalertscript);
                        }
                    }
                //YilIstekAltIstekNoAramadanGridiBagla();
            }
            else//Grup içindeki IstIdlerden bazıları bolunmus fat kapsamı içinde bu durumda hiçbir işlem yapılmayıp uyarı için bilgi toplanacak
            {
                int BolunmusFaturaIcerenIstekNo = 0;
                string FaturaNo = "";
                string[] BolunmusFaturaIcindeYerAlaIstIdler = DahaOnceBolunmusFaturaKapsaminaAlinanIstIdler.Split(',');
                using (Service1Client proxy = new Service1Client())
                {
                    BolunmusFaturaIcerenIstekNo = int.Parse(proxy.kal_IstIddenIstekDon(int.Parse(BolunmusFaturaIcindeYerAlaIstIdler[0].ToString()), BolgeKodu).Tables[0].Rows[0]["ISTEKNO"].ToString());
                    int Sayac = 0;
                    foreach (var item in BolunmusFaturaIcindeYerAlaIstIdler)
                    {
                        if (Sayac == 0)
                        {
                            FaturaNo += proxy.IstIdliCihazinFaturaNosunuDon(int.Parse(item));
                        }
                        else
                        {
                            FaturaNo += ", " + proxy.IstIdliCihazinFaturaNosunuDon(int.Parse(item));
                        }
                        Sayac++;
                    }
                    //string[] BolunmusFaturalarIcindeYerAlanIstIdleriIcerenFaturaNolar = FaturaNo.Split(',');
                }
                string AlertMessage = BolunmusFaturaIcerenIstekNo + " istek numarası içinde yer alan ve faturasını bölmek istediğiniz " + DahaOnceBolunmusFaturaKapsaminaAlinanIstIdler + " numaralı IstIdler, daha önce " + FaturaNo + " numaralı faturalarda yer almaktadırlar. Bu durumu ortadan kaldırmadan sonraki aşamaya geçemezsiniz. Bir istek kaydı en fazla bir fatura numarası içerisinde yer alabilir!";
                string radalertscript = "<script language='javascript'>function f(){radalert('" + AlertMessage + "', 330, 210); Sys.Application.remove_load(f);}; Sys.Application.add_load(f);</script>";
                Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", radalertscript);
            }
        }
        else
        {
            string radalertscript = "<script language='javascript'>function f(){radalert('Seçili cihaz yok. Listeden en az bir cihaz seçip yeniden deneyiniz', 330, 210); Sys.Application.remove_load(f);}; Sys.Application.add_load(f);</script>";
            Page.ClientScript.RegisterStartupScript(this.GetType(), "radalert", radalertscript);
        }
    }