Bug 15253: Add Koha::Logger based logging for SIP2
[koha.git] / C4 / SIP / ILS / Transaction / RenewAll.pm
blobdeefe07bc82f5df48838f4e36e8ff07d2c7e373d
2 # RenewAll: class to manage status of "Renew All" transaction
4 package C4::SIP::ILS::Transaction::RenewAll;
6 use strict;
7 use warnings;
9 use C4::SIP::Sip qw(syslog);
11 use C4::SIP::ILS::Item;
13 use Koha::Patrons;
15 use parent qw(C4::SIP::ILS::Transaction::Renew);
17 my %fields = (
18 renewed => [],
19 unrenewed => [],
22 sub new {
23 my $class = shift;
24 my $self = $class->SUPER::new();
26 foreach my $element ( keys %fields ) {
27 $self->{_permitted}->{$element} = $fields{$element};
30 @{$self}{ keys %fields } = values %fields;
31 return bless $self, $class;
34 sub do_renew_all {
35 my $self = shift;
36 my $patron = $self->{patron}; # SIP's patron
37 my $borrower = Koha::Patrons->find( { cardnumber => $patron->id } )->unblessed; # Koha's patron
38 my $all_ok = 1;
39 $self->{renewed} = [];
40 $self->{unrenewed} = [];
41 foreach my $itemx ( @{ $patron->{items} } ) {
42 my $item_id = $itemx->{barcode};
43 my $item = C4::SIP::ILS::Item->new($item_id);
44 if ( !defined($item) ) {
45 syslog(
46 'LOG_WARNING',
47 q|renew_all: Invalid item id '%s' associated with patron '%s'|,
48 $item_id,
49 $patron->id
52 # $all_ok = 0; Do net set as still ok
53 push @{ $self->unrenewed }, $item_id;
54 next;
56 $self->{item} = $item;
57 $self->do_renew_for($borrower);
58 if ( $self->renewal_ok ) {
59 $item->{due_date} = $self->{due};
60 push @{ $self->{renewed} }, $item_id;
62 else {
63 push @{ $self->{unrenewed} }, $item_id;
65 $self->screen_msg(q{}); # clear indiv message
67 $self->ok($all_ok);
68 return $self;