public function getEdit($experienceId)
 {
     if (!ACL::hasPermission('experience', 'edit')) {
         return redirect(route('experience'))->withErrors(['You don\'t have permission for edit the experience.']);
     }
     $experience = Experience::where('experienceId', '=', $experienceId)->first();
     return view('admin.experience.edit')->with(compact('experience'));
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $experiences = Experience::where('member_id', $request->input('0.member_id'))->delete();
     for ($i = 0; $i < count($request->all()); $i++) {
         if ($request->input($i . '.project')) {
             $this->validate($request, [$i . '.member_id' => 'required|numeric', $i . '.date_started' => 'required']);
             $experience = new Experience();
             $experience->member_id = $request->input($i . '.member_id');
             $experience->project_id = $request->input($i . '.project.id');
             $experience->date_started = Carbon::parse($request->input($i . '.date_started'));
             $tenure = Carbon::today()->diffInMonths(Carbon::parse($request->input($i . '.date_started')));
             $experience->experience = $tenure < 3 ? 'Beginner' : ($tenure >= 3 && $tenure < 6 ? 'Moderately Experienced' : 'Experienced');
             $experience->save();
         }
     }
 }
 public function downloadWeeklyDepartment($department_id, $date_start, $date_end, $daily_work_hours)
 {
     $user = Auth::user();
     if ($user->department_id != $department_id || !$user) {
         abort(403);
     }
     $this->projects = DB::table('projects')->where('department_id', $department_id)->whereNull('deleted_at')->get();
     foreach ($this->projects as $project_key => $project) {
         $project->reports = Report::with(['performances' => function ($query) {
             $query->with(['member' => function ($query) {
                 $query->withTrashed();
             }])->with('position');
         }])->with(['project' => function ($query) {
             $query->with('positions');
         }])->where('project_id', $project->id)->where('date_start', Carbon::parse($date_start))->where('date_end', Carbon::parse($date_end))->where('daily_work_hours', 'like', $daily_work_hours . '%')->orderBy('date_start', 'desc')->get();
         if (count($project->reports)) {
             $project->department = DB::table('departments')->where('id', $department_id)->first();
             $project->department->beginner = array();
             $project->department->moderately_experienced = array();
             $project->department->experienced = array();
             $project->department->quality = array();
             foreach ($project->reports[0]->project->positions as $position_key => $position) {
                 // Beginner
                 $previous_beginner_target = Target::withTrashed()->where('position_id', $position->id)->where('experience', 'Beginner')->where('created_at', '<', $project->reports[0]->date_start)->orderBy('created_at', 'desc')->first();
                 $beginner_productivity = count($previous_beginner_target) ? $previous_beginner_target : Target::where('position_id', $position->id)->where('experience', 'Beginner')->first();
                 // Moderately Experienced
                 $previous_moderately_experienced_target = Target::withTrashed()->where('position_id', $position->id)->where('experience', 'Moderately Experienced')->where('created_at', '<', $project->reports[0]->date_start)->orderBy('created_at', 'desc')->first();
                 $moderately_experienced_productivity = count($previous_moderately_experienced_target) ? $previous_moderately_experienced_target : Target::where('position_id', $position->id)->where('experience', 'Moderately Experienced')->first();
                 // Experienced
                 $previous_experienced_target = Target::withTrashed()->where('position_id', $position->id)->where('experience', 'Experienced')->where('created_at', '<', $project->reports[0]->date_start)->orderBy('created_at', 'desc')->first();
                 $experienced_productivity = count($previous_experienced_target) ? $previous_experienced_target : Target::where('position_id', $position->id)->where('experience', 'Experienced')->first();
                 // Quality
                 $previous_experienced_target = Target::withTrashed()->where('position_id', $position->id)->where('experience', 'Experienced')->where('created_at', '<', $project->reports[0]->date_start)->orderBy('created_at', 'desc')->first();
                 $quality = count($previous_experienced_target) ? $previous_experienced_target : Target::where('position_id', $position->id)->where('experience', 'Experienced')->first();
                 array_push($project->department->beginner, $beginner_productivity);
                 array_push($project->department->moderately_experienced, $moderately_experienced_productivity);
                 array_push($project->department->experienced, $experienced_productivity);
                 array_push($project->department->quality, $quality);
             }
             foreach ($project->reports as $report_key => $report) {
                 foreach ($report->performances as $performance_key => $performance) {
                     $performance->experience = Experience::where('member_id', $performance->member_id)->where('project_id', $performance->project_id)->first()->experience;
                 }
             }
         }
     }
     // return response()->json('$this->projects');
     Excel::create('PQR ' . $this->projects[0]->department->name . ' Weekly Summary ' . Carbon::parse($date_start)->toFormattedDateString() . ' to ' . Carbon::parse($date_end)->toFormattedDateString(), function ($excel) {
         foreach ($this->projects as $project_key => $project) {
             $this->project = $project;
             if (count($this->project->reports)) {
                 $excel->sheet($this->project->name, function ($sheet) {
                     $sheet->loadView('excel.weekly')->with('project', $this->project);
                 });
             }
         }
     })->download('xls');
 }
Beispiel #4
0
 public function addExperience(Request $request, Skill $skill)
 {
     if (!$request->hasFile('sample_file')) {
         return response('No file was sent', 404);
     }
     $file = $request->file('sample_file');
     $input = $request->except('sample_file');
     $user = Auth::user();
     $imageName = $user->id . str_random(20) . '.' . $file->getClientOriginalExtension();
     $file->move(public_path() . '/img/files/' . $user->id . '/', $imageName);
     $real_name = $file->getClientOriginalName();
     $size = $file->getClientSize() / (1024 * 1024);
     //calculate the file size in MB
     $experience = $skill->experiences()->create($input);
     $user->usage->add(filesize(public_path() . '/img/files/' . $user->id . '/' . $imageName) / (1024 * 1024));
     // storage add
     Experience::where('id', $experience->id)->first()->files()->create(['user_id' => $user->id, 'real_name' => $real_name, 'name' => $user->id . '/' . $imageName, 'size' => $size]);
     $input['file'] = $imageName;
     return ['hasCallback' => '1', 'callback' => 'skill_experiences', 'hasMsg' => 0, 'msg' => '', 'returns' => $skill->experiences()->with('files')->get()];
 }