/home/mip/mip/app/Modules/Client/Repositories/Applicants/ApplicantRepository.php
<?php
namespace QxCMS\Modules\Client\Repositories\Applicants;
use Carbon\Carbon;
use Illuminate\Http\Request;
use QxCMS\Modules\AbstractRepository;
use QxCMS\Modules\Client\Models\Applicants\Applicant;
use QxCMS\Modules\Client\Models\Settings\UserLogs\UserLogs as Log;
class ApplicantRepository extends AbstractRepository implements ApplicantRepositoryInterface
{
protected $model;
protected $log;
function __construct(Applicant $model, Log $log)
{
$this->model = $model;
$this->log = $log;
}
public function getSourceApplicant(Request $request)
{
$applicant = $this->model->with('latestJob', 'latestJob.job')
->whereHas('latestJob',function($query){
$query->where('id', '!=', null);
})->whereHas('latestJob.job',function($query) use ($request){
if ($request->has('position_applied')){
$query->where('position','LIKE',"%{$request->position_applied}%");
}
})->where(function($query) use ($request){
if($request->has('min_yrs')){
$query->whereRaw("yrs_exp >= '{$request->min_yrs}'");
}
if($request->has('max_yrs')){
$query->whereRaw("yrs_exp <= '{$request->max_yrs}'");
}
if($request->has('recent_emp')){
$query->where('company', 'LIKE', "%{$request->recent_emp}%");
}
if($request->has('col_deg')){
$query->where('college_degree', 'LIKE', "%{$request->col_deg}%");
}
if($request->has('school')){
$query->where('school', 'LIKE', "%{$request->school}%");
}
if($request->has('work_location')){
$query->where('work_location', 'LIKE', "%{$request->work_location}%");
}
});
return $applicant;
}
}