projects
/
koha.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bugs 6634: manager_id not recorded for payments and rental charges
[koha.git]
/
C4
/
Breeding.pm
diff --git
a/C4/Breeding.pm
b/C4/Breeding.pm
index
0ec0829
..
9003f9a
100644
(file)
--- a/
C4/Breeding.pm
+++ b/
C4/Breeding.pm
@@
-13,21
+13,28
@@
package C4::Breeding;
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# 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 strict;
+use warnings;
+
use C4::Biblio;
use C4::Koha;
use C4::Biblio;
use C4::Koha;
+use C4::Charset;
use MARC::File::USMARC;
use C4::ImportBatch;
use MARC::File::USMARC;
use C4::ImportBatch;
-require Exporter;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
-# set the version for version checking
-$VERSION = 0.01;
+BEGIN {
+ # set the version for version checking
+ $VERSION = 0.02;
+ require Exporter;
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&ImportBreeding &BreedingSearch);
+}
=head1 NAME
=head1 NAME
@@
-54,12
+61,6
@@
C4::Breeding : module to add biblios to import_records via
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.
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.
-
-=cut
-
-@ISA = qw(Exporter);
-@EXPORT = qw(&ImportBreeding &BreedingSearch);
=head2 ImportBreeding
=head2 ImportBreeding
@@
-80,7
+81,6
@@
sub ImportBreeding {
$batch_id = GetZ3950BatchId($filename);
} else {
# create a new one
$batch_id = GetZ3950BatchId($filename);
} else {
# create a new one
- # FIXME - handle comments
$batch_id = AddImportBatch('create_new', 'staging', 'batch', $filename, '');
}
my $searchisbn = $dbh->prepare("select biblioitemnumber from biblioitems where isbn=?");
$batch_id = AddImportBatch('create_new', 'staging', 'batch', $filename, '');
}
my $searchisbn = $dbh->prepare("select biblioitemnumber from biblioitems where isbn=?");
@@
-88,7
+88,7
@@
sub ImportBreeding {
# FIXME -- not sure that this kind of checking is actually needed
my $searchbreeding = $dbh->prepare("select import_record_id from import_biblios where isbn=? and title=?");
# FIXME -- not sure that this kind of checking is actually needed
my $searchbreeding = $dbh->prepare("select import_record_id from import_biblios where isbn=? and title=?");
- $encoding = C4::Context->preference("marcflavour") unless $encoding;
+
#
$encoding = C4::Context->preference("marcflavour") unless $encoding;
# fields used for import results
my $imported=0;
my $alreadyindb = 0;
# fields used for import results
my $imported=0;
my $alreadyindb = 0;
@@
-96,8
+96,11
@@
sub ImportBreeding {
my $notmarcrecord = 0;
my $breedingid;
for (my $i=0;$i<=$#marcarray;$i++) {
my $notmarcrecord = 0;
my $breedingid;
for (my $i=0;$i<=$#marcarray;$i++) {
- my $marcrecord = FixEncoding($marcarray[$i]."\x1D");
-
+ my ($marcrecord, $charset_result, $charset_errors);
+ ($marcrecord, $charset_result, $charset_errors) =
+ MarcToUTF8Record($marcarray[$i]."\x1D", C4::Context->preference("marcflavour"), $encoding);
+
+# warn "$i : $marcarray[$i]";
# FIXME - currently this does nothing
my @warnings = $marcrecord->warnings();
# FIXME - currently this does nothing
my @warnings = $marcrecord->warnings();
@@
-108,9
+111,7
@@
sub ImportBreeding {
# 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, - ...
# 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}) {
# search if biblio exists
my $biblioitemnumber;
if ($oldbiblio->{isbn}) {
@@
-122,7
+123,7
@@
sub ImportBreeding {
($biblioitemnumber) = $searchissn->fetchrow;
}
}
($biblioitemnumber) = $searchissn->fetchrow;
}
}
- if ($biblioitemnumber) {
+ if ($biblioitemnumber
&& $overwrite_biblio ne 2
) {
$alreadyindb++;
} else {
# FIXME - in context of batch load,
$alreadyindb++;
} else {
# FIXME - in context of batch load,
@@
-168,7
+169,7
@@
C<import_biblios> tables of the Koha database.
=cut
sub BreedingSearch {
=cut
sub BreedingSearch {
- my ($
title
,$isbn,$z3950random) = @_;
+ my ($
search
,$isbn,$z3950random) = @_;
my $dbh = C4::Context->dbh;
my $count = 0;
my ($query,@bind);
my $dbh = C4::Context->dbh;
my $count = 0;
my ($query,@bind);
@@
-184,12
+185,13
@@
sub BreedingSearch {
$query .= "z3950random = ?";
@bind=($z3950random);
} else {
$query .= "z3950random = ?";
@bind=($z3950random);
} else {
+ $search =~ s/(\s+)/\%/g;
@bind=();
@bind=();
-
if ($title
) {
- $query .= "title like ?";
- push(@bind,"
$title
%");
+
if ($search
) {
+ $query .= "title like ?
OR author like ?
";
+ push(@bind,"
%$search%", "%$search
%");
}
}
- if ($
title
&& $isbn) {
+ if ($
search
&& $isbn) {
$query .= " and ";
}
if ($isbn) {
$query .= " and ";
}
if ($isbn) {
@@
-214,5
+216,6
@@
sub BreedingSearch {
return($count, @results);
} # sub breedingsearch
return($count, @results);
} # sub breedingsearch
+1;
+__END__
-END { } # module clean-up code here (global destructor)