From d1b4178e391562647eef2477cd0cd70c32e61eb9 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 21 Sep 2018 15:10:15 +0100 Subject: [PATCH] Bug 21385: Correctly count all items in basket for booksellers list To reproduce: 1) Create a basket with 2 biblios, one with 2 items and one with 1 item 2) Search for vendors and note the basket above should contain 'Item count 3', 'Biblio count 2', 'Items expected 3' 3) Receive shipment, and only receive 1 of the items on the biblio with 2 items above. 4) Search for vendors and note that the 'Item count' for the basket above is now '2'. The item count for a closed basket should remain the same and should differ from the 'items expected' count some items have been recieved. Signed-off-by: Caroline Cyr La Rose Signed-off-by: Jonathan Druart Amended patch: FAIL C4/Acquisition.pm FAIL spelling RECIEVED ==> RECEIVED --- C4/Acquisition.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm index 384b598e43..6a15e2ccac 100644 --- a/C4/Acquisition.pm +++ b/C4/Acquisition.pm @@ -708,10 +708,12 @@ sub GetBasketsInfosByBookseller { LEFT JOIN aqorders ON aqorders.basketno = aqbasket.basketno WHERE booksellerid = ?}; + $query.=" GROUP BY aqbasket.basketno, aqbasket.basketname, aqbasket.note, aqbasket.booksellernote, aqbasket.contractnumber, aqbasket.creationdate, aqbasket.closedate, aqbasket.booksellerid, aqbasket.authorisedby, aqbasket.booksellerinvoicenumber, aqbasket.basketgroupid, aqbasket.deliveryplace, aqbasket.billingplace, aqbasket.branch, aqbasket.is_standing, aqbasket.create_items"; + unless ( $allbaskets ) { - $query.=" AND (closedate IS NULL OR (aqorders.quantity > aqorders.quantityreceived AND datecancellationprinted IS NULL))"; + # Don't show the basket if it's NOT CLOSED or is FULLY RECEIVED + $query.=" HAVING (closedate IS NULL OR (expected_items > 0))" } - $query.=" GROUP BY aqbasket.basketno, aqbasket.basketname, aqbasket.note, aqbasket.booksellernote, aqbasket.contractnumber, aqbasket.creationdate, aqbasket.closedate, aqbasket.booksellerid, aqbasket.authorisedby, aqbasket.booksellerinvoicenumber, aqbasket.basketgroupid, aqbasket.deliveryplace, aqbasket.billingplace, aqbasket.branch, aqbasket.is_standing, aqbasket.create_items"; my $sth = $dbh->prepare($query); $sth->execute($supplierid); -- 2.11.0