لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 04/28/25 في كل الموقع
-
انا اشتركت فى كورس البايثون من فترة بس لم اكن مهتم انا اليوم انوى اتمام الكورس ممكن اعرف الخطة اللى المفروض امشى عليها3 نقاط
-
هل كود صحيح الان بالنسبة للاجازة السنوية الذي عمره فوق 50 ياخد 45 يوم والذي اقل 30 يوم في السنة <?php include('header.php'); error_reporting(0); ini_set('display_errors', 0); function calculateVacationBalance($startDate, $usedDays) { $start = new DateTime($startDate); $now = new DateTime(); $totalAccruedDays = 0; if ($start->format('n') > 6) { $start->setDate($start->format('Y') + 1, 1, 1); } elseif ($start->format('n') < 6 || ($start->format('n') == 6 && $start->format('j') > 1)) { $start->setDate($start->format('Y'), 6, 1); } elseif ($start->format('n') == 1 && $start->format('j') > 1) { $start->setDate($start->format('Y'), 6, 1); } while ($start <= $now) { $totalAccruedDays =$totalAccruedDays+ 15; $start->modify('+6 months'); } $totalAccruedDays =$totalAccruedDays- $usedDays; return $totalAccruedDays; } ?> <head> <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js"></script> <style> .rak { width: 400px; height: 300px; font-size: 14px !important; } </style> </head> <div class="col-md-9 pan1"> <ol class="breadcrumb" style="background-color: #fff;padding-top:8px;padding-bottom:8px;color:#000;font-size:16px;"> <li><a href="vacations.php">الاجازات</a></li> <li class="active">اضافة اجازة جديد</li> </ol> </div> </div> <div class="row"> <div class="col-md-9 pan1"> <div class="panel" style="color:#000;"> <div class="panel-body" style="font-size:14px; padding-left:40px;padding-right:40px;padding-bottom:25px;padding-top:25px;"> <form method="POST" enctype="multipart/form-data"> <div class="row"> <div class="col-md-4"> <div class="form-group" style="margin-top:10px;"> <label>الموظف</label> <select name="emp_id" id=""> <?php $sql = "SELECT e.person_id, p.name FROM employees e JOIN people p ON e.person_id = p.id;"; $result = $con->query($sql); while ($row = $result->fetch_assoc()) { echo "<option value='{$row['person_id']}'>{$row['name']}</option>"; } ?> </select> </div> </div> <div class="col-md-4"> <div class="form-group" style="margin-top:10px;"> <label>نوع الاجازة</label> <select name="type" id=""> <option value="اجازة مرضية">اجازة مرضية</option> <option value="اجازة وضع">اجازة وضع</option> <option value="اجازة بدون مرتب">اجازة بدون مرتب</option> <option value="اجازة زواج">اجازة زواج</option> <option value="اجازة سنوية">اجازة سنوية</option> </select> </div> </div> <div class="col-md-4"> <div class="form-group" style="margin-top:10px;"> <label>تاريخ البداية</label> <input name="start_date" type="date" class="form-control"> </div> </div> </div> <div class="row"> <div class="col-md-4"> <div class="form-group" style="margin-top:10px;"> <label>تاريخ المباشرة</label> <input name="end_date" type="date" class="form-control"> </div> </div> <div class="col-md-4"> <div class="form-group" style="margin-top:10px;"> <label>سبب الاجازة</label> <input name="reason" type="text" class="form-control" placeholder="ادخل سبب الاجازة"> </div> </div> <div class="col-md-4"> <div class="form-group" style="margin-top:10px;"> <label>الموافقة مسبقا</label> <input name="companion" type="checkbox" class="form-control"> </div> </div> </div> <div class="row"> <div class="col-md-4"> <div class="form-group" style="margin-top:10px;"> <button name="submit" type="submit" class="btn btn-primary">إضافة <span class="ion-android-add"></span></button> <button type="reset" class="btn btn-danger">إلغاء <span class="ion-android-delete"></span></button> </div> </div> </div> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $emp_id = $_POST['emp_id']; $type =$_POST['type']; $start_date = $_POST['start_date']; $end_date = $_POST['end_date']; $reason = $_POST['reason']; $companion = $_POST['companion'] ? 1 : 0; $created_at = date('Y-m-d H:i:s'); $start = new DateTime($start_date); $end = new DateTime($end_date); $interval = $start->diff($end); $years=$interval->y; $months=$interval->m; $days=$interval->d; $errors = []; if (empty($type)) { $errors[] = 'يجب تحديد نوع الإجازة'; } if (empty($start_date)) { $errors[] = 'يجب إدخال تاريخ بداية الإجازة'; } if (empty($end_date)) { $errors[] = 'يجب إدخال تاريخ المباشرة'; } if (!empty($errors)) { echo implode('<br>', $errors); exit; } mysqli_begin_transaction($con); try { $stmt = $con->prepare("SELECT * FROM employees WHERE person_id = ?"); $stmt->bind_param("i", $emp_id); $stmt->execute(); $employee = $stmt->get_result()->fetch_assoc(); $stmt->close(); if (!$employee) { echo "لم يتم العثور على بيانات الموظف"; } // التحقق من وجود إجازة قيد الإجراء $stmt = $con->prepare("SELECT COUNT(*) FROM vacations WHERE emp_id = ? AND accept = 0"); $stmt->bind_param("i", $emp_id); $stmt->execute(); $stmt->bind_result($count); $stmt->fetch(); $stmt->close(); if ($count > 0) { echo "عذرًا، هنالك إجازة قيد الإجراء للموظف الحالي، الرجاء التحقق."; exit(); } $stmt = $con->prepare("SELECT * FROM people WHERE id = ?"); $stmt->bind_param("i", $emp_id); $stmt->execute(); $people = $stmt->get_result()->fetch_assoc(); $stmt->close(); if ($type == "اجازة وضع" && $people['gender'] == "ذكر") { echo "عذرًا، لا يمكن إعطاء هذا النوع من الإجازة للموظف المختار."; exit(); } // التحقق من إجازة زواج if ($type == "اجازة زواج") { $stmt = $con->prepare("SELECT COUNT(*) FROM vacations WHERE emp_id = ? AND type = ? "); $stmt->bind_param("is", $emp_id, $type); $stmt->execute(); $stmt->bind_result($count); $stmt->fetch(); $stmt->close(); if ($count > 0) { echo "عذرًا، الموظف المختار قد حصل على إجازة زواج مسبقًا."; exit(); } $stmt = $con->prepare("SELECT start_date, end_date FROM vacations WHERE emp_id = ? AND type = ?"); $stmt->bind_param("is", $emp_id, $type); $stmt->execute(); $stmt->bind_result($start_date, $end_date); $stmt->fetch(); $stmt->close(); if ($start_date && $end_date) { // حساب المدة بالأيام باستخدام الفرق بين التواريخ $days = (new DateTime($end_date))->diff(new DateTime($start_date))->days; if ($days > 14) { echo "عذرًا، إجازة الزواج لا يمكن أن تتجاوز أسبوعين."; exit(); } } } // معالجة عدد الأيام $vacation_days = null; if ($type == "اجازة سنوية") { $stmt = $con->prepare("SELECT birth_date FROM people WHERE id = ?"); $stmt->bind_param("i", $emp_id); $stmt->execute(); $stmt->bind_result($birth_date); $stmt->fetch(); $stmt->close(); $birth_date = new DateTime($birth_date); $current_date = new DateTime(); $age = $current_date->diff($birth_date)->y; if ($age >= 50) { $vacation_days = 45; } else { $vacation_days = 30; } // حساب رصيد الإجازة $start_date_calc = new DateTime($employee['start_date']); $start_date_calc->modify('+1 year'); $start_date_calc = $start_date_calc->format('Y-m-d'); $stmt = $con->prepare("SELECT SUM(days) as total_days FROM vacations WHERE emp_id = ? AND accept = 1"); $stmt->bind_param("i", $emp_id); $stmt->execute(); $result = $stmt->get_result(); $row = $result->fetch_assoc(); $used_days = $row['total_days'] ? $row['total_days'] : 0; $stmt->close(); $vacation_balance = calculateVacationBalance($start_date_calc, $used_days); if ($vacation_balance < $vacation_days) { echo "عذرًا، لا يمكن إنشاء إجازة وذلك لعدم توفر الرصيد الكافي."; exit(); } } elseif ($type == "اجازة بدون مرتب" ) { $days = 365; } $stmt = $con->prepare("INSERT INTO vacations (emp_id, years,months,days, reason, companion, type, start_date,end_date, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); $start_date_formatted = $start->format('Y-m-d'); $end_date_formatted = $end->format('Y-m-d'); $stmt->bind_param("iiiisissss", $emp_id, $years, $months, $days, $reason, $companion, $type, $start_date_formatted, $end_date_formatted, $created_at ); if ($stmt->execute()) { echo "<script> Swal.fire({ title: 'رسالة تأكيد', text: 'تم إضافة بيانات اجازة موظف بنجاح!', icon: 'success', customClass: 'rak', }); </script>"; echo '<meta http-equiv="refresh" content="2;url=vacations.php" />'; } $stmt->close(); mysqli_commit($con); } catch (Exception $e) { mysqli_rollback($con); echo "خطأ: " . $e->getMessage(); exit; } } ?> </div> </div> </div> </div> <?php include('footer.php'); ?>1 نقطة
-
في بدايات التعلم أو عند تعلم شيء جديد، فترة أسبوع ستؤدي إلى نسيان كم كبير من المعلومات فهناك ما يسمى بمنحني النسيان، حيث في بداية تخزين المعلومات، يكون الاسترجاع سهلًا ودقيقًا، ولكن مع مرور الوقت، يتلاشى الاسترجاع ويصبح أصعب، ويشير منحنى النسيان إلى أن هناك فترة تتلاشى خلالها المعلومات بشكل سريع في البداية، ولكن مع مرور الوقت، يصبح معدل النسيان أقل وأقل، ويتم الحفاظ على الجوهر الأساسي للمعلومات المهمة. فبعد مرور يوم واحد من التعلم، هناك انخفاض في الاسترجاع الدقيق للمعلومات، ويعتمد مدى النسيان على عوامل مثل طبيعة المعلومات ومدى تكرارها وأهميتها بالنسبة للشخص تتراوح نسبة النسيان بعد مرور يوم واحد بين 20% إلى 40% من المعلومات. وبعد 3 أيام من 50% إلى 70% وبعد مرور أسبوع ترتفع النسبة إلى 70% وحتى 90%، وذلك في حال لم تقم بإعادة تكرار ما تعلمته وذلك من خلال تنفيذ مشاريع للتطبيق على ما تعلمته وتثبيت المعلومات واستخدام ما سبق وتعلم أمور جديدة. بعد تثبيت ما تعلمته تستطيع الإنقطاع لمدة أسبوع أو شهر لا مشكلة، وكلما زاد عمق الخبرة لديك زادت الفترة التي تستطيع الإنقطاع بها، ولا مشكلة في نسيان تفاصيل الـ Syntax وأسماء الدوال في مكتبات لم تعد تستخدمها يوميًا فلن تضيع الأساسيات بسهولة. فالمعرفة العميقة ترتبط في الدماغ بمسارات عصبية أقوى تكونت عبر سنوات من الاستخدام وحل المشكلات المتنوعة، وإعادة تنشيطها تتطلب وقتًا أقصر بكثير من تعلمها لأول مرة.1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. بالطبع لا . إن فترة أسبوع ليست بالمدة الطويلة التي تجعلك تنسى ما تعلمته في البرمجة . بل الإنقطاع لشهور طويله هي التي تنسيك ما تعلمته . ولكن أيضا يجب الإنتباه إلى أن هذا الأمر يعتمد على مدى خبرتك وتقدمك في البرمجة . فالمبتدئين الذين فقط لديهم الأساسيات ولم يقوموا بالتطبيق فمن الممكن الإبتعاد عن البرمجة لأكثر من إسبوعين ينسيهم كل ما تعلموه وهكذا ينبغي عليهم مراجعة ما تعلموه قبل ذلك. أما لو لديك خبرة جيدة وقمت بالتطبيق كثيرا فلا داعي للقلق حيال هذا الأمر . الأفضل لك عدم الإنقطاع لمدة طويلة و أن تقوم بالتدريب قليلا في فترة إنقطاعك حتى لا تنسي كثيرا ما تعلمته. وأيضا يجب الإنتباه إلى أنه من الممكن أن تنسى ال syntax أو مثلا أسماء الدوال وهكذا ولكن لو كنت قد ذاكرت جيدا فستجد فقط مراجعة الأسماء يكفي لإستعادتك ما تعلمته فأنت تعرف كيفية إستخدام الدوال مثلا وفيما تستخدم وهكذا .1 نقطة
-
لا، لن تنسى البرمجة، على مستواي الشخصي الحرب قائمة عنا بقطاع غزة منذ مدة كبيرة و انقطعت عن البرمجة فترة أكثر من سنة وشهرين و عندما عدت للبرمجة كنت اتذكر كل شيء مجرد ما أقوم بكتابة أي كود و بالتالي الانقطاع لا يؤثر كثيراً و لكن ربما تكون هناك اصدارات من اللغات و اطارات العمل قد تم تحديثها و اصبح تغييرات يجب ان ترجع لها و تحدث معلوماتك و لكن بشكل عام لا تؤثر كثير.1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. بالتأكيد يوجد العديد من المنصات التي يمكنك من خلالها الحصول على وظائف Freelance في مجال علوم البيانات والذكاء الاصطناعي، سواء كانت منصات عامة تضم مجالات متعددة أو منصات متخصصة تركز حصرياً على البيانات والذكاء الاصطناعي. وأقترح بلال في التعليق السابق العديد من المنصات ومن ضمن هذه المنصات التي ستجد بها العديد من الوظائف التي تخص الذكاء الإصطناعي أو تحليل البيانات وهي منصة مستقل فهي تعتبر أكبر منصة عمل حر عربية.1 نقطة
-
الكود لا يأخذ في الاعتبار الإجازات السنوية التي تم إدخالها ولكن لم تُوافق عليها بعد (accept = 0). هذا يعني أنه إذا أدخلت إجازة سنوية أولى (مثلًا من 1-1-2023 إلى 1-1-2024) ولم تُوافق عليها بعد، فإن الكود سيسمح بإدخال إجازة ثانية (مثلًا من 1-1-2024 إلى 1-1-2025) لأن: استعلام SUM(days) يحسب فقط الإجازات التي تمت الموافقة عليها (accept = 1) و لا يتم أخذ الإجازات قيد الإجراء (accept = 0) في حساب الرصيد. لمنع قبول إجازة سنوية ثانية إذا كانت هناك إجازة سنوية قيد الإجراء أو إذا كان الرصيد غير كافٍ، يجب تعديل الكود ليشمل الإجازات قيد الإجراء (accept = 0) في حساب الرصيد. يمكن تحقيق ذلك عن طريق تعديل استعلام SUM(days) ليشمل جميع الإجازات (سواء تمت الموافقة عليها أو قيد الإجراء). if ($type == "اجازة سنوية") { $vacation_days = $days; // حساب رصيد الإجازة $start_date_calc = new DateTime($employee['start_date']); $start_date_calc->modify('+1 year'); $start_date_calc = $start_date_calc->format('Y-m-d'); // استرجاع إجمالي الأيام المستخدمة (بما في ذلك الإجازات قيد الإجراء) $stmt = $con->prepare("SELECT SUM(days) as total_days FROM vacations WHERE emp_id = ? AND type = 'اجازة سنوية'"); $stmt->bind_param("i", $emp_id); $stmt->execute(); $result = $stmt->get_result(); $row = $result->fetch_assoc(); $used_days = $row['total_days'] ? $row['total_days'] : 0; $stmt->close(); $vacation_balance = calculateVacationBalance($start_date_calc, $used_days); if ($vacation_balance < $vacation_days) { echo "عذرًا، لا يمكن إنشاء إجازة وذلك لعدم توفر الرصيد الكافي."; exit(); } }1 نقطة