From b383cf4a1638464b6c95968d2aabcb825e0a5d55 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Wed, 15 Jun 2011 18:13:32 +0200 Subject: [PATCH] reserves, old_reserves, found --- ferlib2koha.pl | 61 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 22 deletions(-) diff --git a/ferlib2koha.pl b/ferlib2koha.pl index 157c80e..a3abc3b 100755 --- a/ferlib2koha.pl +++ b/ferlib2koha.pl @@ -60,7 +60,7 @@ sub insert { } $insert->{$table}->execute( values %$row ); - warn "# inserted ", dump $row; + warn "# inserted $table ", dump $row; } @@ -239,56 +239,73 @@ set onloan = date_due, datelastborrowed = issuedate }; # import->{issues} -if ( $import->{barcode} ) { - -my $sth = $k->prepare(qq{ select itemnumber,barcode from items where length(barcode) < 13 }); -my $sth_update = $k->prepare(qq{ update items set barcode=? where itemnumber=? }); - -$sth->execute; -warn "update ", $sth->rows, " barcodes"; - -my $ean = CheckDigits('ean'); - -while( my $row = $sth->fetchrow_hashref ) { - $sth_update->execute( $ean->complete( sprintf('%012d', $row->{barcode}) ), $row->{itemnumber} ); -} - -} # import->{barcode} +$k->do(qq{ delete from reserves where borrowernumber > 100 }); +$k->do(qq{ delete from old_reserves where borrowernumber > 100 }); sub reserves { - my ($sql) = @_; + my ($table, $sql) = @_; my $sth = $f->prepare($sql); $sth->execute; $insert = undef; while (my $row = $sth->fetchrow_hashref ) { + + $row->{found} = + $row->{found} ? 'F' : + $row->{itemnumber} ? 'W' : undef; + $row->{borrowernumber} = lookup($k, 'borrowers', 'cardnumber' => 'borrowernumber', $row->{borrowernumber}); $row->{biblionumber} = lookup($k, 'biblioitems', 'collectionvolume' => 'biblionumber', $row->{biblionumber}); $row->{itemnumber} = lookup($k, 'items', 'barcode' => 'itemnumber', $row->{itemnumber}); - insert 'reserves' => $row; + + insert $table => $row; } } -reserves qq{ + +my $sql_reserves = qq{ select ozn_vrclan||ozn_clan as borrowernumber, datum_rezerv as reservedate, sif_naslov as biblionumber, + 'a' as constrainttype, 'SRE' as branchcode, datum_obavijest as notificationdate, - datum_opoziv as cancellationdate, + datum_ponist as cancellationdate, prior_rezerv as priority, - -- found + datum_posud as found, -- F|W datum_rezerv||' '||vrijeme_rezerv as timestamp, sif_primj as itemnumber, datum_obavijest as waitingdate, - datum_ponist as expirationdate, + vrijedi_do as expirationdate, 0 as lowestPriority from rezerv }; +reserves 'old_reserves' => qq{$sql_reserves where datum_opoziv != '' or datum_ponist != '' or datum_posud != ''}; +reserves 'reserves' => qq{$sql_reserves where datum_opoziv == '' and datum_ponist == '' and datum_posud == ''}; + + + +if ( $import->{barcode} ) { # XXX must be last! + +my $sth = $k->prepare(qq{ select itemnumber,barcode from items where length(barcode) < 13 }); +my $sth_update = $k->prepare(qq{ update items set barcode=? where itemnumber=? }); + +$sth->execute; +warn "update ", $sth->rows, " barcodes"; + +my $ean = CheckDigits('ean'); + +while( my $row = $sth->fetchrow_hashref ) { + $sth_update->execute( $ean->complete( sprintf('%012d', $row->{barcode}) ), $row->{itemnumber} ); +} + +} # import->{barcode} + + $k->commit; -- 2.20.1