Fixes for unique task number "

This commit is contained in:
David Bomba 2020-10-30 22:47:12 +11:00
parent a283f1dcf7
commit e455ec47e6
4 changed files with 11 additions and 13 deletions

View File

@ -31,15 +31,15 @@ class Request extends FormRequest
public function globalRules($rules) public function globalRules($rules)
{ {
$rules = []; $merge_rules = [];
foreach($this->all() as $key => $value) foreach($this->all() as $key => $value)
{ {
if(method_exists($this, $key)) if(method_exists($this, $key))
$rules = $this->{$key}($rules); $merge_rules = $this->{$key}($rules);
} }
return $rules; return array_merge($merge_rules, $rules);
} }
private function assigned_user_id($rules) private function assigned_user_id($rules)

View File

@ -38,9 +38,8 @@ class StoreTaskRequest extends Request
{ {
$rules = []; $rules = [];
if ($this->input('number')) { $rules['number'] = Rule::unique('tasks')
$rules['number'] = 'unique:tasks,number,'.$this->id.',id,company_id,'.auth()->user()->company()->id; ->where('company_id', auth()->user()->company()->id);
}
return $this->globalRules($rules); return $this->globalRules($rules);
} }

View File

@ -37,11 +37,10 @@ class UpdateTaskRequest extends Request
public function rules() public function rules()
{ {
$rules = []; $rules = [];
/* Ensure we have a client name, and that all emails are unique*/
if ($this->input('number')) { $rules['number'] = Rule::unique('tasks')
$rules['number'] = 'unique:tasks,number,'.$this->id.',id,company_id,'.$this->task->company_id; ->where('company_id', auth()->user()->company()->id)
} ->ignore($this->task->id);
return $this->globalRules($rules); return $this->globalRules($rules);
} }

View File

@ -51,7 +51,7 @@ class TaskRepository extends BaseRepository
$task->fill($data); $task->fill($data);
$task->save(); $task->save();
$task->number = empty($task->number) ? $this->getNextTaskNumber($task) : $task->number; $task->number = empty($task->number) ? $this->getNextTaskNumber($task) : $data['number'];
if (isset($data['description'])) { if (isset($data['description'])) {
$task->description = trim($data['description']); $task->description = trim($data['description']);