اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

حساب رصيد الإجازات


Mohamed Nada

الردود الموصى بها

الأخوة الأعزاء

مرحباً بكم

عندى عدة مشاكل بخصوص الاجازات تتلخص فى الآتى:

فى قاعدة البيانات لدى أقوم بحساب الاجازات بالطريقة الآتية:

ـ يبدأ حساب رصيد الاجازات بعد مضى 6 شهور على تعيين الموظف

ـ الرصيد السنوى للموظف 21 يوم (15 اعتيادى + 6 عارضة)

ـ عند بلوغ الموظف سن الخمسين سنة يكون الرصيد السنوى 30 يوم بدلاً من 21 يوم.

ـ وقد وضعت استعلام ليقوم بحساب عمر الموظف هكذا

age: Year([Currentdate])-Year([birthdate])

حيث أن Currendate هو التاريخ الحالى.

وعند تحقق شرط الخمسين تطبق المعادلة التالية

Balance: IIf([age]>=50 And [Months]>=6;30;IIf([age]<50 And [Months]>=6;21;IIf([Months]<6;0)))

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

أما المشكلة الثانية فهى أننى أقوم بحساب العارضة (6 أيام) بواقع نصف يوم للشهر الواحد وبذلك يكون 6 أيام للسنة.

ولكن الرصيد العارضة لا يجب أن يزيد عن ستة أيام وما يزيد عن ذلك يجب تويله إلى رصيد اعتيادى.

أما عندى فهو فى تزايد مستمر و لا أعرف كيف أضبط ذلك.

أرجو أن أكون قد أوضحت مشكلتى

وعندى ملف به الاستعلام وجزء من جدول لللايضح أكثر ولكن لا استطيع تحميلة كالعادة.

عفوا للاطالة و لكن حاولت التوضيح.

محمد ندا

رابط هذا التعليق
شارك

  • 2 weeks later...

يتضح من تحليل وفهم السؤال المتغيرات التالية:

تاريخ التعيين في العمل EmploymentDate

تاريخ الاحتساب الحالي CurrentDate

عمر الموظف Age

الرصيد Balance

الشهور التي مضت على تعيين الموظف Months

رصيد الاجازة العارضة ABalance

1. حل المشكلة الاولى

أولا : معادلة حساب العمر بالسنوات هي

Me.age = DateDiff("yyyy", Me.EmploymentDate, Me.currentdate)
ثانيا : معادلة احتساب الرصيد هي
Me.balance = IIf(Me.months >= 6, IIf(Me.age >= 50, 50 * 21 + (Me.age - 50) * 30, Me.age * 21), 0)
2. حل المشكلة الثانية إذا اردنا تعديل رصيد الاجازة العارضة فنعمل حسب الخوارزمية التالية: 1. x = عدد أيام الاجازة العارضة + رصيد الاجازة العارضة 2. y = ناتج قسمة x على 6 3. معادلة الاجازة العارضة هي
ABalance= iif(y>=1,6,x)

وأقترح وضع المعادلات جميعها في حدث عند النقر لز أمر يتم إنشائه وتسميته حساب الاجازة

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information