From b3ab0a723a23cb59c241339fa122dae75689c7b0 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 Signed-off-by: Nick Clemens (cherry picked from commit 17db3ab05cb25d08f0790cff9eed5f0f75ca8107) Signed-off-by: Martin Renvoize --- C4/Acquisition.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm index a257017dc7..002c794ea6 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.39.5