Bug 7791: add ability to delete records when deleting a basket
Currently, when a basket is deleted, all the orders are deleted (there
is a foreign key in aqorders table on basketno).
This could be dangerous, and there is no warning.
After the deletion, unused biblios are left in the catalogue.
This patch
- adds a more detailed message describing the consequences of deletion
- give the choice of also deleting biblio records if possible
To test :
Test A :
1. create a basket with 4 orders:
- an order from a new record A
- an order from a record B which has already an item
- an order from a record C used in a subscription
- an order from a record D used in an other order
2. note the biblionumbers of the records used (or open them in other
tabs in your browser)
3. click on "Delete basket"
4. choose button "Delete basket and orders"
5. check the catalogue : records A,B,C,D should still be there
Test B:
1. create a basket with 4 orders:
- an order from a new record A
- an order from a record B which has already an item
- an order from a record C used in a subscription
- an order from a record D used in an other order
2. note the biblionumbers of the records used (or open them in other
tabs in your browser)
3. click on "Delete basket"
4. choose button "Delete basket, orders and records"
5. check the catalogue : records B,C,D should still be there. Record A
should be deleted
Signed-off-by: Cedric Vita <cedric.vita@dracenie.com>
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 09953f836d)
Signed-off-by: Fridolin SOMERS <fridolin.somers@biblibre.com>
This commit is contained in:
parent
d173c41a86
commit
7f0de3d0bb
|
|
@ -110,7 +110,27 @@ $template->param( skip_confirm_reopen => 1) if $confirm_pref eq '2';
|
|||
|
||||
if ( $op eq 'delete_confirm' ) {
|
||||
my $basketno = $query->param('basketno');
|
||||
DelBasket($basketno);
|
||||
my $delbiblio = $query->param('delbiblio');
|
||||
my @orders = GetOrders($basketno);
|
||||
#Delete all orders included in that basket, and all items received.
|
||||
foreach my $myorder (@orders){
|
||||
DelOrder($myorder->{biblionumber},$myorder->{ordernumber});
|
||||
warn "suppression de ".$myorder->{biblionumber}.' '.$myorder->{ordernumber};
|
||||
}
|
||||
# if $delbiblio = 1, delete the records if possible
|
||||
if ((defined $delbiblio)and ($delbiblio ==1)){
|
||||
foreach my $myorder (@orders){
|
||||
my $biblionumber = $myorder->{'biblionumber'};
|
||||
my $countbiblio = CountBiblioInOrders($biblionumber);
|
||||
my $ordernumber = $myorder->{'ordernumber'};
|
||||
my @subscriptions = GetSubscriptionsId ($biblionumber);
|
||||
my $itemcount = GetItemsCount($biblionumber);
|
||||
DelBiblio($myorder->{biblionumber}) if ($countbiblio == 0 && $itemcount == 0 && !(@subscriptions));
|
||||
warn "suppression de la notice ".$myorder->{biblionumber}};
|
||||
}
|
||||
|
||||
# delete the basket
|
||||
DelBasket($basketno,);
|
||||
$template->param( delete_confirmed => 1 );
|
||||
} elsif ( !$bookseller ) {
|
||||
$template->param( NO_BOOKSELLER => 1 );
|
||||
|
|
|
|||
|
|
@ -43,12 +43,11 @@
|
|||
window.location = "[% script_name %]?op=close&basketno=[% basketno %]";
|
||||
}
|
||||
}
|
||||
function confirm_deletion() {
|
||||
var is_confirmed = confirm(_("Are you sure you want to delete this basket?"));
|
||||
if (is_confirmed) {
|
||||
window.location = "[% script_name %]?op=delete_confirm&basketno=[% basketno %]&booksellerid=[% booksellerid %]";
|
||||
}
|
||||
|
||||
function delete_basket(basketno,booksellerid,delbiblio) {
|
||||
window.location = "[% script_name %]?op=delete_confirm&delbiblio="+delbiblio+"&basketno="+basketno+"&booksellerid="+booksellerid;
|
||||
}
|
||||
|
||||
function confirm_delete_item(ordernumber, biblionumber) {
|
||||
var is_confirmed = confirm(_("Are you sure you want to delete this order ?"));
|
||||
if (is_confirmed) {
|
||||
|
|
@ -113,10 +112,6 @@
|
|||
var cancelledorderst = $("#cancelledorderst").dataTable($.extend(true, {}, dataTablesDefaults, {
|
||||
"sPaginationType": "four_button"
|
||||
} ) );
|
||||
$("#delbasketbutton").on("click",function(e){
|
||||
e.preventDefault();
|
||||
confirm_deletion();
|
||||
});
|
||||
$("#reopenbutton").on("click",function(e){
|
||||
e.preventDefault();
|
||||
confirm_reopen();
|
||||
|
|
@ -185,8 +180,8 @@
|
|||
<div id="toolbar" class="btn-toolbar">
|
||||
<div class="btn-group"><a href="#addtoBasket" role="button" class="btn btn-small" data-toggle="modal"><i class="icon-plus"></i> Add to basket</a></div>
|
||||
<div class="btn-group"><a href="basketheader.pl?booksellerid=[% booksellerid %]&basketno=[% basketno %]&op=add_form" class="btn btn-small" id="basketheadbutton"><i class="icon-pencil"></i> Edit basket</a></div>
|
||||
<div class="btn-group"><a href="#" class="btn btn-small" id="delbasketbutton"><i class="icon-remove"></i> Delete this basket</a></div>
|
||||
[% IF ( unclosable ) %]
|
||||
<div class="btn-group"><a href="#deleteBasketModal" role="button" class="btn btn-small" data-toggle="modal" id="delbasketbutton"><i class="icon-remove"></i> Delete this basket</a></div>
|
||||
[% IF ( unclosable ) %]
|
||||
[% ELSIF ( uncertainprices ) %]
|
||||
<div class="btn-group"><a href="/cgi-bin/koha/acqui/uncertainprice.pl?booksellerid=[% booksellerid %]&owner=1" class="btn btn-small" id="uncertpricesbutton">Uncertain prices</a></div>
|
||||
[% ELSE %]
|
||||
|
|
@ -195,8 +190,27 @@
|
|||
</div>
|
||||
[% END %]
|
||||
<div class="btn-group"><a href="[% script_name %]?op=export&basketno=[% basketno %]&booksellerid=[% booksellerid %]" class="btn btn-small" id="exportbutton"><i class="icon-download"></i> Export this basket as CSV</a></div>
|
||||
|
||||
</div>
|
||||
<!-- Modal for confirm deletion box-->
|
||||
<div class="modal hide" id="deleteBasketModal" tabindex="-1" role="dialog" aria-labelledby="delbasketModalLabel" aria-hidden="true">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3>Confirm deletion</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Are you sure you want to delete this basket?</p>
|
||||
<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 at ordering or receipt stage, 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 any other order).</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 %],1); return false;">Delete basket, orders and records</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End of Modal-->
|
||||
[% ELSE %]
|
||||
[% UNLESS ( grouped ) %]
|
||||
<div id="toolbar" class="btn-toolbar">
|
||||
|
|
|
|||
Loading…
Reference in New Issue