[Koha-patches] [PATCH] Bug 10869: Allow the deletion of order line if the record is deleted

Mathieu Saby mathieu.saby at univ-rennes2.fr
Sat Sep 14 12:45:34 CEST 2013


This patch fixes 2 issues :
(medium issue) It is not possible to delete an order in a basket if the biblio record is deleted.
(minor issue) There is a useless hyperlink around "Deleted bibliographic notice", and "notice" is a frenchism for "record"

I had to change the behavior of Acquisitions::DelOrder (which is used only by addorder.pl file), a line in addorder.pl, and a few lines in template basket.tt.

To test :
1. Fill a basket with some records (some records with items or holds, some without items)
2. Supress one of the record
3. In the basket (refresh the screen) check that "Deleted bibliographic notice" line was replaced with "Deleted bibliographic record", without hyperlink arround
4. Delete this order with the link "Delete order" to the right column of the table
5. Check there is a new line in the "Deleted orders" table
6. Check there is no regression : felete an other order (one with no item), then check you cannot delete an order with an item (like before patch)

---
  C4/Acquisition.pm                                  |   21 +++----
  acqui/addorder.pl                                  |    2 +-
  .../intranet-tmpl/prog/en/modules/acqui/basket.tt  |   58 +++++++++++---------
  3 files changed, 45 insertions(+), 36 deletions(-)

diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm
index 74aae85..82d03b0 100644
--- a/C4/Acquisition.pm
+++ b/C4/Acquisition.pm
@@ -1570,7 +1570,7 @@ sub SearchOrder {
  
  =head3 DelOrder
  
-  &DelOrder($biblionumber, $ordernumber);
+  &DelOrder($ordernumber, $biblionumber);
  
  Cancel the order with the given order and biblio numbers. It does not
  delete any entries in the aqorders table, it merely marks them as
@@ -1579,21 +1579,22 @@ cancelled.
  =cut
  
  sub DelOrder {
-    my ( $bibnum, $ordernumber ) = @_;
+    my ($ordernumber,$bibnum) = @_;
      my $dbh = C4::Context->dbh;
      my $query = "
          UPDATE aqorders
          SET    datecancellationprinted=now()
-        WHERE  biblionumber=? AND ordernumber=?
-    ";
+        WHERE  ordernumber=?
+    ";
      my $sth = $dbh->prepare($query);
-    $sth->execute( $bibnum, $ordernumber );
+    $sth->execute($ordernumber );
      $sth->finish;
-    my @itemnumbers = GetItemnumbersFromOrder( $ordernumber );
-    foreach my $itemnumber (@itemnumbers){
-    	C4::Items::DelItem( $dbh, $bibnum, $itemnumber );
-    }
-
+    if ($bibnum) {
+        my @itemnumbers = GetItemnumbersFromOrder( $ordernumber );
+        foreach my $itemnumber (@itemnumbers){
+    	   C4::Items::DelItem( $dbh, $bibnum, $itemnumber );
+        }
+    }
  }
  
  =head2 FUNCTIONS ABOUT PARCELS
diff --git a/acqui/addorder.pl b/acqui/addorder.pl
index 42324aa..ebbb96a 100755
--- a/acqui/addorder.pl
+++ b/acqui/addorder.pl
@@ -251,7 +251,7 @@ if ( $orderinfo->{quantity} ne '0' ) {
  
  else { # qty=0, delete the line
      my $biblionumber = $input->param('biblionumber');
-    DelOrder( $biblionumber, $$orderinfo{ordernumber} );
+    DelOrder($$orderinfo{ordernumber}, $biblionumber );
      if ($orderinfo->{delbiblio} == 1){
       DelBiblio($biblionumber);
      }
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 ccc97d5..d9f78fb 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt
@@ -330,8 +330,12 @@
                      [% IF ( books_loo.order_received ) %]<tr class="disabled">[% ELSE %][% IF ( books_loo.toggle ) %]<tr class="highlight">[% ELSE %]<tr>[% END %][% END %]
                          <td>
                              <p>[% IF ( books_loo.order_received ) %] (rcvd)[% END %]
-                                <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% books_loo.biblionumber %]">[% books_loo.title |html %]</a> by [% books_loo.author %]
-                                <br />
+                               [% IF (order.biblionumber) %]
+                                   <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% books_loo.biblionumber %]">[% books_loo.title |html %]</a> by [% books_loo.author %]
+                                   <br />
+                               [% ELSE %]
+                                   <em>Deleted bibliographic record, can't find title</em><br />
+                               [% END %]
                                  [% IF ( books_loo.isbn ) %] - [% books_loo.isbn %][% END %]
                                  [% IF ( books_loo.issn ) %] - [% books_loo.issn %][% END %]
                                  [% IF ( books_loo.publishercode ) %], [% books_loo.publishercode %][% END %]
@@ -365,27 +369,31 @@
                                  <a href="neworderempty.pl?ordernumber=[% books_loo.ordernumber %]&booksellerid=[% booksellerid %]&basketno=[% basketno %]">Modify</a>
                              </td>
                              <td>
-                            [% IF ( books_loo.left_holds_on_order ) %]
-                            <span class="button" title="Can't delete order, ([% books_loo.holds_on_order %]) holds are linked with this order cancel holds first">Can't delete order</span><br>
-                            [% ELSE %]
-                            <a href="javascript:confirm_delete_item([% books_loo.ordernumber %],[% books_loo.biblionumber %])" class="button">Delete order</a><br>
-                            [% END %]
-                            [% IF ( books_loo.can_del_bib ) %]
-                            <a href="javascript:confirm_delete_biblio([% books_loo.ordernumber %],[% books_loo.biblionumber %])" class="button">Delete order and catalog record</a><br>
-                            [% ELSE %]
-                            <span class="button" title="Can't delete catalog record, see constraints below">Can't delete order and catalog record</span><br>
-                            [% END %]
-                            [% IF ( books_loo.left_item ) %]
-                            <b title="Can't delete catalog record, because of [% books_loo.items %] existing hold(s)" >[% books_loo.items %] item(s) left</b><br>
-                            [% END %]
-                            [% IF ( books_loo.left_biblio ) %]
-                            <b title="Can't delete catalog record, delete other orders linked to it first">[% books_loo.biblios %] order(s) left</b><br>
-                            [% END %]
-                            [% IF ( books_loo.left_subscription ) %]
-                            <b title="Can't delete catalog record, delete subscriptions first">[% books_loo.subscriptions %] subscription(s) left</b><br>
-                            [% END %]
-                            [% IF ( books_loo.left_holds ) %]
-                            <b title="Can't delete catalog record or order, cancel holds first">[% books_loo.holds %] hold(s) left</b>
+                            [% UNLESS (books_loo.biblionumber) %]
+                                <a href="javascript:confirm_delete_item([% books_loo.ordernumber %])" class="button">Delete order</a><br>
+                            [% ELSE %]
+                                [% IF ( books_loo.left_holds_on_order ) %]
+                                <span class="button" title="Can't delete order, ([% books_loo.holds_on_order %]) holds are linked with this order cancel holds first">Can't delete order</span><br>
+                                [% ELSE %]
+                                <a href="javascript:confirm_delete_item([% books_loo.ordernumber %],[% books_loo.biblionumber %])" class="button">Delete order</a><br>
+                                [% END %]
+                                [% IF ( books_loo.can_del_bib ) %]
+                                <a href="javascript:confirm_delete_biblio([% books_loo.ordernumber %],[% books_loo.biblionumber %])" class="button">Delete order and catalog record</a><br>
+                                [% ELSE %]
+                                <span class="button" title="Can't delete catalog record, see constraints below">Can't delete order and catalog record</span><br>
+                                [% END %]
+                                [% IF ( books_loo.left_item ) %]
+                                <b title="Can't delete catalog record, because of [% books_loo.items %] existing hold(s)" >[% books_loo.items %] item(s) left</b><br>
+                                [% END %]
+                                [% IF ( books_loo.left_biblio ) %]
+                                <b title="Can't delete catalog record, delete other orders linked to it first">[% books_loo.biblios %] order(s) left</b><br>
+                                [% END %]
+                                [% IF ( books_loo.left_subscription ) %]
+                                <b title="Can't delete catalog record, delete subscriptions first">[% books_loo.subscriptions %] subscription(s) left</b><br>
+                                [% END %]
+                                [% IF ( books_loo.left_holds ) %]
+                                <b title="Can't delete catalog record or order, cancel holds first">[% books_loo.holds %] hold(s) left</b>
+                                [% END %]
                              [% END %]
                              </td>
                              [% END %]
@@ -423,8 +431,8 @@
                      <td>
                        <p>
                          [% IF ( order.order_received ) %] (rcvd)[% END %]
-                        [% IF (order.title) %]
-                          [% order.title |html %] by [% order.author %]<br />
+                        [% IF (order.biblionumber) %]
+                          [% order.title |html %] bddy [% order.author %]<br />
                          [% ELSE %]
                            <em>Deleted bibliographic record, can't find title</em><br />
                          [% END %]
-- 
1.7.9.5

-- 
Mathieu Saby
Service d'Informatique Documentaire
Service Commun de Documentation
Université Rennes 2
Téléphone : 02 99 14 12 65
Courriel : mathieu.saby at univ-rennes2.fr



More information about the Koha-patches mailing list