From 3c8935c0a8f25b783b1596c182997cf8b4476578 Mon Sep 17 00:00:00 2001 From: James Cole Date: Mon, 23 Sep 2019 17:11:01 +0200 Subject: [PATCH] Fix #2567 --- app/Http/Controllers/BillController.php | 3 +++ app/Repositories/Bill/BillRepository.php | 8 ++++++++ app/Repositories/Bill/BillRepositoryInterface.php | 6 ++++++ resources/lang/en_US/firefly.php | 1 + resources/views/v1/bills/show.twig | 7 ++++++- 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/BillController.php b/app/Http/Controllers/BillController.php index ff6a517440..6ed962b87d 100644 --- a/app/Http/Controllers/BillController.php +++ b/app/Http/Controllers/BillController.php @@ -264,6 +264,9 @@ class BillController extends Controller return redirect(route('bills.show', [$bill->id])); } + // unlink all journals: + $this->billRepository->unlinkAll($bill); + foreach ($set as $rule) { // simply fire off all rules? /** @var TransactionMatcher $matcher */ diff --git a/app/Repositories/Bill/BillRepository.php b/app/Repositories/Bill/BillRepository.php index 137c219d57..848b6b41f0 100644 --- a/app/Repositories/Bill/BillRepository.php +++ b/app/Repositories/Bill/BillRepository.php @@ -686,4 +686,12 @@ class BillRepository implements BillRepositoryInterface return $service->update($bill, $data); } + + /** + * @param Bill $bill + */ + public function unlinkAll(Bill $bill): void + { + $this->user->transactionJournals()->where('bill_id', $bill->id)->update(['bill_id' => null]); + } } diff --git a/app/Repositories/Bill/BillRepositoryInterface.php b/app/Repositories/Bill/BillRepositoryInterface.php index 310c4addf5..7537fe05cd 100644 --- a/app/Repositories/Bill/BillRepositoryInterface.php +++ b/app/Repositories/Bill/BillRepositoryInterface.php @@ -33,6 +33,12 @@ use Illuminate\Support\Collection; */ interface BillRepositoryInterface { + + /** + * @param Bill $bill + */ + public function unlinkAll(Bill $bill): void; + /** * @param Bill $bill * diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 2c5605e20b..b65549a92f 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -723,6 +723,7 @@ return [ // bills: 'match_between_amounts' => 'Bill matches transactions between :low and :high.', + 'running_again_loss' => 'Previously linked transactions to this bill may lose their connection, if they (no longer) match the rule(s).', 'bill_related_rules' => 'Rules related to this bill', 'repeats' => 'Repeats', 'connected_journals' => 'Connected transactions', diff --git a/resources/views/v1/bills/show.twig b/resources/views/v1/bills/show.twig index 8b23eecbc7..a78f45ec38 100644 --- a/resources/views/v1/bills/show.twig +++ b/resources/views/v1/bills/show.twig @@ -88,7 +88,12 @@ {% endif %} {% if object.data.notes %}