protected void btnKapsamaAl_Click(object sender, EventArgs e) { string PaketAdi=""; if (rdbrnlstPaketKapsamlari.SelectedIndex != -1) { try { EFDal ed = new EFDal(); int intIstId = 0; int PaketAdlariID = int.Parse(rdbrnlstPaketKapsamlari.SelectedValue); decimal PaketBedeli = ed.PaketBedeliniDon(PaketAdlariID); int PaketKapsamindakiCihazSayisi = ed.PaketKapsamindakiCihazSayisiniDon(PaketAdlariID); using (Service1Client proxy=new Service1Client()) { PaketAdi=proxy.PaketAdiDon(PaketAdlariID); } string SQL = "select max(PaketNo) as SiradakiPaketNo from PaketNumaralari"; DataSet ds = ed.Sorgula(SQL); int SiradakiPaketNo = int.Parse(ds.Tables[0].Rows[0]["SiradakiPaketNo"].ToString()) + 1; ds.Dispose(); string[] strings = Session["PaketKapsaminaAlinacakIDListesi"].ToString().Split(','); int PaketKapsaminaAlinmakIstenenToplamCihazSayisi = strings.Length; decimal PaketKapsaminaAlinacakHerCihazIcinSaptananOrtalamaBedel = PaketBedeli / PaketKapsaminaAlinmakIstenenToplamCihazSayisi; int[] ints = new int[strings.Length]; if (ints.Length <= PaketKapsamindakiCihazSayisi) { for (int i = 0; i < strings.Length; i++) { intIstId = int.Parse(strings[i]); // Provide some protection here //DalClass.Sil("delete from PaketNumaralari where IstId =" + ints[i].ToString());//önceki aynı ISTID li kayitlari sil //ilk önce Paketnumaraları tablosuna işle using (sfKalDataEntities ent = new sfKalDataEntities()) { PaketNumaralari oPaketNumaralari = new PaketNumaralari(); oPaketNumaralari.PaketNo = SiradakiPaketNo; oPaketNumaralari.IstID = intIstId; oPaketNumaralari.PaketAdlariID = int.Parse(rdbrnlstPaketKapsamlari.SelectedValue); oPaketNumaralari.Tarih = DateTime.Parse(DateTime.Now.ToString()); oPaketNumaralari.PaketKapsaminaAlan = Context.User.Identity.Name; ent.AddToPaketNumaralari(oPaketNumaralari); ent.SaveChanges(); //daha sonra istek tablosuna bu istidli cihazın paket kapsamına alındığını işle var oistek = (from c in ent.istek where c.ISTID == intIstId select c).First(); oistek.FATBEDEL = PaketKapsaminaAlinacakHerCihazIcinSaptananOrtalamaBedel; oistek.PAKETNOID = SiradakiPaketNo; ent.SaveChanges(); } } //BUrada daha sonra değişen kal bedellerini FatOnyazi tablosunda güncellememiz gerekiyor. //EFDal ed = new EFDal(); ed.kal_PaketKapsaminaAlinmadanSonraBedelleriGuncelleme(Session["PaketKapsaminaAlinacakIDListesi"].ToString(), PaketKapsaminaAlinacakHerCihazIcinSaptananOrtalamaBedel); /* using (Service1Client proxy = new Service1Client()) { proxy.kal_PaketKapsaminaAlinmadanSonraBedelleriGuncelleme(Session["PaketKapsaminaAlinacakIDListesi"].ToString(), PaketKapsaminaAlinacakHerCihazIcinSaptananOrtalamaBedel); }*/ lblUyari.ForeColor = System.Drawing.Color.Green; lblUyari.Text = "Paket kapsamına alma işlemi başarılı"; } else { lblUyari.ForeColor = System.Drawing.Color.Red; //lblUyari.Text = "Paket kapsamına almaya çalıştığınız cihaz sayısı, " + PaketAdi + " isimli ve " + PaketKapsamindakiCihazSayisi.ToString()+" adet cihaz içeren paket için fazladır.Lütfen kontrol ediniz."; lblUyari.Text = "Hata:Maksimum "+PaketKapsamindakiCihazSayisi.ToString() + " adet cihaz içeren "+PaketAdi+" isimli pakete, "+PaketKapsaminaAlinmakIstenenToplamCihazSayisi.ToString()+" adet cihaz yerleştirmeye çalışıyorsunuz.Lütfen bu paket kapsımına almaya çalıştığınız cihaz sayısını kontrol ediniz"; } } catch(Exception exc) { lblUyari.ForeColor = System.Drawing.Color.Red; lblUyari.Text = "Paket kapsamına alma işlemi başarısız"; } } else { lblUyari.ForeColor = System.Drawing.Color.Red; lblUyari.Text = "Öncelikle aşağıdan bir paket seçmelisiniz"; } }