Lines 19-26
Link Here
|
19 |
# with this program; if not, write to the Free Software Foundation, Inc., |
19 |
# with this program; if not, write to the Free Software Foundation, Inc., |
20 |
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
20 |
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
21 |
|
21 |
|
22 |
use strict; |
22 |
#use strict; |
23 |
use warnings; |
23 |
#use warnings; |
|
|
24 |
use Modern::Perl; |
24 |
BEGIN { |
25 |
BEGIN { |
25 |
# find Koha's Perl modules |
26 |
# find Koha's Perl modules |
26 |
# test carefully before changing this |
27 |
# test carefully before changing this |
Lines 31-36
BEGIN {
Link Here
|
31 |
use C4::Context; |
32 |
use C4::Context; |
32 |
use C4::ImportBatch; |
33 |
use C4::ImportBatch; |
33 |
use C4::Matcher; |
34 |
use C4::Matcher; |
|
|
35 |
use C4::MarcModificationTemplates; |
34 |
use Getopt::Long; |
36 |
use Getopt::Long; |
35 |
|
37 |
|
36 |
$| = 1; |
38 |
$| = 1; |
Lines 48-53
my $no_replace;
Link Here
|
48 |
my $format = 'ISO2709'; |
50 |
my $format = 'ISO2709'; |
49 |
my $no_create; |
51 |
my $no_create; |
50 |
my $item_action = 'always_add'; |
52 |
my $item_action = 'always_add'; |
|
|
53 |
my $marc_mod_template = ''; |
54 |
my $marc_mod_template_id = undef; |
51 |
|
55 |
|
52 |
my $result = GetOptions( |
56 |
my $result = GetOptions( |
53 |
'encoding:s' => \$encoding, |
57 |
'encoding:s' => \$encoding, |
Lines 60-68
my $result = GetOptions(
Link Here
|
60 |
'no-create' => \$no_create, |
64 |
'no-create' => \$no_create, |
61 |
'comment:s' => \$batch_comment, |
65 |
'comment:s' => \$batch_comment, |
62 |
'authorities' => \$authorities, |
66 |
'authorities' => \$authorities, |
|
|
67 |
'marcmodtemplate:s' => \$marc_mod_template, |
63 |
'h|help' => \$want_help |
68 |
'h|help' => \$want_help |
64 |
); |
69 |
); |
65 |
|
70 |
|
|
|
71 |
if($marc_mod_template ne '') { |
72 |
my @templates = GetModificationTemplates(); |
73 |
foreach my $this_template (@templates) { |
74 |
if($this_template->{'name'} eq $marc_mod_template) { |
75 |
$marc_mod_template_id = $this_template->{'template_id'}; |
76 |
last; |
77 |
} |
78 |
if($this_template->{'name'} eq $marc_mod_template) { |
79 |
if($marc_mod_template_id < 0) { |
80 |
$marc_mod_template_id = $this_template->{'template_id'}; |
81 |
} else { |
82 |
print "WARNING: MARC modification template name " . |
83 |
"'$marc_mod_template' matches multiple templates. " . |
84 |
"Please fix this issue before proceeding.\n"; |
85 |
exit 1; |
86 |
} |
87 |
} |
88 |
} |
89 |
|
90 |
if($marc_mod_template_id < 0) { |
91 |
die "Can't locate MARC modification template '$marc_mod_template'\n"; |
92 |
} |
93 |
} |
94 |
|
66 |
$record_type = 'auth' if ($authorities); |
95 |
$record_type = 'auth' if ($authorities); |
67 |
|
96 |
|
68 |
if (not $result or $input_file eq "" or $want_help) { |
97 |
if (not $result or $input_file eq "" or $want_help) { |
Lines 92-97
process_batch({
Link Here
|
92 |
no_replace => $no_replace, |
121 |
no_replace => $no_replace, |
93 |
no_create => $no_create, |
122 |
no_create => $no_create, |
94 |
item_action => $item_action, |
123 |
item_action => $item_action, |
|
|
124 |
marc_mod_template_id => $marc_mod_template_id, |
95 |
}); |
125 |
}); |
96 |
$dbh->commit(); |
126 |
$dbh->commit(); |
97 |
|
127 |
|
Lines 116-123
sub process_batch {
Link Here
|
116 |
print "... staging MARC records -- please wait\n"; |
146 |
print "... staging MARC records -- please wait\n"; |
117 |
#FIXME: We should really allow the use of marc modification frameworks and to_marc plugins here if possible |
147 |
#FIXME: We should really allow the use of marc modification frameworks and to_marc plugins here if possible |
118 |
my ($batch_id, $num_valid_records, $num_items, @import_errors) = |
148 |
my ($batch_id, $num_valid_records, $num_items, @import_errors) = |
119 |
BatchStageMarcRecords($record_type, $params->{encoding}, $marc_records, $params->{input_file}, undef, $params->{batch_comment}, '', $params->{add_items}, 0, |
149 |
BatchStageMarcRecords( |
120 |
100, \&print_progress_and_commit); |
150 |
$record_type, $params->{encoding}, |
|
|
151 |
$marc_records, $params->{input_file}, |
152 |
$params->{'marc_mod_template_id'}, |
153 |
$params->{batch_comment}, '', |
154 |
$params->{add_items}, 0, |
155 |
100, \&print_progress_and_commit); |
121 |
print "... finished staging MARC records\n"; |
156 |
print "... finished staging MARC records\n"; |
122 |
|
157 |
|
123 |
my $num_with_matches = 0; |
158 |
my $num_with_matches = 0; |
Lines 218-223
Parameters:
Link Here
|
218 |
the record batch; if the comment |
253 |
the record batch; if the comment |
219 |
has spaces in it, surround the |
254 |
has spaces in it, surround the |
220 |
comment with quotation marks. |
255 |
comment with quotation marks. |
|
|
256 |
--marcmodtemplate <TEMPLATE> |
257 |
This parameter allows you to specify the |
258 |
name of an existing MARC modification |
259 |
template to apply as the MARC records are |
260 |
imported (these templates are created in |
261 |
the "MARC modification templates" tool in |
262 |
Koha). If not specified, no MARC modification |
263 |
templates are used (default). |
221 |
--help or -h show this message. |
264 |
--help or -h show this message. |
222 |
_USAGE_ |
265 |
_USAGE_ |
223 |
} |
266 |
} |
224 |
- |
|
|