added autocomplete="off"
[koha.git] / C4 / ImportBatch.pm
index f8b5d54..b6db406 100644 (file)
@@ -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 <info@koha.org>
+Koha Development Team <http://koha-community.org/>
 
 Galen Charlton <galen.charlton@liblime.com>