/home/mip/mip/app/Http/Controllers/Website/GeneralApplicationController.php
<?php

namespace QxCMS\Http\Controllers\Website;

use Illuminate\Http\Request;
use QxCMS\Http\Requests\ApplyNowFormRequest; //
use QxCMS\Http\Controllers\Controller;

use DB;

class GeneralApplicationController extends Controller
{
    public function create()
    {
        return view('website.general-application');
    }
    
    
    public function store(ApplyNowFormRequest $request)
    {
        $questionWith = $request->get('questionWith');
        $firstname = $request->get('fname');
        $middlename = $request->get('mname');
        $lastname = $request->get('lname');
        $position = ucwords(strtolower($request->get('position')));
        $email = $request->get('email');
        
        //send email to applicant
        $applicantSubject = $position. ' | General Application';
        if(!empty($email)) {
            \Mail::send('emails.apply-auto-mail',
            array('email' => $email),
            function($message) use ($email, $firstname, $applicantSubject)
      	    {
                $message->from('noreply@mipinternational.com', 'MIP International Manpower Services Inc.');
                $message->to($email, $firstname)->subject($applicantSubject);
            });
        }
        
        //send email to company
        $companySubject = $firstname.' '.$middlename.' '.$lastname.' - '.$position;
    	\Mail::send('emails.general-application',
        array(
            // Personal Info
            'position' => $position,
            'country' => $request->get('country'),
            'fname' => $firstname,
            'mname' => $middlename,
            'lname' => $lastname,
            'birthdate' => $request->get('birthdate'),
            'gender' => $request->get('gender'),
            'marital_status' => $request->get('marital_status'), // marital status
            'religon' => $request->get('religon'), // religon
            'provincial_address' => $request->get('provincial_address'), // provincial address
            'present_address' => $request->get('present_address'), // present address
            'telephone' => $request->get('telephone'),
            'facebook' => $request->get('facebook'), // fb
            'email' => $email,
            'height' => $request->get('height'),
            'weight' => $request->get('weight'),
            'passport' => $request->get('passport'),
            'passportNo' => $request->get('passportNo'),
            'dateIssued' => $request->get('dateIssued'),
            'dateExpired' => $request->get('dateExpired'),
            'uploadPhoto' => $request->get('uploadPhoto'),
            'docfile' => $request->get('docfile'),
            
            // Education 1
            'education_level1' => $request->get('education_level1'),
            'school_university1' => $request->get('school_university1'),
            'course1' => $request->get('course1'),
            'startMonth1' => $request->get('startMonth1'),
            'startYear1' => $request->get('startYear1'),
            'endMonth1' => $request->get('endMonth1'),
            'endYear1' => $request->get('endYear1'),
            
            // Education 2
            'education_level2' => $request->get('education_level2'),
            'school_university2' => $request->get('school_university2'),
            'course2' => $request->get('course2'),
            'startMonth2' => $request->get('startMonth2'),
            'startYear2' => $request->get('startYear2'),
            'endMonth2' => $request->get('endMonth2'),
            'endYear2' => $request->get('endYear2'),
            
            // Education 3
            'education_level3' => $request->get('education_level3'),
            'school_university3' => $request->get('school_university3'),
            'course3' => $request->get('course3'),
            'startMonth3' => $request->get('startMonth3'),
            'startYear3' => $request->get('startYear3'),
            'endMonth3' => $request->get('endMonth3'),
            'endYear3' => $request->get('endYear3'),
            
            // Education 4
            'education_level4' => $request->get('education_level4'),
            'school_university4' => $request->get('school_university4'),
            'course4' => $request->get('course4'),
            'startMonth4' => $request->get('startMonth4'),
            'startYear4' => $request->get('startYear4'),
            'endMonth4' => $request->get('endMonth4'),
            'endYear4' => $request->get('endYear4'),
            
            // Work Experience 1
            'company_name1' => $request->get('company_name1'),
            'step3Position1' => $request->get('step3Position1'),
            'departmentName1' => $request->get('departmentName1'),
            'companyAddress1' => $request->get('companyAddress1'),
            'salaryCurrency1' => $request->get('salaryCurrency1'),
            'salary1' => $request->get('salary1'),
            'jobDescription1' => $request->get('jobDescription1'),
            'employmentStartMonth1' => $request->get('employmentStartMonth1'),
            'employmentStartYear1' => $request->get('employmentStartYear1'),
            'employmentEndMonth1' => $request->get('employmentEndMonth1'),
            'employmentEndYear1' => $request->get('employmentEndYear1'),
            
            // Work Experience 2
            'company_name2' => $request->get('company_name2'),
            'step3Position2' => $request->get('step3Position2'),
            'departmentName2' => $request->get('departmentName2'),
            'companyAddress2' => $request->get('companyAddress2'),
            'salaryCurrency2' => $request->get('salaryCurrency2'),
            'salary2' => $request->get('salary2'),
            'jobDescription2' => $request->get('jobDescription2'),
            'employmentStartMonth2' => $request->get('employmentStartMonth2'),
            'employmentStartYear2' => $request->get('employmentStartYear2'),
            'employmentEndMonth2' => $request->get('employmentEndMonth2'),
            'employmentEndYear2' => $request->get('employmentEndYear2'),
            
            // Work Experience 3
            'company_name3' => $request->get('company_name3'),
            'step3Position3' => $request->get('step3Position3'),
            'departmentName3' => $request->get('departmentName3'),
            'companyAddress3' => $request->get('companyAddress3'),
            'salaryCurrency3' => $request->get('salaryCurrency3'),
            'salary3' => $request->get('salary3'),
            'jobDescription3' => $request->get('jobDescription3'),
            'employmentStartMonth3' => $request->get('employmentStartMonth3'),
            'employmentStartYear3' => $request->get('employmentStartYear3'),
            'employmentEndMonth3' => $request->get('employmentEndMonth3'),
            'employmentEndYear3' => $request->get('employmentEndYear3'),
            
            // Work Experience 4
            'company_name4' => $request->get('company_name4'),
            'step3Position4' => $request->get('step3Position4'),
            'departmentName4' => $request->get('departmentName4'),
            'companyAddress4' => $request->get('companyAddress4'),
            'salaryCurrency4' => $request->get('salaryCurrency4'),
            'salary4' => $request->get('salary4'),
            'jobDescription4' => $request->get('jobDescription4'),
            'employmentStartMonth4' => $request->get('employmentStartMonth4'),
            'employmentStartYear4' => $request->get('employmentStartYear4'),
            'employmentEndMonth4' => $request->get('employmentEndMonth4'),
            'employmentEndYear4' => $request->get('employmentEndYear4'),
            
            // Work Experience 5
            'company_name5' => $request->get('company_name5'),
            'step3Position5' => $request->get('step3Position5'),
            'departmentName5' => $request->get('departmentName5'),
            'companyAddress5' => $request->get('companyAddress5'),
            'salaryCurrency5' => $request->get('salaryCurrency5'),
            'salary5' => $request->get('salary5'),
            'jobDescription5' => $request->get('jobDescription5'),
            'employmentStartMonth5' => $request->get('employmentStartMonth5'),
            'employmentStartYear5' => $request->get('employmentStartYear5'),
            'employmentEndMonth5' => $request->get('employmentEndMonth5'),
            'employmentEndYear5' => $request->get('employmentEndYear5'),
            
            // Work Experience 6
            'company_name6' => $request->get('company_name6'),
            'step3Position6' => $request->get('step3Position6'),
            'departmentName6' => $request->get('departmentName6'),
            'companyAddress6' => $request->get('companyAddress6'),
            'salaryCurrency6' => $request->get('salaryCurrency6'),
            'salary6' => $request->get('salary6'),
            'jobDescription6' => $request->get('jobDescription6'),
            'employmentStartMonth6' => $request->get('employmentStartMonth6'),
            'employmentStartYear6' => $request->get('employmentStartYear6'),
            'employmentEndMonth6' => $request->get('employmentEndMonth6'),
            'employmentEndYear6' => $request->get('employmentEndYear6'),
            
            // Work Experience 7
            'company_name7' => $request->get('company_name7'),
            'step3Position7' => $request->get('step3Position7'),
            'departmentName7' => $request->get('departmentName7'),
            'companyAddress7' => $request->get('companyAddress7'),
            'salaryCurrency7' => $request->get('salaryCurrency7'),
            'salary7' => $request->get('salary7'),
            'jobDescription7' => $request->get('jobDescription7'),
            'employmentStartMonth7' => $request->get('employmentStartMonth7'),
            'employmentStartYear7' => $request->get('employmentStartYear7'),
            'employmentEndMonth7' => $request->get('employmentEndMonth7'),
            'employmentEndYear7' => $request->get('employmentEndYear7'),
            
            // Work Experience 8
            'company_name8' => $request->get('company_name8'),
            'step3Position8' => $request->get('step3Position8'),
            'departmentName8' => $request->get('departmentName8'),
            'companyAddress8' => $request->get('companyAddress8'),
            'salaryCurrency8' => $request->get('salaryCurrency8'),
            'salary8' => $request->get('salary8'),
            'jobDescription8' => $request->get('jobDescription8'),
            'employmentStartMonth8' => $request->get('employmentStartMonth8'),
            'employmentStartYear8' => $request->get('employmentStartYear8'),
            'employmentEndMonth8' => $request->get('employmentEndMonth8'),
            'employmentEndYear8' => $request->get('employmentEndYear8'),
            
            // Work Experience 9
            'company_name9' => $request->get('company_name9'),
            'step3Position9' => $request->get('step3Position9'),
            'departmentName9' => $request->get('departmentName9'),
            'companyAddress9' => $request->get('companyAddress9'),
            'salaryCurrency9' => $request->get('salaryCurrency9'),
            'salary9' => $request->get('salary9'),
            'jobDescription9' => $request->get('jobDescription9'),
            'employmentStartMonth9' => $request->get('employmentStartMonth9'),
            'employmentStartYear9' => $request->get('employmentStartYear9'),
            'employmentEndMonth9' => $request->get('employmentEndMonth9'),
            'employmentEndYear9' => $request->get('employmentEndYear9'),
            
            // Work Experience 10
            'company_name10' => $request->get('company_name10'),
            'step3Position10' => $request->get('step3Position10'),
            'departmentName10' => $request->get('departmentName10'),
            'companyAddress10' => $request->get('companyAddress10'),
            'salaryCurrency10' => $request->get('salaryCurrency10'),
            'salary10' => $request->get('salary10'),
            'jobDescription10' => $request->get('jobDescription10'),
            'employmentStartMonth10' => $request->get('employmentStartMonth10'),
            'employmentStartYear10' => $request->get('employmentStartYear10'),
            'employmentEndMonth10' => $request->get('employmentEndMonth10'),
            'employmentEndYear10' => $request->get('employmentEndYear10'),
            
            // Work Experience 11
            'company_name11' => $request->get('company_name11'),
            'step3Position11' => $request->get('step3Position11'),
            'departmentName11' => $request->get('departmentName11'),
            'companyAddress11' => $request->get('companyAddress11'),
            'salaryCurrency11' => $request->get('salaryCurrency11'),
            'salary11' => $request->get('salary11'),
            'jobDescription11' => $request->get('jobDescription11'),
            'employmentStartMonth11' => $request->get('employmentStartMonth11'),
            'employmentStartYear11' => $request->get('employmentStartYear11'),
            'employmentEndMonth11' => $request->get('employmentEndMonth11'),
            'employmentEndYear11' => $request->get('employmentEndYear11'),
            
            // Work Experience 12
            'company_name12' => $request->get('company_name12'),
            'step3Position12' => $request->get('step3Position12'),
            'departmentName12' => $request->get('departmentName12'),
            'companyAddress12' => $request->get('companyAddress12'),
            'salaryCurrency12' => $request->get('salaryCurrency12'),
            'salary12' => $request->get('salary12'),
            'jobDescription12' => $request->get('jobDescription12'),
            'employmentStartMonth12' => $request->get('employmentStartMonth12'),
            'employmentStartYear12' => $request->get('employmentStartYear12'),
            'employmentEndMonth12' => $request->get('employmentEndMonth12'),
            'employmentEndYear12' => $request->get('employmentEndYear12'),
            
            // Work Experience 13
            'company_name13' => $request->get('company_name13'),
            'step3Position13' => $request->get('step3Position13'),
            'departmentName13' => $request->get('departmentName13'),
            'companyAddress13' => $request->get('companyAddress13'),
            'salaryCurrency13' => $request->get('salaryCurrency13'),
            'salary13' => $request->get('salary13'),
            'jobDescription13' => $request->get('jobDescription13'),
            'employmentStartMonth13' => $request->get('employmentStartMonth13'),
            'employmentStartYear13' => $request->get('employmentStartYear13'),
            'employmentEndMonth13' => $request->get('employmentEndMonth13'),
            'employmentEndYear13' => $request->get('employmentEndYear13'),
            
            // Work Experience 14
            'company_name14' => $request->get('company_name14'),
            'step3Position14' => $request->get('step3Position14'),
            'departmentName14' => $request->get('departmentName14'),
            'companyAddress14' => $request->get('companyAddress14'),
            'salaryCurrency14' => $request->get('salaryCurrency14'),
            'salary14' => $request->get('salary14'),
            'jobDescription14' => $request->get('jobDescription14'),
            'employmentStartMonth14' => $request->get('employmentStartMonth14'),
            'employmentStartYear14' => $request->get('employmentStartYear14'),
            'employmentEndMonth14' => $request->get('employmentEndMonth14'),
            'employmentEndYear14' => $request->get('employmentEndYear14'),
            
            // Work Experience 15
            'company_name15' => $request->get('company_name15'),
            'step3Position15' => $request->get('step3Position15'),
            'departmentName15' => $request->get('departmentName15'),
            'companyAddress15' => $request->get('companyAddress15'),
            'salaryCurrency15' => $request->get('salaryCurrency15'),
            'salary15' => $request->get('salary15'),
            'jobDescription15' => $request->get('jobDescription15'),
            'employmentStartMonth15' => $request->get('employmentStartMonth15'),
            'employmentStartYear15' => $request->get('employmentStartYear15'),
            'employmentEndMonth15' => $request->get('employmentEndMonth15'),
            'employmentEndYear15' => $request->get('employmentEndYear15')
            
        ), function($message) use ($request, $companySubject)
  	    {
            $message->from('noreply@mipinternational.com', 'MIP General Application');
            $message->to(['mip.intlmanpowerservices@gmail.com'])->subject($companySubject);
            //$message->to(['jovylou@quantumx.com', 'christinejoy@quantumx.com'])->subject($companySubject);
            //$message->to(['jovylou@quantumx.com'])->subject($companySubject);
            
            if(!empty($request['uploadPhoto'])){
                $message->attach($request['uploadPhoto']->getRealPath(), array(
                    'as'=>$request['uploadPhoto']->getClientOriginalName(),
                    'mime' => $request['uploadPhoto']->getMimeType())
                );
            }
            
            if(!empty($request['docfile'])){
                    $message->attach($request['docfile']->getRealPath(), array(
                    'as'=>$request['docfile']->getClientOriginalName(),
                    'mime' => $request['docfile']->getMimeType())
                );
            }
            
        });
        
    	return \Redirect::route('applygeneral')
            ->with('message', 'Message Sent. Thanks for applying to us!')->with('questionWith', $questionWith);
        
    } // function end
    
} // class end