From 81b6ea079e20bcf7e38ff2dea3f6539fd7b025be Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 20 Nov 2020 15:33:14 +0100 Subject: [PATCH] Bug 27045: Fix other exports using CSV profiles This patch corrects the export of the 2 other reports using CSV profiles: * Late issues (serials) * Basket (acquisitions) To test: 1) Late issues * Update the late issues sample report to use tab as separator * Create a subscription * Go to serial collection and 'generate next' to get some late issues * Go to Claims * Export the late issues and verify format is correct * Verify exported file has tabs 2) Basket summary * Create an order with several order lines * Create an SQL type CSV profile for basket export using tab as separator Example: aqorders.quantity|aqordres.listprice|Title=biblio.title * Export the basket using your configured CSV profile * Verify exported file has tabs Signed-off-by: Katrin Fischer --- C4/Acquisition.pm | 4 +++- serials/lateissues-export.pl | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm index 76b6e647c6..830436bcaa 100644 --- a/C4/Acquisition.pm +++ b/C4/Acquisition.pm @@ -276,7 +276,9 @@ sub GetBasketAsCSV { my $csv_profile = Koha::CsvProfiles->find( $csv_profile_id ); Koha::Exceptions::ObjectNotFound->throw( 'There is no valid csv profile given') unless $csv_profile; - my $csv = Text::CSV_XS->new({'quote_char'=>'"','escape_char'=>'"','sep_char'=>$csv_profile->csv_separator,'binary'=>1}); + my $delimiter = $csv_profile->csv_separator; + $delimiter = "\t" if $delimiter eq "\\t"; + my $csv = Text::CSV_XS->new({'quote_char'=>'"','escape_char'=>'"','sep_char'=>$delimiter,'binary'=>1}); my $csv_profile_content = $csv_profile->content; my ( @headers, @fields ); while ( $csv_profile_content =~ / diff --git a/serials/lateissues-export.pl b/serials/lateissues-export.pl index f20cdbe02c..de09d4c58a 100755 --- a/serials/lateissues-export.pl +++ b/serials/lateissues-export.pl @@ -35,10 +35,13 @@ my $csv_profile_id = $query->param('csv_profile'); my $csv_profile = Koha::CsvProfiles->find( $csv_profile_id ); die "There is no valid csv profile given" unless $csv_profile; +my $delimiter = $csv_profile->csv_separator; +$delimiter = "\t" if $delimiter eq "\\t"; + my $csv = Text::CSV_XS->new({ 'quote_char' => '"', 'escape_char' => '"', - 'sep_char' => $csv_profile->csv_separator, + 'sep_char' => $delimiter, 'binary' => 1 }); -- 2.30.2