fix: use increment/decrement instead of loop
This commit is contained in:
parent
950b2babdc
commit
c09214f59a
1 changed files with 3 additions and 12 deletions
|
|
@ -892,22 +892,13 @@ class TicketController extends Controller
|
|||
$newPriority = $request->validated('priority');
|
||||
|
||||
return DB::transaction(function () use ($ticket, $newPriority) {
|
||||
$getHigherPriority = $ticket->order < $newPriority;
|
||||
|
||||
// Update all tickets who will be moved with this priority update.
|
||||
Ticket::query()
|
||||
$request = Ticket::query()
|
||||
->where('site_id', $ticket->site_id)
|
||||
->whereNot('status', TicketStatusEnum::archived)
|
||||
->whereNot('id', $ticket->id)
|
||||
->whereBetween('order', [min($ticket->order, $newPriority), max($ticket->order, $newPriority)])
|
||||
->each(
|
||||
function (Ticket $ticket) use ($getHigherPriority) {
|
||||
$ticket->order += $getHigherPriority ? -1 : 1;
|
||||
if (!$ticket->saveOrFail()) {
|
||||
return back()->with('error', trans('crud.messages.order_not_changed'));
|
||||
};
|
||||
}
|
||||
);
|
||||
->whereBetween('order', [min($ticket->order, $newPriority), max($ticket->order, $newPriority)]);
|
||||
$ticket->order < $newPriority ? $request->decrement('order', 1) : $request->increment('order', 1);
|
||||
|
||||
// Update the ticket.
|
||||
$ticket->order = $newPriority;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue