%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/www/admin1/app/Http/Requests/Tasks/ |
Upload File : |
<?php
namespace App\Http\Requests\Tasks;
use Carbon\Carbon;
use App\Models\Task;
use App\Models\Project;
use App\Models\ProjectMilestone;
use App\Http\Requests\CoreRequest;
use App\Traits\CustomFieldsRequestTrait;
class StoreTask extends CoreRequest
{
use CustomFieldsRequestTrait;
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$project = request('project_id') ? Project::findOrFail(request('project_id')) : null;
if(!is_null($this->milestone_id))
{
$milestone = ProjectMilestone::findOrFail($this->milestone_id);
$milestoneEndDate = Carbon::parse($milestone->end_date);
}
else
{
$milestoneEndDate = null;
}
$setting = company();
$unassignedPermission = user()->permission('create_unassigned_tasks');
$user = user();
$rules = [
'heading' => 'required',
'start_date' => 'required|date_format:"' . $setting->date_format . '"',
'priority' => 'required'
];
if(in_array('client', user_roles()))
{
$rules['project_id'] = 'required';
}
if(!$this->has('without_duedate'))
{
if(is_null($milestoneEndDate))
{
$rules['due_date'] = 'required|date_format:"' . $setting->date_format . '"|after_or_equal:start_date';
}
else
{
$rules['due_date'] = 'required|date_format:"' . $setting->date_format . '"|after_or_equal:start_date|before_or_equal:'.$milestoneEndDate;
}
}
if (request()->has('project_id') && request()->project_id != 'all' && request()->project_id != '') {
$project = Project::findOrFail(request()->project_id);
$startDate = $project->start_date->format($setting->date_format);
$rules['start_date'] = 'required|date_format:"' . $setting->date_format . '"|after_or_equal:' . $startDate;
}
else {
$rules['start_date'] = 'required|date_format:"' . $setting->date_format;
}
if ($this->has('dependent') && $this->dependent_task_id != '') {
$dependentTask = Task::findOrFail($this->dependent_task_id);
$rules['start_date'] = 'required|date_format:"' . $setting->date_format . '"|after_or_equal:"' . $dependentTask->due_date->format($setting->date_format) . '"';
}
$rules['user_id.0'] = 'required_with:is_private';
if ($unassignedPermission != 'all') {
$rules['user_id.0'] = 'required';
}
$rules['dependent_task_id'] = 'required_with:dependent';
if ($this->has('repeat')) {
$rules['repeat_cycles'] = 'required|numeric';
}
if ($this->has('set_time_estimate')) {
$rules['estimate_hours'] = 'required|integer|min:0';
$rules['estimate_minutes'] = 'required|integer|min:0';
}
$rules = $this->customFieldRules($rules);
return $rules;
}
public function messages()
{
return [
'project_id.required' => __('messages.chooseProject'),
'due_date.after_or_equal' => __('messages.taskAfterDateValidation'),
'due_date.before_or_equal' => __('messages.taskBeforeDateValidation')
];
}
public function attributes()
{
$attributes = [
'user_id.0' => __('modules.tasks.assignTo'),
'dependent_task_id' => __('modules.tasks.dependentTask')
];
$attributes = $this->customFieldsAttributes($attributes);
return $attributes;
}
}