mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Fixes for task statuses
This commit is contained in:
parent
a38d011d56
commit
49bfcd278e
@ -124,16 +124,16 @@ class TaskStatusController extends BaseController
|
||||
*/
|
||||
public function update(UpdateTaskStatusRequest $request, TaskStatus $task_status)
|
||||
{
|
||||
nlog($request->all());
|
||||
|
||||
|
||||
$task_status->fill($request->all());
|
||||
$reorder = $task_status->isDirty('status_order');
|
||||
$task_status->save();
|
||||
|
||||
|
||||
if ($reorder)
|
||||
$this->task_status_repo->reorder($task_status);
|
||||
|
||||
return $this->itemResponse($task_status->fresh());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -45,8 +45,8 @@ class TaskStatusRepository extends BaseRepository
|
||||
$new_status = $task_status ? $task_status->id : null;
|
||||
|
||||
Task::where('status_id', $task_status->id)
|
||||
->where('company_id', $task_status->company_id)
|
||||
->update(['status_id' => $new_status]);
|
||||
->where('company_id', $task_status->company_id)
|
||||
->update(['status_id' => $new_status]);
|
||||
|
||||
|
||||
parent::archive($task_status);
|
||||
@ -56,22 +56,31 @@ class TaskStatusRepository extends BaseRepository
|
||||
|
||||
public function reorder(TaskStatus $task_status)
|
||||
{
|
||||
nlog("i am dirty");
|
||||
|
||||
nlog(TaskStatus::query()
|
||||
->where('company_id', $task_status->company_id)
|
||||
->orderByRaw('ISNULL(status_order), status_order ASC')
|
||||
->orderBy('status_order', 'DESC')->pluck('name'));
|
||||
|
||||
TaskStatus::query()
|
||||
->where('company_id', $task_status->company_id)
|
||||
->orderByRaw('ISNULL(status_order), status_order ASC')
|
||||
->orderBy('status_order', 'DESC')
|
||||
->cursor()
|
||||
->each(function ($task_status, $index) {
|
||||
nlog($index." ".$task_status->name);
|
||||
$task_status->update(['status_order' => $index+1]);
|
||||
});
|
||||
TaskStatus::where('company_id', $task_status->company_id)
|
||||
->where('id', '!=', $task_status->id)
|
||||
->orderByRaw('ISNULL(status_order), status_order ASC')
|
||||
->cursor()
|
||||
->each(function ($ts, $key) use($task_status){
|
||||
|
||||
if($ts->status_order < $task_status->status_order) {
|
||||
$ts->status_order--;
|
||||
$ts->save();
|
||||
} elseif($ts->status_order >= $task_status->status_order) {
|
||||
$ts->status_order ++;
|
||||
$ts->save();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
TaskStatus::where('company_id', $task_status->company_id)
|
||||
->orderByRaw('ISNULL(status_order), status_order ASC')
|
||||
->cursor()
|
||||
->each(function ($ts, $key) {
|
||||
$ts->status_order = $key;
|
||||
$ts->save();
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user