Personel Devam Takip Mantığı Nasıl?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Personel Devam Takip Mantığı Nasıl?
Merhabalar,
Şu aralar bir PDKS yazılımı geliştirmenin daha başlangıç aşamasındayım. Analizlerimi bir türlü tamamlayamıyorum, çünkü her mantıkta bir pürüz, bir karmaşa buluyorum. Bana göre bir programın mantığı basit ve anlaşılır olmalı, ancak çoğu zaman kendi kurduğum mantığı bile anlayamayacak duruma geliyorum.
Sizlerin de fikirlerini alabilmek için, kurduğum mantığı sizlere basitçe açıklamaya çalışmak istedim.
Program çok vardiyalı ve yaklaşık 1000 kişinin devam hareketlerini hesaplayacak yapıda olmalı, dönen vardiyalara da destek verebilmeli. Bundan kastım şu: A kişisi 1.10.2004 - 15.10.2004 arasında 08:00-16:00 çalışıyorsa, 16.10.2004-31.10.2004 arasında 16:00-22:00 çalışıyor. vs..
Bu vardiya döndürmeyi manuel veya otomatik olarak yapabilmeli.
Öncelikle yazılımda bir şirket takvimi olması gerektiğini düşündüm. Bu şirketin 1 yıl içindeki çalışma türlerinin bir ajandası gibi. Yani ayın 1-10 arası Normal çalışma, 11-12 arası hafta sonu, 13-14 arası normal çalışma, 14'ünde saat 13:00 a kadar normal, sonrası yarım gün, 16'sı bayram vs... gibi bir kaydın önceden hazırlanması gerekir.
Şirketteki bölümler tablosu tabii..
ve kullanıcı grupları diye birşey tanımladım. Bunuda kullanıcıları gruplandırmak ve toplu vardiya vs. vermek için düşündüm. Windows'daki gruplar gibi (Admin, User vs..).
Yapmak istediğim olabildiğince hareket hesaplamalarını SP'ler ile server tarafında halletmek.
Önerileriniz olursa veya bu konuda deneyimleriniz mevcutsa, yöntem vs. konularında bunları benimle paylaşırsanız mutlu olurum.
Şu aralar bir PDKS yazılımı geliştirmenin daha başlangıç aşamasındayım. Analizlerimi bir türlü tamamlayamıyorum, çünkü her mantıkta bir pürüz, bir karmaşa buluyorum. Bana göre bir programın mantığı basit ve anlaşılır olmalı, ancak çoğu zaman kendi kurduğum mantığı bile anlayamayacak duruma geliyorum.
Sizlerin de fikirlerini alabilmek için, kurduğum mantığı sizlere basitçe açıklamaya çalışmak istedim.
Program çok vardiyalı ve yaklaşık 1000 kişinin devam hareketlerini hesaplayacak yapıda olmalı, dönen vardiyalara da destek verebilmeli. Bundan kastım şu: A kişisi 1.10.2004 - 15.10.2004 arasında 08:00-16:00 çalışıyorsa, 16.10.2004-31.10.2004 arasında 16:00-22:00 çalışıyor. vs..
Bu vardiya döndürmeyi manuel veya otomatik olarak yapabilmeli.
Öncelikle yazılımda bir şirket takvimi olması gerektiğini düşündüm. Bu şirketin 1 yıl içindeki çalışma türlerinin bir ajandası gibi. Yani ayın 1-10 arası Normal çalışma, 11-12 arası hafta sonu, 13-14 arası normal çalışma, 14'ünde saat 13:00 a kadar normal, sonrası yarım gün, 16'sı bayram vs... gibi bir kaydın önceden hazırlanması gerekir.
Şirketteki bölümler tablosu tabii..
ve kullanıcı grupları diye birşey tanımladım. Bunuda kullanıcıları gruplandırmak ve toplu vardiya vs. vermek için düşündüm. Windows'daki gruplar gibi (Admin, User vs..).
Yapmak istediğim olabildiğince hareket hesaplamalarını SP'ler ile server tarafında halletmek.
Önerileriniz olursa veya bu konuda deneyimleriniz mevcutsa, yöntem vs. konularında bunları benimle paylaşırsanız mutlu olurum.
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
Ben daha önce yapmamıştım ama yapsaydım şöyle olurdu
günün kontrol sırası şöyle olur:
kontrol edilen gün özel gün mü? değilse hafta sonu mu? ikiside değilse normal gündür zaten
Bu durumda özel günler için bir tablo bulunmalı,
özel günler periyodik olarak tekrar edenler (19 mayıs, 23 nisan)
bir kereye mahsus olanlar
diye ikiye ayrılırar. Sürekli tekrar edenler sadece gün ve ay değeri taşırlar. Yıl içinde
bulunduğumuz yıl ile birleştirilip
bir kereye mahsus olanlara (15.10.2005 gibi)
kesin tarih girilir.
Bu durumda eğer tarih bu tablodan birine uyuyorsa yapacağı işlemi CDRKod ile
belirliyoruz. Daha sonra VRD.CDRNo ile personelin VRD.CSTNo ile çalışacağı saatleri CST
tablosundaki id alanından
seçiyoruz. Yukardakine göre açıklamak kerekirse OGN tablosunun Id=0. kaydında her yıl
tekrar eden 23 nisanda CDR kod (çalışma durumu kodu) 2 yani "Tatil". Gelen bu 2 değeri
işçinin vardiyasına göre VRD.CDRNo ile kıyaslanıyor ve VRD.CSTNo çıkıyor. Yani buna göre
vardiyası 0 olan (güncüzcü diyelim) personelin çalışma saatleri 3 çıkıyor. Gidip bakıyoruz
CST de 3 numara neymiş: 00:00-00:00 yani personel çalışmıyor.
hafta sonu mu değilmi? yada her çarşamba biz şu saate kadar çalışıyoruz da diyebilirler.
Bu da ayrı bir tabloda tutulmalı
Bu durumda personelin çalışma programını oluştururken
Böylece personelin grubunu 2 değil de 3 yapınca personel, 1 numaralı vardiya sistemiyle
çalışacak. (yani bu sisteme göre gececi olacak) Bu durumda vardiya değiştirme işlemi
bu tabloydaki vardiya no değerinin 0-1 ile değiştirilmesiyle yapılabilir
Kod: Tümünü seç
GRP (gruplar)
GrupNo Açıklama
-----------------------------------
0 Admin
1 Moderatör
2 Gündüzcü Personel Grubu
3 Gececi Personel Grubu
...
Kod: Tümünü seç
YTK (Yetki)
PersonelNo GRPNo ADI_SOYADI
-----------------------------------
0 0 Admin 1
1 0 Admin 2
2 2 Personel 1
3 2 Personel 2
4 3 Personel 3
...
Kod: Tümünü seç
CST (Çalışma Saatleri)
Id Başlangıç Bitiş
-----------------------------------
0 08:00 16:00 // Gündüzcü personelin çalışma saati
1 16:00 22:00 // Gececi personelin çalışma saati
2 08:00 13:00 // Yarım gün için çalışma saati
3 00:00 00:00 // Tatil günleri için çalışma saati
...
Kod: Tümünü seç
CDR (Çalışma Durumu)
ID Açıklama
-----------------------------------
0 Normal
1 Yarım Gün
2 Tatil
...
Kod: Tümünü seç
VRD (Vardiyalar belirleniyor gündüz için 0 gece için 1 verdim)
ID VrdNo CDRNo CSTNo
-----------------------------------
0 0 0 0 // Vardiya no 0 için çalışma durumu normal olunca Çalışma saatleri 08:00-16:00
1 0 1 2 // Vardiya no 0 için çalışma durumu yarım gün olunca çalışma saatleri 08:00-13:00
2 0 2 3 // Vardiya no 0 için çalışma durumu tatil olunca çalışma saatleri 00:00-00:00
3 1 0 1 // Vardiya no 1 için çalışma durumu normal olunca çalışma saatleri 16:00-22:00
...
günün kontrol sırası şöyle olur:
kontrol edilen gün özel gün mü? değilse hafta sonu mu? ikiside değilse normal gündür zaten
Bu durumda özel günler için bir tablo bulunmalı,
özel günler periyodik olarak tekrar edenler (19 mayıs, 23 nisan)
bir kereye mahsus olanlar
diye ikiye ayrılırar. Sürekli tekrar edenler sadece gün ve ay değeri taşırlar. Yıl içinde
bulunduğumuz yıl ile birleştirilip
bir kereye mahsus olanlara (15.10.2005 gibi)
kesin tarih girilir.
Kod: Tümünü seç
OGN (Özel Günler)
ID Tekrar GG AA YY CDRKod
-----------------------------------
0 1 23 04 2
1 1 19 05 2
2 0 05 06 2005 1
...
belirliyoruz. Daha sonra VRD.CDRNo ile personelin VRD.CSTNo ile çalışacağı saatleri CST
tablosundaki id alanından
seçiyoruz. Yukardakine göre açıklamak kerekirse OGN tablosunun Id=0. kaydında her yıl
tekrar eden 23 nisanda CDR kod (çalışma durumu kodu) 2 yani "Tatil". Gelen bu 2 değeri
işçinin vardiyasına göre VRD.CDRNo ile kıyaslanıyor ve VRD.CSTNo çıkıyor. Yani buna göre
vardiyası 0 olan (güncüzcü diyelim) personelin çalışma saatleri 3 çıkıyor. Gidip bakıyoruz
CST de 3 numara neymiş: 00:00-00:00 yani personel çalışmıyor.
hafta sonu mu değilmi? yada her çarşamba biz şu saate kadar çalışıyoruz da diyebilirler.
Bu da ayrı bir tabloda tutulmalı
Kod: Tümünü seç
HFG (Haftanın günü kontrolü)
ID CDRKod
0 2
1 0
2 0
3 0
4 0
5 0
6 0
7 1
Bu durumda personelin çalışma programını oluştururken
Kod: Tümünü seç
VGS (Vardiya grup sistemi)
GrupNo VardiyaNo
2 0 //Gündüzcü personel grubunun hangi vardiya sisteminde old. tanımladık
3 1 //Gececi personel grubunun hangi vardiya sisteminde old. tanımladık
çalışacak. (yani bu sisteme göre gececi olacak) Bu durumda vardiya değiştirme işlemi
bu tabloydaki vardiya no değerinin 0-1 ile değiştirilmesiyle yapılabilir
Özenli yanıtın için teşekkür ederim. Benim kurduğum tablo yapısına çok benziyor.
Personel'in giriş mi, çıkış mı yaptığına nasıl karar verebiliriz peki?
Yani bana gelecek olan data şu şekilde:
Personel_ID
Geçiş Tarihi
Geçiş Saati
Bundan Personel girmiş mi çıkmış mı bulmam gerekli. Kart çekmeyi unuttu ise veya o gün mesai yaptıysa (örneğin 8 saat daha çalıştı) nasıl bulunabilir?
Önce veri adedi tek sayıysa birisini eksik yapmıştır gibi bir mantıkla gitmek istedim. Buradaki asıl problem şu: eğer gece 22 de gelip, ertesi gün 08:00 de çıkarsa nasıl ayırt edebileceğim? Çünkü o güne göre hesap yaptığımdan sanki o gün 1 kere geçiş yapmış gibi görünecek. bir de gün içinde işi çıkar ve birden fazla geçiş yaparsa nasıl olacak? örneğin 6 kere giriş çıkış yapmış. Bunu nasıl ayırabilirim bilemiyorum. Bu konuda kafamda net birşey belirmiş değil.
Personelin o günkü vardiya saatine ve 1 kişinin maximum çalışabilme süresine göre (ör 15 saat) bir algoritma kurmak gerekli zannedersem. Ayrıca bu algoritma gün içinde 2'den fazla hareketi de doğru yorumlamalı (yani işi çıkar gider, geri gelir vs..). Her hareketi bu giriş bu çıkış diye bilebilmeli vs....
İşin içinden çıkamıyorum. Çok mu ayrıntılı düşünüyorum acaba?
İyi günler dilerim
Personel'in giriş mi, çıkış mı yaptığına nasıl karar verebiliriz peki?
Yani bana gelecek olan data şu şekilde:
Personel_ID
Geçiş Tarihi
Geçiş Saati
Bundan Personel girmiş mi çıkmış mı bulmam gerekli. Kart çekmeyi unuttu ise veya o gün mesai yaptıysa (örneğin 8 saat daha çalıştı) nasıl bulunabilir?
Önce veri adedi tek sayıysa birisini eksik yapmıştır gibi bir mantıkla gitmek istedim. Buradaki asıl problem şu: eğer gece 22 de gelip, ertesi gün 08:00 de çıkarsa nasıl ayırt edebileceğim? Çünkü o güne göre hesap yaptığımdan sanki o gün 1 kere geçiş yapmış gibi görünecek. bir de gün içinde işi çıkar ve birden fazla geçiş yaparsa nasıl olacak? örneğin 6 kere giriş çıkış yapmış. Bunu nasıl ayırabilirim bilemiyorum. Bu konuda kafamda net birşey belirmiş değil.
Personelin o günkü vardiya saatine ve 1 kişinin maximum çalışabilme süresine göre (ör 15 saat) bir algoritma kurmak gerekli zannedersem. Ayrıca bu algoritma gün içinde 2'den fazla hareketi de doğru yorumlamalı (yani işi çıkar gider, geri gelir vs..). Her hareketi bu giriş bu çıkış diye bilebilmeli vs....
İşin içinden çıkamıyorum. Çok mu ayrıntılı düşünüyorum acaba?
İyi günler dilerim
merhaba.
giriş-çıkış için ayrı bir sistem kullanılabilir aslında.onun haricinde ilk mesajınızda belirttiğiniz şirketin çalışma takvimine göre bunu belirleyebilirsiniz. yani çalışma saati içinde çıkıp gitmiş ve aynı çalışma saati içinde tekrar girmişse işi vardır diyebiliriz. ancak gitmiş ve geri dönmemişse bu adminlere iletilip nedeni araştırılmalıdır. diğer konu 22-08 olayına gelince; yine çalışma takviminde böyle bir vardiyanın girilmiş olması sizin için yol gösterici bir kavram olmalı. giriş 22 görünüyor çıkış 08..haliyle tek mesai yapmıştır ancaak, bu noktada bir de tarih kontrolü gerekli, tahmininiz üzre tarih ardışık olmalı..
kolay gelsin.
giriş-çıkış için ayrı bir sistem kullanılabilir aslında.onun haricinde ilk mesajınızda belirttiğiniz şirketin çalışma takvimine göre bunu belirleyebilirsiniz. yani çalışma saati içinde çıkıp gitmiş ve aynı çalışma saati içinde tekrar girmişse işi vardır diyebiliriz. ancak gitmiş ve geri dönmemişse bu adminlere iletilip nedeni araştırılmalıdır. diğer konu 22-08 olayına gelince; yine çalışma takviminde böyle bir vardiyanın girilmiş olması sizin için yol gösterici bir kavram olmalı. giriş 22 görünüyor çıkış 08..haliyle tek mesai yapmıştır ancaak, bu noktada bir de tarih kontrolü gerekli, tahmininiz üzre tarih ardışık olmalı..
kolay gelsin.
- pentiumkivanc
- Üye
- Mesajlar: 350
- Kayıt: 19 Şub 2004 10:24
- İletişim:
küçük bir şey bende yapmıştım bu konuda.
* haftalık çalışma takvimi oluşturmuştum.
* personel kartında iki alanda son işlemi sakladım. yani bu personel en son şu saatte giriş yaptı gibi bir bilgi sakladım.
* daha sonra gelen bilgiyi karşılaştırarak hareket tipini belirledim. burada istediğin gibi kontroller yapabilirsin. mesela mesaisi dolmadan çıkmışsa raporlarsın. fazla çalışmışsa ayrıca raporlarsın.
eğer personel çıkışları kendi programından yapılıyorsa, yada kontrol edebiliyorsan bunun için şöyle bir şey yapmıştım. personel izin aldığında yada iş için ayrılacağında. kartı geçiriyor. sen bakıyorsun vardiyası henüz dolmamış. hemen izin kodu soruyor. bu izin kodu izni veren amir tarafından sisteme tanımlanıp personele söyleniyor, personel de bu kodu tuşlayıp çıkıyor.
gibi.
* haftalık çalışma takvimi oluşturmuştum.
* personel kartında iki alanda son işlemi sakladım. yani bu personel en son şu saatte giriş yaptı gibi bir bilgi sakladım.
* daha sonra gelen bilgiyi karşılaştırarak hareket tipini belirledim. burada istediğin gibi kontroller yapabilirsin. mesela mesaisi dolmadan çıkmışsa raporlarsın. fazla çalışmışsa ayrıca raporlarsın.
eğer personel çıkışları kendi programından yapılıyorsa, yada kontrol edebiliyorsan bunun için şöyle bir şey yapmıştım. personel izin aldığında yada iş için ayrılacağında. kartı geçiriyor. sen bakıyorsun vardiyası henüz dolmamış. hemen izin kodu soruyor. bu izin kodu izni veren amir tarafından sisteme tanımlanıp personele söyleniyor, personel de bu kodu tuşlayıp çıkıyor.
gibi.
Re: Personel Devam Takip Mantığı Nasıl?
Ben de vardiya konusunda bir calisma yapiyordum ama biraz daha basit sistem olacak yine de nasil yapsam diye fikir alacaktim:
problem soyle.
her gun 3 vardiya var gece vardiyasinin ise ucreti biraz fazla.ama bir ay icinde her kes bu gece vardiyasinda calismis olabiliyor. iste ayin sonunda veritabnina gore girilen yoklama ve saat hesabina gore toplam kac saat calisti ve bunun kac saatini gece vardiyasinda calisti olarak almam lazim.
bir de yoklama girilirken o alana sadece 1 den 8'e kadar degerlerin girilmesini yada gelmediyse "gm" hasta ise "ht" gibi degerlerin kabul edilmesi bunlarin disinda bir deger girildiginde kabul etmemesi ve uyarlimasi nasil yapilabilir?
3000 den fazla elelman var.kafam biraz karisti.
vt olarak MSSQL2000 kullaniyoruz.
yardimci olabilir misiniz?
problem soyle.
her gun 3 vardiya var gece vardiyasinin ise ucreti biraz fazla.ama bir ay icinde her kes bu gece vardiyasinda calismis olabiliyor. iste ayin sonunda veritabnina gore girilen yoklama ve saat hesabina gore toplam kac saat calisti ve bunun kac saatini gece vardiyasinda calisti olarak almam lazim.
bir de yoklama girilirken o alana sadece 1 den 8'e kadar degerlerin girilmesini yada gelmediyse "gm" hasta ise "ht" gibi degerlerin kabul edilmesi bunlarin disinda bir deger girildiginde kabul etmemesi ve uyarlimasi nasil yapilabilir?
3000 den fazla elelman var.kafam biraz karisti.
vt olarak MSSQL2000 kullaniyoruz.
yardimci olabilir misiniz?
Re: Personel Devam Takip Mantığı Nasıl?
Bu 3000 kişi kart basmıyormu?varsa buradan okuyabilirsiniz vtye atarsınız sanırım.
Kısıtlama olayını Combobaxa girersiniz ordan seçilir.
Ama ilerde değişmesi gerekir ise problem olur.
Ayrıca gelmediği günlerde izin olayını da gündeme almalısınız. Ücretli/Ücretsiz/Haftalık/Yıllık/Mazeretli(siz) Bunlar detay.
Kısıtlama olayını Combobaxa girersiniz ordan seçilir.
Ama ilerde değişmesi gerekir ise problem olur.
Ayrıca gelmediği günlerde izin olayını da gündeme almalısınız. Ücretli/Ücretsiz/Haftalık/Yıllık/Mazeretli(siz) Bunlar detay.
Bir kelimenin anlamını öğretsen bile yeter..



Re: Personel Devam Takip Mantığı Nasıl?
iste bizim burda teknoloji bu kadar
kart gecirilmiyor puantor diye bir adam var tek tek giriyorlar.
gurplama falan da yok simdiye kadar burda access kullanilmis ve vardiya meselesi yokmus.
o benim problemim degil ya girsinler de ben bunun vt de nasil tasarlayacagim onu cozemiyorum.yoklama diye bir tabloya her gun icin ayri bir satir girilse 3000 adam ayin sonunda o tabloda 90000 satir olur.bir de bu 1 sene sonra cok buyuyor ve karisiyor.
seklinde ayin sonunda mesela her vardiyanin saatlerini ayri ayri hesaplayip toplamini ve 3.vardiya yani gece vardiyasinin da kac saat oldugunu gostermem yeterli.

gurplama falan da yok simdiye kadar burda access kullanilmis ve vardiya meselesi yokmus.
o benim problemim degil ya girsinler de ben bunun vt de nasil tasarlayacagim onu cozemiyorum.yoklama diye bir tabloya her gun icin ayri bir satir girilse 3000 adam ayin sonunda o tabloda 90000 satir olur.bir de bu 1 sene sonra cok buyuyor ve karisiyor.
Kod: Tümünü seç
SICIL NO TARIH 1.VARDIYA 2.VARDIYA 3.VARDIYA
12345 22.07.08 7 saat
Re: Personel Devam Takip Mantığı Nasıl?
sql server iin 1 milyon satır devede kulak. accesste düşünüyorsan başlamadan vazgecDovlet yazdı:iste bizim burda teknoloji bu kadarkart gecirilmiyor puantor diye bir adam var tek tek giriyorlar.
gurplama falan da yok simdiye kadar burda access kullanilmis ve vardiya meselesi yokmus.
o benim problemim degil ya girsinler de ben bunun vt de nasil tasarlayacagim onu cozemiyorum.yoklama diye bir tabloya her gun icin ayri bir satir girilse 3000 adam ayin sonunda o tabloda 90000 satir olur.bir de bu 1 sene sonra cok buyuyor ve karisiyor.
seklinde ayin sonunda mesela her vardiyanin saatlerini ayri ayri hesaplayip toplamini ve 3.vardiya yani gece vardiyasinin da kac saat oldugunu gostermem yeterli.Kod: Tümünü seç
SICIL NO TARIH 1.VARDIYA 2.VARDIYA 3.VARDIYA 12345 22.07.08 7 saat
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Re: Personel Devam Takip Mantığı Nasıl?
+1sql server iin 1 milyon satır devede kulak. accesste düşünüyorsan başlamadan vazgec
Bu gibi programlar sanırım ay bazında veya 3 ar aylık dönem v.s. için farklı tablolar create ediyorlar veya öncesini başka bir yere yedekleyip mevcut tabloyu boşaltıyorlar.
Bir kelimenin anlamını öğretsen bile yeter..



- tanerileri
- Üye
- Mesajlar: 55
- Kayıt: 06 Tem 2007 11:30
Re: Personel Devam Takip Mantığı Nasıl?
Yıllar önce "paradox for dos" ile bahsettiğiniz tür bir program geliştirmiştim.
yazmaya başlarken ki hedeflerimle , bittiği andaki elimde olan program çok farklı olmuştu.
zira çok karmaşık ve bir o kadarda değişik bir sistem puantör uygulaması.
personel kart basmayı unutabiliyor , bu durumda bugünkü tek kart yarının girişi olmasın yani gececi olmasın gibi bir arayış içine giriyorsun haliyle , yada aynı gün 2 den fazla hareket olabiliyor, personel aynı hafta içinde 2-3 tür vardşyada gelmiş olabiliyor yada 1 gün sabahlamış olabiliyor vs vs vs yüzlerce ihtimal var. her halükarda ilk yazdığım koda , sonralarda o kadar çok eklemeler yaptımki , program çalışıyordu çalışmasına ama her ay tekrardan gözle kontrol etmem gerekiyordu , hatalar vs olabiliyordu.
Sonradan kart basma makinamız arızalandı , bunu değiştirirken beraberinde yazılımı olan bir kart makinası aldık , bu yazılımı incelediğimde bunu bende yapardım dediğimi dün gibi hatırlıyorum.
çünkü o kadar genele yaymışlarki , mesela bir yıl için çalışma takvimi yapmışlar , her gün iin bu takvimi giriyorssun (tabi kopyalama mantığıyla hızlı girebiliyorsun) , sonra resmi tatiler , vardiya gurupları , personel bazında hangi vardiyalarda gelebilieceği , bunların hep girilmesi lazım , zaten bu kadar veri girdikten sonra hesaplaması kolay dediğinizi duyar gibiyim , bende aynen öyle demiştim.
program şuan % 90-95 işimizi görüyor. (neptün pdks sisimleri ve programı) . ama bundada sorunlar var , tek kartları raporlayıp , bunları girmeniz lazım. fazla mesaiyi onaylamanız lazım , yada seçmeli olarak onaylamasızda yapabiliyorsunuz. şunu unutmayı hiçbir program % 100 bütün kullanıcıları hatasız yada elle müdehalesiz hesaplayamaz.
bu kadar ön bilgiden sonra size şunu öneririm = bahsettiğim yada başka bir firmadan bir yazılım alın , kendiniz uğraşmayın. 1000 kullanıcılı bir şirketse zaten buna kaynak ayırabilir durumdadır.
zira siz oranın personeliyseniz , puantör ile ilgili ne zaman hata olsa sizden bilecekler , ben bunu yaşadım ve gördüm. programınıza yığınla yama yapmanız gerekecek.
şuan kendi seçtiği programla insan kaynakları kendi hesaplıyor puantörü ve ben çok rahatım.
Puantör, içine girdikçe sizi kendine çeken bir bataklık gibidir , kaldıki o firmanın personeliyseniz dahada kötü durumunuz.
Amerikayı yeniden keşfetmeye gerek yok , hazır bir program almanızı öneririm.
yazmaya başlarken ki hedeflerimle , bittiği andaki elimde olan program çok farklı olmuştu.
zira çok karmaşık ve bir o kadarda değişik bir sistem puantör uygulaması.
personel kart basmayı unutabiliyor , bu durumda bugünkü tek kart yarının girişi olmasın yani gececi olmasın gibi bir arayış içine giriyorsun haliyle , yada aynı gün 2 den fazla hareket olabiliyor, personel aynı hafta içinde 2-3 tür vardşyada gelmiş olabiliyor yada 1 gün sabahlamış olabiliyor vs vs vs yüzlerce ihtimal var. her halükarda ilk yazdığım koda , sonralarda o kadar çok eklemeler yaptımki , program çalışıyordu çalışmasına ama her ay tekrardan gözle kontrol etmem gerekiyordu , hatalar vs olabiliyordu.
Sonradan kart basma makinamız arızalandı , bunu değiştirirken beraberinde yazılımı olan bir kart makinası aldık , bu yazılımı incelediğimde bunu bende yapardım dediğimi dün gibi hatırlıyorum.
çünkü o kadar genele yaymışlarki , mesela bir yıl için çalışma takvimi yapmışlar , her gün iin bu takvimi giriyorssun (tabi kopyalama mantığıyla hızlı girebiliyorsun) , sonra resmi tatiler , vardiya gurupları , personel bazında hangi vardiyalarda gelebilieceği , bunların hep girilmesi lazım , zaten bu kadar veri girdikten sonra hesaplaması kolay dediğinizi duyar gibiyim , bende aynen öyle demiştim.
program şuan % 90-95 işimizi görüyor. (neptün pdks sisimleri ve programı) . ama bundada sorunlar var , tek kartları raporlayıp , bunları girmeniz lazım. fazla mesaiyi onaylamanız lazım , yada seçmeli olarak onaylamasızda yapabiliyorsunuz. şunu unutmayı hiçbir program % 100 bütün kullanıcıları hatasız yada elle müdehalesiz hesaplayamaz.
bu kadar ön bilgiden sonra size şunu öneririm = bahsettiğim yada başka bir firmadan bir yazılım alın , kendiniz uğraşmayın. 1000 kullanıcılı bir şirketse zaten buna kaynak ayırabilir durumdadır.
zira siz oranın personeliyseniz , puantör ile ilgili ne zaman hata olsa sizden bilecekler , ben bunu yaşadım ve gördüm. programınıza yığınla yama yapmanız gerekecek.
şuan kendi seçtiği programla insan kaynakları kendi hesaplıyor puantörü ve ben çok rahatım.
Puantör, içine girdikçe sizi kendine çeken bir bataklık gibidir , kaldıki o firmanın personeliyseniz dahada kötü durumunuz.
Amerikayı yeniden keşfetmeye gerek yok , hazır bir program almanızı öneririm.
Taner İLERİ.
Re: Personel Devam Takip Mantığı Nasıl?
Taner tamamen katiliyorum sana ben de hep diyorum Edison lambayi 1000 kere denemis bulmus evimizde lamba kullanmak icin kendimiz yapmaya gerek yok bunun yerine yeni seyler uzerine kafa yoralim ama iste herkes ayni dusunmuyor.Bazi adamlarin ufku genis bazisininki dar . Ben burda ise yeni basladim ve delphi bilmiyordum bunlarla ugrasarak ogreniyorum.Ben ogreneyim de gerisini sirket dusunsun.
Simdi bu konuda biraz Kodla alakali bir sey soracagim ayri bir konu acacaktim ama yarin obur gun baska biri bu konuda ugrasacaksa aradigi herseyi bu konu altinda bulsunlar diye burda soracagim.
DbGrid de personellerin listesinde baslarina checkbox eklesem veya eklemeden de Multiselect ile sectikten sonra.formun icinde bir tane Edit ten veya combobox tan bir deger sectigim zaman selili olan butun satirlarda o alana tek giriste bilgi girilebiliyor mu?
mesela 100 tane persoenl sectim diyelim bunlarin vardiya alanina edit den 2 yazdigim zaman 100 tane personelin vardiya alanina 2 yazmasi lazim.tek tek girmemesi icin.Cunku vardiyada gruplama yok.
Simdi bu konuda biraz Kodla alakali bir sey soracagim ayri bir konu acacaktim ama yarin obur gun baska biri bu konuda ugrasacaksa aradigi herseyi bu konu altinda bulsunlar diye burda soracagim.
DbGrid de personellerin listesinde baslarina checkbox eklesem veya eklemeden de Multiselect ile sectikten sonra.formun icinde bir tane Edit ten veya combobox tan bir deger sectigim zaman selili olan butun satirlarda o alana tek giriste bilgi girilebiliyor mu?
mesela 100 tane persoenl sectim diyelim bunlarin vardiya alanina edit den 2 yazdigim zaman 100 tane personelin vardiya alanina 2 yazmasi lazim.tek tek girmemesi icin.Cunku vardiyada gruplama yok.
- tanerileri
- Üye
- Mesajlar: 55
- Kayıt: 06 Tem 2007 11:30
Re: Personel Devam Takip Mantığı Nasıl?
Dbcheckbox ile yapayım dersen eğer
dbcheckbox u table da bir boolean alana bağlaman lazım . mesela TField Degistir:TBoolean; gibi.
Sonra checboxlarda işaretlediğin kayıtlara editdeki değeri ataman içinse ,
with Table1 do
begin
first;
While not eof do
begin
FieldByName('Vardiya').asinteger:=StrToInt(Edit1.Text));
Next;
end;
end;
şeklinde yapabilirsin , ama sürekli böyle işlemler yapacaksan bunlara tabloda açtığın saha yardımıyla yapmanı önermem. bu kodu kafanda bir fikir oluşsun diye yazdım.
Dbgrid in selct özelliği daha kullanışlı gözüküyor. oranında zaaf tarafı , ekranda görmediğin kadar çok sayıda personelin varsa bunları seçmekdeki zorluğun.
forumda dbgrid multiselect diye aratırsan bununla ilgil iörnekler bulabilirsin.
yeni başlayan biri olarak sana yagene tafsiyem şudur.
öncelikle componentleri , özelliklerini (Properties) denemeler yaparak ve sonuçlarını görerek anlamaya çalış.
sonrada eventleri aynı mantıkla çözmeye çalış.
Pascal konusunda sıkıntın varsada , hepsinden öncelikle pascal ve komutlarını öğren . (marco cantu nun epascal isimle küçük kitabını tafsiye ederim , türkçe çeviriside yapılmıştuı sanırım , internette ararsan bulabilirsin)
Gerçek program yazarak değilde, denemeler yaparak öğrenmeni tafsiye ederim.
Kolay gelsin.
dbcheckbox u table da bir boolean alana bağlaman lazım . mesela TField Degistir:TBoolean; gibi.
Sonra checboxlarda işaretlediğin kayıtlara editdeki değeri ataman içinse ,
with Table1 do
begin
first;
While not eof do
begin
FieldByName('Vardiya').asinteger:=StrToInt(Edit1.Text));
Next;
end;
end;
şeklinde yapabilirsin , ama sürekli böyle işlemler yapacaksan bunlara tabloda açtığın saha yardımıyla yapmanı önermem. bu kodu kafanda bir fikir oluşsun diye yazdım.
Dbgrid in selct özelliği daha kullanışlı gözüküyor. oranında zaaf tarafı , ekranda görmediğin kadar çok sayıda personelin varsa bunları seçmekdeki zorluğun.
forumda dbgrid multiselect diye aratırsan bununla ilgil iörnekler bulabilirsin.
yeni başlayan biri olarak sana yagene tafsiyem şudur.
öncelikle componentleri , özelliklerini (Properties) denemeler yaparak ve sonuçlarını görerek anlamaya çalış.
sonrada eventleri aynı mantıkla çözmeye çalış.
Pascal konusunda sıkıntın varsada , hepsinden öncelikle pascal ve komutlarını öğren . (marco cantu nun epascal isimle küçük kitabını tafsiye ederim , türkçe çeviriside yapılmıştuı sanırım , internette ararsan bulabilirsin)
Gerçek program yazarak değilde, denemeler yaparak öğrenmeni tafsiye ederim.
Kolay gelsin.
Taner İLERİ.
Re: Personel Devam Takip Mantığı Nasıl?
Taner tesekkur ederim tavsiyelerini de dikkate alacagim.Epascal kitabi da buldum indirdim.Zaten temel dillerden pascal veya c gibi bir dille ugrasmayi dusunuyorum.Su an personel takip programini delphiyi hic bilmesem de az cok yaptim bir iki tane sey kaldi biri bu konu.bu proje ile ugrasirken kac kere deneme yanilma oldu.Ilk defa programlamaya ciddi sekilde delphi ile basladim sayilir universitede c, php falan gorduk ama isirik elma gibi yarida kaldi hepsi.su personel isini kopyala- yapistir ve taklitle bitireyim sonra ozunu anlamak icin temelden baslarim.
biraz sacma ama butun ustadlar boyle diyor ustadliga giden yol taklitten gecer diyorlar.
Internetten soyle bir sey buldum about.delphi den biraz kendime gore degistirdim ama hala istedigim seyi yapamiyorum calismiyor.Bookmarklist le de buna benzer bir sey denedim o da olmadi.

Internetten soyle bir sey buldum about.delphi den biraz kendime gore degistirdim ama hala istedigim seyi yapamiyorum calismiyor.Bookmarklist le de buna benzer bir sey denedim o da olmadi.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
if DBGrid1.SelectedRows.Count > 0 then
begin
with DBGrid1.DataSource.DataSet do
begin
for i := 0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i]));
AdoQuery1.FieldByName('Vardiya').AsInteger:=StrToInt(Edit1.Text);
end;
end;
end
end;