mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Add redundancy checks when creating task numbers
This commit is contained in:
parent
3d32cc7ac8
commit
20f398d49b
@ -68,7 +68,6 @@ class InvoiceRepository extends BaseRepository
|
||||
return $invoice;
|
||||
}
|
||||
|
||||
// $invoice->service()->markDeleted()->handleCancellation()->save();
|
||||
$invoice = $invoice->service()->markDeleted()->save();
|
||||
|
||||
parent::delete($invoice);
|
||||
|
@ -14,6 +14,7 @@ namespace App\Repositories;
|
||||
use App\Factory\TaskFactory;
|
||||
use App\Models\Task;
|
||||
use App\Utils\Traits\GeneratesCounter;
|
||||
use Illuminate\Database\QueryException;
|
||||
|
||||
/**
|
||||
* TaskRepository.
|
||||
@ -45,7 +46,7 @@ class TaskRepository extends BaseRepository
|
||||
$this->setDefaultStatus($task);
|
||||
}
|
||||
|
||||
$task->number = empty($task->number) || ! array_key_exists('number', $data) ? $this->getNextTaskNumber($task) : $data['number'];
|
||||
$task->number = empty($task->number) || ! array_key_exists('number', $data) ? $this->trySaving($task) : $data['number'];
|
||||
|
||||
if (isset($data['description'])) {
|
||||
$task->description = trim($data['description']);
|
||||
@ -244,4 +245,34 @@ class TaskRepository extends BaseRepository
|
||||
|
||||
return $task;
|
||||
}
|
||||
|
||||
|
||||
private function trySaving(Task $task)
|
||||
{
|
||||
|
||||
$x=1;
|
||||
|
||||
do{
|
||||
|
||||
try{
|
||||
|
||||
$task->number = $this->getNextTaskNumber($task);
|
||||
$task->saveQuietly();
|
||||
$this->completed = false;
|
||||
|
||||
}
|
||||
catch(QueryException $e){
|
||||
|
||||
$x++;
|
||||
|
||||
if($x>50)
|
||||
$this->completed = false;
|
||||
}
|
||||
|
||||
}
|
||||
while($this->completed);
|
||||
|
||||
return $task->number;
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user