View | Details | Raw Unified | Return to bug 41620
Collapse All | Expand All

(-)a/catalogue/item-export.pl (-7 / +10 lines)
Lines 23-34 use CGI; Link Here
23
23
24
use C4::Auth qw( get_template_and_user );
24
use C4::Auth qw( get_template_and_user );
25
use C4::Output;
25
use C4::Output;
26
use Koha::CSV::ItemSearch;
27
use Koha::Items;
26
28
27
my $cgi = CGI->new;
29
my $cgi = CGI->new;
28
30
29
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
31
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
30
    {
32
    {
31
        template_name => 'catalogue/itemsearch_csv.tt',
33
        template_name => 'catalogue/itemsearch.tt',
32
        query         => $cgi,
34
        query         => $cgi,
33
        type          => 'intranet',
35
        type          => 'intranet',
34
        flagsrequired => { catalogue => 1 },
36
        flagsrequired => { catalogue => 1 },
Lines 54-69 if ( $format eq 'barcodes' ) { Link Here
54
    exit;
56
    exit;
55
}
57
}
56
58
57
$template->param(
59
# CSV export
58
    results => $items,
59
);
60
61
print $cgi->header(
60
print $cgi->header(
62
    {
61
    {
63
        type       => 'text/csv',
62
        type       => 'text/csv',
64
        attachment => 'items.csv',
63
        attachment => 'items.csv',
65
    }
64
    }
66
);
65
);
67
for my $line ( split '\n', $template->output ) {
66
68
    print "$line\n" unless $line =~ m|^\s*$|;
67
my $csv = Koha::CSV::ItemSearch->new();
68
$csv->print_headers(*STDOUT);
69
70
while ( my $item = $items->next ) {
71
    $csv->print_item( *STDOUT, $item );
69
}
72
}
(-)a/catalogue/itemsearch.pl (-3 / +13 lines)
Lines 85-92 if ( defined $format and $format eq 'json' ) { Link Here
85
    $cgi->param( 'op', @op );
85
    $cgi->param( 'op', @op );
86
    $cgi->param( 'c',  @c );
86
    $cgi->param( 'c',  @c );
87
} elsif ( defined $format and $format eq 'csv' ) {
87
} elsif ( defined $format and $format eq 'csv' ) {
88
    $template_name = 'catalogue/itemsearch_csv.tt';
89
88
89
    # CSV export will be handled directly, no template needed
90
    # Retrieve all results
90
    # Retrieve all results
91
    $cgi->param( 'rows', 0 );
91
    $cgi->param( 'rows', 0 );
92
} elsif ( defined $format and $format eq 'barcodes' ) {
92
} elsif ( defined $format and $format eq 'barcodes' ) {
Lines 304-309 if ( defined $format and $format ne 'shareable' ) { Link Here
304
    );
304
    );
305
305
306
    if ( $format eq 'csv' ) {
306
    if ( $format eq 'csv' ) {
307
        require Koha::CSV::ItemSearch;
308
        require Koha::Items;
309
307
        print $cgi->header(
310
        print $cgi->header(
308
            {
311
            {
309
                type       => 'text/csv',
312
                type       => 'text/csv',
Lines 311-318 if ( defined $format and $format ne 'shareable' ) { Link Here
311
            }
314
            }
312
        );
315
        );
313
316
314
        for my $line ( split '\n', $template->output ) {
317
        my $csv = Koha::CSV::ItemSearch->new();
315
            print "$line\n" unless $line =~ m|^\s*$|;
318
319
        # Print headers
320
        $csv->print_headers(*STDOUT);
321
322
        # Print each item
323
        foreach my $item_data (@$results) {
324
            my $item = Koha::Items->find( $item_data->{itemnumber} );
325
            $csv->print_item( *STDOUT, $item ) if $item;
316
        }
326
        }
317
    } elsif ( $format eq 'json' ) {
327
    } elsif ( $format eq 'json' ) {
318
        $template->param( draw => scalar $cgi->param('draw') );
328
        $template->param( draw => scalar $cgi->param('draw') );
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/catalogue/itemsearch_item.csv.inc (-11 lines)
Lines 1-11 Link Here
1
[%- USE raw -%]
2
[%- USE Branches -%]
3
[%- USE Koha -%]
4
[%- USE KohaDates -%]
5
[%- USE ItemTypes -%]
6
[%- USE AuthorisedValues -%]
7
[%- SET biblio = item.biblio -%]
8
[%- SET biblioitem = item.biblioitem -%]
9
[%- SET delimiter = Koha.CSVDelimiter() -%]
10
"[% biblio.title | replace('"', '""') | $raw %]
11
[% IF ( Koha.Preference( 'marcflavour' ) == 'UNIMARC' && biblio.author ) %]by[% END %][% biblio.author | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% (biblioitem.publicationyear || biblio.copyrightdate) | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% biblioitem.publishercode | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.ccode', authorised_value => item.ccode ) | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% item.barcode | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% item.itemnumber | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% item.enumchron | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% item.itemcallnumber | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% Branches.GetName(item.homebranch) | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% Branches.GetName(item.holdingbranch) | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% AuthorisedValues.GetDescriptionByKohaField(frameworkcode => biblio.frameworkcode, kohafield => 'items.location', authorised_value => item.location) | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% ItemTypes.GetDescription(item.itype) | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% item.stocknumber | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% AuthorisedValues.GetDescriptionByKohaField(frameworkcode => biblio.frameworkcode, kohafield => 'items.notforloan', authorised_value => item.notforloan) | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.itemlost', authorised_value => item.itemlost ) || "" | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.withdrawn', authorised_value => item.withdrawn ) || "" | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.damaged', authorised_value => item.damaged ) || "" | replace('"', '""') | $raw %]"[%- delimiter | $raw -%]"[% item.dateaccessioned | $KohaDates | $raw %]"[%- delimiter | $raw -%]"[% (item.issues || 0) | $raw %]"[%- delimiter | $raw -%]"[% item.datelastborrowed | $KohaDates | $raw %]"[%- delimiter | $raw -%]"[% IF item.checkout %][% item.checkout.date_due | $KohaDates | $raw %][% END %]"
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/csv_headers/catalogue/itemsearch.tt (-7 lines)
Lines 1-7 Link Here
1
[%- USE raw -%]
2
[%- USE Koha -%]
3
[%- PROCESS 'i18n.inc' -%]
4
[%- SET delimiter = Koha.CSVDelimiter() -%]
5
[%- BLOCK -%]
6
    "[% t("Title") | html %]"[%- delimiter | $raw -%]"[% t("Publication date") | html %]"[%- delimiter | $raw -%]"[% t("Publisher") | html %]"[%- delimiter | $raw -%]"[% t("Collection") | html %]"[%- delimiter | $raw -%]"[% t("Barcode") | html %]"[%- delimiter | $raw -%]"[% t("Item number") | html %]"[%- delimiter | $raw -%]"[% t("Serial enumeration") | html %]"[%- delimiter | $raw -%]"[% t("Call number") | html %]"[%- delimiter | $raw -%]"[% t("Home library") | html %]"[%- delimiter | $raw -%]"[% t("Current library") | html %]"[%- delimiter | $raw -%]"[% t("Shelving location") | html %]"[%- delimiter | $raw -%]"[% t("Item type") | html %]"[%- delimiter | $raw -%]"[% t("Inventory number") | html %]"[%- delimiter | $raw -%]"[% t("Not for loan status") | html %]"[%- delimiter | $raw -%]"[% t("Lost status") | html %]"[%- delimiter | $raw -%]"[% t("Withdrawn status") | html %]"[%- delimiter | $raw -%]"[% t("Damaged status") | html %]"[%- delimiter | $raw %]"[% t("Date accessioned") | html %]"[%- delimiter | $raw -%]"[% t("Checkouts") | html %]"[%- delimiter | $raw -%]"[% t("Last checkout date") | html %]"[%- delimiter | $raw -%]"[% t("Due date") | html %]"
7
[%- END -%]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/itemsearch_csv.tt (-7 lines)
Lines 1-6 Link Here
1
[%- INCLUDE csv_headers/catalogue/itemsearch.tt -%]
2
[%- INCLUDE empty_line.inc -%]
3
[%- FOREACH item IN results -%]
4
    [%- INCLUDE 'catalogue/itemsearch_item.csv.inc' item = item -%]
5
    [%- INCLUDE empty_line.inc -%]
6
[%- END -%]
7
- 

Return to bug 41620