From 61bc77d3a96c76a01512cda0fdc98ae8c0d2423d Mon Sep 17 00:00:00 2001 From: finlayt Date: Wed, 21 Aug 2002 02:42:54 +0000 Subject: [PATCH] A little script for performing changes to the branch fields on items. This script runs over the database. --- fixBranches.pl | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100755 fixBranches.pl diff --git a/fixBranches.pl b/fixBranches.pl new file mode 100755 index 0000000000..4744c56b3d --- /dev/null +++ b/fixBranches.pl @@ -0,0 +1,75 @@ +#!/usr/bin/perl + +# script to fix all the branch settings in the items table of the koha database. + +use strict; +use DBI; +use C4::Database; + +# This script makes the following substitutions. +# on homebranch field: +my $home_default = 'C'; +my %home = ( 'F' => 'FP' , + 'FM' => 'FP' , + 'M' => 'C' , + 'P' => 'C' , + 'S' => 'SP' , + 'T' => 'C' , + 'TR' => 'C' , + 'I' => 'C' , + 'D' => 'C' , + 'L' => 'LP' , + 'FP' => 'FP' , + 'SP' => 'SP' , + 'LP' => 'LP' , + 'C' => 'C' ); + +# on holdingbranch field: +my $hold_default = 'L'; +my %hold = ( 'F' => 'F' , + 'FM' => 'FM' , + 'M' => 'M' , + 'P' => 'P' , + 'S' => 'S' , + 'T' => 'T' , + 'TR' => 'TR' , + 'I' => 'I' , + 'D' => 'D' , + 'L' => 'L' , + 'FP' => 'F' , + 'C' => 'L' , + 'SP' => 'S' , + 'LP' => 'L' ); + + +# do the substitutions..... +my $dbh = &C4Connect; + +my $sth = $dbh->prepare("SELECT barcode, holdingbranch, homebranch FROM items"); +$sth->execute(); + +my $today = localtime(time()); +print "Output from fixBranches.pl $today \n\n"; + +while (my $item = $sth->fetchrow_hashref) { + my $oldhold = $item->{'holdingbranch'}; + my $newhold = $hold{$oldhold} ? $hold{$oldhold} : $hold_default ; + if ($oldhold ne $newhold) { + my $uth = $dbh->prepare("UPDATE items SET holdingbranch = ? WHERE barcode = ?"); + $uth->execute($newhold, $item->{'barcode'}); + print "$item->{'barcode'} : Holding branch setting changed from $oldhold -> $newhold \n"; + $uth->finish; + } + my $oldhome = $item->{'homebranch'}; + my $newhome = $home{$oldhome} ? $home{$oldhome} : $home_default ; + if ($oldhome ne $newhome) { + my $uth = $dbh->prepare("UPDATE items SET homebranch = ? WHERE barcode = ?"); + $uth->execute($newhome, $item->{'barcode'}); + print "$item->{'barcode'} : Home branch setting changed from $oldhome -> $newhome \n"; + $uth->finish; + } +} + +print "\nFinished output from fixbranches.pl\n"; + +$dbh->disconnect; -- 2.39.2