• 21-04-2014, 18:26:28
    #1
    Merhabalar,
    Küçük bir proje yapıyorum takıldığım yerler var yardımlarınızı bekliyorum. Öncelikle benim spor salonum var diyelim. Kişiler bana aylık para verip sporlarını yapacaklar. Fakat bazı paketler 500-600 lira bu yüzden taksitli vermek isteyecekler. Fiyatı belirlenen taksit sayısına bölüyorum ve taksitli fiyatı alıyorum fakat, bunu ay ay olarak sql'e nasıl kaydedeceğim ve kişinin ödeme zamanı geldiğinde nasıl listede ödemesi geçikenler olarak gösterebilirim tablolarım nasıl olmalı ?

    Şimdiden yardımlarınız için teşekkür ederim.
  • 21-04-2014, 22:11:31
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Şöyle bir öneride bulunayım. Taksitler tablosu oluştur buraya miktar,ödemetarihi,üye bilgilerini al. Başlangıç tarihine 30 gün ekleyen bir döngü içine al ve her döngüde bu alanları uygun şekilde doldurt. 12 ay ise 12 kez dönen bir for döngüsüne sok ve tabloyu doldur. Daha sonrada bu tablo üzerinde gerekli sorgulamayı yaparak sonuca ulaşabilirsin.
  • 21-04-2014, 22:15:44
    #3
    DaCaMeRoN adlı üyeden alıntı: mesajı görüntüle
    Merhabalar,
    Küçük bir proje yapıyorum takıldığım yerler var yardımlarınızı bekliyorum. Öncelikle benim spor salonum var diyelim. Kişiler bana aylık para verip sporlarını yapacaklar. Fakat bazı paketler 500-600 lira bu yüzden taksitli vermek isteyecekler. Fiyatı belirlenen taksit sayısına bölüyorum ve taksitli fiyatı alıyorum fakat, bunu ay ay olarak sql'e nasıl kaydedeceğim ve kişinin ödeme zamanı geldiğinde nasıl listede ödemesi geçikenler olarak gösterebilirim tablolarım nasıl olmalı ?

    Şimdiden yardımlarınız için teşekkür ederim.


    ilk aklıma gelen yöntemi yazıyorum geliştirebilir. veritabanın da aşağıdaki şekilde bir tablo tutarsan;
    kişi id , taksit sayısı , taksit sırası , tutar , tarih


    sonrasında 600 TL Kaç taksit istedi mesela 6 şu şekilde kayıt edersen

    1 , 6 , 1 , 100 , 01.01.2014
    1 , 6 , 2 , 100 , 01.02.2014
    1 , 6 , 3 , 100 , 01.02.2014

    hem sonrasında taksit girildikçe hangi taksit ödenmiş hangisi ödenmemiş takibini de yapabilirsin umarım anlatabildim
  • 22-04-2014, 01:41:13
    #4
    erhaneryilmaz adlı üyeden alıntı: mesajı görüntüle
    ilk aklıma gelen yöntemi yazıyorum geliştirebilir. veritabanın da aşağıdaki şekilde bir tablo tutarsan;
    kişi id , taksit sayısı , taksit sırası , tutar , tarih


    sonrasında 600 TL Kaç taksit istedi mesela 6 şu şekilde kayıt edersen

    1 , 6 , 1 , 100 , 01.01.2014
    1 , 6 , 2 , 100 , 01.02.2014
    1 , 6 , 3 , 100 , 01.02.2014

    hem sonrasında taksit girildikçe hangi taksit ödenmiş hangisi ödenmemiş takibini de yapabilirsin umarım anlatabildim
    Bu tabloya ödeme durumu (byte) ve ödeme tarihi alanlarını da eklersen sorguların kolaylaşır.

    SELECT MAX(TAKSIT_SIRASI), ODEME_TARIHI FROM TAKSITLER WHERE UYE_ID = @UYE_ID AND ODEME_DURUMU = 1

    mesela o kullanıcının ödediği son taksidi ve ödeme tarihini döner.
  • 22-04-2014, 10:02:34
    #5
    erhaneryilmaz adlı üyeden alıntı: mesajı görüntüle
    ilk aklıma gelen yöntemi yazıyorum geliştirebilir. veritabanın da aşağıdaki şekilde bir tablo tutarsan;
    kişi id , taksit sayısı , taksit sırası , tutar , tarih


    sonrasında 600 TL Kaç taksit istedi mesela 6 şu şekilde kayıt edersen

    1 , 6 , 1 , 100 , 01.01.2014
    1 , 6 , 2 , 100 , 01.02.2014
    1 , 6 , 3 , 100 , 01.02.2014

    hem sonrasında taksit girildikçe hangi taksit ödenmiş hangisi ödenmemiş takibini de yapabilirsin umarım anlatabildim
    İlginiz için teşekkür ederim benim kişimin idsi var yeni tablo açıp taksit sayısı , taksit sırası , tutar , tarih ekleyip view ile göstermelimiyim ?

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 10:02:34 -->-> Daha önceki mesaj 09:58:47 --

    alican adlı üyeden alıntı: mesajı görüntüle
    Bu tabloya ödeme durumu (byte) ve ödeme tarihi alanlarını da eklersen sorguların kolaylaşır.

    SELECT MAX(TAKSIT_SIRASI), ODEME_TARIHI FROM TAKSITLER WHERE UYE_ID = @UYE_ID AND ODEME_DURUMU = 1

    mesela o kullanıcının ödediği son taksidi ve ödeme tarihini döner.
    C# da for ile ödeme tarihini 30 gün mü döndüreceğim hocam.
  • 22-04-2014, 10:31:57
    #6
    Hayır for ile döndürmene gerek yok. Üstte yazdığım sorgu kullanıcı parametre olarak verdiğin @KULLANICI_ID'nin ödediği son taksiti döner. Eğer tüm kullanıcıların son ödemelerini görmek istiyosan @KULLANICI_ID = KULLANICI_ID 'yi sorgundan silmelisin. Eğer ödenmemiş ilk taksitlerini göstermek istiyorsan:

    SELECT MIN(TAKSIT_SIRASI), ODEME_TARIHI FROM TAKSITLER WHERE ODEME_DURUMU = 0 AND KULLANICI_ID = @KULLANICI_ID -- Bu sorgu verilen kullanıcı_ID'nin ödenmemiş ilk taksidini gösterir.
  • 22-04-2014, 11:12:05
    #7
    alican adlı üyeden alıntı: mesajı görüntüle
    Hayır for ile döndürmene gerek yok. Üstte yazdığım sorgu kullanıcı parametre olarak verdiğin @KULLANICI_ID'nin ödediği son taksiti döner. Eğer tüm kullanıcıların son ödemelerini görmek istiyosan @KULLANICI_ID = KULLANICI_ID 'yi sorgundan silmelisin. Eğer ödenmemiş ilk taksitlerini göstermek istiyorsan:

    SELECT MIN(TAKSIT_SIRASI), ODEME_TARIHI FROM TAKSITLER WHERE ODEME_DURUMU = 0 AND KULLANICI_ID = @KULLANICI_ID -- Bu sorgu verilen kullanıcı_ID'nin ödenmemiş ilk taksidini gösterir.
    tamam hocam bu olayı taksitlendirmeyi yaptıktan sonra ödedimi ödemedimi yapmak için kullanacağım. Ama şuan ben kişiye taksit atayamıyorum. Ödeme tarihi seçiyorum örneğin 22.04.2014 ve 5 taksit yaptık öbür ayın 22.05.2014 şeklinde kayıt ettiremedim
  • 22-04-2014, 11:19:37
    #8
    int siparisAyi = DateTime.Now.Month;
    int siparisGunu = DateTime.Now.Day;
    int siparisYili = DateTime.Now.Year;
    int taksitSayisi = 6;
    for (int i = siparisAyi; i < siparisAyi + taksitSayisi; i++)
    {
    int tempSiparisYili = siparisYili;
    int tempSiparisAyi = i;
    if(i>12)
    {
    tempSiparisAyi = i % 12;
    tempSiparisYili++;

    }
    DateTime odemeTaksitGunu = new DateTime(tempSiparisYili, tempSiparisAyi, siparisGunu);
    //odemeTaksitGunu değerini db'de taksitler tablosuna atman gerek, içerisinde taksitin ödenmesi gereken tarih var.
    }

    Yaptığımızı özetlemek gerekirse, adamın sipariş verdiği gün ay yıl bilgilerini variable'lara atıyoruz. Sonra taksit sayısı kadar ay değeri üzerinden for döngüsüyle dönüp, gelecek taksitlerin tarihlerini oluşturuyoruz. Dikkat etmen gereken nokta (if i>12 kısmı) taksit hesaplarken yıl atlayabilirsin, onu da hesaba katarak kodu yazdım.
  • 22-04-2014, 17:26:05
    #9
    alican adlı üyeden alıntı: mesajı görüntüle
    int siparisAyi = DateTime.Now.Month;
    int siparisGunu = DateTime.Now.Day;
    int siparisYili = DateTime.Now.Year;
    int taksitSayisi = 6;
    for (int i = siparisAyi; i < siparisAyi + taksitSayisi; i++)
    {
    int tempSiparisYili = siparisYili;
    int tempSiparisAyi = i;
    if(i>12)
    {
    tempSiparisAyi = i % 12;
    tempSiparisYili++;

    }
    DateTime odemeTaksitGunu = new DateTime(tempSiparisYili, tempSiparisAyi, siparisGunu);
    //odemeTaksitGunu değerini db'de taksitler tablosuna atman gerek, içerisinde taksitin ödenmesi gereken tarih var.
    }

    Yaptığımızı özetlemek gerekirse, adamın sipariş verdiği gün ay yıl bilgilerini variable'lara atıyoruz. Sonra taksit sayısı kadar ay değeri üzerinden for döngüsüyle dönüp, gelecek taksitlerin tarihlerini oluşturuyoruz. Dikkat etmen gereken nokta (if i>12 kısmı) taksit hesaplarken yıl atlayabilirsin, onu da hesaba katarak kodu yazdım.
    Teşekkür ederim hocam. Bende aşağıdaki şekilde düzenledim çünkü 30 ocak seçtiğimizde 30 şubat olmadığı için sorun oluyordu. Odemeler adında tablo açtım ve içine odemetarihi formatı datetime olan değer girdim. Taksitleri bu alana kaydettirdiğimde hata alıyorum.

    int taksitSayisi = Convert.ToInt32(CmbTaksitMiktari.SelectedItem);
    for (int i = 0; i < taksitSayisi; i++)
    {
    DateTime OdemeTarihi = Convert.ToDateTime(TrhOdemeTarihi.Text);
    DateTime tempgun = OdemeTarihi.AddMonths(i);
    TaksitListesi.Items.Add(tempgun.ToShortDateString( ));
    }