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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/import_borrowers.tt (+9 lines)
Lines 37-42 Link Here
37
<h5>Import results :</h5>
37
<h5>Import results :</h5>
38
<ul>
38
<ul>
39
	<li>[% imported %] imported records [% IF ( lastimported ) %](last was [% lastimported %])[% END %]</li>
39
	<li>[% imported %] imported records [% IF ( lastimported ) %](last was [% lastimported %])[% END %]</li>
40
        [% IF imported and patronlistname %]
41
            <li>Patronlist with imported patrons: [% patronlistname %]</li>
42
        [% END %]
40
	<li>[% overwritten %] overwritten [% IF ( lastoverwritten ) %](last was [% lastoverwritten %])[% END %]</li>
43
	<li>[% overwritten %] overwritten [% IF ( lastoverwritten ) %](last was [% lastoverwritten %])[% END %]</li>
41
	<li>[% alreadyindb %] not imported because already in borrowers table and overwrite disabled [% IF ( lastalreadyindb ) %](last was [% lastalreadyindb %])[% END %]</li>
44
	<li>[% alreadyindb %] not imported because already in borrowers table and overwrite disabled [% IF ( lastalreadyindb ) %](last was [% lastalreadyindb %])[% END %]</li>
42
	<li>[% invalid %] not imported because they are not in the expected format [% IF ( lastinvalid ) %](last was [% lastinvalid %])[% END %]</li>
45
	<li>[% invalid %] not imported because they are not in the expected format [% IF ( lastinvalid ) %](last was [% lastinvalid %])[% END %]</li>
Lines 113-118 Link Here
113
		<label for="uploadborrowers">Select the file to import: </label>
116
		<label for="uploadborrowers">Select the file to import: </label>
114
		<input type="file" id="uploadborrowers" name="uploadborrowers" />
117
		<input type="file" id="uploadborrowers" name="uploadborrowers" />
115
	</li>
118
	</li>
119
        <li>
120
            <label for "createpatronlist">Create patron list: </label>
121
            <input name="createpatronlist" id="createpatronlist" value="1" type="checkbox">
122
            <span class="hint">List name will be file name with timestamp</span>
123
        </li>
124
116
</ol></fieldset>
125
</ol></fieldset>
117
    <fieldset class="rows">
126
    <fieldset class="rows">
118
        <legend>Field to use for record matching</legend>
127
        <legend>Field to use for record matching</legend>
(-)a/tools/import_borrowers.pl (-1 / +23 lines)
Lines 52-57 use Koha::DateUtils; Link Here
52
use Koha::Token;
52
use Koha::Token;
53
use Koha::Libraries;
53
use Koha::Libraries;
54
use Koha::Patron::Categories;
54
use Koha::Patron::Categories;
55
use Koha::List::Patron;
55
56
56
use Text::CSV;
57
use Text::CSV;
57
# Text::CSV::Unicode, even in binary mode, fails to parse lines with these diacriticals:
58
# Text::CSV::Unicode, even in binary mode, fails to parse lines with these diacriticals:
Lines 105-110 if ($matchpoint) { Link Here
105
}
106
}
106
my $overwrite_cardnumber = $input->param('overwrite_cardnumber');
107
my $overwrite_cardnumber = $input->param('overwrite_cardnumber');
107
108
109
#create a patronlist
110
my $createpatronlist = $input->param('createpatronlist') || 0;
111
my $dt = dt_from_string();
112
my $timestamp = $dt->ymd('-').' '.$dt->hms(':');
113
my $patronlistname = $uploadborrowers . ' (' . $timestamp .')';
114
108
$template->param( SCRIPT_NAME => '/cgi-bin/koha/tools/import_borrowers.pl' );
115
$template->param( SCRIPT_NAME => '/cgi-bin/koha/tools/import_borrowers.pl' );
109
116
110
if ( $uploadborrowers && length($uploadborrowers) > 0 ) {
117
if ( $uploadborrowers && length($uploadborrowers) > 0 ) {
Lines 114-126 if ( $uploadborrowers && length($uploadborrowers) > 0 ) { Link Here
114
            token  => scalar $input->param('csrf_token'),
121
            token  => scalar $input->param('csrf_token'),
115
        });
122
        });
116
123
124
    #create a patronlist
125
    my $createpatronlist = $input->param('createpatronlist');
126
    my $dt = dt_from_string();
127
    my $timestamp = $dt->ymd('-').' '.$dt->hms(':');
128
    my $patronlistname = $uploadborrowers. ' (' . $timestamp .')';
129
117
    push @feedback, {feedback=>1, name=>'filename', value=>$uploadborrowers, filename=>$uploadborrowers};
130
    push @feedback, {feedback=>1, name=>'filename', value=>$uploadborrowers, filename=>$uploadborrowers};
118
    my $handle = $input->upload('uploadborrowers');
131
    my $handle = $input->upload('uploadborrowers');
119
    my $uploadinfo = $input->uploadInfo($uploadborrowers);
132
    my $uploadinfo = $input->uploadInfo($uploadborrowers);
120
    foreach (keys %$uploadinfo) {
133
    foreach (keys %$uploadinfo) {
121
        push @feedback, {feedback=>1, name=>$_, value=>$uploadinfo->{$_}, $_=>$uploadinfo->{$_}};
134
        push @feedback, {feedback=>1, name=>$_, value=>$uploadinfo->{$_}, $_=>$uploadinfo->{$_}};
122
    }
135
    }
136
123
    my $imported    = 0;
137
    my $imported    = 0;
138
    my @imported_borrowers;
124
    my $alreadyindb = 0;
139
    my $alreadyindb = 0;
125
    my $overwritten = 0;
140
    my $overwritten = 0;
126
    my $invalid     = 0;
141
    my $invalid     = 0;
Lines 356-361 if ( $uploadborrowers && length($uploadborrowers) > 0 ) { Link Here
356
371
357
                $imported++;
372
                $imported++;
358
                $template->param('lastimported'=>$borrower{'surname'}.' / '.$borrowernumber);
373
                $template->param('lastimported'=>$borrower{'surname'}.' / '.$borrowernumber);
374
                push @imported_borrowers, $borrowernumber; #for patronlist
359
            } else {
375
            } else {
360
                $invalid++;
376
                $invalid++;
361
                push @errors, {unknown_error => 1};
377
                push @errors, {unknown_error => 1};
Lines 363-368 if ( $uploadborrowers && length($uploadborrowers) > 0 ) { Link Here
363
            }
379
            }
364
        }
380
        }
365
    }
381
    }
382
383
    if ( $imported && $createpatronlist ) {
384
        my $patronlist = AddPatronList({ name => $patronlistname });
385
        AddPatronsToList({ list => $patronlist, borrowernumbers => \@imported_borrowers });
386
        $template->param('patronlistname' => $patronlistname);
387
    }
388
366
    (@errors  ) and $template->param(  ERRORS=>\@errors  );
389
    (@errors  ) and $template->param(  ERRORS=>\@errors  );
367
    (@feedback) and $template->param(FEEDBACK=>\@feedback);
390
    (@feedback) and $template->param(FEEDBACK=>\@feedback);
368
    $template->param(
391
    $template->param(
369
- 

Return to bug 18555