# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA 02111-1307 USA
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
use strict;
+use warnings;
+
use C4::Biblio;
use C4::Koha;
+use C4::Charset;
use MARC::File::USMARC;
use C4::ImportBatch;
ImportBreeding import MARC records in the reservoir (import_records/import_batches tables).
the records can be properly encoded or not, we try to reencode them in utf-8 if needed.
works perfectly with BNF server, that sends UNIMARC latin1 records. Should work with other servers too.
- the FixEncoding sub is in Koha.pm, as it's a general usage sub.
=head2 ImportBreeding
my $notmarcrecord = 0;
my $breedingid;
for (my $i=0;$i<=$#marcarray;$i++) {
- my $marcrecord = FixEncoding($marcarray[$i]."\x1D",$encoding);
+ my ($marcrecord, $charset_result, $charset_errors);
+ ($marcrecord, $charset_result, $charset_errors) =
+ MarcToUTF8Record($marcarray[$i]."\x1D", C4::Context->preference("marcflavour"), $encoding);
+
# warn "$i : $marcarray[$i]";
-# warn "FixEncoding : ".$marcrecord->as_formatted;
# FIXME - currently this does nothing
my @warnings = $marcrecord->warnings();
# if isbn found and biblio does not exist, add it. If isbn found and biblio exists,
# overwrite or ignore depending on user choice
# drop every "special" char : spaces, - ...
- $oldbiblio->{isbn} =~ s/\(.*$//;
- $oldbiblio->{isbn} =~ tr/ -_//;
- $oldbiblio->{isbn} = uc $oldbiblio->{isbn};
+ $oldbiblio->{isbn} = C4::Koha::_isbn_cleanup($oldbiblio->{isbn}); # FIXME C4::Koha::_isbn_cleanup should be public
# search if biblio exists
my $biblioitemnumber;
if ($oldbiblio->{isbn}) {