Bug 15962: Block the currency deletion if used

A currency should not be deleted if used by a vendor or a basket.

Test plan:
1/ Add a new currency
2/ Create a vendor using this currency
3/ Create a basket using this currency
4/ Try to delete the currency
5/ Delete the basket
6/ Try to delete the currency
7/ Delete the vendor
8/ Delete the currency

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
This commit is contained in:
Jonathan Druart 2016-03-08 10:46:46 +00:00 committed by Brendan Gallagher
parent 5896770e07
commit fdac3eecf8
3 changed files with 12 additions and 4 deletions

View file

@ -31,8 +31,6 @@ sub fetch {
sub search {
my ( $class, $params ) = @_;
croak "Cannot search on other fields than aqbooksellers.name" if $params and grep { $_ !~ /^name$/ } keys %$params;
my $schema = Koha::Database->new->schema;
my $search_params;

View file

@ -25,6 +25,7 @@ use C4::Auth;
use C4::Context;
use C4::Output;
use Koha::Acquisition::Bookseller;
use Koha::Acquisition::Currency;
use Koha::Acquisition::Currencies;
@ -94,9 +95,11 @@ if ( $op eq 'add_form' ) {
# TODO rewrite the following when Koha::Acquisition::Orders will use Koha::Objects
my $schema = Koha::Database->schema;
my $nb_of_orders = $schema->resultset('Aqorder')->search( { currency => $currency->currency } )->count;
my $nb_of_vendors = Koha::Acquisition::Bookseller->search( { -or => { listprice => $currency->currency, invoiceprice => $currency->currency } });
$template->param(
currency => $currency,
nb_of_orders => $nb_of_orders,
nb_of_vendors => $nb_of_vendors,
);
} elsif ( $op eq 'delete_confirmed' ) {
my $currency = Koha::Acquisition::Currencies->find($currency_code);

View file

@ -147,10 +147,17 @@
[% END %]
[% IF op =='delete_confirm' %]
[% IF nb_of_orders %]
[% IF nb_of_orders or nb_of_vendors %]
<div class="dialog alert">
<h3>Cannot delete currency <span class="ex">'[% currency.currency %]'</span></h3>
<p>This currency is used by [% nb_of_orders %] orders. Deletion not possible</p>
<p>
[% IF nb_of_orders %]
This currency is used by [% nb_of_orders %] orders.
[% ELSIF nb_of_vendors %]
This currency is used by [% nb_of_vendors %] vendors.
[% END %]
Deletion not possible
</p>
<form action="/cgi-bin/koha/admin/currency.pl" method="post">
<button type="submit" class="approve"><i class="fa fa-fw fa-check"></i> OK</button>
</form>