diff --git a/app/Http/Controllers/QuoteController.php b/app/Http/Controllers/QuoteController.php index 9d06d208608c..7bd39ed64324 100644 --- a/app/Http/Controllers/QuoteController.php +++ b/app/Http/Controllers/QuoteController.php @@ -676,7 +676,7 @@ class QuoteController extends BaseController return response()->json(['message' => ctrans('texts.quote_unapprovable')], 400); } - return $this->itemResponse($quote->service()->approve()->save()); + return $this->itemResponse($quote->service()->approveWithNoCoversion()->save()); break; case 'history': // code... diff --git a/app/Repositories/TaskRepository.php b/app/Repositories/TaskRepository.php index 2dc14e4acf79..518a70a9791e 100644 --- a/app/Repositories/TaskRepository.php +++ b/app/Repositories/TaskRepository.php @@ -185,6 +185,10 @@ class TaskRepository extends BaseRepository public function start(Task $task) { + //do no allow an task to be restarted if it has been invoiced + if($task->invoice_id) + return; + if(strlen($task->time_log) < 5) { $log = []; diff --git a/app/Services/Quote/QuoteService.php b/app/Services/Quote/QuoteService.php index 77b134103abe..960fce39fe5c 100644 --- a/app/Services/Quote/QuoteService.php +++ b/app/Services/Quote/QuoteService.php @@ -126,6 +126,15 @@ class QuoteService return $this; } + + public function approveWithNoCoversion($contact = null) :self + { + $this->setStatus(Quote::STATUS_APPROVED)->save(); + + return $this; + } + + public function convertToInvoice() {