Bug 7791: (follow-up) add warning after deletion if some records were not deleted

This followup add some warnings after deletion if some items were not
deleted.

4 types of messages are possible :
- x item(s) attached.
- x subscription(s) attached.
- x order(s) attached.
- Unknown error.

To test :
test a
1. create a basket with
- an order using a record A which has already an item, which is used in
   a subscription, and in other order (in an other basket)
- an order using a record B used nowhere elese
2. click on "Delete basket"
3. choose button "Delete basket, orders and records"
4. you should see a page anouncing basket deletion, and that record A was
   not deleted because of its item, subscription and order.
5. check the link around the title of record B takes you to the record
6. check the link under the warning box ("Click here to go back to
   booksellers page") takes you to booksellers page
5. check record B is deleted

test b
1. suppress the subscription linked with record A
2. create an other basket using record A
3. delete the basket on the same way as for test a
4. you should see a page anouncing basket deletion, and that record A was
   not deleted because of its item and order

test c
1. suppress the item attached under record A
2. create an other basket using record A
3. delete the basket on the same way as for test a
4. you should see a page anouncing basket deletion, and that record A
   was not deleted because of its orderBug 7791 Followup: add warning
    after deletion if some records were not deleted

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit de2bfb6799)
Signed-off-by: Fridolin SOMERS <fridolin.somers@biblibre.com>
This commit is contained in:
Mathieu Saby 2013-10-18 11:44:39 +02:00 committed by Fridolin SOMERS
parent 0085c124c1
commit a158c041c0
2 changed files with 42 additions and 4 deletions

View File

@ -118,14 +118,32 @@ if ( $op eq 'delete_confirm' ) {
}
# if $delbiblio = 1, delete the records if possible
if ((defined $delbiblio)and ($delbiblio ==1)){
my @cannotdelbiblios ;
foreach my $myorder (@orders){
my $biblionumber = $myorder->{'biblionumber'};
my $countbiblio = CountBiblioInOrders($biblionumber);
my $ordernumber = $myorder->{'ordernumber'};
my @subscriptions = GetSubscriptionsId ($biblionumber);
my $subscriptions = scalar GetSubscriptionsId ($biblionumber);
my $itemcount = GetItemsCount($biblionumber);
DelBiblio($myorder->{biblionumber}) if ($countbiblio == 0 && $itemcount == 0 && !(@subscriptions));
my $error;
if ($countbiblio == 0 && $itemcount == 0 && $subscriptions == 0) {
$error = DelBiblio($myorder->{biblionumber}) }
else {
push @cannotdelbiblios, {biblionumber=> ($myorder->{biblionumber}),
title=> $myorder->{'title'},
author=> $myorder->{'author'},
countbiblio=> $countbiblio,
itemcount=>$itemcount,
subscriptions=>$subscriptions};
}
if ($error) {
push @cannotdelbiblios, {biblionumber=> ($myorder->{biblionumber}),
title=> $myorder->{'title'},
author=> $myorder->{'author'},
othererror=> $error};
}
}
$template->param( cannotdelbiblios => \@cannotdelbiblios );
}
# delete the basket
DelBasket($basketno,);

View File

@ -211,11 +211,11 @@
<p>Warning:</p>
<p>All orders of this basket will be cancelled and used funds will be refunded.</p>
<p>If items have been created when ordering or receiving, they will be deleted.</p>
<p>You can choose to delete records if possible (if they don't have any item attached, any subscription and are not used in any other order).</p>
<p>You can choose to delete records if possible (records with some items, used in a subscription, or an other order will not be deleted).</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-default" onclick="delete_basket([% basketno %],[% booksellerid %],0); return false;" >Delete basket and orders</button>
<button type="submit" class="btn btn-default" onclick="delete_basket([% basketno %],[% booksellerid %],0); return false;">Delete basket and orders</button>
<button type="submit" class="btn btn-default" onclick="delete_basket([% basketno %],[% booksellerid %],1); return false;">Delete basket, orders and records</button>
</div>
[% END %]
@ -236,7 +236,27 @@
[% ELSE %]
[% IF ( delete_confirmed ) %]
<h3>Basket deleted</h3>
[% IF (cannotdelbiblios) %]
<div class="dialog alert">
<p><strong>Warning:</strong></p>
<p><strong>The following records could not be deleted:</strong></p>
<ul>
[% FOREACH cannotdelbiblio IN cannotdelbiblios %]
<li><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% cannotdelbiblio.biblionumber %]">[% cannotdelbiblio.title |html %]</a> by [% cannotdelbiblio.author %]:
<ul>
[% IF (cannotdelbiblio.itemcount) %]<li>[% cannotdelbiblio.itemcount %] item(s) attached.</li>[% END %]
[% IF (cannotdelbiblio.subscriptions) %]<li>[% cannotdelbiblio.subscriptions %] subscription(s) attached.</li>[% END %]
[% IF (cannotdelbiblio.countbiblio) %]<li>[% cannotdelbiblio.countbiblio %] order(s) attached.</li>[% END %]
[% IF (cannotdelbiblio.othererror) %]<li>Unknown error.</li>[% END %]
</ul>
</li>
[% END %]
</ul>
</div>
<a href="booksellers.pl">Click here to go back to booksellers page</a>
[% ELSE %]
<META HTTP-EQUIV=Refresh CONTENT="0; url=booksellers.pl">
[% END %]
[% ELSE %]
<h1>[% UNLESS ( basketno ) %]New [% END %][% IF ( delete_confirm ) %]Delete [% END %]Basket [% basketname|html %] ([% basketno %]) for <a href="supplier.pl?booksellerid=[% booksellerid %]">[% name|html %]</a></h1>
[% IF ( delete_confirm ) %]