Bug 12289: Add --no-create options to stage_file.pl
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Mon, 19 May 2014 13:20:50 +0000 (13:20 +0000)
committerBrendan A Gallagher <brendan@bywatersolutions.com>
Wed, 30 Dec 2015 21:11:16 +0000 (21:11 +0000)
This patch adds the no-create options to the command line interface
for bulk loading of records.

To test
1/ Apply both patches
2/ Call the script with --no-create and your will find that new
records are not created when no match is found.  The default, of
create_new remains the same as before.

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
misc/stage_file.pl

index 3003084..7bb548c 100755 (executable)
@@ -54,6 +54,7 @@ my $result = GetOptions(
     'add-items'     => \$add_items,
     'item-action:s' => \$item_action,
     'no-replace'    => \$no_replace,
     'add-items'     => \$add_items,
     'item-action:s' => \$item_action,
     'no-replace'    => \$no_replace,
+    'no-create'     => \$no_create,
     'comment:s'     => \$batch_comment,
     'authorities'   => \$authorities,
     'h|help'        => \$want_help
     'comment:s'     => \$batch_comment,
     'authorities'   => \$authorities,
     'h|help'        => \$want_help
@@ -119,7 +120,7 @@ sub process_batch {
         }
         # set default record overlay behavior
         SetImportBatchOverlayAction($batch_id, ($no_replace) ? 'ignore' : 'replace');
         }
         # set default record overlay behavior
         SetImportBatchOverlayAction($batch_id, ($no_replace) ? 'ignore' : 'replace');
-        SetImportBatchNoMatchAction($batch_id, 'create_new');
+        SetImportBatchNoMatchAction($batch_id, ($no_create) ? 'ignore' : 'create_new');
         SetImportBatchItemAction($batch_id, $item_action);
         print "... looking for matches with records already in database\n";
         $num_with_matches = BatchFindDuplicates($batch_id, $matcher, 10, 100, \&print_progress_and_commit);
         SetImportBatchItemAction($batch_id, $item_action);
         print "... looking for matches with records already in database\n";
         $num_with_matches = BatchFindDuplicates($batch_id, $matcher, 10, 100, \&print_progress_and_commit);
@@ -195,6 +196,8 @@ Parameters:
                             'ignore', or 'replace'
     --no-replace            overlay action for record: default is to
                             replace extant with the imported record.
                             'ignore', or 'replace'
     --no-replace            overlay action for record: default is to
                             replace extant with the imported record.
+    --no-create             nomatch action for record: default is to
+                            create new record with imported record.
     --comment <comment>     optional comment to describe
                             the record batch; if the comment
                             has spaces in it, surround the
     --comment <comment>     optional comment to describe
                             the record batch; if the comment
                             has spaces in it, surround the