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 Encode; |
52 |
# ė |
52 |
use Unicode::Normalize; |
53 |
# č |
|
|
54 |
|
53 |
|
55 |
use CGI; |
54 |
use CGI; |
56 |
# use encoding 'utf8'; # don't do this |
|
|
57 |
|
55 |
|
58 |
my (@errors, @feedback); |
56 |
my (@errors, @feedback); |
59 |
my $extended = C4::Context->preference('ExtendedPatronAttributes'); |
57 |
my $extended = C4::Context->preference('ExtendedPatronAttributes'); |
Lines 115-120
if ( $uploadborrowers && length($uploadborrowers) > 0 ) {
Link Here
|
115 |
|
113 |
|
116 |
# use header line to construct key to column map |
114 |
# use header line to construct key to column map |
117 |
my $borrowerline = <$handle>; |
115 |
my $borrowerline = <$handle>; |
|
|
116 |
$borrowerline = NFC(decode('utf-8',$borrowerline)); |
118 |
my $status = $csv->parse($borrowerline); |
117 |
my $status = $csv->parse($borrowerline); |
119 |
($status) or push @errors, {badheader=>1,line=>$., lineraw=>$borrowerline}; |
118 |
($status) or push @errors, {badheader=>1,line=>$., lineraw=>$borrowerline}; |
120 |
my @csvcolumns = $csv->fields(); |
119 |
my @csvcolumns = $csv->fields(); |
Lines 138-143
if ( $uploadborrowers && length($uploadborrowers) > 0 ) {
Link Here
|
138 |
my $date_re = C4::Dates->new->regexp('syspref'); |
137 |
my $date_re = C4::Dates->new->regexp('syspref'); |
139 |
my $iso_re = C4::Dates->new->regexp('iso'); |
138 |
my $iso_re = C4::Dates->new->regexp('iso'); |
140 |
LINE: while ( my $borrowerline = <$handle> ) { |
139 |
LINE: while ( my $borrowerline = <$handle> ) { |
|
|
140 |
$borrowerline = NFC(decode('utf-8',$borrowerline)); |
141 |
my %borrower; |
141 |
my %borrower; |
142 |
my @missing_criticals; |
142 |
my @missing_criticals; |
143 |
my $patron_attributes; |
143 |
my $patron_attributes; |
144 |
- |
|
|