Browse Source

Add do_renew_all function, necessary for implementation.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
3.0.x
Joe Atzberger (siptest 16 years ago
committed by Joshua Ferraro
parent
commit
9ddb0afc66
  1. 59
      C4/SIP/ILS/Transaction/RenewAll.pm

59
C4/SIP/ILS/Transaction/RenewAll.pm

@ -6,24 +6,59 @@ package ILS::Transaction::RenewAll;
use strict;
use warnings;
our @ISA = qw(ILS::Transaction);
use Sys::Syslog qw(syslog);
use ILS::Item;
use ILS::Transaction::Renew;
use C4::Members; # GetMember
our @ISA = qw(ILS::Transaction::Renew);
my %fields = (
renewed => [],
unrenewed => [],
);
renewed => [],
unrenewed => [],
);
sub new {
my $class = shift;;
my $self = $class->SUPER::new();
my $element;
my $class = shift;
my $self = $class->SUPER::new();
my $element;
foreach $element (keys %fields) {
$self->{_permitted}->{$element} = $fields{$element};
}
foreach $element (keys %fields) {
$self->{_permitted}->{$element} = $fields{$element};
}
@{$self}{keys %fields} = values %fields;
@{$self}{keys %fields} = values %fields;
return bless $self, $class;
}
return bless $self, $class;
sub do_renew_all {
my $self = shift;
my $patron = $self->{patron}; # SIP's patron
my $borrower = GetMember($patron->id, 'cardnumber'); # Koha's patron
my $all_ok = 1;
foreach my $itemx (@{$patron->{items}}) {
my $item_id = $itemx->{barcode};
my $item = new ILS::Item $item_id;
if (!defined($item)) {
syslog("LOG_WARNING",
"renew_all: Invalid item id '%s' associated with patron '%s'",
$item_id, $patron->id);
$all_ok = 0;
next;
}
$self->{item} = $item;
$self->do_renew_for($borrower);
if ($self->ok) {
$item->{due_date} = $self->{due};
push @{$self->renewed }, $item_id;
} else {
push @{$self->unrenewed}, $item_id;
}
}
$self->ok($all_ok);
return $self;
}
1;

Loading…
Cancel
Save