diff --git a/app/Http/Controllers/Banking/Transactions.php b/app/Http/Controllers/Banking/Transactions.php index daa45b8d7..c0c01f697 100644 --- a/app/Http/Controllers/Banking/Transactions.php +++ b/app/Http/Controllers/Banking/Transactions.php @@ -12,6 +12,7 @@ use App\Http\Requests\Common\Import as ImportRequest; use App\Imports\Banking\Transactions as Import; use App\Jobs\Banking\CreateTransaction; use App\Jobs\Banking\DeleteTransaction; +use App\Jobs\Banking\DuplicateTransaction; use App\Jobs\Banking\MatchBankingDocumentTransaction; use App\Jobs\Banking\SplitTransaction; use App\Jobs\Banking\UpdateTransaction; @@ -139,7 +140,7 @@ class Transactions extends Controller */ public function duplicate(Transaction $transaction) { - $clone = $transaction->duplicate(); + $clone = $this->dispatch(new DuplicateTransaction($transaction)); $message = trans('messages.success.duplicated', ['type' => trans_choice('general.transactions', 1)]); diff --git a/app/Jobs/Banking/DuplicateTransaction.php b/app/Jobs/Banking/DuplicateTransaction.php new file mode 100644 index 000000000..92cddc62d --- /dev/null +++ b/app/Jobs/Banking/DuplicateTransaction.php @@ -0,0 +1,30 @@ +model = $model; + + parent::__construct($model); + } + + public function handle(): Transaction + { + \DB::transaction(function () { + $this->clone = $this->model->duplicate(); + }); + + event(new TransactionCreated($this->clone, request())); + + return $this->clone; + } +}