From e3bb71d6ad2567eac081cd9c6c1e921820c81c7f Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 11 Mar 2016 11:42:09 +0000 Subject: [PATCH] [PASSED QA] Bug 16053: Do not remove the active flag when editing the active currency From commit b574b615919a6463708d4c1d7b1153a061c1ea0a Bug 15084: Make sure the previous active currency is marked as inactive When a currency is stored, all the active flags of all currencies are unset. Only the active ones and different than the one we are editing should be updated. Test plan: Edit the active currency => Without this patch the active flag was removed => With this patch, the active flag is kept Edit another currency and set it the active flag => The active flag must have been removed from the previously active currency. Signed-off-by: Owen Leonard Signed-off-by: Katrin Fischer --- Koha/Acquisition/Currency.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Koha/Acquisition/Currency.pm b/Koha/Acquisition/Currency.pm index 63c8693..42d3f19 100644 --- a/Koha/Acquisition/Currency.pm +++ b/Koha/Acquisition/Currency.pm @@ -42,7 +42,13 @@ sub store { my $result; $self->_result->result_source->schema->txn_do( sub { if ( $self->active ) { - my @currencies = Koha::Acquisition::Currencies->search; + # Remove the active flag from all other active currencies + my @currencies = Koha::Acquisition::Currencies->search( + { + currency => { '!=' => $self->currency }, + active => 1, + } + ); for my $currency ( @currencies ) { $currency->active(0); $currency->store; -- 1.9.1