[PATCH 07/11] [SIGNED-OFF] bug 5579: remove sync_items_in_marc_bib.pl
Galen Charlton
gmcharlt at gmail.com
Sun Apr 3 02:48:40 CEST 2011
Now that item data is inserted into the MARC bib record
at the point of indexing, sync_items_in_marc_bib.pl is
no longer needed.
Signed-off-by: Galen Charlton <gmcharlt at gmail.com>
Signed-off-by: Claire Hernandez <claire.hernandez at biblibre.com>
---
misc/maintenance/sync_items_in_marc_bib.pl | 151 ----------------------------
1 files changed, 0 insertions(+), 151 deletions(-)
delete mode 100755 misc/maintenance/sync_items_in_marc_bib.pl
diff --git a/misc/maintenance/sync_items_in_marc_bib.pl b/misc/maintenance/sync_items_in_marc_bib.pl
deleted file mode 100755
index d3eb2ef..0000000
--- a/misc/maintenance/sync_items_in_marc_bib.pl
+++ /dev/null
@@ -1,151 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-#use warnings; FIXME - Bug 2505
-BEGIN {
- # find Koha's Perl modules
- # test carefully before changing this
- use FindBin;
- eval { require "$FindBin::Bin/../kohalib.pl" };
-}
-
-use C4::Context;
-use C4::Biblio;
-use C4::Items;
-use Getopt::Long;
-
-$| = 1;
-
-# command-line parameters
-my $want_help = 0;
-my $do_update = 0;
-my $wherestrings;
-
-my $result = GetOptions(
- 'run-update' => \$do_update,
- 'where=s@' => \$wherestrings,
- 'h|help' => \$want_help,
-);
-
-if (not $result or $want_help or not $do_update) {
- print_usage();
- exit 0;
-}
-
-my $num_bibs_processed = 0;
-my $num_bibs_modified = 0;
-my $num_marc_items_deleted = 0;
-my $num_marc_items_added = 0;
-my $num_bad_bibs = 0;
-my $dbh = C4::Context->dbh;
-$dbh->{AutoCommit} = 0;
-
-our ($itemtag, $itemsubfield) = GetMarcFromKohaField("items.itemnumber", '');
-our ($item_sth) = $dbh->prepare("SELECT itemnumber FROM items WHERE biblionumber = ?");
-
-process_bibs();
-$dbh->commit();
-
-exit 0;
-
-sub process_bibs {
- my $sql = "SELECT biblionumber FROM biblio JOIN biblioitems USING (biblionumber)";
- $sql.="WHERE ". join(" AND ",@$wherestrings) if ($wherestrings);
- $sql.="ORDER BY biblionumber ASC";
- my $sth = $dbh->prepare($sql);
- eval{$sth->execute();};
- if ($@){ die "error $@";};
- while (my ($biblionumber) = $sth->fetchrow_array()) {
- $num_bibs_processed++;
- process_bib($biblionumber);
-
- if (($num_bibs_processed % 100) == 0) {
- print_progress_and_commit($num_bibs_processed);
- }
- }
-
- $dbh->commit;
-
- print <<_SUMMARY_;
-
-Embedded item synchronization report
-------------------------------------
-Number of bibs checked: $num_bibs_processed
-Number of bibs modified: $num_bibs_modified
-Number of item fields removed from bibs: $num_marc_items_deleted
-Number of item fields added to bibs: $num_marc_items_added
-Number of bibs with errors: $num_bad_bibs
-_SUMMARY_
-}
-
-sub process_bib {
- my $biblionumber = shift;
-
- my $bib = GetMarcBiblio($biblionumber);
- unless (defined $bib) {
- print "\nCould not retrieve bib $biblionumber from the database - record is corrupt.\n";
- $num_bad_bibs++;
- return;
- }
-
- my $bib_modified = 0;
-
- # delete any item tags
- foreach my $field ($bib->field($itemtag)) {
- unless ($bib->delete_field($field)) {
- warn "Could not delete item in $itemtag for biblionumber $biblionumber";
- next;
- }
- $num_marc_items_deleted++;
- $bib_modified = 1;
- }
-
- # add back items from items table
- $item_sth->execute($biblionumber);
- while (my $itemnumber = $item_sth->fetchrow_array) {
- my $marc_item = C4::Items::GetMarcItem($biblionumber, $itemnumber);
- unless ($marc_item) {
- warn "FAILED C4::Items::GetMarcItem for biblionumber=$biblionumber, itemnumber=$itemnumber";
- next;
- }
- foreach my $item_field ($marc_item->field($itemtag)) {
- $bib->insert_fields_ordered($item_field);
- $num_marc_items_added++;
- $bib_modified = 1;
- }
- }
-
- if ($bib_modified) {
- ModBiblioMarc($bib, $biblionumber, GetFrameworkCode($biblionumber));
- $num_bibs_modified++;
- }
-
-}
-
-sub print_progress_and_commit {
- my $recs = shift;
- $dbh->commit();
- print "... processed $recs records\n";
-}
-
-sub print_usage {
- print <<_USAGE_;
-$0: synchronize item data embedded in MARC bibs
-
-Replaces the item data embedded in the MARC bib
-records (for indexing) with the authoritative
-item data as stored in the items table.
-
-If Zebra is used, run rebuild_zebra.pl -b -r after
-running this script.
-
-NOTE: this script should be run only if there is
-reason to suspect that the embedded item tags are
-not in sync with the items table.
-
-Parameters:
- --run-update run the synchronization
- --where condition selects the biblios on a criterium (Repeatable)
- --help or -h show this message.
-_USAGE_
-}
--
1.7.1
More information about the Koha-patches
mailing list