$circ->{ 'barcode' } = barcodedecode($circ->{'barcode'}) if( $circ->{'barcode'} && C4::Context->preference('itemBarcodeInputFilter'));
my $branchcode = C4::Context->userenv->{branch};
my $borrower = GetMember( 'cardnumber'=>$circ->{ 'cardnumber' } );
- my $item = GetBiblioFromItemNumber( undef, $circ->{ 'barcode' } );
- my $issue = Koha::Checkouts->find( { itemnumber => $item->{itemnumber} } );
+ my $item = Koha::Items->find({ barcode => $circ->{barcode} });
+ my $issue = Koha::Checkouts->find( { itemnumber => $item->itemnumber } );
+ my $biblio = $item->biblio;
if ( $issue ) { ## Item is currently checked out to another person.
#warn "Item Currently Issued.";
- my $issue = GetOpenIssue( $item->{'itemnumber'} ); # FIXME Hum? That does not make sense, if it's in the issue table, the issue is open (i.e. returndate is null)
+ my $issue = GetOpenIssue( $item->itemnumber ); # FIXME Hum? That does not make sense, if it's in the issue table, the issue is open (i.e. returndate is null)
if ( $issue->{'borrowernumber'} eq $borrower->{'borrowernumber'} ) { ## Issued to this person already, renew it.
#warn "Item issued to this member already, renewing.";
C4::Circulation::AddRenewal(
$issue->{'borrowernumber'}, # borrowernumber
- $item->{'itemnumber'}, # itemnumber
+ $item->itemnumber, # itemnumber
undef, # branch
undef, # datedue - let AddRenewal calculate it automatically
$circ->{'date'}, # issuedate
push @output, {
renew => 1,
- title => $item->{ 'title' },
- biblionumber => $item->{'biblionumber'},
- barcode => $item->{ 'barcode' },
+ title => $biblio->title,
+ biblionumber => $biblio->biblionumber,
+ barcode => $item->barcode,
firstname => $borrower->{ 'firstname' },
surname => $borrower->{ 'surname' },
borrowernumber => $borrower->{'borrowernumber'},
C4::Circulation::AddIssue( $borrower, $circ->{'barcode'}, undef, undef, $circ->{'date'} ) unless ( DEBUG );
push @output, {
issue => 1,
- title => $item->{ 'title' },
- biblionumber => $item->{'biblionumber'},
- barcode => $item->{ 'barcode' },
+ title => $biblio->title,
+ biblionumber => $biblio->biblionumber,
+ barcode => $item->barcode,
firstname => $borrower->{ 'firstname' },
surname => $borrower->{ 'surname' },
borrowernumber => $borrower->{'borrowernumber'},
C4::Circulation::AddIssue( $borrower, $circ->{'barcode'}, undef, undef, $circ->{'date'} ) unless ( DEBUG );
push @output, {
issue => 1,
- title => $item->{ 'title' },
- biblionumber => $item->{'biblionumber'},
- barcode => $item->{ 'barcode' },
+ title => $biblio->title,
+ biblionumber => $biblio->biblionumber,
+ barcode => $item->barcode,
firstname => $borrower->{ 'firstname' },
surname => $borrower->{ 'surname' },
borrowernumber => $borrower->{'borrowernumber'},
sub kocReturnItem {
my ( $circ ) = @_;
$circ->{'barcode'} = barcodedecode($circ->{'barcode'}) if( $circ->{'barcode'} && C4::Context->preference('itemBarcodeInputFilter'));
- my $item = GetBiblioFromItemNumber( undef, $circ->{ 'barcode' } );
- #warn( Data::Dumper->Dump( [ $circ, $item ], [ qw( circ item ) ] ) );
+ my $item = Koha::Items->find({ barcode => $circ->{barcode} });
+ my $biblio = $item->biblio;
my $borrowernumber = _get_borrowernumber_from_barcode( $circ->{'barcode'} );
if ( $borrowernumber ) {
my $borrower = GetMember( 'borrowernumber' => $borrowernumber );
C4::Circulation::MarkIssueReturned(
$borrowernumber,
- $item->{'itemnumber'},
+ $item->itemnumber,
undef,
$circ->{'date'},
$borrower->{'privacy'}
);
- ModItem({ onloan => undef }, $item->{'biblionumber'}, $item->{'itemnumber'});
- ModDateLastSeen( $item->{'itemnumber'} );
+ ModItem({ onloan => undef }, $biblio->biblionumber, $item->itemnumber);
+ ModDateLastSeen( $item->itemnumber );
push @output, {
return => 1,
- title => $item->{ 'title' },
- biblionumber => $item->{'biblionumber'},
- barcode => $item->{ 'barcode' },
+ title => $biblio->title,
+ biblionumber => $biblio->biblionumber,
+ barcode => $item->barcode,
borrowernumber => $borrower->{'borrowernumber'},
firstname => $borrower->{'firstname'},
surname => $borrower->{'surname'},
return unless $barcode;
- my $item = GetBiblioFromItemNumber( undef, $barcode );
- return unless $item->{'itemnumber'};
+ my $item = Koha::Items->find({ barcode => $barcode });
+ return unless $item;
- my $issue = Koha::Checkouts->find( { itemnumber => $item->{itemnumber} } );
+ my $issue = Koha::Checkouts->find( { itemnumber => $item->itemnumber } );
return unless $issue;
return $issue->borrowernumber;
}