|
Lines 48-59
use C4::Members::AttributeTypes;
Link Here
|
| 48 |
use C4::Members::Messaging; |
48 |
use C4::Members::Messaging; |
| 49 |
|
49 |
|
| 50 |
use Text::CSV; |
50 |
use Text::CSV; |
| 51 |
# Text::CSV::Unicode, even in binary mode, fails to parse lines with these diacriticals: |
51 |
use utf8; |
| 52 |
# ė |
|
|
| 53 |
# č |
| 54 |
|
52 |
|
| 55 |
use CGI; |
53 |
use CGI; |
| 56 |
# use encoding 'utf8'; # don't do this |
|
|
| 57 |
|
54 |
|
| 58 |
my (@errors, @feedback); |
55 |
my (@errors, @feedback); |
| 59 |
my $extended = C4::Context->preference('ExtendedPatronAttributes'); |
56 |
my $extended = C4::Context->preference('ExtendedPatronAttributes'); |
|
Lines 115-120
if ( $uploadborrowers && length($uploadborrowers) > 0 ) {
Link Here
|
| 115 |
|
112 |
|
| 116 |
# use header line to construct key to column map |
113 |
# use header line to construct key to column map |
| 117 |
my $borrowerline = <$handle>; |
114 |
my $borrowerline = <$handle>; |
|
|
115 |
utf8::decode($borrowerline); |
| 118 |
my $status = $csv->parse($borrowerline); |
116 |
my $status = $csv->parse($borrowerline); |
| 119 |
($status) or push @errors, {badheader=>1,line=>$., lineraw=>$borrowerline}; |
117 |
($status) or push @errors, {badheader=>1,line=>$., lineraw=>$borrowerline}; |
| 120 |
my @csvcolumns = $csv->fields(); |
118 |
my @csvcolumns = $csv->fields(); |
|
Lines 138-143
if ( $uploadborrowers && length($uploadborrowers) > 0 ) {
Link Here
|
| 138 |
my $date_re = C4::Dates->new->regexp('syspref'); |
136 |
my $date_re = C4::Dates->new->regexp('syspref'); |
| 139 |
my $iso_re = C4::Dates->new->regexp('iso'); |
137 |
my $iso_re = C4::Dates->new->regexp('iso'); |
| 140 |
LINE: while ( my $borrowerline = <$handle> ) { |
138 |
LINE: while ( my $borrowerline = <$handle> ) { |
|
|
139 |
utf8::decode($borrowerline); |
| 141 |
my %borrower; |
140 |
my %borrower; |
| 142 |
my @missing_criticals; |
141 |
my @missing_criticals; |
| 143 |
my $patron_attributes; |
142 |
my $patron_attributes; |
| 144 |
- |
|
|