From 4dea4d29b3fa58dc1d348c15e2c01c3f5b70a7d9 Mon Sep 17 00:00:00 2001 From: tipaul Date: Tue, 24 Apr 2007 09:07:53 +0000 Subject: [PATCH] moving dotransfer to Biblio.pm::ModItemTransfer + some CheckReserves fixes --- C4/Biblio.pm | 47 ++++++++++++++++++++++++++++++++++++- C4/Circulation.pm | 51 ++++------------------------------------- C4/Reserves.pm | 2 +- circ/transferstodo.pl | 2 +- circ/waitingreserves.pl | 2 +- members/moremember.pl | 1 + 6 files changed, 54 insertions(+), 51 deletions(-) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index f864e599e7..6d73d84095 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -81,6 +81,7 @@ push @EXPORT, qw( push @EXPORT, qw( &ModBiblio &ModItem + &ModItemTransfer &ModBiblioframework &ModZebra &ModItemInMarc @@ -420,6 +421,47 @@ sub ModItem { } } +sub ModItemTransfer { + my ( $itemnumber, $frombranch, $tobranch ) = @_; + + my $dbh = C4::Context->dbh; + + #new entry in branchtransfers.... + my $sth = $dbh->prepare( + "INSERT INTO branchtransfers (itemnumber, frombranch, datesent, tobranch) + VALUES (?, ?, now(), $?)"); + $sth->execute($itemnumber, $frombranch, $tobranch); + #update holdingbranch in items ..... + $sth= $dbh->prepare( + "UPDATE items set holdingbranch = ? WHERE items.itemnumber = ?"); + $sth->execute($tobranch,$itemnumber); + &ModDateLastSeen($itemnumber); + $sth = $dbh->prepare( + "SELECT biblionumber FROM items WHERE itemnumber=?" + ); + $sth->execute($itemnumber); + while ( my ( $biblionumber ) = $sth->fetchrow ) { + &ModItemInMarconefield( $biblionumber, $itemnumber, + 'items.holdingbranch', $tobranch ); + } + return; +} + +##New sub to dotransfer in marc tables as well. Not exported -TG 10/04/2006 +# sub domarctransfer { +# my ( $dbh, $itemnumber ) = @_; +# $itemnumber =~ s /\'//g; ##itemnumber seems to come with quotes-TG +# my $sth = +# $dbh->prepare( +# "select biblionumber,holdingbranch from items where itemnumber=$itemnumber" +# ); +# $sth->execute(); +# while ( my ( $biblionumber, $holdingbranch ) = $sth->fetchrow ) { +# &ModItemInMarconefield( $biblionumber, $itemnumber, +# 'items.holdingbranch', $holdingbranch ); +# } +# return; +# } =head2 ModBiblioframework =over @@ -760,7 +802,7 @@ sub GetItemsInfo { if ( $datedue eq '' ) { #$datedue="Available"; my ( $restype, $reserves ) = - CheckReserves( $data->{'itemnumber'} ); + C4::Reserves::CheckReserves( $data->{'itemnumber'} ); if ($restype) { #$datedue=$restype; @@ -3649,6 +3691,9 @@ Joshua Ferraro jmf@liblime.com # $Id$ # $Log$ +# Revision 1.199 2007/04/24 09:07:53 tipaul +# moving dotransfer to Biblio.pm::ModItemTransfer + some CheckReserves fixes +# # Revision 1.198 2007/04/23 15:21:17 tipaul # renaming currenttransfers to transferstoreceive # diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 71d3c22d7f..3c0e716d42 100755 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -47,7 +47,7 @@ $VERSION = do { my @v = '$Revision$' =~ /\d+/g; shift(@v).".".join( "_", map { s =head1 NAME -C4::Circulation::Circ2 - Koha circulation module +C4::Circulation - Koha circulation module =head1 SYNOPSIS @@ -98,11 +98,6 @@ push @EXPORT, qw( &DeleteTransfer ); -# subs to remove -push @EXPORT, qw( - &dotransfer -); - # FIXME - At least, I'm pretty sure this is for decoding CueCat stuff. # FIXME From Paul : i don't understand what this sub does & why it has to be called on every circ. Speak of this with chris maybe ? @@ -274,7 +269,7 @@ sub transferbook { #actually do the transfer.... if ($dotransfer) { - dotransfer( $itemnumber, $fbr, $tbr ); + ModItemTransfer( $itemnumber, $fbr, $tbr ); # don't need to update MARC anymore, we do it in batch now $messages->{'WasTransfered'} = 1; @@ -282,44 +277,6 @@ sub transferbook { return ( $dotransfer, $messages, $biblio ); } -sub dotransfer { - my ( $itm, $fbr, $tbr ) = @_; - - my $dbh = C4::Context->dbh; - $itm = $dbh->quote($itm); - $fbr = $dbh->quote($fbr); - $tbr = $dbh->quote($tbr); - - #new entry in branchtransfers.... - $dbh->do( -"INSERT INTO branchtransfers (itemnumber, frombranch, datesent, tobranch) - VALUES ($itm, $fbr, now(), $tbr)" - ); - - #update holdingbranch in items ..... - $dbh->do( - "UPDATE items set holdingbranch = $tbr WHERE items.itemnumber = $itm"); - &ModDateLastSeen($itm); - &domarctransfer( $dbh, $itm ); - return; -} - -##New sub to dotransfer in marc tables as well. Not exported -TG 10/04/2006 -sub domarctransfer { - my ( $dbh, $itemnumber ) = @_; - $itemnumber =~ s /\'//g; ##itemnumber seems to come with quotes-TG - my $sth = - $dbh->prepare( - "select biblionumber,holdingbranch from items where itemnumber=$itemnumber" - ); - $sth->execute(); - while ( my ( $biblionumber, $holdingbranch ) = $sth->fetchrow ) { - &ModItemInMarconefield( $biblionumber, $itemnumber, - 'items.holdingbranch', $holdingbranch ); - } - return; -} - =head2 CanBookBeIssued Check if a book can be issued. @@ -1324,7 +1281,7 @@ sub AddReturn { if ( ($iteminformation->{'holdingbranch'} ne $iteminformation->{'homebranch'}) and not $messages->{'WrongTransfer'} and ($validTransfert ne 1) and ($reserveDone ne 1) ){ if (C4::Context->preference("AutomaticItemReturn") == 1) { - dotransfer($iteminformation->{'itemnumber'}, C4::Context->userenv->{'branch'}, $iteminformation->{'homebranch'}); + ModItemTransfer($iteminformation->{'itemnumber'}, C4::Context->userenv->{'branch'}, $iteminformation->{'homebranch'}); $messages->{'WasTransfered'} = 1; warn "was transfered"; } @@ -1989,7 +1946,7 @@ sub updateWrongTransfer { $sth->finish; # second step create a new line of branchtransfer to the right location . - dotransfer($itemNumber, $FromLibrary, $waitingAtLibrary); + ModItemTransfer($itemNumber, $FromLibrary, $waitingAtLibrary); #third step changing holdingbranch of item UpdateHoldingbranch($FromLibrary,$itemNumber); diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 20292deb46..aab6bc8e13 100755 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -129,7 +129,7 @@ sub OtherReserves { ); #launch the subroutine dotransfer - C4::Circulation::dotransfer( + C4::Circulation::ModItemTransfer( $itemnumber, $iteminfo->{'holdingbranch'}, $checkreserves->{'branchcode'} diff --git a/circ/transferstodo.pl b/circ/transferstodo.pl index bb2f8e0882..c34b6d6343 100755 --- a/circ/transferstodo.pl +++ b/circ/transferstodo.pl @@ -65,7 +65,7 @@ my $tbr = $input->param('tbr'); # If we have a return of the form dotransfer, we launch the subroutine dotransfer if ($item) { - C4::Circulation::Circ2::dotransfer( $item, $fbr, $tbr ); + C4::Circulation::Circ2::ModItemTransfer( $item, $fbr, $tbr ); } # get the all the branches for reference diff --git a/circ/waitingreserves.pl b/circ/waitingreserves.pl index 028f82dae7..5c85937628 100755 --- a/circ/waitingreserves.pl +++ b/circ/waitingreserves.pl @@ -104,7 +104,7 @@ if ($item) { # if the document is not in his homebranch location and there is not reservation after, we transfer it if ( ( $fbr ne $tbr ) and ( not $nextreservinfo ) ) { - dotransfer( $item, $fbr, $tbr ); + ModItemTransfer( $item, $fbr, $tbr ); } } diff --git a/members/moremember.pl b/members/moremember.pl index 5dd6112004..5bb1376fc5 100755 --- a/members/moremember.pl +++ b/members/moremember.pl @@ -47,6 +47,7 @@ use C4::Circulation; use C4::Koha; use C4::Letters; use C4::Biblio; +use C4::Reserves; use C4::Branch; # GetBranchName my $dbh = C4::Context->dbh; -- 2.39.5