X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FImportBatch.pm;h=b6db4067c6c1c1f3ee795bb791f8939be75e996f;hb=refs%2Fheads%2Fffzg-1059-zebra_spine_label;hp=f8b5d54de8f9f8751c4cbbf769893610a2f01759;hpb=8ad2c7d7acc3cb0033426bd78928214a22ad9dd1;p=koha.git diff --git a/C4/ImportBatch.pm b/C4/ImportBatch.pm index f8b5d54de8..b6db4067c6 100644 --- a/C4/ImportBatch.pm +++ b/C4/ImportBatch.pm @@ -13,9 +13,9 @@ package C4::ImportBatch; # 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; @@ -78,21 +78,13 @@ C4::ImportBatch - manage batches of imported MARC records =head1 SYNOPSIS -=over 4 - use C4::ImportBatch; -=back - =head1 FUNCTIONS =head2 GetZ3950BatchId -=over 4 - -my $batchid = GetZ3950BatchId($z3950server); - -=back + my $batchid = GetZ3950BatchId($z3950server); Retrieves the ID of the import batch for the Z39.50 reservoir for the given target. If necessary, @@ -121,11 +113,7 @@ sub GetZ3950BatchId { =head2 GetImportRecordMarc -=over 4 - -my ($marcblob, $encoding) = GetImportRecordMarc($import_record_id); - -=back + my ($marcblob, $encoding) = GetImportRecordMarc($import_record_id); =cut @@ -143,11 +131,8 @@ sub GetImportRecordMarc { =head2 AddImportBatch -=over 4 - -my $batch_id = AddImportBatch($overlay_action, $import_status, $type, $file_name, $comments); - -=back + my $batch_id = AddImportBatch($overlay_action, $import_status, $type, + $file_name, $comments); =cut @@ -168,11 +153,7 @@ sub AddImportBatch { =head2 GetImportBatch -=over 4 - -my $row = GetImportBatch($batch_id); - -=back + my $row = GetImportBatch($batch_id); Retrieve a hashref of an import_batches row. @@ -193,11 +174,8 @@ sub GetImportBatch { =head2 AddBiblioToBatch -=over 4 - -my $import_record_id = AddBiblioToBatch($batch_id, $record_sequence, $marc_record, $encoding, $z3950random, $update_counts); - -=back + my $import_record_id = AddBiblioToBatch($batch_id, $record_sequence, + $marc_record, $encoding, $z3950random, $update_counts); =cut @@ -217,11 +195,7 @@ sub AddBiblioToBatch { =head2 ModBiblioInBatch -=over 4 - -ModBiblioInBatch($import_record_id, $marc_record); - -=back + ModBiblioInBatch($import_record_id, $marc_record); =cut @@ -235,20 +209,16 @@ sub ModBiblioInBatch { =head2 BatchStageMarcRecords -=over 4 - -($batch_id, $num_records, $num_items, @invalid_records) = - BatchStageMarcRecords($marc_flavor, $marc_records, $file_name, + ($batch_id, $num_records, $num_items, @invalid_records) = + BatchStageMarcRecords($encoding, $marc_records, $file_name, $comments, $branch_code, $parse_items, $leave_as_staging, $progress_interval, $progress_callback); -=back - =cut sub BatchStageMarcRecords { - my $marc_flavor = shift; + my $encoding = shift; my $marc_records = shift; my $file_name = shift; my $comments = shift; @@ -288,13 +258,16 @@ sub BatchStageMarcRecords { &$progress_callback($rec_num); } my ($marc_record, $charset_guessed, $char_errors) = - MarcToUTF8Record($marc_blob, C4::Context->preference("marcflavour")); + MarcToUTF8Record($marc_blob, C4::Context->preference("marcflavour"), $encoding); + + $encoding = $charset_guessed unless $encoding; + my $import_record_id; if (scalar($marc_record->fields()) == 0) { push @invalid_records, $marc_blob; } else { $num_valid++; - $import_record_id = AddBiblioToBatch($batch_id, $rec_num, $marc_record, $marc_flavor, int(rand(99999)), 0); + $import_record_id = AddBiblioToBatch($batch_id, $rec_num, $marc_record, $encoding, int(rand(99999)), 0); if ($parse_items) { my @import_items_ids = AddItemsToImportBiblio($batch_id, $import_record_id, $marc_record, 0); $num_items += scalar(@import_items_ids); @@ -311,11 +284,8 @@ sub BatchStageMarcRecords { =head2 AddItemsToImportBiblio -=over 4 - -my @import_items_ids = AddItemsToImportBiblio($batch_id, $import_record_id, $marc_record, $update_counts); - -=back + my @import_items_ids = AddItemsToImportBiblio($batch_id, + $import_record_id, $marc_record, $update_counts); =cut @@ -353,11 +323,8 @@ sub AddItemsToImportBiblio { =head2 BatchFindBibDuplicates -=over 4 - -my $num_with_matches = BatchFindBibDuplicates($batch_id, $matcher, $max_matches, $progress_interval, $progress_callback); - -=back + my $num_with_matches = BatchFindBibDuplicates($batch_id, $matcher, + $max_matches, $progress_interval, $progress_callback); Goes through the records loaded in the batch and attempts to find duplicates for each one. Sets the matching status @@ -424,17 +391,15 @@ sub BatchFindBibDuplicates { =head2 BatchCommitBibRecords -=over 4 - -my ($num_added, $num_updated, $num_items_added, $num_items_errored, $num_ignored) = - BatchCommitBibRecords($batch_id, $progress_interval, $progress_callback); - -=back + my ($num_added, $num_updated, $num_items_added, $num_items_errored, + $num_ignored) = BatchCommitBibRecords($batch_id, $framework, + $progress_interval, $progress_callback); =cut sub BatchCommitBibRecords { my $batch_id = shift; + my $framework = shift; # optional callback to monitor status # of job @@ -490,7 +455,7 @@ sub BatchCommitBibRecords { if ($bib_result eq 'create_new') { $num_added++; - my ($biblionumber, $biblioitemnumber) = AddBiblio($marc_record, ''); + my ($biblionumber, $biblioitemnumber) = AddBiblio($marc_record, $framework); my $sth = $dbh->prepare_cached("UPDATE import_biblios SET matched_biblionumber = ? WHERE import_record_id = ?"); $sth->execute($biblionumber, $rowref->{'import_record_id'}); $sth->finish(); @@ -550,11 +515,8 @@ sub BatchCommitBibRecords { =head2 BatchCommitItems -=over 4 - -($num_items_added, $num_items_errored) = BatchCommitItems($import_record_id, $biblionumber); - -=back + ($num_items_added, $num_items_errored) = + BatchCommitItems($import_record_id, $biblionumber); =cut @@ -601,11 +563,8 @@ sub BatchCommitItems { =head2 BatchRevertBibRecords -=over 4 - -my ($num_deleted, $num_errors, $num_reverted, $num_items_deleted, $num_ignored) = BatchRevertBibRecords($batch_id); - -=back + my ($num_deleted, $num_errors, $num_reverted, $num_items_deleted, + $num_ignored) = BatchRevertBibRecords($batch_id); =cut @@ -668,11 +627,7 @@ sub BatchRevertBibRecords { =head2 BatchRevertItems -=over 4 - -my $num_items_deleted = BatchRevertItems($import_record_id, $biblionumber); - -=back + my $num_items_deleted = BatchRevertItems($import_record_id, $biblionumber); =cut @@ -703,11 +658,7 @@ sub BatchRevertItems { =head2 CleanBatch -=over 4 - -CleanBatch($batch_id) - -=back + CleanBatch($batch_id) Deletes all staged records from the import batch and sets the status of the batch to 'cleaned'. Note @@ -726,11 +677,7 @@ sub CleanBatch { =head2 GetAllImportBatches -=over 4 - -my $results = GetAllImportBatches(); - -=back + my $results = GetAllImportBatches(); Returns a references to an array of hash references corresponding to all import_batches rows (of batch_type 'batch'), sorted in @@ -755,11 +702,7 @@ sub GetAllImportBatches { =head2 GetImportBatchRangeDesc -=over 4 - -my $results = GetImportBatchRangeDesc($offset, $results_per_group); - -=back + my $results = GetImportBatchRangeDesc($offset, $results_per_group); Returns a reference to an array of hash references corresponding to import_batches rows (sorted in descending order by import_batch_id) @@ -775,11 +718,11 @@ sub GetImportBatchRangeDesc { WHERE batch_type = 'batch' ORDER BY import_batch_id DESC"; my @params; + if ($results_per_group){ + $query .= " LIMIT ?"; + push(@params, $results_per_group); + } if ($offset){ - if ($results_per_group){ - $query .= " LIMIT ?"; - push(@params, $results_per_group); - } $query .= " OFFSET ?"; push(@params, $offset); } @@ -792,6 +735,8 @@ sub GetImportBatchRangeDesc { =head2 GetItemNumbersFromImportBatch + my @itemsnos = GetItemNumbersFromImportBatch($batch_id); + =cut sub GetItemNumbersFromImportBatch { @@ -808,11 +753,7 @@ sub GetItemNumbersFromImportBatch { =head2 GetNumberOfImportBatches -=over 4 - -my $count = GetNumberOfImportBatches(); - -=back + my $count = GetNumberOfImportBatches(); =cut @@ -827,11 +768,7 @@ sub GetNumberOfNonZ3950ImportBatches { =head2 GetImportBibliosRange -=over 4 - -my $results = GetImportBibliosRange($batch_id, $offset, $results_per_group); - -=back + my $results = GetImportBibliosRange($batch_id, $offset, $results_per_group); Returns a reference to an array of hash references corresponding to import_biblios/import_records rows for a given batch @@ -856,11 +793,11 @@ sub GetImportBibliosRange { } $query.=" ORDER BY import_record_id"; + if($results_per_group){ + $query .= " LIMIT ?"; + push(@params, $results_per_group); + } if($offset){ - if($results_per_group){ - $query .= " LIMIT ?"; - push(@params, $results_per_group); - } $query .= " OFFSET ?"; push(@params, $offset); } @@ -874,11 +811,7 @@ sub GetImportBibliosRange { =head2 GetBestRecordMatch -=over 4 - -my $record_id = GetBestRecordMatch($import_record_id); - -=back + my $record_id = GetBestRecordMatch($import_record_id); =cut @@ -898,11 +831,7 @@ sub GetBestRecordMatch { =head2 GetImportBatchStatus -=over 4 - -my $status = GetImportBatchStatus($batch_id); - -=back + my $status = GetImportBatchStatus($batch_id); =cut @@ -920,11 +849,7 @@ sub GetImportBatchStatus { =head2 SetImportBatchStatus -=over 4 - -SetImportBatchStatus($batch_id, $new_status); - -=back + SetImportBatchStatus($batch_id, $new_status); =cut @@ -940,11 +865,7 @@ sub SetImportBatchStatus { =head2 GetImportBatchOverlayAction -=over 4 - -my $overlay_action = GetImportBatchOverlayAction($batch_id); - -=back + my $overlay_action = GetImportBatchOverlayAction($batch_id); =cut @@ -963,11 +884,7 @@ sub GetImportBatchOverlayAction { =head2 SetImportBatchOverlayAction -=over 4 - -SetImportBatchOverlayAction($batch_id, $new_overlay_action); - -=back + SetImportBatchOverlayAction($batch_id, $new_overlay_action); =cut @@ -983,11 +900,7 @@ sub SetImportBatchOverlayAction { =head2 GetImportBatchNoMatchAction -=over 4 - -my $nomatch_action = GetImportBatchNoMatchAction($batch_id); - -=back + my $nomatch_action = GetImportBatchNoMatchAction($batch_id); =cut @@ -1006,11 +919,7 @@ sub GetImportBatchNoMatchAction { =head2 SetImportBatchNoMatchAction -=over 4 - -SetImportBatchNoMatchAction($batch_id, $new_nomatch_action); - -=back + SetImportBatchNoMatchAction($batch_id, $new_nomatch_action); =cut @@ -1026,11 +935,7 @@ sub SetImportBatchNoMatchAction { =head2 GetImportBatchItemAction -=over 4 - -my $item_action = GetImportBatchItemAction($batch_id); - -=back + my $item_action = GetImportBatchItemAction($batch_id); =cut @@ -1049,11 +954,7 @@ sub GetImportBatchItemAction { =head2 SetImportBatchItemAction -=over 4 - -SetImportBatchItemAction($batch_id, $new_item_action); - -=back + SetImportBatchItemAction($batch_id, $new_item_action); =cut @@ -1069,11 +970,7 @@ sub SetImportBatchItemAction { =head2 GetImportBatchMatcher -=over 4 - -my $matcher_id = GetImportBatchMatcher($batch_id); - -=back + my $matcher_id = GetImportBatchMatcher($batch_id); =cut @@ -1092,11 +989,7 @@ sub GetImportBatchMatcher { =head2 SetImportBatchMatcher -=over 4 - -SetImportBatchMatcher($batch_id, $new_matcher_id); - -=back + SetImportBatchMatcher($batch_id, $new_matcher_id); =cut @@ -1112,11 +1005,7 @@ sub SetImportBatchMatcher { =head2 GetImportRecordOverlayStatus -=over 4 - -my $overlay_status = GetImportRecordOverlayStatus($import_record_id); - -=back + my $overlay_status = GetImportRecordOverlayStatus($import_record_id); =cut @@ -1135,11 +1024,7 @@ sub GetImportRecordOverlayStatus { =head2 SetImportRecordOverlayStatus -=over 4 - -SetImportRecordOverlayStatus($import_record_id, $new_overlay_status); - -=back + SetImportRecordOverlayStatus($import_record_id, $new_overlay_status); =cut @@ -1155,11 +1040,7 @@ sub SetImportRecordOverlayStatus { =head2 GetImportRecordStatus -=over 4 - -my $overlay_status = GetImportRecordStatus($import_record_id); - -=back + my $overlay_status = GetImportRecordStatus($import_record_id); =cut @@ -1178,11 +1059,7 @@ sub GetImportRecordStatus { =head2 SetImportRecordStatus -=over 4 - -SetImportRecordStatus($import_record_id, $new_overlay_status); - -=back + SetImportRecordStatus($import_record_id, $new_overlay_status); =cut @@ -1198,11 +1075,7 @@ sub SetImportRecordStatus { =head2 GetImportRecordMatches -=over 4 - -my $results = GetImportRecordMatches($import_record_id, $best_only); - -=back + my $results = GetImportRecordMatches($import_record_id, $best_only); =cut @@ -1234,11 +1107,7 @@ sub GetImportRecordMatches { =head2 SetImportRecordMatches -=over 4 - -SetImportRecordMatches($import_record_id, @matches); - -=back + SetImportRecordMatches($import_record_id, @matches); =cut @@ -1394,7 +1263,7 @@ __END__ =head1 AUTHOR -Koha Development Team +Koha Development Team Galen Charlton