C# Koşulu Foreach Döngüsü
-
Başlığı bulmada epey sorun yaşadım.
Mesele şu arkadaşlar;
Borç kayıtlarımız var bir de bu borçların tahsil edilmesiyle birlikte oluşan Tahsilat kayıtlarımız var.
Ne var ki bazı kullanıcılar yanlışlıkla tahsilat yapabiliyor ve bu yapmış oldukları tahsilat işlemlerinde hata yapabiliyorlar.
Örneğin borçtan 120TL tahsil edecekken 100tl tahsil ediyorlar.
Borç 20TL ye düşüyor. 100TL lik tahsilat kaydı oluşturuluyor.
Sorum şu;
Müşterinin Borç Kayıtları taksitli bir şekilde..
150TL Ocak Ayı
150TL Şubat Ayı
150TL Mart Ayı diye devam eden ardışık borçları var.elimizde de 100TL lik tahsilat var. Bunu düzenleme bağbımda kullanıcı kaydı açıyor
ve tahsilatı 300TL olarak edit ediyor. Arada 200TL lik bir fark oluşuyor.
Bu farkın mevcut borçlardan düşülmesi gerekiyor. Yani Ocak ayı borcu komple sıfırlanıp şubat ayından da 50TL düşülmesini istiyorum.
Bunun için akıllı bir döngü yazmak istiyorum ama mantığı kuramadım.
Bana yardımcı olabilecek biri var mı?
-
taksitleri dolas, dolasirken tasitleri odendi isaretleyip isaretledikce odenen mebladan dus, beyle bisey
foreach(taksitler as taksit){
if (odenen > 0){
if (taksit > odenen){
taksit = taksit - odenenodenen = 0
break
}else{odenen = odenen - taksit
}
}
}
-
yolbulucu bunu yazdı
taksitleri dolas, dolasirken tasitleri odendi isaretleyip isaretledikce odenen mebladan dus, beyle bisey
foreach(taksitler as taksit){
if (odenen > 0){
if (taksit > odenen){
taksit = taksit - odenenodenen = 0
break
}else{odenen = odenen - taksit
}
}
}
bi deneyelim
-
Sanırım şöyle bişi ile çözdüm.
var s = (from x in db.CariBorcs where x.CariID == CariID && x.Paid == false select x).OrderBy(x => x.DebtID); foreach (var item in s.ToList()) { if (Fark > 0) { if (item.BorcTutar > Fark) { db.CariBorcs.Where(x => x.DebtID == item.DebtID) .FirstOrDefault().BorcTutar = item.BorcTutar - Fark; Fark = 0; db.SubmitChanges(); break; } else { db.CariBorcs.Where(x => x.DebtID == item.DebtID) .FirstOrDefault().Paid = true; db.SubmitChanges(); Fark = Fark - item.BorcTutar.Value; } } }
-
Borç kapatma dizayn et. Benim kurgum şu şekilde çalışmakta.Cari hesapta bir ödeme planı tanımlı, bu ödeme planı içerisinde vade planı ve ödeme şekilleri mevcut.(30 Gün vade,Peşin, 5 Taksit Gibi) Bu cari hesaba ait bir fatura hareketinde cari hesabın ödeme planına göre sistem içeriye belirli tarihlerle ödeme evrağı atar.5000 TL fatura durumunda 30 Gün vade ise cari hesap 30 gün sonrasına ödemenin tümü için ödeme kaydı atar.Ödeme evrağı işlendiğinde sistem fifo olarak kapatır.Ben kapanmamış toplam borç kapanan tutar gibi kısımları eksiksiz çekerim.