mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-02 21:14:35 -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;
|
return $invoice;
|
||||||
}
|
}
|
||||||
|
|
||||||
// $invoice->service()->markDeleted()->handleCancellation()->save();
|
|
||||||
$invoice = $invoice->service()->markDeleted()->save();
|
$invoice = $invoice->service()->markDeleted()->save();
|
||||||
|
|
||||||
parent::delete($invoice);
|
parent::delete($invoice);
|
||||||
|
@ -14,6 +14,7 @@ namespace App\Repositories;
|
|||||||
use App\Factory\TaskFactory;
|
use App\Factory\TaskFactory;
|
||||||
use App\Models\Task;
|
use App\Models\Task;
|
||||||
use App\Utils\Traits\GeneratesCounter;
|
use App\Utils\Traits\GeneratesCounter;
|
||||||
|
use Illuminate\Database\QueryException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TaskRepository.
|
* TaskRepository.
|
||||||
@ -45,7 +46,7 @@ class TaskRepository extends BaseRepository
|
|||||||
$this->setDefaultStatus($task);
|
$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'])) {
|
if (isset($data['description'])) {
|
||||||
$task->description = trim($data['description']);
|
$task->description = trim($data['description']);
|
||||||
@ -244,4 +245,34 @@ class TaskRepository extends BaseRepository
|
|||||||
|
|
||||||
return $task;
|
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