Bug 25033: Display both local and all pending suggestions counts if the numbers differ
[koha-ffzg.git] / acqui / ordered.pl
index c78ac66..8f09530 100755 (executable)
@@ -32,7 +32,8 @@ use Modern::Perl;
 use CGI qw ( -utf8 );
 use C4::Auth;
 use C4::Output;
-use Koha::InvoiceAdjustments;
+use Koha::Acquisition::Invoice::Adjustments;
+use C4::Acquisition;
 
 my $dbh     = C4::Context->dbh;
 my $input   = new CGI;
@@ -54,24 +55,32 @@ my $query = <<EOQ;
 SELECT
     aqorders.biblionumber, aqorders.basketno, aqorders.ordernumber,
     quantity-quantityreceived AS tleft,
-    ecost, budgetdate, entrydate,
+    ecost_tax_included, budgetdate, entrydate,
     aqbasket.booksellerid,
-    itype,
+    aqbooksellers.name as vendorname,
+    GROUP_CONCAT(DISTINCT itype SEPARATOR '|') AS itypes,
     title
-FROM (aqorders, aqbasket)
+FROM aqorders
+JOIN aqbasket USING (basketno)
 LEFT JOIN biblio ON
     biblio.biblionumber=aqorders.biblionumber
 LEFT JOIN aqorders_items ON
     aqorders.ordernumber=aqorders_items.ordernumber
 LEFT JOIN items ON
     items.itemnumber=aqorders_items.itemnumber
+LEFT JOIN aqbooksellers ON
+    aqbasket.booksellerid = aqbooksellers.id
 WHERE
-    aqorders.basketno=aqbasket.basketno AND
     budget_id=? AND
     (datecancellationprinted IS NULL OR
         datecancellationprinted='0000-00-00') AND
     (quantity > quantityreceived OR quantityreceived IS NULL)
-    GROUP BY aqorders.ordernumber
+    GROUP BY aqorders.biblionumber, aqorders.basketno, aqorders.ordernumber,
+             tleft,
+             ecost_tax_included, budgetdate, entrydate,
+             aqbasket.booksellerid,
+             aqbooksellers.name,
+             title
 EOQ
 
 my $sth = $dbh->prepare($query);
@@ -84,12 +93,13 @@ my @ordered;
 
 my $total = 0;
 while ( my $data = $sth->fetchrow_hashref ) {
+    $data->{'itemtypes'} = [split('\|', $data->{itypes})];
     my $left = $data->{'tleft'};
     if ( !$left || $left eq '' ) {
         $left = $data->{'quantity'};
     }
     if ( $left && $left > 0 ) {
-        my $subtotal = $left * $data->{'ecost'};
+        my $subtotal = $left * get_rounded_price( $data->{'ecost_tax_included'} );
         $data->{subtotal} = sprintf( "%.2f", $subtotal );
         $data->{'left'} = $left;
         push @ordered, $data;
@@ -97,7 +107,7 @@ while ( my $data = $sth->fetchrow_hashref ) {
     }
 }
 
-my $adjustments = Koha::InvoiceAdjustments->search({budget_id => $fund_id, closedate => undef, encumber_open => 1 }, { join => 'invoiceid' } );
+my $adjustments = Koha::Acquisition::Invoice::Adjustments->search({budget_id => $fund_id, closedate => undef, encumber_open => 1 }, { prefetch => 'invoiceid' } );
 while ( my $adj = $adjustments->next ){
     $total += $adj->adjustment;
 }