الانتقال إلى المحتوى
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

بتاريخ:

السلام عليك ورحمة الله وبركاتة

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

اما بالنسبة للمغادرات ايضا اريد ان يتم تجميع مدة هذة المغادرات في ال feld الخاص برصيد تراكم المغادرات وعندما تصبح هذة المغادرات 8 ساعات يتم احتسابها يوم اجازة وخصمها من رصيد الاجازات في جدول الاجازات وتسجيلها داخل جدول الاجازات بأسم تراكم مغادرات

شكرا لكم جميعا ارجو المساعدة قدر الامكان


EMP_LEAVES جدول وصف المغادرات
Column Name Pk FK Null? Data Type Comments
EMP_NO 1 N NUMBER (6) رقم الموظف
LEV_NO 1 N NUMBER (6) رقم المغادرة
LEV_REQ_NO 1 N NUMBER (3) رقم طلب المغادرة
LEV_REQ_DATE Y DATE تاريخ طلب المغادرة
LEV_START_TIME Y DATE بداية المغادرة
LEV_END_TIME Y DATE انتهاء المغادرة
LEV_CANCEL Y VARCHAR2 (20 Byte) الغاء المغادرة
LEV_REQ_DURATION N NUMBER (3) مدة المغادرة
LEV_YER Y NUMBER (4) سنة المغادرة
LEV_MONTH N NUMBER (2) شهر المغادرة
LEV_BALANC N NUMBER (3) رصيد تراكم المغادرات


EMP_VACATIONS جدول وصف الاجازات
Column Name Pk FK Null? Data Type Comments
EMP_NO 1 N NUMBER (6) رقم الموظف
VAC_NO 1 N NUMBER (6) رقم الاجازة
VAC_REQ_NO 1 N NUMBER (3) رقم طلب الاجازة
VAC_REQ_DATE Y DATE تاريخطلب الاجازة
VAC_START_DATE Y DATE تاريخ بداية الاجازة
VAC_END_DATE Y DATE تاريخ نهاية الاجازة
VAC_CANCEL Y VARCHAR2 (20 Byte) الغاء الاجازة
VAC_CANCEL_DATE Y DATE تاريخ الغاءالاجازة
VAQ_REQ_DURATION N NUMBER (3) مدة الاجازة المطلوبة

EMP_VBALNC جدول رصيد الاجازات
Column Name Pk FK Null? Data Type Comments
EMP_NO 1 N NUMBER (6) رقم الموظف
VAC_NO 1 N NUMBER (6) رقم الاجازة
VAC_YEAR Y DATE سنة الاجازة
VAC_ALLOWED_DURATION N NUMBER (3) مة الاجازه المسموحة
VAC_RESET_ACCOUNT N NUMBER (3) رصيد الاجازات المتبقي

VACATION_TYPE تعريف انواع الاجازات
Column Name Pk FK Null? Data Type Comments
VAC_NO 1 N NUMBER (6) رقم الاجازه
VAC_DESC Y VARCHAR2 (50 Byte) نوع الاجازة

LEAVE_TYPES تعريف انواع المغادرات
Column Name Pk FK Null? Data Type Comments
LEV_NO 1 N NUMBER (6) رقم المغادرة
LEV_NAME N VARCHAR2 (50 Byte) نوع المغادرة

بتاريخ:

السلام عليكم ورحمة الله وبركاته

يمكنك استخدام الكود الخاص ب POST-CHANGE او WHEN-VALIDATE-ITEM للتاكد من مدة الاجازه

والكود المستخدم سوف يكون على هذا الشكل
declare
v_count number;
v_count2 number;
v_count3 number;
begin
v_count3 := VAC_END_DATE - VAC_START_DATE;

select VAC_RESET_ACCOUNT , VAC_ALLOWED_DURATION
into v_count , v_count2
from EMP_VBALNC
where
EMP_NO = :EMP_NO and VAC_NO = :VAC_NO
;
if v_count2> v_count3 then
message('sssssssssssssssssssss')message('sssssssssssssssssssss')
raise form_trigger_failure;
elsif v_count> v_count3 then
message('mmmmmmmmmmmm')message('mmmmmmmmmmmmmm')
raise form_trigger_failure;
end if;
end;

اما بالنسبه لخصم مدة الاجازه تلقائيا يمكنك استخدام ال POST-INSERT
update EMP_VBALNC set VAC_RESET_ACCOUNT = VAC_RESET_ACCOUNT - :VAQ_REQ_DURATION
where
EMP_NO = :EMP_NO and VAC_NO = :VAC_NO
;
forms_ddl('commit');

بالنسبه للجزء الثانى سوف يكون بنفس الفكره السابقه واذا احتجت للشرح برجاء ارسال الفورم وال create script مثل الجدول التالى



CREATE TABLE EMP_LEAVES
(
EMP_NO NUMBER (6),
LEV_NO NUMBER (6),
LEV_REQ_NO NUMBER (3),
LEV_REQ_DATE DATE,
LEV_START_TIME DATE,
LEV_END_TIME DATE,
LEV_CANCEL VARCHAR2 (20 Byte),
LEV_REQ_DURATION NUMBER (3),
LEV_YER NUMBER (4) ,
LEV_MONTH NUMBER (2),
LEV_BALANC NUMBER (3)
);

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

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

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

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

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

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.