taksitlendirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
taksitlendirme
herkese merhaba belki cok basit ama tikandim. if for break, falan kullandim. bazi bolumleri iyi fakat.
istedigim; 2. ay icerisinde ornegin adam taksit bedelinin daha fazlasini getirdi. getirdigi takside tekamul eden taksit bedelini aradan temizlemek istedim..
ornegin: sabit taksitler var 10.000 odemeye gore asagidaki gibi olacak.
---tarih-----/---borc--/--odenen
-----------------------------------------
21.01.2003-----10.000----10.000
21.02.2003-----35.000----35.000
21.03.2003------- 0------ 0 //silinecek
21.04.2003------- 0------ 0 // slinecek
21.05.2003------5.000---- // 5.000 eksilecek
21.06.2003-----10.000----
21.07.2003-----10.000----
21.08.2003-----10.000----
yardimlarinizi bekliyorum. herkese kolay gelsin..
istedigim; 2. ay icerisinde ornegin adam taksit bedelinin daha fazlasini getirdi. getirdigi takside tekamul eden taksit bedelini aradan temizlemek istedim..
ornegin: sabit taksitler var 10.000 odemeye gore asagidaki gibi olacak.
---tarih-----/---borc--/--odenen
-----------------------------------------
21.01.2003-----10.000----10.000
21.02.2003-----35.000----35.000
21.03.2003------- 0------ 0 //silinecek
21.04.2003------- 0------ 0 // slinecek
21.05.2003------5.000---- // 5.000 eksilecek
21.06.2003-----10.000----
21.07.2003-----10.000----
21.08.2003-----10.000----
yardimlarinizi bekliyorum. herkese kolay gelsin..
sair ilginden dolayi tesekkur ederim..
taksitleri dbgird de tutuyorum. editi sadece giriş esnasinda kullaniyorum.
yanilmıyorsam table uzerinde bir dongu kurmam lazim ki edite girilen rakam eger taksit miktarindan buyuk ise ona gore islem yapsin.
bazi paket programlarda bunlar mevcut ornegin bir vega prg.da soyledigim gibi bir dongu kurmuslar.
kolay gelsin
taksitleri dbgird de tutuyorum. editi sadece giriş esnasinda kullaniyorum.
yanilmıyorsam table uzerinde bir dongu kurmam lazim ki edite girilen rakam eger taksit miktarindan buyuk ise ona gore islem yapsin.
bazi paket programlarda bunlar mevcut ornegin bir vega prg.da soyledigim gibi bir dongu kurmuslar.
kolay gelsin
Bence en güzeli adamın borçlarını ve ödediklerini ayrı ayrı tutmakta fayda var. Ödediklerinin toplamı, borcunun toplamına eşit olduğu zamanda hesap sıfırlanır.
Belki ödediği kısma bir label koyup, daha önceki borçlarının ve ödediklerinin farkını da koyarsan ona göre eksik alınır. Mesela bu müşteri 15.000.000 TL fazla ödemiştir gibi.
Kolay gelsin.
Belki ödediği kısma bir label koyup, daha önceki borçlarının ve ödediklerinin farkını da koyarsan ona göre eksik alınır. Mesela bu müşteri 15.000.000 TL fazla ödemiştir gibi.
Kolay gelsin.
Mustafa Bey evvala tesekkur ederim..
ayrica siteniz gercekten baya guzel olmus emegi gecenlerin ellerine saglik.
- sizin soylediginiz gibi ben de dusundum. odenen ve borc kismini ayri tutmayi vs..
- taksitler sabit ama odeme sabit olmamasi durumunda diger taksitleri ona gore degisecek. bu sekilde olmasi gerekiyor.
for i := 1 to table1.RecordCount do
begin
if borc=odenen then
gibi donguler kurdum. bazi kisimlar ok. ama bazi yerlerde problem..
umarim kusuruma bakmazsiniz. kolay gelsin.
ayrica siteniz gercekten baya guzel olmus emegi gecenlerin ellerine saglik.
- sizin soylediginiz gibi ben de dusundum. odenen ve borc kismini ayri tutmayi vs..
- taksitler sabit ama odeme sabit olmamasi durumunda diger taksitleri ona gore degisecek. bu sekilde olmasi gerekiyor.
for i := 1 to table1.RecordCount do
begin
if borc=odenen then
gibi donguler kurdum. bazi kisimlar ok. ama bazi yerlerde problem..
umarim kusuruma bakmazsiniz. kolay gelsin.
Merhaba,
yaklaşımınız bana pek ideal gelmedi. Böyle toplam alıp, aradaki farkları da yazarsanız, bilgisayar başındaki kişi ödemeyi ayarlayacaktır. Bence en uygunu ödemeyi dengeleme işini, bilgisayar başındaki kişiye bırakmaktır.
Hatta kullanıcıya kalan farkları sıfırlama imkanı vermenizde iyi olur. Mesela adam 1 milyarlık mal almış, 995 milyon ödeme yapmış. Genelde kalan o 5 milyona pek bakılmaz.
Ama ille de yansıtacağım diyorsanız, ödemelere bir sıra numarası verin ve
if ödeme < alacak then
sonraki_ödemeyi_fark_kadar_artır_veya_eksilt
şeklinde yapmanız gerekir. Bunu da sıra no ile yapabilirsiniz. Mesela fark 15 milyon ve sıra no 4 olsun. O zaman 5 numaralı ödemeyi değiştirmeniz lazım. Tabi artırılacak mı, eksiltilecek mi ona da dikkat etmelisiniz. Şuna benzer bir SQL cümlesi işiniz görür :
UPDATE TAKSIT_TABLOSU
SET ALACAK=ALACAK + 15000000
WHERE ABONE_NO=ABONENİN_NUMARASI
AND SIRA_NO=5
Kolay gelsin.
yaklaşımınız bana pek ideal gelmedi. Böyle toplam alıp, aradaki farkları da yazarsanız, bilgisayar başındaki kişi ödemeyi ayarlayacaktır. Bence en uygunu ödemeyi dengeleme işini, bilgisayar başındaki kişiye bırakmaktır.
Hatta kullanıcıya kalan farkları sıfırlama imkanı vermenizde iyi olur. Mesela adam 1 milyarlık mal almış, 995 milyon ödeme yapmış. Genelde kalan o 5 milyona pek bakılmaz.
Ama ille de yansıtacağım diyorsanız, ödemelere bir sıra numarası verin ve
if ödeme < alacak then
sonraki_ödemeyi_fark_kadar_artır_veya_eksilt
şeklinde yapmanız gerekir. Bunu da sıra no ile yapabilirsiniz. Mesela fark 15 milyon ve sıra no 4 olsun. O zaman 5 numaralı ödemeyi değiştirmeniz lazım. Tabi artırılacak mı, eksiltilecek mi ona da dikkat etmelisiniz. Şuna benzer bir SQL cümlesi işiniz görür :
UPDATE TAKSIT_TABLOSU
SET ALACAK=ALACAK + 15000000
WHERE ABONE_NO=ABONENİN_NUMARASI
AND SIRA_NO=5
Kolay gelsin.
aynı şekide bu işlemi de yapabilirsin.
gridde ödemesi borcuna eşit olmayanları hesaplamaya dahil etme ancak son toplama dahil et. Yani iki ayrı döngü kur. önce hesaplamayı yaptır. Borç ile ödeme arasında fark varsa hesaplamaya dahil etme. ikinci döngüde ise bütün hepsini toplama dahil et.
sevgiler...
gridde ödemesi borcuna eşit olmayanları hesaplamaya dahil etme ancak son toplama dahil et. Yani iki ayrı döngü kur. önce hesaplamayı yaptır. Borç ile ödeme arasında fark varsa hesaplamaya dahil etme. ikinci döngüde ise bütün hepsini toplama dahil et.
sevgiler...
merhaba,
benim kullandığım basit bir döngü işine yarayabilir..
//
benim kullandığım basit bir döngü işine yarayabilir..
Kod: Tümünü seç
var odetutar:real;
begin
ayrtb.first;
while not ayrtb.Eof do
begin
if AyrtbKalan.value=0 then
begin
ayrtb.Next;
continue;
end;
if odeTutar<=AyrtbKalan.value then
begin
ayrtb.edit;
ayrtbKalan.value:=ayrtbKalan.value-odeTutar;
ayrTbOdenen.value:=odeTutar;
break;
end else
if (ayrtbKalan.value>0) and (odeTutar>ayrtbKalan.value) then
begin
dusen:=ayrtbKalan.value;
ayrtb.edit;
ayrtbKalan.value:=ayrtbKalan.value-ayrtbKalan.value;
ayrtbOdenen.value:=dusen;
ayrtb.Next;
odeTutar:=odeTutar-dusen;
end;
if odeTutar>0 then continue;
ayrtb.Next;
end;
saygılar
- mehmet_turecan_cakmak
- Üye
- Mesajlar: 132
- Kayıt: 02 Tem 2003 01:08
- Konum: Afyon
- İletişim:
taksitli
selamlar...
hocam senin dediğin özellikte benim yaptığım bir program var kaynak amaçlı istersen gönderebilirim...
kolay gele...
hocam senin dediğin özellikte benim yaptığım bir program var kaynak amaçlı istersen gönderebilirim...
kolay gele...
Bakın sevgili arkadaşlar. Soru soran arkadaşlara kod göndermeyin.
Sadece yöntemi anlatın. Yol gösterin. Gerisini kendisi çözsün. İnanın bunun ızdırabını o kadar çok yaşadım ki anlatamam. birisi bir kod göndermiş ve bu kod sizin işinize yaramışsa bir daha asla o konuyu öğrenemiyorsunuz. Ben delphi ye ilk başladığım yıllarda enter tuşunu tab tuşu olarak kullanmak için bi kod gönderdiler bana. Şimdi sorsanız inanın yapamam. Çünkü yaptığım projelerin hepsinde de o kodu copy paste yaparak kullandım. ve öğrenmedim. Hatta çalışma sistemini bile bilmiyorum. Kod göndererek o konuyu o arkadaşa öğretniyorsunuz. Tembelliğe ve başkalarının sırtından geçinmeye alıştırıyorsunuz. Kod yerine nasıl yapması gerektiğini izah edin. Ki o insan o yöntemi kullanarak kendisi çözsün olayı. Çünkü diğer yazacağı programlar da da aynı sorunlarla karşılaşacaktır.
Sevgiler...
Sadece yöntemi anlatın. Yol gösterin. Gerisini kendisi çözsün. İnanın bunun ızdırabını o kadar çok yaşadım ki anlatamam. birisi bir kod göndermiş ve bu kod sizin işinize yaramışsa bir daha asla o konuyu öğrenemiyorsunuz. Ben delphi ye ilk başladığım yıllarda enter tuşunu tab tuşu olarak kullanmak için bi kod gönderdiler bana. Şimdi sorsanız inanın yapamam. Çünkü yaptığım projelerin hepsinde de o kodu copy paste yaparak kullandım. ve öğrenmedim. Hatta çalışma sistemini bile bilmiyorum. Kod göndererek o konuyu o arkadaşa öğretniyorsunuz. Tembelliğe ve başkalarının sırtından geçinmeye alıştırıyorsunuz. Kod yerine nasıl yapması gerektiğini izah edin. Ki o insan o yöntemi kullanarak kendisi çözsün olayı. Çünkü diğer yazacağı programlar da da aynı sorunlarla karşılaşacaktır.
Sevgiler...
sevgili arkadaslar ilginizden dolayi herkese ayri ayri tesekkur ederim..
-sevigili "sair" gercekten haklisin dedigin gibi insani tembellige itiyor. ancak hangimiz bu isi kaynak kodlar olmadan soktu. tamam dedigin gibi kod gonderilmesin. peki neden her delphi sitesinde kaynak kodlar bolumu var.
-bir iki gundur bu taksit muhabbetine kafa patlattim. biliyorum basit birsey ama yine de bazi ufak tefek yerlerde hesap ta proglem cikiyor.
-sevigili "mehmet_turecan_cakmak" eger kaynak kodlari gonderirsen sevinirim. (aydin038@hotmail.com)
herkese iyi calismalar
-sevigili "sair" gercekten haklisin dedigin gibi insani tembellige itiyor. ancak hangimiz bu isi kaynak kodlar olmadan soktu. tamam dedigin gibi kod gonderilmesin. peki neden her delphi sitesinde kaynak kodlar bolumu var.
-bir iki gundur bu taksit muhabbetine kafa patlattim. biliyorum basit birsey ama yine de bazi ufak tefek yerlerde hesap ta proglem cikiyor.
-sevigili "mehmet_turecan_cakmak" eger kaynak kodlari gonderirsen sevinirim. (aydin038@hotmail.com)
herkese iyi calismalar
aydin038 arkadaşımız taksitlendirme işi ve oluşan taksitlerin editlenmesi kolay bir iş değildir.
Sanırım sen Table nesnesi kullanmışsın.
Ben mantığı konusunda biraz algoritma vereyim sen bunu kafanda tasarlayıp koda dökersin. Zira değişken isimleri field'lar ve ekran tasarımın nasıl bilmiyorum.
Taksit ödeme ekranına girdiğinde önce satış tutarını (toplam taksit tutarını, taksit sayısını ve ödemelerin toplam tutarını biryerlerde tut.) Çünkü adam taksit tutarını değiştirdiğnde senin toplam rakam üzerinden diğer satırları ayarlaman gerekecek)
Daha sonra kullanıcıya taksiti ödemesine eşit olan kayıtları (mümkünse disable getir.)
Yani
Taksit Ödeme
10,000 10,000 (Disable)
10,000 10,000 (Dsiable)
10,000 5,000 (Enable)
10,000 (Enable)
10,000 (Enable)
Kullanıcı taksiti girdiğinde önce girilen tutarın kalan toplam ödemeden büyük olup olmadığını kontrol etmelisin. Ardından girilen miktar normal ödenmesi gereken miktardan büyük ise, normal ödenmesi gereken miktardan daha fazla ödenen tutarı (bu farkı bir değişkene al) daha sonra bu miktarı kalan diğer kayıtlar üzerinde harcayarak (yani adam tuttu 25,000 girdi) önce 5 bini (örneğimizdeki 3. satıra) kalan parayı (20,000'i)
diğer kayıtlara harca.
Harcama şeklinde şu biçimde olsun.
sonraki kayda taksit kaydına git,
Elimde ne kadar fazla ödeme var? (20,000)
taksit tutarından büyük mü? (Evet) (***)
O zaman fazlalık tutardan 10,000 TL'sini bu taksit kaydına yedir. (Fazlalık taksiti harcadığım kadar düşür 20,000 - 10,000, şimdi kalan fazlalık tutar 10,000)
döngüde başa dön
(***)
Bu bölümde aslında 3 kontrolun olacak
Taksit Tutarı Kalan Fazlalık Tutardan Büyük mü
Değilse
Taksit Tutarı Kalan Fazlalık Tutardan Küçük mü
Değilse
Taksit Tutarı Kalan Fazlalık Tutara Eşittir
gibi bir If Then Else Blokları kurman gerekir aksi takdirde kontrolunu yapamazsın, kaçar gider.
Umarım anlatabilmişimdir.
Kolay gelsin.
Sanırım sen Table nesnesi kullanmışsın.
Ben mantığı konusunda biraz algoritma vereyim sen bunu kafanda tasarlayıp koda dökersin. Zira değişken isimleri field'lar ve ekran tasarımın nasıl bilmiyorum.
Taksit ödeme ekranına girdiğinde önce satış tutarını (toplam taksit tutarını, taksit sayısını ve ödemelerin toplam tutarını biryerlerde tut.) Çünkü adam taksit tutarını değiştirdiğnde senin toplam rakam üzerinden diğer satırları ayarlaman gerekecek)
Daha sonra kullanıcıya taksiti ödemesine eşit olan kayıtları (mümkünse disable getir.)
Yani
Taksit Ödeme
10,000 10,000 (Disable)
10,000 10,000 (Dsiable)
10,000 5,000 (Enable)
10,000 (Enable)
10,000 (Enable)
Kullanıcı taksiti girdiğinde önce girilen tutarın kalan toplam ödemeden büyük olup olmadığını kontrol etmelisin. Ardından girilen miktar normal ödenmesi gereken miktardan büyük ise, normal ödenmesi gereken miktardan daha fazla ödenen tutarı (bu farkı bir değişkene al) daha sonra bu miktarı kalan diğer kayıtlar üzerinde harcayarak (yani adam tuttu 25,000 girdi) önce 5 bini (örneğimizdeki 3. satıra) kalan parayı (20,000'i)
diğer kayıtlara harca.
Harcama şeklinde şu biçimde olsun.
sonraki kayda taksit kaydına git,
Elimde ne kadar fazla ödeme var? (20,000)
taksit tutarından büyük mü? (Evet) (***)
O zaman fazlalık tutardan 10,000 TL'sini bu taksit kaydına yedir. (Fazlalık taksiti harcadığım kadar düşür 20,000 - 10,000, şimdi kalan fazlalık tutar 10,000)
döngüde başa dön
(***)
Bu bölümde aslında 3 kontrolun olacak
Taksit Tutarı Kalan Fazlalık Tutardan Büyük mü
Değilse
Taksit Tutarı Kalan Fazlalık Tutardan Küçük mü
Değilse
Taksit Tutarı Kalan Fazlalık Tutara Eşittir
gibi bir If Then Else Blokları kurman gerekir aksi takdirde kontrolunu yapamazsın, kaçar gider.
Umarım anlatabilmişimdir.
Kolay gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
selam 'Kuri The Lonely Jedi...'
evvala ilginden dolayi tessekkur ederim. ellerine saglik sizin gibi bilgi sahibi ve bilgisini paylasmaktan korkmayan insanlara ayri ayri tesekkuru bir borc bilirim.
soyledigine benzer bir mantikla problemi cozdum. sadece ufak bir "next" komutunu yanlis yere yazmisim.
tabi biraz ugrasinca problemi cozmek hicde imkansiz degil.
ayrica "sair" arkadasimiza tesekkur ederim. cunki dedigi gibi hazira konmak insanlari ilerletmiyor oldugu yerde saydiriyor. once olabildigince insan kendini zorlamali.
Herkese kolay gelsin....
evvala ilginden dolayi tessekkur ederim. ellerine saglik sizin gibi bilgi sahibi ve bilgisini paylasmaktan korkmayan insanlara ayri ayri tesekkuru bir borc bilirim.
soyledigine benzer bir mantikla problemi cozdum. sadece ufak bir "next" komutunu yanlis yere yazmisim.

ayrica "sair" arkadasimiza tesekkur ederim. cunki dedigi gibi hazira konmak insanlari ilerletmiyor oldugu yerde saydiriyor. once olabildigince insan kendini zorlamali.
Herkese kolay gelsin....