Bugzilla – Attachment 22091 Details for
Bug 7791
Deleting basket should not delete all existing orders without warning
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 7791 : Give the ability to delete records when deleting a basket
Bug-7791--Give-the-ability-to-delete-records-when-.patch (text/plain), 8.18 KB, created by
Chris Cormack
on 2013-10-20 18:26:44 UTC
(
hide
)
Description:
Bug 7791 : Give the ability to delete records when deleting a basket
Filename:
MIME Type:
Creator:
Chris Cormack
Created:
2013-10-20 18:26:44 UTC
Size:
8.18 KB
patch
obsolete
>From bfcd508d88636899a97b15b9451d0cbd14f52718 Mon Sep 17 00:00:00 2001 >From: Mathieu Saby <mathieu.saby@univ-rennes2.fr> >Date: Thu, 19 Sep 2013 09:59:31 +0200 >Subject: [PATCH] Bug 7791 : Give the 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 warn. >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 yout browser) >3. click on "Delete basket" >4. choose button "Delete basket and orders" >5. check the catalogue : records A,B,C,D must 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 yout browser) >3. click on "Delete basket" >4. choose button "Delete basket, orders and records" >5. check the catalogue : records B,C,D must still be there. Record A must be deleted > >Signed-off-by: Cedric Vita <cedric.vita@dracenie.com> >Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> >--- > acqui/basket.pl | 22 ++++++++++++- > .../intranet-tmpl/prog/en/modules/acqui/basket.tt | 38 +++++++++++++++------- > 2 files changed, 47 insertions(+), 13 deletions(-) > >diff --git a/acqui/basket.pl b/acqui/basket.pl >index 681cd60..6385b21 100755 >--- a/acqui/basket.pl >+++ b/acqui/basket.pl >@@ -97,7 +97,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 ); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt >index 67e299d..091e881 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt >@@ -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(); >@@ -147,8 +142,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 %] >@@ -157,8 +152,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"> >-- >1.8.4.rc3
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 7791
:
21224
|
21225
|
21245
|
21246
|
21684
|
21969
|
22046
|
22091
|
22092
|
22093
|
22764
|
22765
|
22766