الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

احتساب الإجازة ؟

Featured Replies

بتاريخ:

السلام عليكم

انا عندي ( جدولين الموظفين واللإجازات ) وهي عبارة عن نوعين من الإجازات اظطرارية وسنوية واريد ان ادخل رصيد الإضطرارية 10 ايام في السنة بحيث تحسب من بداية السنة وعندما يقوم الموظف بطلب إجازة تخصم من الرصيد ويظهرلي display item موضح فية المتبقي من الرصيد هذا النوع الاول
النوع الثاني السنوية بحيث تبدا من تاريخ تعيين الموظف بواقع شهر غن كل سنة

ودمتم بود,,,,,

بتاريخ:

السلام عليكم
اخي ابو فهد...
اولا بالنسبة للاجازة الاضرارية وهي مدتها10 ايام فستكون هذا القيمة مخزنة بايتم ألا وهو عدد ايام الاجازة الاضرارية...
وعند طلب عدد من الايام لاجازة اضرارية ستقوم بطرح هذا العدد من العدد الكلي لايام الاجازة الاضرارية الا وهو ( 10 )...
وعند انتهاء عدد ايام الاجازة الاضرارية يعني = 0 ... يجب ان تظهر للمستخدم رسالة بان عدد ايام الاجازة الاضرارية لهذا الموظف قد انتهت او استنفذت.....
ونفس العملية بالنسبة للاجازة السنوية التي ستكون عدد ايامها شهر ( 30 يوم ) او حسب ما يحدده نظام الشركة فبعض الشركات لا تعطي اكثر من ( 28 ) يوم...

بالتوفيق

بتاريخ:

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

select count(*) into :no_vaccance from  vaccance where empno=:empno and vacc_kind='اضطرارية' and to_char(vacc_day,'yyyy')=to_char(sysdate,'yyyy');


المفروض في الجملى السابقة تقوم بعمل عد لعدد ايام الاجازرات الاضطرارية لهذا الموظف لهذا العام وأيضا بالنسبة :no_vaccance دي تعتبر ال display item الذي يعرض به عدد ايام الاجازات ومن خلالها لاينفع أن تزيد عن 10 أيام فلو زادادت عن 10 يتم عمل رفض
كذلك النوع الاخر من الاجازات تستخدم أيضا دالة ال count وبكدا ترتاح من عناء تسجيل أيام الغيابات المستحقة أو الاي استنفذت وهكذا
أتمنى أن أكون استطعت توضيح الموضوع
موفق

بتاريخ:
  • كاتب الموضوع
السلام عليكم
اخي ابو فهد...
اولا بالنسبة للاجازة الاضرارية وهي مدتها10 ايام فستكون هذا القيمة مخزنة بايتم ألا وهو عدد ايام الاجازة الاضرارية...
وعند طلب عدد من الايام لاجازة اضرارية ستقوم بطرح هذا العدد من العدد الكلي لايام الاجازة الاضرارية الا وهو ( 10 )...
وعند انتهاء عدد ايام الاجازة الاضرارية يعني = 0 ... يجب ان تظهر للمستخدم رسالة بان عدد ايام الاجازة الاضرارية لهذا الموظف قد انتهت او استنفذت.....
ونفس العملية بالنسبة للاجازة السنوية التي ستكون عدد ايامها شهر ( 30 يوم ) او حسب ما يحدده نظام الشركة فبعض الشركات لا تعطي اكثر من ( 28 ) يوم...

بالتوفيق



بارك الله فيك ونفع بك
بتاريخ:
  • كاتب الموضوع
السلام عليكم
ممكن طريقة أخرى
وهي عند طلب الاجازة وتريد معرفة رصيده من مثلا النوع الاضطراري فيمكن اتباع الاتي
مثلا في جدول الاجازات عند تخزين الاجازة هيكون هناك عمود سيكون به نوع الاجازة مثلا اضطراية -اعتيادية-إذن وهكذا
فأنت عند عمل أجازة للموظف يمكنك القيام بمعرفة عدد ايام الاجازة مثلا الاضطرارية كدا

select count(*) into :no_vaccance from  vaccance where empno=:empno and vacc_kind='اضطرارية' and to_char(vacc_day,'yyyy')=to_char(sysdate,'yyyy');


المفروض في الجملى السابقة تقوم بعمل عد لعدد ايام الاجازرات الاضطرارية لهذا الموظف لهذا العام وأيضا بالنسبة :no_vaccance دي تعتبر ال display item الذي يعرض به عدد ايام الاجازات ومن خلالها لاينفع أن تزيد عن 10 أيام فلو زادادت عن 10 يتم عمل رفض
كذلك النوع الاخر من الاجازات تستخدم أيضا دالة ال count وبكدا ترتاح من عناء تسجيل أيام الغيابات المستحقة أو الاي استنفذت وهكذا
أتمنى أن أكون استطعت توضيح الموضوع
موفق




بارك الله فيك واشكركم على سرعة الرد
وجاري التجربة.........
بتاريخ:

السلام عليكم
بالنسبة لإحتساب الاجازة السنوية فإنه في العادة فإنه يتم خصم نسبة من أيام الإجازة عند التثبيت بالنسبة للتاريخ يعني الذي يثبت في أول السنة سيحصل على رصيد ابتدائي من الاجازات يختلف عن الذي يثبت في شهر 10 مثلا وهذه طريقتها ، فلإعطاء رصيد ابتدائي لموظف ثبت بتاريخ 17/4/2009
مثلا وافتراضا ان الاجازات هي 30 يوما كما في حالتك فأنت ستقوم بما يلي سواء في جملة SQL
أو من خلال بروسيجر :
1 - تقسم ال30 يوم على عدد أيام السنة (365)
30/365 = 0.0822
2- تحسب الأيام من أول السنة الى 17/4
17/4/2009 - 1/1/2009 = 107 أيام (أو 108 اذا كانت كبيسة)
3- تضرب نصيب اليوم في 1النقطة بعدد الأيام بحيث يخرج عدد الأيام التي ستخصمها من رصيد الموظف
0.0822 * 107 = 8.8 مقربا .

4 - تطرح ما خرج معك في النقطة 3 من ال30 يوم.
30 - 8.8 = 21.2 وهذا وهو الرصيد الابتدائي للإجازات السنوية للموظف المثبت في 17 /4


ملاحظة هناك شركات تقسم على الأشهر وليس على أيام السنة كما في النقطة 1
يعني
1- 30/12 = 2.5
2- الأشهر بحسب نظام الشركة اما تأخذ بأقرب عد د صحيح أو أقل عدد (شهر) صحيح ...الخ هنا سنأخذ أقرب عدد صحيح سيكون 5 أشهر
3- 2.5 * 5 = 12.5
4- 30-12.5 = 17.5 الرصيد الابتدائي
طبعا سيكون هناك فرق بين الانظمة المستخدمة

يعني أولا المهم الفكرة أما القوانين ولوائح الشركة فيمكن التعامل معها بسهولة اذا فهمت الفكرة.

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

وعذرا للإطالة

declare 
v_vac_days  number := 30;
v_date  date := to_date('17/4/2009','dd/mm/rrrr');
v_Begining_balance number;
begin select v_vac_days - ((v_date - trunc(v_date,'Y'))* (v_vac_days/365))
 into v_Begining_balance from dual; 
 
 
 dbms_output.put_line('Begining Balance: '|| v_Begining_balance );
end;

تم تعديل بواسطة tanbet

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

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

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

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

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.