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

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

قام بنشر (معدل)

سلام عليكم

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

مثلا في الجزائر عطلة سنوية مقدرة للموظف  30 يوما

نفترض ان هذا الموظف اراد ان يتمتع ب 20 يوم  من 30 يوما فبقي في رصيده 10 ايام

وحلت سنة حديدة واراد هذا الموظف ان يتمتع ب30 يوما + 10 ايام (الرصيد المتبقي من السنة الماضية) اي = 40 يوما  في رصيده فتمتع بها كلها

معناه  بقي في رصيده الحالي0 يوم

اريد ام تظهر هذه النتائج في الخانات المخصصة لها بطريقة انوماتكية

ولقد رفعت المشروع مع صورة فيها شرح للحفول التي اتعامل معها

وشكرا

حساب عطلة سنوية.rar

تم تعديل بواسطه nacer_alger
قام بنشر

الجداول  بحاجة الى اعادة صياغة

لكن السؤال قبل ذلك , هل الموظف ممكن أن يأخذ أكثر من اجازة ضمن السنة الواحدة ؟

قام بنشر (معدل)

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

تم تعديل بواسطه nacer_alger
قام بنشر

حسنا , الى أي مدى يمكن تدوير رصيد الاجازة ؟

بمعنى لآخر , لو موظف له رصيد في 2010 , يتم تدويره الى 2011 فقط , أم يظل هذا الرصيد مدروا الى أجل غير مسمى من السنوات ؟

قام بنشر

جدول الموظفين , أضف الحقل hiredate  ( تاريخ الالتحاق بالعمل )

جدول الاجازات - يكفيك أربعة حقول و هي : الحقل المعرف - رقم الموظف - تاريخ من - تاريخ الى

ـنشأ وحدة نمطية جديدة و أضف فيها الكود التالي :

 

Function Vac_Due(emp As Long, hdate As Date) As Long
    Dim Vac_Used As Integer
    Dim Vac_Entitle As Integer
    Dim d As Integer
    Dim hd As Date
    Vac_Used = Nz(DSum("Vac_Per", "Vac_Trans", "[code_employé] = " & emp & " and [Date_départ] < " & Chr(35) & hdate & Chr(35)), 0)
    hd = DLookup("hiredate", "[Employé en arabe]", "[Code_employé] = " & emp)
    
    Vac_Entitle = Nz((Year(hdate) - Year(hd)) * 30, 0)
    Vac_Due = Vac_Entitle - Vac_Used
    
End Function

الآن قم بانشاء الاستعلام التالي لحساب الاجازة , كما يلي :

SELECT congé.code_employé, congé.Date_départ, congé.Date_retour, [Date_retour]-[Date_départ]+1 AS Vac_Per, 30 AS Vac_Ent, vac_due([code_employé],[Date_départ]) AS Prev_Bal, [prev_bal]-[vac_per] AS Cur_Bal
FROM congé
ORDER BY congé.code_employé, congé.Date_départ;

الحقل prev_bal  يبين لك رصيد الاجازة المستحقة قبل الاجازة الحالية

الحقل cur_bal  يبين لك الرصيد المتبقي بعد فترة الاجازة الحالية

 

  • Like 1
قام بنشر (معدل)

اخي رضوان اذ سمحت اود ان تعمل على ملف الذي رفعت

سانحني  لقد اتعبتك معي

تم تعديل بواسطه nacer_alger
قام بنشر

المعذرة لا أقوم بالتصميم

و انما المساعدة في التصميم

و الغرض تعليمي , ابدأ و ستستفيد ان شاء الله

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

و المسألة اصبحت سهلة جدا , ماعليك سوى نسخ الأكواد ووضعها في مكانها

قام بنشر

سلام اخي رضوان شكرا على النصيحة

 

قمت باتباع الخطوات

ظهر خطا وهو يجبرك على تعديل في الوحدة النمطية في رسالة اكسس تتقول انه لم يعثر على Vac_Perو Vac_Trans

 وعند الدخول يظهر الكود معلم بلون اصفر

 

 

عطلة سنوية3.rar

قام بنشر (معدل)

اختفت رسالة خطئ اولى لكن ظهر رسالة خطا اخرى تجبرك عل التعديل في كود

معلمة بلون اصفر

 

(hd = DLookup("hiredate", "[Employé en arabe]", "[Code_employé] = " & emp

 

هذه التسميات التي في وحدة النمطية غير موجودة في جداول مجرد سؤال  فقط

Vac_Due = Vac_Entitle - Vac_Used

تم تعديل بواسطه nacer_alger
قام بنشر

يجب أن تملأ بيانات تاريخ الالتحاق بالعمل

لأن الكود يحسب الأرصدة المستحقة لللاجازة كل سنة 30 يوما من تاريخ التحاقه بالعمل

مخصوما منها مدة الاجازة التي قضاها في كل سنة

و في هذه الحالة و حتى يكون الحساب صحيحا ينبغي ايضا تعبئة بيانات الاجازات السابقة

قام بنشر (معدل)

سلام عليكم اخي رضوان

 البرنامج يعمل بدون اخطاء تم حلها بمساعدتك

طلب ثاني

اريد ان يظهر الرصيد المتبقي في خانة مستقلة

انظر الصورة

ظهور اخر قيمة.rar

تم تعديل بواسطه nacer_alger
قام بنشر

أنشأ الدالة التالية في نفس الوحدة النمطية السابقة

 

Function Vac_Bal(emp As Long) As Long
    Dim Vac_Used As Integer
    Dim Vac_Entitle As Integer
    Dim d As Integer
    Dim hd As Date
    Vac_Used = Nz(DSum("Vac_Per", "Vac_Trans", "[code_employé] = " & emp))
    hd = DLookup("hiredate", "[Employé en arabe]", "[Code_employé] = " & emp)
    
    Vac_Entitle = Nz((Year(Date) - Year(hd)) * 30, 0)
    Vac_Bal = Vac_Entitle - Vac_Used
    
End Function

2- انقل مربع المجموع من النموذج الفرعي الى النموذج الرئيسي

3- ضع الدالة الأخيرة مصدر البيانات لحقل المجموع على الشكل التالي 

=vac_bal([code_employé])
  • Like 1
قام بنشر (معدل)

ممكن كود لتحديث النموذج الفرعي اتوماتكيا

 

 

 

و بارك الله فيك اخي رضوان لقد فرجت عليا كربة ادعو الله ان يفرج لك كربة يوم القيامة

تم تعديل بواسطه nacer_alger
قام بنشر

اخي رضوان لقد وجدت خطئ و هو كتالي

نفترض  التحق الموظف جديد في نفس السنة مثلا 10/01/2015 وطلب عطلته السنوية بعد افتتاح موسم العطل الذي يبدء في شهر السادس اي  جوان  ويطلب عطلته هنا  البرنامج  لا يعطيه 30 يوما بل ناقص 30 يوما اي مسال فهذا يعتبر خطئ

قام بنشر

أنت لم تحدد أصلا القواعد الخاصة بحساب الاجازة

الذي كان لديك هو مجرد ادخال يدوي لرصيد الاجازة دون اي حساب

عند تحديدها و تحديد قوانينها يتم اقتراح الكود المناسب للتعديل

قام بنشر (معدل)

نعم انت محق اخي رضوان لقد اتعبتك معي

بقيا شيئين اخي رضوان عند تجربتي للبرنامج و هما

اذا كانت السنة الجارية  مثلا 2015 وموظف جديد اراد ان ياخذ اجازته السنوية في نفس السنة التي  توظف فيه 2015ا المفروض ان يكون لديه في كل شهرمنقضي من العمل يتحصل على يومين و نصف في رصيده اي 2.5 *12 شهرا=30 يوما  واذا عمل لمدة12 عشر شهر اي سنة كاملة فله الحق في 30 يوما

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

 ساعدني و لك كل شكر استاذ رضوان

تم تعديل بواسطه nacer_alger
قام بنشر

يجب أن تحدد قانون استحقاق الاجازة بشكل دقيق

الموظف التحق في يوم معين من السنة , متى يحق له أن يأخذ الاجازة ؟

هل هناك حد أدنى لابد من تحقيقه , مثلا يجب أن يمضي ثلاثة اشهر أو شهر , أم ماذا ؟

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

اذا لم يتم تحديد المعايير بدقة فبالطبع ستواجهك في المستقبل مشاكل أخرى

و الأفضل أن تحصرها كلها بوقت واحد

قام بنشر (معدل)

- الموظف في الجزائر له الحق في اجازة سنوية كاملة  30 يومااذا أتم سنة كاملة خدمة اي يومين و نصف لكل شهر خدمة 2.5يوم*12شهر=30 يوما

- اما اذا كن موظف جديد فيحسب له في كل شهر خدمة يومين و نصف في رصيده مثلا  اذا عمل لمدة 6 اشهر فله الحق في 15يوما

و موسم افتتاح اجازات يكون في شهر جوان من السنة

تم تعديل بواسطه nacer_alger
قام بنشر

بعمنى لو موظف أمضى 18 شهرا , ستحسب له 45 يوما ؟

اذا كان الأمر كذلك , يجب أن نحول الآن اساس حساب الاجازة الى اساس شهري و ليس سنوي ؟

قام بنشر (معدل)

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

مثلا موظف وظفا في مارس اي (شهر 03 ) من سنة 2015 هذا الموظف الجديد لا يستفيد من كامل العطلة بل تحسب له اشهر التي عمل بها  كل شهر بيومين ونصف

وعند حلول شهر جوان تفتح ادارة طلبات العطلة السنوية فتحسب ايام هذا الموظف الجديد من تاريخ توظيفه الي غاية  تاريخ طلبه لعطلة السنوية

ان لم يرد ان يتمتع بهذه ايام فتبقى في رصيده لسنة القادمة  او يطلب نصفها كما يشاء له الحق في ذالك وفي السنة القادمة  يكون له الحق في 30 يوما كاملة ككل الموظفين وهكذا

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

الغيابات تخصم من الراتب الشهري فقط

تم تعديل بواسطه nacer_alger
قام بنشر

الأمر لم يعد واضحا الآن

الأفضل أن ترفق ملف اكسل فيه أمثلة رقمية عن اجازات عدة موظفين في جميع الخيارات حتى نعرف كيف نبني قاعدة صحيحة لحساب الاجازة

قام بنشر (معدل)

اخي رضوان  لكي لا اتعبك واعقد امر الكود الذي  اعطيتني ايها في بداية يلبي طلبي لكن زد على ذالك

اريد ان يحسب عطلة  الموظفين  الجدد

الحساب كا تالي كل شهر بيومين ونصف في رصيده  ويحسب هذا الرصيد من تاريخ بداية توظيفه الى غاية تاريخ طلب اجازة السنوية مثلا وظفا بتاريخ 01/01/2015 وعملا الى غاية 01/06/2015 هنا له 15يوما

وعندما يعمل لمدة سنة يكون له الحق في 30 يوما كسائر العمال

اي هذه الخصوصية في موظفين الجدد فقط اخي رظوان لكي لا اعقد امر

 

مجرد افتراح اخي رضوان اضن انا اجعل خانة عطلة سنوية يكون ادخال يدوي وبمجرد ادخال عدد ايام  واختيار تاريخ بدية الاجازة يعطيه  تاريح نهاية الاجازة

مع العملية الحسابية التى اعطيتنى اياها في اول

اي المنبقي من عطلة حالية ومتبقي من رصيد يكون اتوماتكيا

تم تعديل بواسطه nacer_alger
قام بنشر

كما تشاء

أنا بالنسبة لي لم تتضح القاعدة التي تريد حساب الاجازة عليها

اما أن تضع أمثلة رقمية لحالات مختلفة

أو أكمل مثل اقتراحك الأخير

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