• 09-05-2023, 11:32:50
    #1
    Arkadaşlar merhaba

    Bulunduğum kurumda kendi ihtiyaçlarımız için personel izin takip programı yapmaya çalışıyorum

    Takıldığım bir konu var. Yardımcı olabilirseniz sevinirim.

    Bir personelin 2016 yılından 8 2017 yılından 16 2018 yılından 20 gün izni olduğunu varsayalım.

    Bu personel diyelim ki 10 günlük izin alacak. Öncelikle 2016 yılından 8 günü sonrasında kalan 2 günü ise 2017 yılından kullanması gerekiyor. Nasıl bir kodlama yapmalıyım.

    Bu arada veritabanında izin sürelerini varchar olarak tuttum. Bir sıkıntı olur mu?
  • 09-05-2023, 11:36:47
    #2
    İzin sayılarını char olarak tutmanız hesaplama yaparken dönüştürme yapmanızı gerektirecektir.Örneğin 10 gün izinden 5 günü düşerek göstermek istediğinizde bunları convert etmeniz gerekir.
    Bu nedenle yarım izin düşme gibi bir durumunuz yoksa int tutmanızda fayda var.
  • 09-05-2023, 11:45:37
    #3
    exayazilim adlı üyeden alıntı: mesajı görüntüle
    İzin sayılarını char olarak tutmanız hesaplama yaparken dönüştürme yapmanızı gerektirecektir.Örneğin 10 gün izinden 5 günü düşerek göstermek istediğinizde bunları convert etmeniz gerekir.
    Bu nedenle yarım izin düşme gibi bir durumunuz yoksa int tutmanızda fayda var.
    Cevabınız için teşekkür ederim. Peki
    Alıntı
    Bir personelin 2016 yılından 8 2017 yılından 16 2018 yılından 20 izni olduğunu varsayalım.

    Bu personel diyleim ki 10 günlük izin alacak. Öncelikle 2016 yılından 8 günü sonrasında kalan 2 günü ise 2017 yılından
    kullanması gerekiyor. Nasıl bir kodlama yapmalıyım
    bu konuda nasıl bir yol izleyebilirim fikriniz var mı?
  • 09-05-2023, 12:16:53
    #4
    yönetici panelinden izin düşümü yapılırken hangi yıldan düşüleceği seçilecek mi yoksa otomatik mi olarak kendisi geri yıllardan gelerek mi düşecek.
  • 09-05-2023, 13:37:03
    #5
    kendi yılardan düşerek geri gelecek
  • 09-05-2023, 14:40:40
    #6
    Kendi yıllardan geri düşerek gelecek ise. Özetle anlatayım ben olsam iki tane tablo oluştururdum.
    1. İzin Hakkı Tablosu: (Id, Personel_Id, Yil, IzinSuresi ve varsa diğer istediğiniz başka bilgiler.)
    2. İzin Kullanım Tablosu: (Id, Personel_Id, KullandigiIzinSuresi ve kullandığı tarihler arasına ilişkin diğer detaylar)
      Yukarıdaki tablolar ilişkiseldir.
    Daha sonra gösterilen ekranlarda IzinHakkı tablosundaki izin hakkı olduğu yıllar group by ile gruplanır.
    Ardından personel görüntülendiğinde ilk yıldan düşmeye başlarsınız. Bittikçe diğer yıla geçersiniz.
    Örneğin:
    Kullandığı izin sayısının toplamını izin kullanım tablosundan toplarsınız. 50 gün diyelim. Bunu bir int değişken içerisinde tutarsınız. Değişken adı: KullanilanIzinToplami
    foreach ile ilk iznin tanımlı olduğu yıldan dönmeye başlarsınız.
    2016 yılından başladığınızı varsayalım. 2016 yılının izin miktarına bakılır 30 gün. 50 günden 30 gün düşülür. kalan 20 gün yukarıdaki tanımlanan KullanilanIzinToplami adlı değişkenin içine yeniden atılır.
    Ardından 2017 yılına geçilir. 2017 hakkına bakılır. 45 gün diyelim. 45'den kalan 20 gün düşür ve böylece döngü devam ederek yazılır. Düşecek birşey kalmadığından zaten izin hakkı tam olarak yazılacaktır.

    Metinle anlatmak biraz zor oluyor umarım açıklayıcı olmuştur. İyi çalışmalar.
  • 09-05-2023, 16:10:21
    #7
    exayazilim adlı üyeden alıntı: mesajı görüntüle
    Kendi yıllardan geri düşerek gelecek ise. Özetle anlatayım ben olsam iki tane tablo oluştururdum.
    1. İzin Hakkı Tablosu: (Id, Personel_Id, Yil, IzinSuresi ve varsa diğer istediğiniz başka bilgiler.)
    2. İzin Kullanım Tablosu: (Id, Personel_Id, KullandigiIzinSuresi ve kullandığı tarihler arasına ilişkin diğer detaylar)
      Yukarıdaki tablolar ilişkiseldir.
    Daha sonra gösterilen ekranlarda IzinHakkı tablosundaki izin hakkı olduğu yıllar group by ile gruplanır.
    Ardından personel görüntülendiğinde ilk yıldan düşmeye başlarsınız. Bittikçe diğer yıla geçersiniz.
    Örneğin:
    Kullandığı izin sayısının toplamını izin kullanım tablosundan toplarsınız. 50 gün diyelim. Bunu bir int değişken içerisinde tutarsınız. Değişken adı: KullanilanIzinToplami
    foreach ile ilk iznin tanımlı olduğu yıldan dönmeye başlarsınız.
    2016 yılından başladığınızı varsayalım. 2016 yılının izin miktarına bakılır 30 gün. 50 günden 30 gün düşülür. kalan 20 gün yukarıdaki tanımlanan KullanilanIzinToplami adlı değişkenin içine yeniden atılır.
    Ardından 2017 yılına geçilir. 2017 hakkına bakılır. 45 gün diyelim. 45'den kalan 20 gün düşür ve böylece döngü devam ederek yazılır. Düşecek birşey kalmadığından zaten izin hakkı tam olarak yazılacaktır.

    Metinle anlatmak biraz zor oluyor umarım açıklayıcı olmuştur. İyi çalışmalar.
    çok teşekkür ederim Kafamda birşeyler oluştu. En azından nasıl bir tablo yaparım olayını çözecek gibiyim. Eyvallah