/**
  * 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 postAdd(Request $request)
 {
     if (!ACL::hasPermission('experience', 'add')) {
         return redirect(route('experience'))->withErrors(['You don\'t have permission for add new experience.']);
     }
     $this->validate($request, ['dateStart' => 'required|date_format:m/d/Y', 'dateEnd' => 'date_format:m/d/Y', 'position' => 'required|max:50', 'company' => 'required|max:50', 'description' => 'required']);
     $experience = new Experience();
     $experience->dateStart = Carbon::createFromFormat('m/d/Y', $request->dateStart)->format('Y-m-d');
     if (!empty($request->dateEnd)) {
         $experience->dateEnd = Carbon::createFromFormat('m/d/Y', $request->dateEnd)->format('Y-m-d');
     }
     $experience->position = $request->position;
     $experience->company = $request->company;
     $experience->description = $request->description;
     $experience->save();
     $success = "Experience added successfully.";
     return redirect(route('experience'))->with(compact('success'));
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(ApplicantFormRequest $request)
 {
     try {
         DB::beginTransaction();
         $applicant = new Applicant();
         $applicant->fill($request->only('name', 'email', 'phone', 'address', 'gender', 'date_of_birth', 'id_type', 'id_number', 'marital_status', 'english_translation', 'bangla_translation'));
         if ($request->hasFile('photo')) {
             $extension = $request->file('photo')->getClientOriginalExtension();
             $photoName = $request->input('email') . time() . '.' . $extension;
             $request->file('photo')->move('uploads/photos/', $photoName);
             $applicant->photo = $photoName;
         }
         if ($request->hasFile('recommendation_letter')) {
             $extension = $request->file('recommendation_letter')->getClientOriginalExtension();
             $fileName = $request->input('email') . time() . '.' . $extension;
             $request->file('recommendation_letter')->move('uploads/letters/', $fileName);
             $applicant->recommendation_letter = $fileName;
         }
         $applicant->save();
         # Qualification Entry
         $degrees = $request->input('degree');
         $institutes = $request->input('institute');
         $results = $request->input('result');
         $passing_years = $request->input('passing_year');
         if (count($degrees) > 0) {
             foreach ($degrees as $degree) {
                 $index = array_search($degree, $degrees);
                 $qualification = new Qualification();
                 $qualification->degree = $degrees[$index];
                 $qualification->institute = $institutes[$index];
                 $qualification->result = $results[$index];
                 $qualification->passing_year = $passing_years[$index];
                 $qualification->applicant_id = $applicant->id;
                 $qualification->save();
             }
         }
         # Employments Entry
         $designations = $request->input('designation');
         $organizations = $request->input('organization');
         $froms = $request->input('from');
         $tos = $request->input('to');
         if (count($designations) > 0) {
             foreach ($designations as $designation) {
                 $index = array_search($designation, $designations);
                 $experience = new Experience();
                 $experience->designation = $designations[$index];
                 $experience->organization = $organizations[$index];
                 $experience->from = $froms[$index];
                 $experience->to = $tos[$index];
                 $experience->applicant_id = $applicant->id;
                 $experience->save();
             }
         }
         DB::commit();
         //return view('application.index')->with('message', 'You have successfully submitted your resume!!');
         return redirect('/response')->with('message', 'Application submission successful');
     } catch (\Exception $e) {
         DB::rollback();
         dd($e->getMessage());
     }
 }