سؤال حول برنامج مراقبة دوام
#1
السلام عليكم ورحمة الله وبركاته
ما هي الطريقة الأنسب لمقارنة حركات العامل مع المواعيد الإفتراضية لدوامه حيث أني قمت بتجهيز معظم الأمور التي يتطلبها البرنامج من حيث الأمور الثانوية والرواتب والعمليات الحسابية وكشف التعديلات على البصمات وإستعادة التعديلات القديمة والعديد من الأمور لكن المشكلة التي وقفت عندها هي الأهم وروح البرنامج والمتمثلة في كشف الدوام ومقارنته بالدوام الأصلي

بصراحة جربت طريقتين
الأولى مشكلتها إنها غير ديناميكية يعني البرنامج ما بفيد لو قررت أغير بمواعيد الدوام بشكل كبير يعني بضل البرنامج مقيد و إله حدود
والطريقة بتتمثل بتحديد طريقة الدوام المطلوبة برمجياً مع إمكانية تعديل التوقيت فقط
حيث يقوم البرنامج بمقارنة هذا الوقت مع كل بصمة لهذا العامل في هذا الشهر وترتيب البصمات دخول وخروج بشكل تقائي وفقط لترتيبها الأولى دخول والثانية خروج
وهنا يمكن أن يحدث معي أخطاء بسبب أن عملية الفرز هي للترتيب ولا يوجد إمكانية لمعرفة هل البصمة فعلا هي للدخول أم أنه تم ترتيبها هنا بسبب عدم وجود بصمة دخول

الطريقة الثانية
تتمثل بعمل جدول عبر البرنامج قمت ببرمجة قسم سميته مولد الدوام حيث يتم فيه صنع جدول دوام بكافة تفاصيله لفئة من العمال
الآن يقوم البرنامج بدمج سجل الدوام المطلوب من العامل مع سجل تسجيلات الدخول والخروج له خلال هذا الشهر

المشكلة في هذه الطريقة
أنها تتطلب مقارنات كبيرة حيث أنا البرنامج يمكنه تمييز الحركات المطلوبة من الحركات الأصلية والمقارنة بينها حيث أنه يقوم بالتمييز بين بصمة الدخول والخروج نسبياً ويقوم بوضع البصمة بمكانها الصحيح لتسهيل عميلة المراقبة والتصحيح للمستخدم
لكن المشكلة أنه في حال قام العامل بالمغادرة والعودة ضمن وقته أو ضمن أي وقتين مسجلين بمعنا أنه أتى في السابعة صباحاً وغادر في الخامسة البرنامج يقارن بشكل سليم الدخول والخروج لكن كيف سيتعامل مع الوقت في حال غادر ضمن هاتين البصمتين وعاد مرة ثانية
حيث أنه يقارن البصمات الأصلية فقط ببصمات الجدول الإفتراضي الذي تم دمجه معه

بتمنى العون منكم بنصحي بأفضل طريقة للتعامل مع البصمات

وشكراً لكم
الرد
#2
و عليكم السلام و رحمة الله و بركاته
ممكن شرح أدق للمشكلة ؟ أو مقطع كود , أو صورة إذا أمكن
الرد
#3
PHP كود :
حركات الدخول
15
/05/2013 07:30
15
/05/2013 17:30
16
/05/2013 07:45
16
/05/2013 17:21
17
/05/2013 09:30
17
/05/2013 12:00
17
/05/2013 14:00
17
/05/2013 17:00
18
/05/2013 10:00
19
/05/2013 07:30
19
/05/2013 21:00 

PHP كود :
الدوام المطلوب
15
/05/2013 07:30   لغاية  15/05/2013 17:30
16
/05/2013 07:30   لغاية  16/05/2013 19:30
17
/05/2013 09:30   لغاية  17/05/2013 17:30
18
/05/2013 09:30   لغاية  18/05/2013 19:30
19
/05/2013 07:30   لغاية  19/05/2013 17:30 

طبعاً لو أن الدوام ثابت فالأمر ليس بحاجة لتعقديات لكن التعامل مع الدوام المتغير هو المشكلة
أخذت مثال عشوائي لأحد أشكال الدوام المتغير الغير منتظم

سأعيد توضيح الطرق التي تعاملت معها
إما أن أقوم برمجة جدول الدوام هذا ضمن البرنامج وبالتالي لن يتمكن المستخدم من تعديل طبيعة الدوام في حال حدث أي تعديل بالدوام مستقبلا

أو أن أقوم قسم تقوم فيه بمنح المستخدم إمكانية توليد طبيعة دوام أي جدول الدوام المطلوب من العامل وتقوم بمقارنته مع دوام العامل والحصول على النتائج

ما أبحث عنه هنا هو أفضل طريقة للتعامل مع الفرز والمقارنة بالنتائج بحيث أحصل على أفضل قدر من النتائج

والصورة المرفقة توضح كيف يجب أن يتم الفرز والنتائج
مع العلم أنه بالنسبة للدقائق يكون هناك مدة سماح للدخول والخروج عن الموعد المطلوب (مراعاة لموعد الوصول وموعد المغادرة)

صورة النتائج والفرز


الملفات المرفقة
.rar   acc.rar (الحجم : 77.93 ك ب / التحميلات : 64)
الرد
#4
السلام عليكم ورحمة الله

الطريقة الأولى التي ذكرتها غير ناجعة حيث يبقى مستخدم البرنامج مقيد ويرجع اليك مع اي تغيير
الطريقة الثانية هي الاحسن وهي نفسها المتبعة من شركة zksoftware مصنعة اجهزة البصمة وما شابه
1- الجدول تحديد التوقيت: ويحتوى
وقت الدخول
وقت الخروج
وقت بداية الدخول
وقت نهاية الدخول
وقت بداية الخروج
وقت نهاية الخروج
مدة الوقت المسموح عند الدخول المتاخر
مدة الوقت المسموح عند الخروج المبكر
عدد ايام العمل
عدد دقائق العمل

2-جدول توقيت الاسبوع
يحتوي ايام الاسبوع المطبق بها جدول تحديد التوقيت

3-جدول تخطيط الوقت
يحتوي تاريخ بداية/نهاية تطبيق جدول توقيت الاسبوع لكل عامل/موظف

التطبيق:
1- تحصل على البيانات من الجهاز
2- تطبق البيانات على جدول تخطيط الوقت
إقتباس :في حال قام العامل بالمغادرة والعودة ضمن وقته أو ضمن أي وقتين مسجلين بمعنا أنه أتى في السابعة صباحاً وغادر في الخامسة البرنامج يقارن بشكل سليم الدخول والخروج لكن كيف سيتعامل مع الوقت في حال غادر ضمن هاتين البصمتين وعاد مرة ثانية
جدول تحديد الوقت يحدد ذلك وغير ذلك يعتبر غائب/غياب عن العمل
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم