Bug 3638 Self Check Should Capture Hold Items
[koha.git] / acqui / basket.pl
index b559732..de66891 100755 (executable)
@@ -29,11 +29,13 @@ use CGI;
 use C4::Acquisition;
 use C4::Budgets;
 use C4::Bookseller qw( GetBookSellerFromId);
-use C4::Dates qw/format_date/;
 use C4::Debug;
 use C4::Biblio;
 use C4::Members qw/GetMember/;  #needed for permissions checking for changing basketgroup of a basket
 use C4::Items;
+use C4::Suggestions;
+use Date::Calc qw/Add_Delta_Days/;
+
 =head1 NAME
 
 basket.pl
@@ -52,7 +54,7 @@ basket.pl
 
 The basket number.
 
-=item supplierid
+=item booksellerid
 
 the supplier this script have to display the basket.
 
@@ -64,7 +66,7 @@ the supplier this script have to display the basket.
 
 my $query        = new CGI;
 my $basketno     = $query->param('basketno');
-my $booksellerid = $query->param('supplierid');
+my $booksellerid = $query->param('booksellerid');
 
 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     {
@@ -80,7 +82,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
 my $basket = GetBasket($basketno);
 
 # FIXME : what about the "discount" percentage?
-# FIXME : the query->param('supplierid') below is probably useless. The bookseller is always known from the basket
+# FIXME : the query->param('booksellerid') below is probably useless. The bookseller is always known from the basket
 # if no booksellerid in parameter, get it from basket
 # warn "=>".$basket->{booksellerid};
 $booksellerid = $basket->{booksellerid} unless $booksellerid;
@@ -124,10 +126,10 @@ if ( $op eq 'delete_confirm' ) {
         basketbooksellernote => $basket->{booksellernote},
         basketcontractno     => $basket->{contractnumber},
         basketcontractname   => $contract->{contractname},
-        creationdate         => format_date( $basket->{creationdate} ),
+        creationdate         => $basket->{creationdate},
         authorisedby         => $basket->{authorisedby},
         authorisedbyname     => $basket->{authorisedbyname},
-        closedate            => format_date( $basket->{closedate} ),
+        closedate            => $basket->{closedate},
         active               => $bookseller->{'active'},
         booksellerid         => $bookseller->{'id'},
         name                 => $bookseller->{'name'},
@@ -162,7 +164,7 @@ if ( $op eq 'delete_confirm' ) {
                          basketgroupid => $basketgroupid } );
             print $query->redirect('/cgi-bin/koha/acqui/basketgroup.pl?booksellerid='.$booksellerid.'&closed=1');
         } else {
-            print $query->redirect('/cgi-bin/koha/acqui/booksellers.pl?supplierid=' . $booksellerid);
+            print $query->redirect('/cgi-bin/koha/acqui/booksellers.pl?booksellerid=' . $booksellerid);
         }
         exit;
     } else {
@@ -212,6 +214,15 @@ if ( $op eq 'delete_confirm' ) {
         }
         unshift( @$basketgroups, \%emptygroup );
     }
+
+    # if the basket is closed, calculate estimated delivery date
+    my $estimateddeliverydate;
+    if( $basket->{closedate} ) {
+        my ($year, $month, $day) = ($basket->{closedate} =~ /(\d+)-(\d+)-(\d+)/);
+        ($year, $month, $day) = Add_Delta_Days($year, $month, $day, $bookseller->{deliverytime});
+        $estimateddeliverydate = "$year-$month-$day";
+    }
+
     # if new basket, pre-fill infos
     $basket->{creationdate} = ""            unless ( $basket->{creationdate} );
     $basket->{authorisedby} = $loggedinuser unless ( $basket->{authorisedby} );
@@ -237,6 +248,7 @@ if ( $op eq 'delete_confirm' ) {
 
     my $qty_total;
     my @books_loop;
+    my $suggestion;
 
     for my $order ( @results ) {
         my $rrp = $order->{'listprice'} || 0;
@@ -303,6 +315,12 @@ if ( $op eq 'delete_confirm' ) {
        } else {
            $line{'title'} = "Deleted bibliographic notice, can't find title.";
        }
+
+        $suggestion = GetSuggestionInfoFromBiblionumber($line{biblionumber});
+        $line{suggestionid}         = $suggestion->{suggestionid};
+        $line{surnamesuggestedby}   = $suggestion->{surnamesuggestedby};
+        $line{firstnamesuggestedby} = $suggestion->{firstnamesuggestedby};
+
         push @books_loop, \%line;
     }
 
@@ -355,14 +373,14 @@ my $total_est_gste;
         basketbooksellernote => $basket->{booksellernote},
         basketcontractno     => $basket->{contractnumber},
         basketcontractname   => $contract->{contractname},
-        creationdate         => C4::Dates->new($basket->{creationdate},'iso')->output,
+        creationdate         => $basket->{creationdate},
         authorisedby         => $basket->{authorisedby},
         authorisedbyname     => $basket->{authorisedbyname},
-        closedate            => C4::Dates->new($basket->{closedate},'iso')->output,
+        closedate            => $basket->{closedate},
+        estimateddeliverydate=> $estimateddeliverydate,
         active               => $bookseller->{'active'},
         booksellerid         => $bookseller->{'id'},
         name                 => $bookseller->{'name'},
-        entrydate            => C4::Dates->new($results[0]->{'entrydate'},'iso')->output,
         books_loop           => \@books_loop,
         cancelledorders_loop => \@cancelledorders,
         gist_rate            => sprintf( "%.2f", $gist * 100 ) . '%',