/**
  * Store new application form submission
  *
  * @param \Illuminate\Http\CreateNewApplicationRequest $request
  * @return \Illuminate\Http\Response
  */
 public function store(CreateNewApplicationRequest $request)
 {
     // Create New Application
     $application = Applications::create($request->only(['first_name', 'middle_name', 'surname', 'address_line1', 'address_line2', 'city', 'postcode', 'telephone', 'visa_valid_to', 'mobile', 'email', 'ni_number', 'driver', 'endorsements', 'vehicle_access', 'right_to_work', 'evidence_right_to_work', 'comments', 'education', 'employer_name', 'job_title', 'employer_start_date', 'employer_end_date', 'employer_responsibilities', 'employer_name2', 'job_title2', 'employer_start_date2', 'employer_end_date2', 'employer_responsibilities2', 'health_info', 'criminal_convictions', 'convictions_comments', 'next_of_kin_name', 'next_of_kin_address', 'next_of_kin_telephone', 'next_of_kin_mobile', 'next_of_kin_relationship', 'created_at', 'updated_at', 'accept_data_protection', 'app_only', 'employment_gaps', 'company_id', 'employer_name3', 'job_title3', 'employer_start_date3', 'employer_end_date3', 'employer_responsibilities3', 'signed_by', 'code']));
     $application->contactable = json_encode($request->input('contactable'));
     // Create New Reference
     $ref = new References();
     $ref->company_id = $request->input('company_id');
     $ref->applications_id = $application->id;
     $ref->references_id = $request->input('reference_id');
     $ref->referee_name = $request->input('referee_name');
     $ref->referee_company = $request->input('referee_company');
     $ref->referee_email = $request->input('referee_email');
     $ref->referee_relationship = $request->input('referee_relationship');
     $ref->referee_start_date = $request->input('referee_start_date');
     $ref->referee_end_date = $request->input('referee_end_date');
     $ref->referee_current_employer = $request->input('referee_current_employer');
     $ref->referee_contact = $request->input('referee_contact');
     $ref->code = str_random(40);
     $ref->settings_id = $request->input('settings_id');
     $ref->save();
     //        $settings = new Settings;
     //        $settings->company_id = $ref->company_id;
     //        $settings->application_id = $application->id;
     //        $settings->save();
     $fields = Fields::create($request->only('label', 'label2', 'label3', 'label4', 'label5', 'label6', 'label7', 'label8', 'label9', 'label10', 'answer', 'answer2', 'answer3', 'answer4', 'answer5', 'answer6', 'answer7', 'answer8', 'answer9', 'answer10'));
     $fields->settings_id = $request->input('settings_id');
     $fields->update();
     // Check if referee is contactable then
     $referee = $ref;
     if ($request->input('referee_contact') == 'Yes') {
         // Fire Event to send email to referee 1
         //event(new EmailRefereeOne($referee, $application));
         $data = array('worker' => ucwords($application->first_name) . ' ' . ucwords($application->surname), 'company' => $ref->company->name, 'email' => $ref->referee_email, 'refereeName' => $ref->referee_name, 'code' => $ref->code);
         // Send the email
         Mail::send('emails/applications/submission', $data, function ($message) use($data) {
             $message->to($data['email'])->from(config('custom.noreplyemail'), 'Made Simple')->subject('Reference Request');
         });
         $application->reference_id = $ref->id;
         $application->company_id = $ref->company_id;
         $application->code = $ref->code;
         $application->app_only = 'true';
         $application->update();
     }
     if ($request->input('referee_contact2') == 'Yes') {
         //            $applicationtwo = Applications::create($request->only(['first_name' , 'middle_name' , 'surname', 'address_line1', 'address_line2', 'city', 'postcode', 'telephone', 'visa_valid_to', 'mobile', 'email',
         //                'ni_number', 'driver', 'endorsements', 'vehicle_access', 'right_to_work', 'evidence_right_to_work', 'comments', 'education', 'employer_name', 'job_title', 'employer_start_date',
         //                'employer_end_date', 'employer_responsibilities', 'employer_name2', 'job_title2', 'employer_start_date2', 'employer_end_date2', 'employer_responsibilities2', 'health_info',
         //                'criminal_convictions', 'convictions_comments', 'next_of_kin_name', 'next_of_kin_address', 'next_of_kin_telephone', 'next_of_kin_mobile', 'next_of_kin_relationship', 'created_at', 'updated_at',
         //                'accept_data_protection', 'company_id', 'employer_name3', 'job_title3', 'employer_start_date3', 'employer_end_date3', 'employer_responsibilities3', 'signed_by','code'
         //            ]));
         //            $applicationtwo->contactable = json_encode($request->input('contactable'));
         $reftwo = new References();
         $reftwo->company_id = $request->input('company_id');
         $reftwo->applications_id = $application->id;
         $reftwo->references_id = $request->input('reference_id');
         $reftwo->referee_name = $request->input('referee_name2');
         $reftwo->referee_company = $request->input('referee_company2');
         $reftwo->referee_email = $request->input('referee_email2');
         $reftwo->referee_relationship = $request->input('referee_relationship2');
         $reftwo->referee_start_date = $request->input('referee_start_date2');
         $reftwo->referee_end_date = $request->input('referee_end_date2');
         $reftwo->referee_current_employer = $request->input('referee_current_employer2');
         $reftwo->referee_contact2 = $request->input('referee_contact2');
         $reftwo->code = str_random(40);
         $reftwo->settings_id = $request->input('settings_id');
         $reftwo->save();
         $application->reference_two_id = $reftwo->id;
         $application->company_id = $request->input('company_id');
         $application->code_two = $reftwo->code;
         $application->update();
         $data = array('worker' => ucwords($application->first_name) . ' ' . ucwords($application->surname), 'company' => $ref->company->name, 'email' => $request->input('referee_email2'), 'refereeName' => $reftwo->referee_name, 'code' => $reftwo->code);
         // Send the email
         Mail::send('emails/applications/submissiontwo', $data, function ($message) use($data) {
             $message->to($data['email'])->from(config('custom.noreplyemail'), 'Made Simple')->subject('Reference Request');
         });
     }
     $fields->application_id = $application->id;
     $fields->update();
     flash()->success('Success', 'Thank you! Your submission has been successful and referees emailed.');
     return back();
 }