Bug 14172: Acq: Orders without items missing from 'spent' list
authorKatrin Fischer <katrin.fischer@bsz-bw.de>
Fri, 15 May 2015 10:19:16 +0000 (12:19 +0200)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Mon, 18 May 2015 13:28:17 +0000 (10:28 -0300)
If the item for an order had been deleted since or there was never
an item created for the order (subscription orders) those records
where missing from the "Spent" page in acquisitions.

Patch corrects the SQL to list the correct records.

To test:
- Create different orders for one fund and receive them
  - normal order with a few items
  - subscription order (no item)
  - normal order with an item, delete the item after receiving
  - include some freight cost in one of the invoices
- Compare the amount spent shown on the acq start page
  with the amount shown at the end of the 'spent' page
- Without the patch, the amounts don't match and not all
  received titles are listed
- With the patch, amounts should match and list shoudl be complete

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
acqui/spent.pl

index 1aaedf2..4d60029 100755 (executable)
@@ -69,18 +69,18 @@ SELECT
 FROM (aqorders, aqbasket)
 LEFT JOIN biblio ON
     biblio.biblionumber=aqorders.biblionumber
-LEFT JOIN items ON
-    biblio.biblionumber = items.biblionumber
 LEFT JOIN aqorders_items ON
-     items.itemnumber = aqorders_items.itemnumber
+    aqorders.ordernumber = aqorders_items.ordernumber
+LEFT JOIN items ON
+    aqorders_items.itemnumber = items.itemnumber
 LEFT JOIN aqinvoices ON
     aqorders.invoiceid = aqinvoices.invoiceid
 WHERE
-    aqorders.ordernumber=aqorders_items.ordernumber AND
     aqorders.basketno=aqbasket.basketno AND
     budget_id=? AND
     (datecancellationprinted IS NULL OR
-        datecancellationprinted='0000-00-00')
+        datecancellationprinted='0000-00-00') AND
+    datereceived IS NOT NULL
     GROUP BY aqorders.ordernumber
 EOQ
 my $sth = $dbh->prepare($query);