Vade günleri ve tanınan opsiyonlar
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Vade günleri ve tanınan opsiyonlar
S.a. ilk önce arkadaşlar...Ramazan ayınız mübarek olsun ve Ramazan ayında sorduğum ilk soru...Sorduğum soru mantık olarak nasıl yapabilirim bunu istiyorum heralde code tarafını halledebilirim.
Ürünlerimizi satan bayi standart vade suresine pek uymuyo. O yuzden bizimkiler de istiyo ki 01.01.2006 ile 05.10.2006 tarihleri arasında bizim faturaların ortalama vade tarihini ve onların bize odediklerinin ortalama vade tarihini bulup aradaki farkla onlara kaç gun opsiyon sağladıklarını gormek istiyolar. İsin kotu tarafı faturalar ve odemeler bire-bir degil. Örneğin cari farklı gunlerde 10-15-25 fatura tutarlarında mal almış 20 gun sonra 45 tutarında odeme yapmış.
Umarım anlatabilmişimdir arkadaşlar...Cevabınızı bekliyorum. İyi Çalışmalar....
Ürünlerimizi satan bayi standart vade suresine pek uymuyo. O yuzden bizimkiler de istiyo ki 01.01.2006 ile 05.10.2006 tarihleri arasında bizim faturaların ortalama vade tarihini ve onların bize odediklerinin ortalama vade tarihini bulup aradaki farkla onlara kaç gun opsiyon sağladıklarını gormek istiyolar. İsin kotu tarafı faturalar ve odemeler bire-bir degil. Örneğin cari farklı gunlerde 10-15-25 fatura tutarlarında mal almış 20 gun sonra 45 tutarında odeme yapmış.
Umarım anlatabilmişimdir arkadaşlar...Cevabınızı bekliyorum. İyi Çalışmalar....
- Mantık olarak önce kendimce ilkeleri belirlerdim.
(Bunlar genellenmesin kural/şart değildir, programcı tarafından değerlendirme amaçlı ilkelerdir)
İlkeler :
1. İlk fatura ilk ödenir.
2. Sıralı gidilir.
3. Yarım ödenen fatura ödenmemiş sayılır.
4. Yarım ödeme yapıldığında, ödenen kısım (+) bakiye olarak tutulur.
Şimdi bunları uygulamaya alalım...
* 10 / 15 / 25 şeklindeki faturalara ait yapılan ödeme 45 ise, kapsadığı fatura kümesi ödenmiş sayılacaktır. ( 1. ilke )
* 10 + 15 = 25 ödenmiş sayılır. ( 2. ilke )
* 45 - 25 = 20 son faturaya yetmez yarım ödeme kabul edilir. (3.ilke)
* ödenen kısım (+) bakiye olarak tutulacağından elde var +20 şeklinde beklemeye alınır. Bu kısmı ödemeseler de olurdu yani
(4.ilke)
- Bunu koda bu şekilde dökerseniz;
* "Ödeme Tarihi" ve "Tutarı" ayrı bir veritabanında tutulacak.
* Ödemenin hangi faturaları kapsadığı sorgulanıp bu faturalara ait "ÖdemeTarihi" hanesi, aynı tarih ile doldurulacak.
- Geriye opsiyon hesabı kalıyor ki, ( ÖdemeTarihi - FaturaTarihi ) farkı opsiyonu vereceğine göre bunlar 0..10 11..20 21..30 31..40 olarak ayrı ayrı gruplanarak raporlanacak.
- Soruyu doğru anlamışsam, cevap kurgusunu ben olsam bu şekilde yapardım...
(Bunlar genellenmesin kural/şart değildir, programcı tarafından değerlendirme amaçlı ilkelerdir)
İlkeler :
1. İlk fatura ilk ödenir.
2. Sıralı gidilir.
3. Yarım ödenen fatura ödenmemiş sayılır.
4. Yarım ödeme yapıldığında, ödenen kısım (+) bakiye olarak tutulur.
Şimdi bunları uygulamaya alalım...
* 10 / 15 / 25 şeklindeki faturalara ait yapılan ödeme 45 ise, kapsadığı fatura kümesi ödenmiş sayılacaktır. ( 1. ilke )
* 10 + 15 = 25 ödenmiş sayılır. ( 2. ilke )
* 45 - 25 = 20 son faturaya yetmez yarım ödeme kabul edilir. (3.ilke)
* ödenen kısım (+) bakiye olarak tutulacağından elde var +20 şeklinde beklemeye alınır. Bu kısmı ödemeseler de olurdu yani

- Bunu koda bu şekilde dökerseniz;
* "Ödeme Tarihi" ve "Tutarı" ayrı bir veritabanında tutulacak.
* Ödemenin hangi faturaları kapsadığı sorgulanıp bu faturalara ait "ÖdemeTarihi" hanesi, aynı tarih ile doldurulacak.
- Geriye opsiyon hesabı kalıyor ki, ( ÖdemeTarihi - FaturaTarihi ) farkı opsiyonu vereceğine göre bunlar 0..10 11..20 21..30 31..40 olarak ayrı ayrı gruplanarak raporlanacak.
- Soruyu doğru anlamışsam, cevap kurgusunu ben olsam bu şekilde yapardım...
- Bu bağlamda yeterince açık yazdığımı değerlendiriyorum aslında.@delphist yazdı:Sorduğum soru mantık olarak nasıl yapabilirim bunu istiyorum heralde code tarafını halledebilirim.
* Bir veritabanı kurgusu yaparken "Rapor için istenenler nedir ?" sorusunun cevabını irdeleyip, ona göre veri giriş alanları oluşturulur.
- Şimdi bizden istenen belli. Ben de dedim ki, bu istenenleri karşılamak için -spontan hesaplıyorum- iki tablo gerekiyor.
* Birinci tablo bayilerin size yaptığı geri ödemeler ve tarihlerini tutacak tablodur. Buna Tablo1 diyelim.
* İkinci Tablo ise, bayilere verdiğiniz her ürün için kestiğiniz faturaların noları, fatura kesim tarihi, fatura için yapılan bayi ödemesi tarihi olan tablodur. Bu da Tablo2 diyelim.
- Tablo1 sadece bayinizin yaptığı ödemeler olacak. Sadece sizin kasanıza girenler.
- Tablo2 fatura hareketleri olacak, fatura kesilince yeni kayıt eklenecek, Tablo1'e ödeme yapılıp eklenen rakamlardan daha önce ödenmiş faturaların tutarları çıkarılacak.
- Kalan (+) bakiye sıradaki fatura için işleme alınacak. Eğer fatura tutarını tam karşılıyorsa fatura ödeme tarihi güncellencek ve böylece + bakiye bu fatura kadar daha kendiliğinden eksilecek.
- Bu işlem sıradaki faturanın ödenemeyecek kadar olana dek tekrarlanacak.
- Bu sistemdeki düşünülmesi gereken nokta şu olabilir. (+) bakiye olarak 100 YTL kaldı ve sıradaki fatura 120 YTL. iken takip eden 3 fatura 20, 20 ve 20 ise bunlar ödendi varsayılmayacak. Taa ki 120 YTL barajını geçecek kadar ödeme gelene kadar.
- iyi mi kötü mü buna sen karar verecek ve ona göre düzenlemeni yapacak, ilkeler üzerinde değişiklik yaparak uygulamanı düzenleyeceksin.
- Bu kadar açıklama yeterlidir umarım çünkü sanki kod yazmışım gibi oldu

Kod: Tümünü seç
Tablo1
------
Tarih Yapılan Ödeme
---------- ---------------
01.05.2006 100 YTL
10.05.2006 70 YTL
20.05.2006 50 YTL
21.05.2006 20 YTL
---------------------------
Ödeme Toplam : 240 YTL
Kod: Tümünü seç
Tablo2
------
Fatura Tarih Miktar Geri Ödeme Tarih
------------ ------- ----------------
01.01.2006 100 YTL 01.05.2006
08.02.2006 50 YTL 10.05.2006
11.02.2006 20 YTL 10.05.2006
18.02.2006 100 YTL -
22.04.2006 10 YTL -
01.05.2006 10 YTL -
03.05.2006 20 YTL -
----------------------------------------
Ödenmiş Fat. : 170 YTL
(+) Bakiye : 240-170 = 70 YTL
Sıradaki Fat.: 100 YTL

Merhaba,
Ortalama vadeyi bir ara lks programı için kurcalamıştım. İlk uğraştığım zamanlar günün tarihini kullanmadığını zannediyordum. Ama kullanıyormuş. Bununla ilgili bir mesajı aşağıdaki linkte bulabilirsiniz. Ortalama mantığını öğrenmek açısından linki verdim.
http://tech.groups.yahoo.com/group/logo ... ssage/1439
Yukarıdaki mesajdaki mantığa göre enazından faturaların ortalama vadesini dökersiniz.
Kolay gelsin.
Ortalama vadeyi bir ara lks programı için kurcalamıştım. İlk uğraştığım zamanlar günün tarihini kullanmadığını zannediyordum. Ama kullanıyormuş. Bununla ilgili bir mesajı aşağıdaki linkte bulabilirsiniz. Ortalama mantığını öğrenmek açısından linki verdim.
http://tech.groups.yahoo.com/group/logo ... ssage/1439
Yukarıdaki mesajdaki mantığa göre enazından faturaların ortalama vadesini dökersiniz.
Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis
@ofenX
- Anladığım kadarıyla sorulan soruda, düzensiz geri ödemeden dolayı, Faturaların ödendi denecek tarihin adının konmasında bir sıkıntı vardı.
- Bu adı koymak için ilke belirlemek gerektiğinin altını çizdim. Bundan sonra geriye zaten basit bir gün hesabı ve aritmetiksel ortalama hesabı kalıyor.
- Anladığım kadarıyla sorulan soruda, düzensiz geri ödemeden dolayı, Faturaların ödendi denecek tarihin adının konmasında bir sıkıntı vardı.
- Bu adı koymak için ilke belirlemek gerektiğinin altını çizdim. Bundan sonra geriye zaten basit bir gün hesabı ve aritmetiksel ortalama hesabı kalıyor.
Merhaba,
Eskisi gibi sürekli internet bağlantım yok. Arasıra internet kafelerden takılıyorum.
Muharrem Abi'ye ek olarak giden malların vade tarihinin de yazılması gerekir sanırım. ayrıca Muharrem Abi eksik ödemeleri hiç kaale almayın diyor. Lks programında hepsini hesaplıyor.
Daha önce lks için bunu karıştırdığımı söylemiştim. Bir mantık vermesi açısından size bir örnekle açıklayayım. Örnek üzerinde daha iyi anlaşılır.
Yukarıdaki verilere göre
Carinin yaptığı ödemelerin erken ödeme veya geç ödeme durumunu öğrenmek için aşağıdaki tabloyu kullanabiliriz.
Örneğe göre müşteri 10 gün geç ödemiş görünüyor. Yukarıda çıkan rakamın eksi (-) çıkması müşterinin erken ödeme yaptığını gösterir.
Ödemeyi 13/11/2006 500
05/12/2006 550 yapınca gecikme 15 gün oluyor.
Ödemeyi 13/11/2006 250
05/12/2006 800 yapınca gecikme 19 gün oluyor.
Yukarıdaki örnek sizin bahsettiğiniz gibi ödeme planına uymuyor.
Bu durumda siz faturalarınızı vade tarihine göre sıralatıp. Ödemeleri de işlem tarihine göre sıraladıktan sonra ödemeleri faturalara göre parçalayacaksınız ve yukarıdaki gibi hesaplatacaksınız.
Ben bunu lks de bir örnek yaparak mantığını çıkardım. Belki mantığı işinize yarar.
Kolay gelsin.
Eskisi gibi sürekli internet bağlantım yok. Arasıra internet kafelerden takılıyorum.
Muharrem Abi'ye ek olarak giden malların vade tarihinin de yazılması gerekir sanırım. ayrıca Muharrem Abi eksik ödemeleri hiç kaale almayın diyor. Lks programında hepsini hesaplıyor.
Daha önce lks için bunu karıştırdığımı söylemiştim. Bir mantık vermesi açısından size bir örnekle açıklayayım. Örnek üzerinde daha iyi anlaşılır.
Kod: Tümünü seç
SATIŞ
Fatura Tarihi Vade Tutar
--------------- --------------- -------------
10/07/2006 15/12/2006 400
08/10/2006 15/10/2006 500
12/10/2006 15/11/2006 300
!!!!! İlk fatura ile ilk vade aynı değil.
ÖDEMELER
Ödeme Tarihi Tutar
----------------- ----------------
13/11/2006 750
05/12/2006 300
15/12/2006 150
Kod: Tümünü seç
Cari ortalama ödemesi
Fatura Vade Tar. Fat.İşlem Tarihi Fark Gün Fat.Tut Toplam
-------------------- ------------------ ----------- --------- -------------
15/12/2006 10/07/2006 158 * 400 63200
15/10/2006 08/10/2006 7 * 500 3500
15/11/2006 12/10/2006 34 * 300 10200
____ _________
Toplam 1200 76900
Cari ortalama vadesi=76900/1200
=64,083...
=64 gün
Kod: Tümünü seç
ÖDEME ANALİZİ Kapanan
İşlem Tarihi Vade Tarihi Gün Tutar Toplam
--------------- ------------- -------- -------------- ---------------------
13/11/2006 15/10/2006 29 * 500 14500
13/11/2006 15/11/2006 -2 * 250 -500
05/12/2006 15/11/2006 20 * 50 1000
05/12/2006 15/12/2006 -10 * 250 -2500
15/12/2006 15/12/2006 0 * 150 0
--------- ------------
1200 12500
Ortalama Gecikme =12500/1200
=10,416
=10 Gün
Ödemeyi 13/11/2006 500
05/12/2006 550 yapınca gecikme 15 gün oluyor.
Ödemeyi 13/11/2006 250
05/12/2006 800 yapınca gecikme 19 gün oluyor.
Yukarıdaki örnek sizin bahsettiğiniz gibi ödeme planına uymuyor.
Bu durumda siz faturalarınızı vade tarihine göre sıralatıp. Ödemeleri de işlem tarihine göre sıraladıktan sonra ödemeleri faturalara göre parçalayacaksınız ve yukarıdaki gibi hesaplatacaksınız.
Ben bunu lks de bir örnek yaparak mantığını çıkardım. Belki mantığı işinize yarar.
Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis