اذهب إلى المحتوى

لوحة المتصدرين

  1. Mustafa Suleiman

    Mustafa Suleiman

    الأعضاء


    • نقاط

      3

    • المساهمات

      18934


  2. هادي البدوي

    هادي البدوي

    الأعضاء


    • نقاط

      2

    • المساهمات

      18


  3. محمد_عاطف

    محمد_عاطف

    الأعضاء


    • نقاط

      2

    • المساهمات

      8390


  4. Zen Eddin Allaham

    Zen Eddin Allaham

    الأعضاء


    • نقاط

      2

    • المساهمات

      814


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 05/12/25 في كل الموقع

  1. السلام عليكم اخواني الكرام لدي كود لارافيل تالي ممكن شرحها لي ماهي حقول ادخال لتقارير الكفاية للموظف <?php namespace App\Http\Controllers; use App\Models\Log; use App\Models\File; use App\Models\Person; use App\Models\Employee; use App\Models\Feedback; use Illuminate\Http\Request; use Illuminate\Validation\Rule; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; class FeedbackController extends Controller { function __construct() { $this->middleware('permission:feedback-list', ['only' => ['index','show','show1','search']]); $this->middleware('permission:feedback-create', ['only' => ['create','createAll','store']]); $this->middleware('permission:feedback-edit', ['only' => ['edit','update']]); $this->middleware('permission:feedback-delete', ['only' => ['destroy']]); } public function index() { $feed = Feedback::with('emp','user')->paginate(25); return view('admin.Feedback.index',compact('feed')); } public function create($id) { $emp=Employee::find($id); return view('admin.Feedback.create',compact('emp')); } public function createAll() { $employees = Employee::where('startout_data', NULL)->get(); return view('admin.Feedback.createAll',compact('employees')); } public function store(Request $request, $id = null) { $empId = $id ?: $request->input('emp_id'); request()->validate( [ 'text_grade' => "required|string", 'grade' => "required|numeric", 'year' => [ 'required', 'numeric', 'integer', Rule::unique('feedback')->where(function ($query) use($empId) { return $query->where('emp_id', $empId); }) // Unique validation for year with emp_id ], ], [ 'text_grade.required' => 'يجب إدخال تقرير الكفاية اللفظي', 'grade.required' => 'يجب إدخال درجة تقرير الكفاية ', 'year.required' => 'يجب إدخال سنة تقرير الكفاية ', 'year.integer' => 'يجب إدخال سنة تقرير الكفاية بالارقام ', 'year.numeric' => 'يجب إدخال سنة تقرير الكفاية بالارقام ', 'year.unique' => 'التقرير لهذا الموظف في هذه السنة موجود بالفعل', ]); DB::beginTransaction(); try { if(Feedback::where([['emp_id', $id],['year', request('year')]])->exists()){ DB::rollback(); return redirect()->back()->with('error', 'للآسـف لـقـد تـم إدخـال تقرير الكفاية الـمـوظـف لـهـذة الـسـنـة'); } if($id == 0){ $emp = Employee::find(request('emp_id')); }else{ $emp = Employee::find($id); } $feed = new Feedback; $feed->emp_id = $emp->id; $feed->user_id=Auth()->user()->id; $feed->text_grade=request('text_grade'); $feed->grade11 = request('grade11'); $feed->grade12 = request('grade12'); $feed->textGrade1 = request('grade13'); $feed->grade21 = request('grade21'); $feed->grade22 = request('grade22'); $feed->textGrade1 = request('grade23'); $feed->grade31 = request('grade31'); $feed->grade32 = request('grade32'); $feed->textGrade1 = request('grade33'); $feed->grade41 = request('grade41'); $feed->grade42 = request('grade42'); $feed->textGrade1 = request('grade43'); $feed->grade=request('grade'); $feed->year=request('year'); $feed->save(); if (request()->hasFile('files')) { $files = request()->file('files'); // Get the files $finalArray = []; foreach ($files as $file) { // Use foreach for simpler syntax $fileName = time() . '.' . $file->getClientOriginalExtension(); $file->storeAs('FEEDBACK', $fileName, 'public'); // Store the file $filePath = 'FEEDBACK/' . $fileName; // Generate the file path $finalArray[] = [ 'type' => 'feedback', 'procedure_id' => $feed->id, 'path' => $filePath, ]; } if (!empty($finalArray)) { File::insert($finalArray); // Insert the file references } } $log = new Log; $log->user_id = auth()->user()->id; $log->type = 5; $log->emp_id = $emp->id; $log->title = " اضافة تقرير الكفاية جديد (".request('year').")"; $log->log = " تمت إضافة تقرير الكفاية جديد (".request('year').")"; $log->save(); DB::commit(); return redirect()->route('feedback.index')->with('success','تــمــت إضــافــة تقرير الكفاية بــنــجــاح'); // all good } catch (\Exception $e) { DB::rollback(); return redirect()->back()->with('error', 'للاسف حدث خطأ ما الرجاء اعادة المحاولة'); } } public function show($id) { $emp=Employee::find($id); $feed = Feedback::where('emp_id', $id)->with('emp','user')->paginate(25); return view('admin.Feedback.show',compact('emp','feed')); } public function edit($id) { $feed = Feedback::with('emp','user')->find($id); return view('admin.Feedback.edit',compact('feed')); } public function update(Request $request, $id) { request()->validate( [ 'text_grade' => "required|string", 'grade' => "required|numeric", 'year' => [ 'required', 'numeric', 'integer' ], ], [ 'text_grade.required' => 'يجب إدخال تقرير الكفاية اللفظي', 'grade.required' => 'يجب إدخال درجة تقرير الكفاية ', 'year.required' => 'يجب إدخال سنة تقرير الكفاية ', 'year.integer' => 'يجب إدخال سنة تقرير الكفاية بالارقام ', 'year.numeric' => 'يجب إدخال سنة تقرير الكفاية بالارقام ', ]); DB::beginTransaction(); try { $feed=Feedback::find($id); if($feed->year != request('year') && Feedback::where([['emp_id', $id],['year', request('year')]])->exists()){ DB::rollback(); return redirect()->back()->with('error', 'للآسـف لـقـد تـم إدخـال تقرير الكفاية الـمـوظـف لـهـذة الـسـنـة'); } $feed->text_grade=request('text_grade'); $feed->grade=request('grade'); $feed->year=request('year'); $feed->grade11 = request('grade11'); $feed->grade12 = request('grade12'); $feed->textGrade1 = request('grade13'); $feed->grade21 = request('grade21'); $feed->grade22 = request('grade22'); $feed->textGrade1 = request('grade23'); $feed->grade31 = request('grade31'); $feed->grade32 = request('grade32'); $feed->textGrade1 = request('grade33'); $feed->grade41 = request('grade41'); $feed->grade42 = request('grade42'); $feed->textGrade1 = request('grade43'); $feed->update(); if (request()->hasFile('files')) { $files = File::where('procedure_id', $feed->id) ->where('type', 'feedback') ->get(); foreach ($files as $file) { if (Storage::disk('public')->exists($file->path)) { Storage::disk('public')->delete($file->path); } } File::where('procedure_id', $feed->id) ->where('type', 'feedback') ->delete(); $files = request()->file('files'); // Get the files $finalArray = []; foreach ($files as $file) { // Use foreach for simpler syntax $fileName = time() . '.' . $file->getClientOriginalExtension(); $file->storeAs('FEEDBACK', $fileName, 'public'); // Store the file $filePath = 'FEEDBACK/' . $fileName; // Generate the file path $finalArray[] = [ 'type' => 'feedback', 'procedure_id' => $feed->id, 'path' => $filePath, ]; } if (!empty($finalArray)) { File::insert($finalArray); // Insert the file references } } $log = new Log; $log->user_id = auth()->user()->id; $log->type = 5; $log->emp_id = $feed->emp_id; $log->title = " تعديل بيانات التقرير الكفاية (".request('year').")"; $log->log = " تم تعديل بيانات التقرير الكفاية (".request('year').")"; $log->save(); DB::commit(); return redirect()->route('feedback.index')->with('success','تــمــت تــعــديــل بـيـانــات التقرير الكفاية بــنــجــاح'); // all good } catch (\Exception $e) { DB::rollback(); return redirect()->back()->with('error', 'للاسف حدث خطأ ما الرجاء اعادة المحاولة'); } } public function show1(Request $request) { if (!empty($request)) { $query = $request->all(); } if (!request('name')) { return redirect()->back()->with('error', 'الرجاء تعبئة احدي الخانات علي الاقل'); } $persons = Person::where('name', 'LIKE', '%' . request('name') . '%')->pluck('id'); $emps = Employee::whereIn('person_id', $persons->toArray())->pluck('id'); $feed = Feedback::whereIn('emp_id', $emps->toArray())->with('emp')->latest()->paginate(25); if($feed->count() == 0){ return redirect()->back()->with('error', 'الـمـوظـف الــذي تبــحث عنــها غيــر موجــود'); } return view('admin.feedback.index',compact('feed','query')); } public function destroy($id) { DB::beginTransaction(); try { $files = File::where('procedure_id', $id) ->where('type', 'feedback') ->update(['delete_at', now()]); $abs = Feedback::find($id); $abs->delete_at = now(); $abs->update(); $log = new Log; $log->user_id = auth()->user()->id; $log->type = 11; $log->emp_id = $abs->emp_id; $log->title = " حذف بيانات التقرير الكفاية (".$abs->year.")"; $log->log = " تم حذف بيانات التقرير الكفاية (".$abs->year.")"; $log->save(); DB::commit(); return redirect()->back()->with('success','تـم حـذفـ التقرير الكفاية الـمـوظـف بـنـجـاح'); // all good } catch (\Exception $e) { DB::rollback(); return redirect()->back()->with('error', 'للاسف حدث خطأ ما الرجاء اعادة المحاولة'); } } } هادي حقول قاعدة البيانات
    2 نقاط
  2. ما الفرق بين علامة تنصيص الفردية '' و علامة "" في لغة JavaScript
    2 نقاط
  3. سلام عليكم عندي مشكله عدم ظهور زر run وجربت كذا طريقه ومافي فايدة ياريت لي بيعرف يفيدنا .وشكران
    2 نقاط
  4. نريد تصميم تطبيق باستخدام Android Studio وسيتم استخدام Firebase وفي هذا التطبيق سيكون هناك Inegration مع GPS و الوصول لمعلومات جهاز الجوال، وأيضا مع AI Model وسنستخدم لتدريب النموذج TensorFlow ،و سيحتوي على AI BOT ماهي توجيهاتكم واقتراحاتكم لاختيار خدمات Firebase اللازمة لتحليل وتتبع الأخطاء وإعلام المستخدم بهذه الأخطاء وأدوات لعمل Inegration ؟
    1 نقطة
  5. حسب ما فهمته ما تريده هو: جمع معلومات الأعطال والأخطاء المنطقية. معرفة السياق من خلال نسخة النموذج، إحداثيات GPS، نوع الجهاز وغيرها من المعلومات. تحليل الأداء Latency، Network، Battery. تنبيه المستخدم فوراً أو لاحقاً. إمكانية إيقاف ميزة أو تحديث نموذج AI عن بُعد إن لزم. قنوات CI/CD لتكامل سريع وتوزيع تجريبي. وبناءًا على ذلك ستحتاج إلى استخدام التقنيات التالية من Firebase: Firebase Crashlytics Firebase Performance Monitoring Firebase Analytics مع BigQuery Export Firebase Cloud Messaging Firebase In-App Messaging Firebase Remote Config Firebase Cloud Functions Firebase ML / Model Management أيضًا تتوفر Firebase ML لاستضافة نموذج TFLite لو أردت التشغيل السحابي، أو استخدم TFLite مباشرة على الجهاز، وRemote Config للتحكم الديناميكي.
    1 نقطة
  6. لا فرق بينهم كلاهما لنفس الوظيفة وهي تعريف السلسلة النصية أي تغليف نص لتتعرف عليه اللغة على أنه نص string. لكن تظهر أهمية علامة التنصيص المزدوجة عند كتابة التالي: let sentence3 = 'it's a rainy day' لاحظ بسبب وجود فاصلة apostrophe في اللغة الإنجليزية حدث مشكلة عند استخدام علامة التنصيص الفردية. لذا سنحتاج إلى استخدام المزدوجة هنا: let sentence3 = "it's a rainy day" أيضًا تستطيع استخدام كلاهما: let sentence = 'hello zen, "how are you?"' سنحصل على: hello zen, "how are you?"
    1 نقطة
  7. في لغة JavaScript لا يوجد فرق كبير في وظيفة كل من علامة التنصيص الفردية ' ' والمزدوجة " ". حيث كلا منهما يستخدمان لتعريف سلاسل نصية (strings)، ويمكنك استخدام أي منهما كما تريد ولكن بشرط أن تقوم ببداية السلسة النصية ونهايتها بنفس النوع. والسبب الرئيسي لوجود كلا النوعين هو تسهيل تضمين علامات التنصيص داخل السلسلة النصية نفسها. فمثلا لو إستخدمت علامة التنصيص الفردية هنا لن يمكنك إستخدام نص يحوي علامة تنصيص فردية بدون تهريب .هكذا مثلا : let str = "'Hello' World"; لاحظ كيف أننا وضعنا علامة التنصيص الفردية في النص نفسه ولهذا هنا لا يمكننا إستخدام السلسلة النصية الفردية لأن js ستعتقد أنك تريد إغلاق السلسلة النصية وليس تضمين علامة التنصيص في النص . وهذا أيضا بالنسبة لعلامة التنصيص المزدوجة : let str = '"Hello" World'; لاحظ هنا إستخدمنا علامة التنصيص المفردة لأننا نريد تضمين علامة التنصيص المزودجة في السلسلة النصية . ولكن يمكننا تجاهل ذلك من خلال تهريب الحروف عن طريق إستخدام رمز التهريب \ هكذا مثلا : let str1 = '\'Hello\' World'; let str2 = "\"Hello\" World"; وفي كل لغة برمجة تختلف طريقة عمل كل منهما . فمثلا في C و C++ ستجد أن علامة التنصيص المزودجة لكتابة سلسلة من الأحرف والرموز . أما علامة التنصيص الفردية فقط تقوم بكتابة حرف واحد .
    1 نقطة
  8. وعليكم السلام ورحمة الله وبركاته. لاحظ أنك لم تقم بحفظ الملف أو إنشاء الملف . حيث أنت تقوم بالكتابة في ملف جديد في vs code وليس له إمتداد . لهذا يجب الضغط على CTRL + S لحفظ الملف وتأكد من كتابة إسم الملف مع إمتداد .py ليظهر لك الزر . أو يمكنك الكتابة في ملف app.py وتشغيله هو . وإذا كانت المشكلة أيضا في ملف app.py يجب عليك التأكد من تثبيت إضافة بايثون :
    1 نقطة
  9. ستحتاج إلى تثبيت إضافة python لكي يظهر الزر: https://marketplace.visualstudio.com/items?itemName=ms-python.python إن لم يظهر قم بإعادة تشغيل محرر vscode. ولو استمرت المشكلة قم باستخدام إضافة code runner: https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner
    1 نقطة
  10. أخي بالنسبة لأفضل برنامج لحرق توزيعات لينكس على الفلاشة من خلال ويندوز فهناك LinuxLive USB Creator وهو برنامج مفتوح المصدر، صغير الحجم، وسهل الاستخدام للغاية. انظر إلى الصورة التالية: كما ترى أعلاه، الخطوة الأولى هي اختيار الفلاش ميموري، الخطوة الثانية اختيار ملف iso الخطوة الثالثة تجاهلها.. في الخطوة الرابعة حدّد الخيار الخاص بتهيئة القرص Format وأخيرًا في الخطوة الخامسة اضغط على زر الصاعقة الصفراء لتبدأ عملية الحرق. توجد أداة ثانية بخيارات أكبر وهي Rufus وهي تدعم العديد من الأنظمة وصيغ الملفّات الخاصة بالأنظمة ويمكنك استعمالها أيضا لكل من أنظمة ويندوز ولينوكس، وتوجد منها نسخة محمولة لاتحتاج إلى تنصيب وتوجد أيضا أداة Universal USB Installer والتي ينصح مصطورو نظام لينوكس باستعمالها مع توزيعات لينوكس المختلفة. لدينا أيضًا البرنامج الأكثر شهرة UNetbootin لكني لا أنصحك به إذ تكثر تقارير الأخطاء الناتجة عن استخدامه. بالمناسبة إن كنت تودّ حرق توزيعة فيدورا تحديدًا فلمَ لا تُجرب التطبيق الخاص بها في ويندوز
    1 نقطة
×
×
  • أضف...