السلام عليكم بناء علي كود تالي كيف يتم حساب ترقية موظف
publicfunction store(Request $request, $id =null){
$empId = $id ?: $request->input('emp_id');
request()->validate(['prev_degree'=>"required|numeric",'date'=>"required",'new_degree'=>['required','numeric','integer',Rule::unique('promotions')->where(function($query)use($empId){return $query->where('emp_id', $empId);})// Unique validation for year with emp_id],],['prev_degree.required'=>'يجب إدخال الدرجة السابقة للموظف','prev_degree.numeric'=>'يجب إدخال ان تكون الدرجة السابقة للموظف رقم','date.required'=>'يجب إدخال تاريخ الاستحقاق ','new_degree.required'=>'يجب إدخال الدرجة الجديدة للموظف ','new_degree.integer'=>'يجب إدخال ان تكون الدرجة الجديدة رقم ','new_degree.numeric'=>'يجب إدخال ان تكون الدرجة الجديدة رقم ','new_degree.unique'=>'الترقية لهذا الموظف موجودة مسبقآ',]);
DB::beginTransaction();try{if(Promotion::where([['emp_id', $empId],['new_degree', request('new_degree')]])->exists()){
DB::rollback();return redirect()->back()->with('error','للآسـف لـقـد تـم إدخـال تـرقـيـة الـمـوظـف لـهـذة الـدرجـة');}if((request('new_degree')!= request('prev_degree')+1&&!request('excep'))||Employee::where([['id', $empId],['degree', request('new_degree')]])->exists()){
DB::rollback();return redirect()->back()->with('error','للآسـف يجب ان تكون الدرجة الجديدة اعلي من الدرجة السابقة بدرجة واحدة');}if($id ==0){
$emp =Employee::find(request('emp_id'));}else{
$emp =Employee::find($id);}
$promotion =newPromotion;if(request('excep')){
$promotion->excep =true;}
$promotion->num = request('num');
$promotion->emp_id = $emp->id;
$promotion->created_id=Auth()->user()->id;
$promotion->prev_degree=request('prev_degree');
$promotion->new_degree = request('new_degree');
$date = request('date');
$promotion->date = $date;
$last_date = request('last_date');
$promotion->last_date = $last_date;
$promotion->save();
$emp->degree = $promotion->new_degree;
$emp->update();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('PROMOTION', $fileName,'public');// Store the file
$filePath ='PROMOTION/'. $fileName;// Generate the file path
$finalArray[]=['type'=>'promotion','procedure_id'=> $promotion->id,'path'=> $filePath,];}if(!empty($finalArray)){File::insert($finalArray);// Insert the file references}}
$log =newLog;
$log->user_id = auth()->user()->id;
$log->type =5;
$log->emp_id = $emp->id;
$log->title =" اضافة ترقية جديدة بالدرجة (".request('new_degree').")";
$log->log =" تمت إضافة ترقية جديدة بالدرجة (".request('new_degree').")";
$log->save();
DB::commit();return redirect()->route('promotion.index')->with('success','تــمــت إضــافــة الـتـرقـيـة بــنــجــاح');// all good}catch(\Exception $e){
DB::rollback();return redirect()->back()->with('error','للاسف حدث خطأ ما الرجاء اعادة المحاولة');}}
ما هما حقول ادخال بناء علي صفحة create.blade.php هل هما رقم القرار درجة السابقة الدرجة الجديدة ترقية استنائية تاريخ اخر ترقية
@extends('admin.layout.master')@section('title')<title>تقـيـيـمجـديـد</title>@endsection@section('content')<div class="pc-container"><div class="pc-content"><!--[ breadcrumb ] start --><div class="page-header"><div class="page-block"><div class="row align-items-center"><div class="col-md-12"><ul class="breadcrumb"><li class="breadcrumb-item"><a href="{{ route('home') }}">لوحةالتحكم</a></li><li class="breadcrumb-item">اضـافـةالترقيةللـمـوظـف<a href="{{ route('EmployeeDetails', [$emp->id]) }}"><span style="color: blue;">{{$emp->person->name}}</span></a></li></ul></div><div class="col-md-6"><div class="page-header-title"><h2 class="mb-0">اضـافـةالترقيةللـمـوظـف<a href="{{ route('EmployeeDetails', [$emp->id]) }}"><span style="color: blue;">{{$emp->person->name}}</span></a></h2></div></div></div></div></div><!--[ breadcrumb ]end-->@include('admin.layout.validation-messages')<!--[MainContent] start --><div class="row"><div class="col-12"><div class="card"><div class="card-body"><h4 class="card-title">بـيـانـاتالـمـوظـف</h4><!--<p class="card-title-desc">Fill all information below</p>--><div class="row"><div class="col-sm-4"><div class="mb-3"><label for="fullname">اســمالــموظــف</label>@if($emp->person->image)<h4><img src="{{ asset(Storage::url($emp->person->image)) }}"class="me-1 rounded-circle avatar-sm" alt="user-pic">{{$emp->person->name}}</h4>@else<h4><img src="{{asset('assets/images/user.png')}}"class="me-1 rounded-circle avatar-sm" alt="user-pic">{{ $emp->person->name }}</h4>@endif</div></div>@if($emp->person->N_id)<div class="col-sm-4"><div class="mb-3"><label for="email">الرقــمالوطــني</label><h4>{{$emp->person->N_id}}</h4></div></div>@else<div class="col-sm-4"><div class="mb-3"><label for="email">رقمالإقامةاوالجوازلغيرالليبين</label><h4>{{$emp->person->non_citizen_ref_no}}</h4></div></div>@endif<div class="col-sm-4"><div class="mb-3"><label for="email">المؤهــلفيالقرار</label><h4>{{$emp->qualification}}</h4></div></div><div class="col-sm-4"><div class="mb-3"><label for="email">التــخــصص</label>@if($emp->specialty)<h4>{{$emp->specialty->name}}</h4>@else<h4>-</h4>@endif</div></div><div class="col-sm-4"><div class="mb-3"><label for="email">تاريــخالاستــحقاق</label><h4>{{$emp->due}}</h4></div></div><div class="col-sm-4"><div class="mb-3"><label for="email">الدرجــةالحــالية</label><h4>{{$emp->degree}}</h4></div></div><div class="col-sm-4"><div class="mb-3"><label for="email">تاريــخالمبــاشرة</label><h4 id ="earnDate">{{$emp->start_date}}</h4></div></div><div class="col-sm-4"><div class="mb-3"><label for="email">رقــمالقــرار</label><h4>{{$emp->res_num}}</h4></div></div><div class="col-sm-4 mb-3"><label class="control-label">الإدارة</label>@if($emp->subSection)<h4>{{$emp->section->name}}-{{ $emp->subSection->name }}</h4>@else<h4>{{$emp->section->name}}</h4>@endif</div><div class="col-sm-4"><div class="mb-3"><label for="email">الـجـنـس</label><h4>{{$emp->person->gender}}</h4></div></div><div class="col-sm-4"><div class="mb-3"><label for="email">الحالةالاجتماعية</label><h4>{{$emp->person->marital_status}}</h4></div></div></div></div></div><div class="card"><div class="card-body"><h4 class="card-title">تـقـديـمبـيـانـاتالترقية</h4><form action="{{route('storePromotion',[$emp->id])}}" method="post" enctype="multipart/form-data" id="form">@csrf<div class="row mt-3"><div class="col-sm-4"><div class="mb-3"><label for="email">رقـمالـقـرار</label><input id="earnNum" name="num" type="text"class="form-control" placeholder="رقـم الـقـرار" required oninvalid="this.setCustomValidity('الرجاء ادخال رقـم الـقـرار')" oninput="this.setCustomValidity('')"></div></div><div class="col-sm-4"><div class="mb-3"><label for="email">الـدرجـةالـسـابـقـة</label><input id="earnDate" name="prev_degree"value="{{ $emp->degree }}" type="number"class="form-control" placeholder="الـدرجـة الـسـابـقـة" required oninvalid="this.setCustomValidity('الرجاء ادخال الدرجة السابقة')" oninput="this.setCustomValidity('')"></div></div><div class="col-sm-4"><div class="mb-3"><label for="email">الـدرجـةالـجـديـدة</label><input id="earnDate" name="new_degree" type="number"value="{{ $emp->degree+1 }}"class="form-control" placeholder="الـدرجـة الـجـديـدة" required oninvalid="this.setCustomValidity('الرجاء ادخال الدرجة الجديدة')" oninput="this.setCustomValidity('')"></div></div><div class="col-md-12"><div class="form-group"><div class="form-check"><input class="form-check-input" type="checkbox"
name="excep" id="invalidCheck"><label class="form-check-label"for="invalidCheck">تـرقـيـةاسـتـثـنـائـيـة</label></div></div></div><div class="col-sm-4"><div class="mb-3"><label for="email">تـاريـخالاسـتـحـقـاق</label><input id="earnDate" name="date" type="date"class="form-control" oninput="dateValidation(this)" placeholder="YYYY-MM-DD" required oninvalid="this.setCustomValidity('الرجاء ادخال تاريخ الاستحقاق')" oninput="this.setCustomValidity('')"></div></div><div class="col-sm-4"><div class="mb-3"><label for="email">تـاريـخاخـرتـرقـيـة</label>@if($emp->promotions->last())<input id="earnDate" name="last_date"value="{{ $emp->promotions->last()->last_date }}" type="date"class="form-control" oninput="dateValidation(this)" placeholder="YYYY-MM-DD">@else<input id="earnDate" name="last_date" type="date"class="form-control" oninput="dateValidation(this)" placeholder="YYYY-MM-DD">@endif</div></div><div class="col-sm-4"><div class="mb-3 "><label for="email">وثـيـقـة(إختياري)</label><input name="files[]" type="file"class="form-control" multiple></div></div></div><br><div class="d-flex flex-wrap gap-2"><button type="submit"class="btn btn-success waves-effect waves-light">إضــافـةالـتـرقـيـة</button></div></form></div></div></div></div><!--end row --></div><!-- container-fluid --></div><!--EndPage-content -->@endSection@section('script')<script>function dateValidation(inputElement){var dateRegex =/^\d{1,2}-\d{1,2}-\d{4}$/;// Regex for date format DD-MM-YYYYvar dateRegex2 =/^\d{1,2}\/\d{1,2}\/\d{4}$/;// Regex for date format DD/MM/YYYYvar dateRegex3 =/^\d{4}-\d{1,2}-\d{1,2}$/;// Regex for date format DD-MM-YYYYvar dateRegex4 =/^\d{4}\/\d{1,2}\/\d{1,2}$/;// Regex for date format DD/MM/YYYY// Check if the input matches either of the date formatsif(dateRegex.test(inputElement.value)|| dateRegex2.test(inputElement.value)|| dateRegex3.test(inputElement.value)|| dateRegex4.test(inputElement.value)){// If the date does not match the format, show a custom validity message
inputElement.setCustomValidity('');}else{
inputElement.setCustomValidity('الرجاء إدخال التاريخ بالتنسيق DD-MM-YYYY أو DD/MM/YYYY');// If the date matches one of the formats, clear any custom validity message}}</script>@endSection
علما بأن جدول موظف يحتوي علي حقل درجة الوظيفية degree وتاريخ حصول علي درجة date_degree
وجدول promotions ترقيات
يحتوي علي رقم موظف مفتاح اجنبي ,رقم القرار, الدرجة السابقة, الدرجة الجديدة ,تاريخ الاستحقاق , تاريخ اخر ترقية, حالة القبول ,هل ترقية استنائية
السؤال
ايمن ميلاد
السلام عليكم بناء علي كود تالي كيف يتم حساب ترقية موظف
ما هما حقول ادخال بناء علي صفحة create.blade.php هل هما رقم القرار درجة السابقة الدرجة الجديدة ترقية استنائية تاريخ اخر ترقية
علما بأن جدول موظف يحتوي علي حقل درجة الوظيفية degree وتاريخ حصول علي درجة date_degree
وجدول promotions ترقيات
يحتوي علي رقم موظف مفتاح اجنبي ,رقم القرار, الدرجة السابقة, الدرجة الجديدة ,تاريخ الاستحقاق , تاريخ اخر ترقية, حالة القبول ,هل ترقية استنائية
هدا كود صفحة index ماذا اعرض فيها
13 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.