private ExtreRepo Extre(int kart_id) { // kart ödemesini yapsak bile ödeme iptalini nasıl yapacaz. kasa vb işlemler zaten otomatik yapılıyor ancak // kart hesaplarındaki ptalleri düzeltmek gerek. //odeme olarak kaydetcez bununiçin sahte bir müşteri oluşturalım ve -1 idsi olsun ExtreRepo repo = new ExtreRepo(); List <kart_hesaps> hesaplar = (from h in dc.kart_hesaps where h.iptal == false && h.kart_id == kart_id && h.cekildi == false && h.extre_tarih <= h.kart_tanims.extre_tarih select h).ToList(); //devreden bakiye var mı bakalım kart_tanims tanim = dc.kart_tanims.Find(kart_id); decimal tutar = hesaplar.Sum(x => x.tutar) + tanim.devreden_bakiye; repo.hesaplar = hesaplar; repo.extre_tarih = hesaplar.Select(x => x.extre_tarih).FirstOrDefault(); repo.tutar = tutar; return(repo); }
// extre_tarihi güncellemesini kontrol et. her seferinde bir ay eklemesi doğru değil. iki aydır kullanılmıyorsa ne olacak. public void ExtreOde(int kart_id, string tur, int?taksit_sayi, int?yeni_kart_id, int?banka_id, string kullanici) { ExtreRepo repo = Extre(kart_id); if (repo.hesaplar.Count > 0) { //kart devreden bakiye varsa sıfırlayalım //triggerda yapıyoruz foreach (kart_hesaps hesap in repo.hesaplar) { hesap.cekildi = true; } Odeme o = new Odeme(dc); o.OdemeMiktar = repo.tutar; o.OdemeTarih = DateTime.Now; o.Musteri_ID = -1; o.KullaniciID = "-"; o.kullanici = "-"; o.Aciklama = "Kart extre ödemesi"; o.extre_tarih = (DateTime)repo.extre_tarih; if (tur.Equals("Nakit")) { o.Nakit(kullanici); KaydetmeIslemleri.kaydetR(dc); } else if (tur.Equals("Banka")) { int id = (int)banka_id; o.Banka(id, kullanici); KaydetmeIslemleri.kaydetR(dc); } else if (tur.Equals("Kart")) { int id = (int)yeni_kart_id; int taksit = (int)taksit_sayi; o.Kart(taksit, id, false, kullanici); KaydetmeIslemleri.kaydetR(dc); } } }