Exemple #1
0
        /// <summary>
        /// İlgili işleme ait tüm bilgilerin kaydedildiği constructor
        /// </summary>
        /// <param name="hesap">İlgili hesap</param>
        /// <param name="islemTuru">İlgili hesaba ait işlme türü</param>
        /// <param name="tutar">İlgili işleme ait tutar</param>
        /// <param name="islemTarihi">İlgili işleme ait işlem tarihi</param>
        /// <param name="rapor">İlgili işlemlerin raporlanacağı rapor sınıfı</param>
        public HesapOzeti(Hesap hesap, string islemTuru, decimal tutar, DateTime islemTarihi, GelirGiderRaporu rapor)
        {
            this.hesap       = hesap;
            this.islemTuru   = islemTuru;
            this.tutar       = tutar;
            this.islemTarihi = islemTarihi;

            switch (islemTuru)
            {
            case "Hesap Açma":
                rapor.RaporEt(tutar, "girenpara");
                break;

            case "Para Yatırma":
                rapor.RaporEt(tutar, "girenpara");
                break;

            case "Para Çekme":
                rapor.RaporEt(tutar, "cikanpara");
                break;

            default:
                break;
            }
        }
Exemple #2
0
 public frmParaYatirmaCekme(Hesap hesap, string islemTuru)
 {
     InitializeComponent();
     this.hesap     = hesap;
     this.islemTuru = islemTuru;
     ilgiliMusteri  = hesap.hangiMusteriyeAit;
 }
        public int HesabaParaYatir(Hesap ilgiliHesap, decimal yatirilacakMiktar)
        {
            gelenOnaykodu = ParaYatirmaKontrol(ilgiliHesap, yatirilacakMiktar); // ilgili fonksiyondan onay kodunun çekilmesi

            switch (gelenOnaykodu)                                              // gelen onay koduna göre işlemlerin yapılması
            {
            case 10:
                ilgiliHesap.bakiye  = yatirilacakMiktar - (100 - ilgiliHesap.ekHesap);
                ilgiliHesap.ekHesap = 100;
                break;

            case 11:
                ilgiliHesap.bakiye  = (ilgiliHesap.ekHesap + yatirilacakMiktar) - 100;
                ilgiliHesap.ekHesap = 100;
                break;

            case 12:
                ilgiliHesap.ekHesap += yatirilacakMiktar;
                break;

            case 13:
                ilgiliHesap.bakiye += yatirilacakMiktar;
                break;

            default:
                gelenOnaykodu = 0;
                break;
            }

            return(gelenOnaykodu);
        }
        public int HesaptanParaCek(Hesap ilgiliHesap, decimal cekilecekMiktar)
        {
            gelenOnaykodu = ParaCekmeKontrol(ilgiliHesap, cekilecekMiktar); // ilgili fonksiyondan onay kodunun çekilmesi

            switch (gelenOnaykodu)                                          // gelen onay koduna göre işlemlerin yapılması
            {
            case 20:
                break;

            case 21:
                break;

            case 22:
                ilgiliHesap.bakiye  -= cekilecekMiktar;
                ilgiliHesap.ekHesap += ilgiliHesap.bakiye;
                ilgiliHesap.bakiye   = 0;
                ilgiliHesap.hesaptanCekilenToplamTutar += cekilecekMiktar;
                break;

            case 23:
                ilgiliHesap.bakiye -= cekilecekMiktar;
                ilgiliHesap.hesaptanCekilenToplamTutar += cekilecekMiktar;
                break;

            default:
                gelenOnaykodu = 0;
                break;
            }

            return(gelenOnaykodu);
        }
Exemple #5
0
        const decimal _HAVALEUCRETIORANI = 0.02m; // bireysel müşteride havale işleminde yansıtılacak havale ücreti onayı

        /// <summary>
        /// Para havale işlemine ait gerekli işlemlerin yapıldığı alt sınıftan ezilen fonksiyon
        /// </summary>
        /// <param name="gonderenHesap">İlgili gönderen hesap</param>
        /// <param name="alacakHesap">İlgili alacak hesap</param>
        /// <param name="gonderilecekMiktar">Havale işlemine ait ilgili miktar</param>
        /// <returns>Havale işlemine ait onay durumu true or false</returns>
        public override bool ParaHavale(Hesap gonderenHesap, Hesap alacakHesap, decimal gonderilecekMiktar)
        {
            decimal tempGondMiktar = gonderilecekMiktar;
            decimal havaleUcreti   = gonderilecekMiktar * _HAVALEUCRETIORANI; // havale üvretinin hesaplanması

            gonderilecekMiktar = tempGondMiktar + havaleUcreti;

            bool havaleOnay = base.ParaHavale(gonderenHesap, alacakHesap, gonderilecekMiktar); // havale işlemine ait onayın alınması

            if (havaleOnay)                                                                    // onay olumluysa yapılacak işlemler
            {
                islemTarihi     = DateTime.Now;
                hesapOzeti_Gond = new HesapOzeti(gonderenHesap, "Havale >> (" + alacakHesap.hesapNumarasi + ")", -tempGondMiktar, islemTarihi, rapor);
                gonderenHesap.HesapOzetiEkle(hesapOzeti_Gond);

                hesapOzeti_Gond = new HesapOzeti(gonderenHesap, "Havale Ücreti", -havaleUcreti, islemTarihi, rapor);
                gonderenHesap.HesapOzetiEkle(hesapOzeti_Gond);

                alacakHesap.hangiMusteriyeAit.HesabaParaYatir(alacakHesap, tempGondMiktar);
                islemTarihi     = DateTime.Now;
                hesapOzeti_Alan = new HesapOzeti(alacakHesap, "(" + gonderenHesap.hesapNumarasi + ") >> Havale", tempGondMiktar, islemTarihi, rapor);
                alacakHesap.HesapOzetiEkle(hesapOzeti_Alan);
            }

            return(havaleOnay);
        }
        /// <summary>
        /// Para yatırma işlemine ait kontrollerin yapıldığı fonksiyon
        /// </summary>
        /// <param name="kontrolEdilecekhesap">Para yatırılacak ilgili hesap</param>
        /// <param name="yatirilacakMiktar">İlgili hesaba yatırılacak tutar</param>
        /// <returns>Kontrollere göre onay kodu 10 - 13</returns>
        public int ParaYatirmaKontrol(Hesap kontrolEdilecekhesap, decimal yatirilacakMiktar)
        {
            if (kontrolEdilecekhesap.ekHesap < 100) // ilgili hesabın ilk önce ek hesaptaki tutarı kontrol edilir -> ekhesap 100 tlden az ise önce ek hesap tamamlanacağına dair onay kodları
            {
                if (yatirilacakMiktar > 100)
                {
                    return(10);
                }

                else if (kontrolEdilecekhesap.ekHesap + yatirilacakMiktar > 100)
                {
                    return(11);
                }

                else
                {
                    return(12);
                }
            }

            else // ek hesap 100 tlden fazlaysa yatırılan para direk hesaba aktarılacağına dair onay kodu
            {
                return(13);
            }
        }
 public frmHavale(Hesap gonderenHesap)
 {
     InitializeComponent();
     this.gonderenHesap = gonderenHesap;
     txtTutar.Enabled   = false;
     btnOnayla.Enabled  = false;
 }
Exemple #8
0
 private void HesapBilgileriniKaydet()
 {
     yeniHesap = new Hesap();
     yeniHesap.hesapNumarasi     = hesapNo;
     yeniHesap.ekHesap           = 100;
     yeniHesap.hangiMusteriyeAit = ilgiliMusteri;
     ilgiliMusteri.MusteriyeHesapEkle(yeniHesap);
     banka.BankayaHesapEkle(yeniHesap);
 }
        /// <summary>
        /// Para havale etme işlemine ait kontrollerin yapıldığı sanal fonksiyon - bu sınıftan kalıtılan sınıflarda bu sanal fonksiyon ezielecek -
        /// </summary>
        /// <param name="gonderenHesap">İlgili gönderen hesap</param>
        /// <param name="alacakHesap">İlgili alacak hesap</param>
        /// <param name="gonderilecekMiktar">Havale işlemine ait ilgili miktar</param>
        /// <returns>Kontroller sonucunda true or false</returns>
        public virtual bool ParaHavale(Hesap gonderenHesap, Hesap alacakHesap, decimal gonderilecekMiktar)
        {
            if (gonderilecekMiktar <= gonderenHesap.bakiye)
            {
                gonderenHesap.bakiye -= gonderilecekMiktar;
                return(true);
            }

            else
            {
                return(false);
            }
        }
Exemple #10
0
        public Hesap HesapBul(ulong hesapNumarasi)
        {
            Hesap arananHesap = null;

            foreach (Hesap hesaplar in Hesaplar)
            {
                if (hesaplar.hesapNumarasi == hesapNumarasi)
                {
                    arananHesap = hesaplar;
                    return(arananHesap);
                }
            }
            return(null);
        }
        /// <summary>
        /// Para havale işlemine ait gerekli işlemlerin yapıldığı alt sınıftan ezilen fonksiyon
        /// </summary>
        /// <param name="gonderenHesap">İlgili gönderen hesap</param>
        /// <param name="alacakHesap">İlgili alacak hesap</param>
        /// <param name="gonderilecekMiktar">Havale işlemine ait ilgili miktar</param>
        /// <returns>Havale işlemine ait onay durumu true or false</returns>
        public override bool ParaHavale(Hesap gonderenHesap, Hesap alacakHesap, decimal gonderilecekMiktar)
        {
            bool havaleOnay = base.ParaHavale(gonderenHesap, alacakHesap, gonderilecekMiktar); // havale işlemine ait onayın alınması

            if (havaleOnay)                                                                    // onay olumluysa yapılacak işlemler
            {
                islemTarihi     = DateTime.Now;
                hesapOzeti_Gond = new HesapOzeti(gonderenHesap, "Havale >> (" + alacakHesap.hesapNumarasi + ")", -gonderilecekMiktar, islemTarihi, rapor);
                gonderenHesap.HesapOzetiEkle(hesapOzeti_Gond);

                alacakHesap.hangiMusteriyeAit.HesabaParaYatir(alacakHesap, gonderilecekMiktar);
                islemTarihi     = DateTime.Now;
                hesapOzeti_Alan = new HesapOzeti(alacakHesap, "(" + gonderenHesap.hesapNumarasi + ") >> Havale", gonderilecekMiktar, islemTarihi, rapor);
                alacakHesap.HesapOzetiEkle(hesapOzeti_Alan);
            }
            return(havaleOnay);
        }
        private void btnHesBul_Click(object sender, EventArgs e)
        {
            ulong bulunacakHesapNo = Convert.ToUInt64(txtGondHesNo.Text);

            alanHesap = banka.HesapBul(bulunacakHesapNo);

            if (alanHesap != null)
            {
                txtGondBil.Text   = "Ad: " + alanHesap.hangiMusteriyeAit.ad + "\r\nSoyad: " + alanHesap.hangiMusteriyeAit.soyad;
                txtTutar.Enabled  = true;
                btnOnayla.Enabled = true;
                btnHesBul.Enabled = false;
            }
            else
            {
                txtGondBil.Text = bulunacakHesapNo + " numaralı herhangi bir hesap bulunamamıştır.";
            }
        }
        private void cmbHesaplar_SelectedIndexChanged(object sender, EventArgs e)
        {
            ulong secilenHesNo = Convert.ToUInt64(cmbHesNo.SelectedItem);

            secilenHesap = banka.HesapBul(secilenHesNo);

            if (secilenHesap != null)
            {
                txtHesBilgileri.Text = "TCKN: " + secilenHesap.hangiMusteriyeAit.TCKN + Environment.NewLine +
                                       "Ad Soyad: " + secilenHesap.hangiMusteriyeAit.ad + " " + secilenHesap.hangiMusteriyeAit.soyad + Environment.NewLine +
                                       secilenHesap.hesapNumarasi + " Numaralı Hesaptaki Bakiye: " + secilenHesap.bakiye + " ₺ - (Ek hesap: " + secilenHesap.ekHesap + " ₺)";
                ButonAktivasyon_Ac();
            }

            else
            {
                txtHesBilgileri.Text = secilenHesap + " numaralı herhangi bir hesap bulunamadı.";
            }
        }
        /// <summary>
        ///  Para çekme işlemine ait kontrollerin yapıldığı fonksiyon
        /// </summary>
        /// <param name="kontrolEdilecekhesap">Para çekilecek ilgili hesap</param>
        /// <param name="cekilecekMiktar">İlgili hesaptan çekilecek tutar</param>
        /// <returns>Kontrollere göre onay kodu 20 - 23</returns>
        public int ParaCekmeKontrol(Hesap kontrolEdilecekhesap, decimal cekilecekMiktar)
        {
            if ((cekilecekMiktar + kontrolEdilecekhesap.hesaptanCekilenToplamTutar) > 750)
            {
                return(20); // gunluk para cekme limiti asildiğina dair onay kodu
            }

            else if (cekilecekMiktar > (kontrolEdilecekhesap.bakiye + kontrolEdilecekhesap.ekHesap))
            {
                return(21); // yetersiz bakiye olduğuna dair onay kodu
            }

            else if (cekilecekMiktar > kontrolEdilecekhesap.bakiye && cekilecekMiktar <= (kontrolEdilecekhesap.bakiye + kontrolEdilecekhesap.ekHesap))
            {
                return(22); // yetersiz bakiye ama ek hesapla birlikte yeterli miktar olduğuna dair onay kodu
            }

            else
            {
                return(23);  // herhangi bir sorun olmadığına dair onay kodu
            }
        }
 public void MusteridenHesapSil(Hesap silinecekHesap)
 {
     MusterininHesaplari.Remove(silinecekHesap);
 }
 public void MusteriyeHesapEkle(Hesap yeniHesap)
 {
     MusterininHesaplari.Add(yeniHesap);
 }
Exemple #17
0
 public void BankayaHesapEkle(Hesap yeniHesap)
 {
     Hesaplar.Add(yeniHesap);
 }
Exemple #18
0
 public void BankadanHesapSil(Hesap silinecekHesap)
 {
     Hesaplar.Remove(silinecekHesap);
 }