private void SiparisKayit()
    {
        try
        {
            SiparisKayit siparis = new SiparisKayit
            {
                UyeId = uyeId,
                SiparisTuru = SiparisTuru.KrediKart,
                SiparisNo = siparisBilgi["siparisNo"],
                BankaAdi = ddlBankalar.SelectedItem.ToString(),
                BirimToplam = Convert.ToDecimal(siparisBilgi["BirimFiyatToplam"]),
                KdvTutar = Convert.ToDecimal(siparisBilgi["kdvToplam"]),
                GenelToplam = Convert.ToDecimal(siparisBilgi["FiyatToplam"]),
                KargoId = Convert.ToInt16(siparisBilgi["kargoId"]),
                KargoFiyat = Convert.ToDecimal(siparisBilgi["kargoFiyat"]),
                TaksitMiktari = bankRequest.Taksit,
                AylikTaksitTutari = bankRequest.TaksitFiyat,
                TaksitliGenelToplam = bankRequest.TaksitToplam,
                AdresId = Convert.ToInt32(siparisBilgi["adresId"]),
                FaturaId = Convert.ToInt32(siparisBilgi["faturaId"]),
                KullanilanPara = uyePuan,
                SiparisDurum = SiparisDurum.SiparisHazirlaniyor,
                Indirim = Convert.ToDecimal(siparisBilgi["indirim"]),
                Mesaj = Session["siparisMesaj"] != null ? Session["siparisMesaj"].ToString() : ""
            };

            bankRequest.SiparisId = SiparisDB.Kayit(siparis);
            KrediKartDB.Kaydet(bankRequest);
        }
        catch (Exception ex)
        {
            Mesaj.Alert("Kredi Kartı ile Ödeme Başarı ile Gelçekleşti <br/>"+
                        " Sipariş Kayıt edilirken hata oluştu müşteri "+
                        "temsilcimiz ile iletişime geçiniz.");
            LogManager.SqlDB.Write("Kredi kart ödeme yapıldı sipariş kaydı gelçekleşmedi hatası.", ex);
        }
    }
        public static int Kayit(SiparisKayit siparis)
        {
            int siparisId = 0;
            try
            {
                using (SqlConnection baglan = new SqlConnection(ConnectionString))
                {
                    baglan.Open();
                    using (SqlCommand kmt = new SqlCommand())
                    {
                        kmt.Connection = baglan;
                        kmt.CommandText = "siparis_KayitEkle";
                        kmt.CommandType = CommandType.StoredProcedure;
                        kmt.Parameters.Add("@uyeId", SqlDbType.Int);
                        kmt.Parameters["@uyeId"].Value = siparis.UyeId;
                        kmt.Parameters.Add("@siparisNo", SqlDbType.NVarChar);
                        kmt.Parameters["@siparisNo"].Value = siparis.SiparisNo;
                        kmt.Parameters.Add("@odemeTipi", SqlDbType.Int);
                        kmt.Parameters["@odemeTipi"].Value = (int)siparis.SiparisTuru;
                        kmt.Parameters.Add("@bankaAdi", SqlDbType.NVarChar);
                        kmt.Parameters["@bankaAdi"].Value = siparis.BankaAdi;
                        kmt.Parameters.Add("@siparisBirimToplami", SqlDbType.Money);
                        kmt.Parameters["@siparisBirimToplami"].Value = siparis.BirimToplam;
                        kmt.Parameters.Add("@siparisKdvTutari", SqlDbType.Money);
                        kmt.Parameters["@siparisKdvTutari"].Value = siparis.KdvTutar;
                        kmt.Parameters.Add("@siparisGenelToplami", SqlDbType.Money);
                        kmt.Parameters["@siparisGenelToplami"].Value = siparis.GenelToplam;
                        kmt.Parameters.Add("@kullanilanPara", SqlDbType.Money);
                        kmt.Parameters["@kullanilanPara"].Value = siparis.KullanilanPara;
                        kmt.Parameters.Add("@kargoId", SqlDbType.Int);
                        kmt.Parameters["@kargoId"].Value = siparis.KargoId;
                        kmt.Parameters.Add("@kargoToplam", SqlDbType.Money);
                        kmt.Parameters["@kargoToplam"].Value = siparis.KargoFiyat;
                        kmt.Parameters.Add("@taksitMiktari", SqlDbType.Int);
                        kmt.Parameters["@taksitMiktari"].Value = siparis.TaksitMiktari;
                        kmt.Parameters.Add("@aylikTaksitTutari", SqlDbType.Money);
                        kmt.Parameters["@aylikTaksitTutari"].Value = siparis.AylikTaksitTutari;
                        kmt.Parameters.Add("@TaksitliGenelToplami", SqlDbType.Money);
                        kmt.Parameters["@TaksitliGenelToplami"].Value = siparis.TaksitliGenelToplam;
                        kmt.Parameters.Add("@adresId", SqlDbType.Int);
                        kmt.Parameters["@adresId"].Value = siparis.AdresId;
                        kmt.Parameters.Add("@faturaId", SqlDbType.Int);
                        kmt.Parameters["@faturaId"].Value = siparis.FaturaId;
                        kmt.Parameters.Add("@siparisMesaj", SqlDbType.NVarChar);
                        kmt.Parameters["@siparisMesaj"].Value = siparis.Mesaj;
                        kmt.Parameters.Add("@durum", SqlDbType.Int);
                        kmt.Parameters["@durum"].Value = (int)siparis.SiparisDurum;
                        kmt.Parameters.Add("@indirim", SqlDbType.Money);
                        kmt.Parameters["@indirim"].Value = siparis.Indirim;

                        kmt.Parameters.Add("@deger_dondur", SqlDbType.Int);
                        kmt.Parameters["@deger_dondur"].Direction = ParameterDirection.Output;
                        kmt.ExecuteNonQuery();

                        siparisId = Convert.ToInt32(kmt.Parameters["@deger_dondur"].Value);
                    }
                }

                // Sipariş Kaydı Başarı ile oluştuysa sepet bilgilerini kaydı yapılacak
                if (siparisId != 0)
                {
                  SqlParameter[] sql = new SqlParameter[12];

                  SepetDB sepet = new SepetDB();

                  List<SepetSiparisKayit> sepetList = sepet.GetListForInsert(siparis.UyeId);

                  foreach (SepetSiparisKayit s in sepetList)
                    {
                        sql[0] = new SqlParameter("@siparisId", siparisId);
                        sql[1] = new SqlParameter("@sepetId", s.SepetId);
                        sql[2] = new SqlParameter("@urunId", s.UrunId);
                        sql[3] = new SqlParameter("@fiyat", s.Fiyat);
                        sql[4] = new SqlParameter("@Adet", s.Miktar);
                        sql[5] = new SqlParameter("@sagAdet", s.SagAdet);
                        sql[6] = new SqlParameter("@solAdet", s.SolAdet);
                        sql[7] = new SqlParameter("@sagBilgi", s.SagBilgi);
                        sql[8] = new SqlParameter("@solBilgi", s.SolBilgi);
                        sql[9] = new SqlParameter("@hediyeBilgi", s.HediyeBilgi);
                        sql[10] = new SqlParameter("@hediyeId", s.HediyeId);
                        sql[11] = new SqlParameter("@deger_dondur", SqlDbType.Int);
                        sql[11].Direction = ParameterDirection.Output;

                        SqlHelper.ExecuteNonQuery("siparis_DetayEkle", sql);

                        string urunId = sql[11].Value.ToString();
                        if (urunId != "0")
                        {
                            string str = string.Format("<a href='http://www.lensoptik.com.tr/Urun/{0}/Kiritik/UrunDetay.aspx'>{0}  Nolu Ürün kritik Stogun altına düştü Ürün Detayına Linketen Ulaşabilirsiniz.</a>", urunId);

                            MailManager.Admin.Send("Kırıtık Stok Bildirisi", str, ProcessType.Async);
                        }
                    }
                }
                else
                {
                    MailManager.Admin.Send(" Sipariş Kaydedilirken Hata Oluştu",
                                           "* Sipariş ödemesi yapıldı<br/>"+
                                           "* sipariş kaydı oluşmadı<br/> "+
                                           "* sipariş edilen ürünler sepetten silinmedi.<br/>"+
                                           " Üye Id: " + siparis.UyeId.ToString());
                }
            }
            catch (Exception ex)
            {
                LogManager.SqlDB.Write("Sipariş Kayıt Sırasında Hata Oluştu", siparis.UyeId.ToString() + " Nolu Üye Sipariş verilken Hata Oluştu." + ex);
                throw;
            }
            return siparisId;
        }
    protected void btnKapidaOdeme_Click(object sender, EventArgs e)
    {
        try
        {
            HttpCookie siparisBilgi = Request.Cookies["lensOptik"];
            siparisBilgi = HttpSecureCookie.Decode(siparisBilgi);

            if (Session["FiyatToplam"] == null && Session["KapiFarki"] == null)
            {
                KapidaOdemeFarki();
                KapidaOdemeSepetListele(uyeId);
            }     

            if (ckbUyePuan.Checked)
            {
                decimal FiyatToplam = 0;
                UyePuan(uyeId);
                FiyatToplam = Convert.ToDecimal(Session["FiyatToplam"]);
                FiyatToplam = FiyatToplam - uyePuan ;
                Session["FiyatToplam"] = FiyatToplam.ToString();
            }

            SiparisKayit siparis = new SiparisKayit
            {
                UyeId = uyeId,
                SiparisNo = siparisBilgi["siparisNo"],
                SiparisTuru = SiparisTuru.KapidaOdeme,
                BankaAdi = " ",
                BirimToplam = Convert.ToDecimal(siparisBilgi["BirimFiyatToplam"]),
                KdvTutar = Convert.ToDecimal(siparisBilgi["kdvToplam"]),
                GenelToplam = Convert.ToDecimal(siparisBilgi["FiyatToplam"]),
                KargoId = Convert.ToInt32(siparisBilgi["kargoId"]),
                KargoFiyat = Convert.ToDecimal(siparisBilgi["kargoFiyat"]),
                TaksitMiktari = 0,
                AylikTaksitTutari = Convert.ToDecimal(Session["KapiFarki"]),
                TaksitliGenelToplam = Convert.ToDecimal(Session["FiyatToplam"]),
                AdresId = Convert.ToInt32(siparisBilgi["adresId"]),
                FaturaId = Convert.ToInt32(siparisBilgi["faturaId"]),
                KullanilanPara = uyePuan,
                SiparisDurum = SiparisDurum.OnayBekliyor,
                Indirim = Convert.ToDecimal(siparisBilgi["indirim"]),
                Mesaj = Session["siparisMesaj"] != null ? Session["siparisMesaj"].ToString() : ""
            };

            int siparisId = SiparisDB.Kayit(siparis);

            Response.Redirect("SiparisOzeti.aspx?siparisId=" + siparisId.ToString() + "&islem=Kapida", false);
        }
        catch (Exception hata)
        {
            Mesaj.Alert("Kapıda Ödemeyle İle Satış İşlemi Hatası");
            LogManager.Mail.Write("Kapıda Ödemeyle İle Satış İşlemi Hatası", hata);
        }
    }