Bug 11650: multiplicated authorities after link_bibs_to_authorities.pl
[koha_fer] / acqui / invoice.pl
index 1306363..6608947 100755 (executable)
@@ -35,6 +35,7 @@ use C4::Output;
 use C4::Acquisition;
 use C4::Bookseller qw/GetBookSellerFromId/;
 use C4::Budgets;
+use Koha::Misc::Files;
 
 my $input = new CGI;
 my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
@@ -51,6 +52,12 @@ my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
 my $invoiceid = $input->param('invoiceid');
 my $op        = $input->param('op');
 
+my $invoice_files;
+if ( C4::Context->preference('AcqEnableFiles') ) {
+    $invoice_files = Koha::Misc::Files->new(
+        tabletag => 'aqinvoices', recordid => $invoiceid );
+}
+
 if ( $op && $op eq 'close' ) {
     CloseInvoice($invoiceid);
     my $referer = $input->param('referer');
@@ -86,11 +93,13 @@ elsif ( $op && $op eq 'mod' ) {
     } elsif ($input->param('merge')) {
         my @sources = $input->param('merge');
         MergeInvoices($invoiceid, \@sources);
+        defined($invoice_files) && $invoice_files->MergeFileRecIds(@sources);
     }
     $template->param( modified => 1 );
 }
 elsif ( $op && $op eq 'delete' ) {
     DelInvoice($invoiceid);
+    defined($invoice_files) && $invoice_files->DelAllFiles();
     my $referer = $input->param('referer') || 'invoices.pl';
     if ($referer) {
         print $input->redirect($referer);
@@ -100,7 +109,7 @@ elsif ( $op && $op eq 'delete' ) {
 
 
 my $details = GetInvoiceDetails($invoiceid);
-my ($bookseller) = GetBookSellerFromId($details->{supplierid});
+my $bookseller = GetBookSellerFromId($details->{booksellerid});
 my @orders_loop = ();
 my $orders = $details->{'orders'};
 my $qty_total;
@@ -123,9 +132,8 @@ foreach my $order (@$orders) {
     $foot{$$line{gstgsti}}{totalgsti} += $$line{totalgsti};
     $total_gsti += $$line{totalgsti};
 
-    my %row = %{ $order, $line };
-    $row{'orderline'} = $row{'parent_ordernumber'};
-    push @orders_loop, \%row;
+    $line->{orderline} = $line->{parent_ordernumber};
+    push @orders_loop, $line;
 }
 
 push @foot_loop, map {$_} values %foot;
@@ -151,8 +159,8 @@ $template->param(
     suppliername     => $details->{'suppliername'},
     booksellerid     => $details->{'booksellerid'},
     datereceived     => $details->{'datereceived'},
-    billingdate      => C4::Dates->new($details->{'billingdate'}, "iso")->output(),
-    invoiceclosedate => $details->{'invoiceclosedate'},
+    billingdate      => $details->{'billingdate'},
+    invoiceclosedate => $details->{'closedate'},
     shipmentcost     => $details->{'shipmentcost'},
     orders_loop      => \@orders_loop,
     foot_loop        => \@foot_loop,
@@ -167,6 +175,8 @@ $template->param(
     budgets_loop     => \@budgets_loop,
 );
 
+defined( $invoice_files ) && $template->param( files => $invoice_files->GetFilesInfo() );
+
 # FIXME
 # Fonction dupplicated from basket.pl
 # Code must to be exported. Where ??