لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 04/30/25 في كل الموقع
-
1 نقطة
-
اخي انا كود مرفق كود إدخال بيانات اجازة نفسه به كود دالة اعلي صفحة التي تحسب رصيد كيف يكون الان كود إدخال بعد أصبحت دالة تحسب كل أنواع اجازات علما بأن تاريخ ميلاد في جدول والجنس في جدول1 نقطة
-
لحساب رصيد الموظف لكل نوع من الإجازات بناء على القواعد المذكورة يجب إنشاء دالة مخصصة لكل نوع إجازة تأخذ بعين الاعتبار القواعد المحددة (مثل الإجازة السنوية، المرضية، الحج، الزواج، وفاة الزوج). سنقوم بتحديث دالة calculateVacationBalance مع دوال إضافية لحساب رصيد كل نوع إجازة، مع افتراض أن لديك جدول vacations يحتوي على سجلات الإجازات المستخدمة تحديث الدالة <?php function calculateVacationBalance($con, $emp_id, $type, $hire_date, $birth_date, $gender, $to_date) { $to = new DateTime($to_date); $hire = new DateTime($hire_date); $birth = new DateTime($birth_date); $current_year = $to->format('Y'); // حساب سنوات الخدمة $service_years = $to->diff($hire)->y; // حساب العمر $age = $to->diff($birth)->y; // استعلام للحصول على الأيام المستخدمة $stmt = $con->prepare(" SELECT COALESCE(SUM(DATEDIFF(end_date, start_date) + 1), 0) AS used_days FROM vacations WHERE emp_id = ? AND type = ? AND accept = 1 AND YEAR(start_date) = ? "); $stmt->bind_param("iss", $emp_id, $type, $current_year); $stmt->execute(); $stmt->bind_result($used_days); $stmt->fetch(); $stmt->close(); $used_days = $used_days ?: 0; switch ($type) { case 'اجازة سنوية': // 30 يومًا سنويًا، 45 يومًا إذا كان العمر ≥ 50 أو الخدمة ≥ 20 سنة $annual_days = ($age >= 50 || $service_years >= 20) ? 45 : 30; $balance = $annual_days - $used_days; // التأكد من أن الرصيد لا يقل عن 15 يومًا متصلة إذا لم يتم استخدامها return max(0, $balance); case 'اجازة مرضية': // 45 يومًا متصلة أو 60 يومًا متقطعة سنويًا $sick_balance = 60 - $used_days; return max(0, $sick_balance); case 'اجازة الحج': // 20 يومًا مرة واحدة خلال الخدمة $stmt = $con->prepare(" SELECT COUNT(*) AS taken FROM vacations WHERE emp_id = ? AND type = 'اجازة الحج' AND accept = 1 "); $stmt->bind_param("i", $emp_id); $stmt->execute(); $stmt->bind_result($taken); $stmt->fetch(); $stmt->close(); return $taken > 0 ? 0 : 20; case 'اجازة زواج': // 14 يومًا مرة واحدة خلال الخدمة $stmt = $con->prepare(" SELECT COUNT(*) AS taken FROM vacations WHERE emp_id = ? AND type = 'اجازة زواج' AND accept = 1 "); $stmt->bind_param("i", $emp_id); $stmt->execute(); $stmt->bind_result($taken); $stmt->fetch(); $stmt->close(); return $taken > 0 ? 0 : 14; case 'اجازة وفاة الزوج': // 130 يومًا (4 أشهر و10 أيام) للإناث فقط، مرة واحدة if ($gender !== 'أنثى') { return 0; } $stmt = $con->prepare(" SELECT COUNT(*) AS taken FROM vacations WHERE emp_id = ? AND type = 'اجازة وفاة الزوج' AND accept = 1 "); $stmt->bind_param("i", $emp_id); $stmt->execute(); $stmt->bind_result($taken); $stmt->fetch(); $stmt->close(); return $taken > 0 ? 0 : 130; default: return 0; } } ?> و لعرض رصيد الاجازات <!-- أضف هذا داخل النموذج بعد حقل اختيار الموظف --> <div class="col-md-12"> <div class="form-group" style="margin-top:10px;"> <label>رصيد الإجازات</label> <div id="vacation_balance" style="border:1px solid #ccc; padding:10px;"> <!-- سيتم ملء هذا الحقل ديناميكيًا --> </div> </div> </div> <!-- أضف السكربت التالي في نهاية الصفحة --> <script> $(document).ready(function() { $('select[name="emp_id"]').change(function() { var emp_id = $(this).val(); if (emp_id) { $.ajax({ url: 'get_vacation_balance.php', type: 'POST', data: { emp_id: emp_id }, success: function(response) { $('#vacation_balance').html(response); }, error: function() { $('#vacation_balance').html('<p>حدث خطأ أثناء جلب الرصيد.</p>'); } }); } else { $('#vacation_balance').html(''); } }); }); </script> و يجب <?php include('config.php'); // تأكد من تضمين ملف الاتصال بقاعدة البيانات include('functions.php'); // افترض أن هذا الملف يحتوي على دالة calculateVacationBalance if (isset($_POST['emp_id'])) { $emp_id = intval($_POST['emp_id']); // جلب بيانات الموظف $stmt = $con->prepare("SELECT e.start_date, p.birth_date, p.gender FROM employees e JOIN people p ON e.person_id = p.id WHERE e.person_id = ?"); $stmt->bind_param("i", $emp_id); $stmt->execute(); $employee = $stmt->get_result()->fetch_assoc(); $stmt->close(); if ($employee) { $hire_date = $employee['start_date']; $birth_date = $employee['birth_date']; $gender = $employee['gender']; $to_date = date('Y-m-d'); // أنواع الإجازات $vacation_types = [ 'اجازة سنوية', 'اجازة مرضية', 'اجازة الحج', 'اجازة زواج', 'اجازة وفاة الزوج' ]; $output = '<ul>'; foreach ($vacation_types as $type) { $balance = calculateVacationBalance($con, $emp_id, $type, $hire_date, $birth_date, $gender, $to_date); $output .= "<li>$type: $balance يوم</li>"; } $output .= '</ul>'; echo $output; } else { echo '<p>لم يتم العثور على بيانات الموظف.</p>'; } } else { echo '<p>يرجى اختيار موظف.</p>'; } ?> إنشاء ملف get_vacation_balance.php و هذا الملف سيحسب رصيد الإجازات للموظف المحدد ويعيده كـ HTML.1 نقطة
-
وعليكم السلام، استخدام النماذج الذكاء الاصطناعي يعتبر مهم في الوقت الحالي لمعظم المطورين ولكن في مرحلة التعلم وبناء أساس قوي لك في أي لغة أو اطار عمل يفضل الابتعاد عن هذه النماذج، على الأقل لابد من حلك للتاسكات بنفسك ثم إعادة تحسينها بذلك قد تكون استفدت من عملية التعلم وتطوير فهمك ومنطقك البرمجي، وستجد القدرة على حل المشكلات بعد ذلك تتطور مع كثرة حلك لهذه للمشكلات بنفسك. تستطيع بعدها سؤال نماذج الذكاء الاصطناعي على حلول أفضل لنفس المشكلة أو تقييم الحل الخاص بك أو تحسيينه. ولكن إذا قمت بالاعتماد على هذه النماذج في الحل مع الوقت ستجد نفسك غارق في أكواد كثيرة لا تفهمها وما هي نتائجاها على تطبيقاتك قد تؤدي لمشاكل أمنية أو مشاكل في الأداء في تطبيقك وسيكون عليك من الصعب إدارة العديد والعديد من الملفات والأكواد وأنت لا تفهمها بشكل جيد وفي بعض الأوقات هذه النماذج تعطي حلول معقدة والمشكلة لا تحتاج لهذا التعقيد للحل. لذلك عليك التركيز على عملية التعلم وحل التاسكات بنفسك ويمكنك الاستعانة بهذه النماذج لشرح موضوع جديد عليك لا تفهمه من التوثيق الرسمي أو تبسيط للمعلومة وليس حل المشكلات لك. بهذه الطريقة ستستفيد بشكل جيد من هذه النماذج وستكون فاهم بنسبة كبيرة الأكواد التي يقدمها لك وتستطيع تقييم الجيد منها والغير جيد وتأثيره في حل المشكلة أو التطبيق وليس استخدامها بدون فهم جيد لها.1 نقطة
-
استخدام نموذج ذكاء اصطناعي لكتابة الأكواد (مثل تاسكات أو مهام برمجية) ممكن يكون أسرع في حالات معينة، لكن فيه أسباب تخلي المبرمجين يفضلوا كتابة الأكواد بنفسهم أحيانًا: الدقة والتخصيص نماذج الذكاء الاصطناعي زي GitHub Copilot أو Grok بتقدر توللد أكواد، لكن ممكن ما تكون دقيقة 100% أو مش مطابقة لاحتياجات المشروع بالظبط. المبرمج بيقدر يتحكم أكتر في تفاصيل الكود لو كتبه بنفسه. فهم الكود لما المبرمج يكتب الكود بنفسه، بيفهم كل سطر وكل منطق وراه. لو الذكاء الاصطناعي كتب الكود، ممكن ياخد وقت أطول عشان المبرمج يراجعه ويفهمه، خاصة لو فيه أخطاء أو تعقيدات. أخطاء محتملة الذكاء الاصطناعي ممكن يوللد كود فيه أخطاء أو مشاكل أداء (performance issues) أو حتى ثغرات أمنية لو ما تمت مراجعته بشكل صحيح وهذا الأمر بيخلي المبرمج يفضل يكتب الكود بنفسه لضمان الجودة. التعلم والتطوير كتابة الكود بنفسك بتساعدك تتعلم وتطور مهاراتك. لو اعتمدت على الذكاء الاصطناعي دائمًا، ممكن مهاراتك البرمجية ما تتحسن بنفس السرعة. حالات معقدة في التاسكات المعقدة أو اللي محتاجة حلول إبداعية، الذكاء الاصطناعي ممكن ما يقدر يقدم حل مثالي زي اللي بيقدر المبرمج يصممه بناءً على خبرته. التكلفة والموارد بعض نماذج الذكاء الاصطناعي بتكون مكلفة (زي الاشتراكات أو استخدام API)، وفي بيئات معينة، المبرمج بيفضل يكتب الكود يدويًا بدل ما يعتمد على أدوات خارجية.1 نقطة
-
وعليكم السلام ورحمة الله وبركاته، استعمال نماذج الذكاء الاصطناعي لكتابة الأكواد أصبح شائعاً بالفعل، وهو يوفّر وقتاً وجهداً كبيراً ، سواء على مستوى الطالب أو مهندس البرمجيات. ولكن يجب تعلم الأساسيات أولاً قبل الإعتماد الكامل على هذه النماذج فالأساسيات تمنحك القدرة على تقييم كود الذكاء الاصطناعي، وتصحيح أخطائه، وتخصيصه بما يتوافق مع متطلباتك. وكلما تعلّمت قواعد البرمجة والخوارزميات والتصميم الجيد، أصبحت أكثر إنتاجية وكفاءة في استخدام النماذج الذكية بدل من مواجهة المشكلات الناتجة عن استخدام الأكواد بدون فهم. ولذلك بالنسبة للطالب، الاعتماد على نماذج الذكاء الاصطناعي لكتابة الكود قد يوفّر وقتاً مؤقتاً، لكنّ له أضرار كبيرة على المدى البعيد ونظراً لتطور أدوات الذكاء الإصطناعي فإن المستقبل المهني في البرمجة يعتمد على فهم معمّق للأساسيات1 نقطة