Bug 9824: Followup for removing filter
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Fri, 17 May 2013 17:01:06 +0000 (19:01 +0200)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Sun, 19 May 2013 12:43:38 +0000 (08:43 -0400)
Adds allbaskets parameter to GetBasketsInfosByBookseller. (Only used in booksellers.pl now)
Normally, all 'active' baskets are shown. With allbaskets=1 all baskets :)
In the template I had to rename a loop var supplier to supplier1 to resolve
name conflict between template vars.
In the template I added the string: Cancel filter.
Note that this string is already translated:
msgid "Cancel filter"
msgstr ""
Hope this helps.

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Undoing the filter works and I checked that the string gets
translated with the po files in current master.
So this is almost perfect, only we can't apply the filters
again and the link remains 'cancel' when we already did.
Sending a follow-up trying to fix this.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
C4/Acquisition.pm
acqui/booksellers.pl
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/booksellers.tt

index 2bbb21c..a570a73 100644 (file)
@@ -578,7 +578,7 @@ Returns in a arrayref of hashref all about booksellers baskets, plus:
 =cut
 
 sub GetBasketsInfosByBookseller {
-    my ($supplierid) = @_;
+    my ($supplierid, $allbaskets) = @_;
 
     return unless $supplierid;
 
@@ -595,10 +595,12 @@ sub GetBasketsInfosByBookseller {
           ) AS expected_items
         FROM aqbasket
           LEFT JOIN aqorders ON aqorders.basketno = aqbasket.basketno
-        WHERE booksellerid = ? AND ( aqorders.quantity > aqorders.quantityreceived OR quantityreceived IS NULL)
-         AND datecancellationprinted IS NULL
-        GROUP BY aqbasket.basketno
-    };
+        WHERE booksellerid = ?};
+    if(!$allbaskets) {
+        $query.=" AND (closedate IS NULL OR (aqorders.quantity > aqorders.quantityreceived AND datecancellationprinted IS NULL))";
+    }
+    $query.=" GROUP BY aqbasket.basketno";
+
     my $sth = $dbh->prepare($query);
     $sth->execute($supplierid);
     return $sth->fetchall_arrayref({});
index f6c7b2e..118034b 100755 (executable)
@@ -75,6 +75,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
 #parameters
 my $supplier = $query->param('supplier');
 my $booksellerid = $query->param('booksellerid');
+my $allbaskets= $query->param('allbaskets')||0;
 my @suppliers;
 
 if ($booksellerid) {
@@ -106,7 +107,7 @@ my $userbranch = $userenv->{branch};
 my $loop_suppliers = [];
 
 for my $vendor (@suppliers) {
-    my $baskets = GetBasketsInfosByBookseller( $vendor->{id} );
+    my $baskets = GetBasketsInfosByBookseller( $vendor->{id}, $allbaskets );
 
     my $loop_basket = [];
 
index 9aaf34e..4064231 100644 (file)
@@ -56,12 +56,13 @@ $(document).ready(function() {
     [% UNLESS (count == 1) %]
         <p>Choose a vendor in the list to jump directly to the right place.
         <select id="supplierlist">
-            [% FOREACH supplier IN loop_suppliers %]
-                <option value="[% supplier.booksellerid %]">[% supplier.name %]</option>
+            [% FOREACH supplier1 IN loop_suppliers %]
+                <option value="[% supplier1.booksellerid %]">[% supplier1.name %]</option>
             [% END %]
         </select>
         </p>
     [% END %]
+    <p><a href="/cgi-bin/koha/acqui/booksellers.pl?supplier=[% supplier %]&booksellerid=[% booksellerid %]&allbaskets=1">Cancel filter</a></p>
     <div id="acqui_order_supplierlist">
         [% FOREACH supplier IN loop_suppliers %]
             <div class="supplier">