use Modern::Perl;
use Clone 'clone';
-use File::Basename qw/basename/;
+use File::Basename qw( basename );
+use Encode qw( encode );
+use Mail::Sendmail;
+use Try::Tiny;
+
use Koha::Database;
use Koha::Email;
use Koha::Exceptions::Ill;
-use Koha::Illrequest;
+use Koha::Illcomments;
use Koha::Illrequestattributes;
use Koha::Patron;
-use Mail::Sendmail;
-use Try::Tiny;
use base qw(Koha::Object);
);
}
+=head3 illcomments
+
+=cut
+
+sub illcomments {
+ my ( $self ) = @_;
+ return Koha::Illcomments->_new_from_dbic(
+ scalar $self->_result->illcomments
+ );
+}
+
=head3 patron
=cut
sub available_backends {
my ( $self ) = @_;
- my @backends = $self->_config->available_backends;
- return \@backends;
+ my $backends = $self->_config->available_backends;
+ return $backends;
}
=head3 available_actions
my ( $self, $params ) = @_;
# Establish whether we need to do a generic copyright clearance.
- if ( ( !$params->{stage} || $params->{stage} eq 'init' )
- && C4::Context->preference("ILLModuleCopyrightClearance") ) {
- return {
- error => 0,
- status => '',
- message => '',
- method => 'create',
- stage => 'copyrightclearance',
- value => {
- backend => $self->_backend->name
- }
- };
- } elsif ( defined $params->{stage}
- && $params->{stage} eq 'copyrightclearance' ) {
- $params->{stage} = 'init';
+ if ($params->{opac}) {
+ if ( ( !$params->{stage} || $params->{stage} eq 'init' )
+ && C4::Context->preference("ILLModuleCopyrightClearance") ) {
+ return {
+ error => 0,
+ status => '',
+ message => '',
+ method => 'create',
+ stage => 'copyrightclearance',
+ value => {
+ backend => $self->_backend->name
+ }
+ };
+ } elsif ( defined $params->{stage}
+ && $params->{stage} eq 'copyrightclearance' ) {
+ $params->{stage} = 'init';
+ }
}
-
# First perform API action, then...
my $args = {
request => $self,
|| ""; # "the empty prefix"
}
+=head3 get_type
+
+ my $type = $abstract->get_type();
+
+Return a string representing the material type of this request or undef
+
+=cut
+
+sub get_type {
+ my ($self) = @_;
+ my $attr = $self->illrequestattributes->find({ type => 'type'});
+ return if !$attr;
+ return $attr->value;
+};
+
#### Illrequests Imports
=head3 check_limits
$to =~ s/^\x00//; # Strip leading NULLs
$to =~ s/\x00/; /; # Replace others with '; '
}
- die "No target email addresses found. Either select at least one partner or check your ILL partner library records." if ( !$to );
+ Koha::Exceptions::Ill::NoTargetEmail->throw(
+ "No target email addresses found. Either select at least one partner or check your ILL partner library records.")
+ if ( !$to );
# Create the from, replyto and sender headers
my $from = $branch->branchemail;
my $replyto = $branch->branchreplyto || $from;
- die "Your branch has no email address. Please set it."
- if ( !$from );
+ Koha::Exceptions::Ill::NoLibraryEmail->throw(
+ "Your library has no usable email address. Please set it.")
+ if ( !$from );
+
# Create the email
my $message = Koha::Email->new;
my %mail = $message->create_message_headers(
$object->{capabilities} = $self->capabilities;
}
# Augment the request response with library details if appropriate
- if ( $embed->{branch} ) {
- $object->{branch} = Koha::Libraries->find(
+ if ( $embed->{library} ) {
+ $object->{library} = Koha::Libraries->find(
$self->branchcode
)->TO_JSON;
}
+ # Augment the request response with the number of comments if appropriate
+ if ( $embed->{comments} ) {
+ $object->{comments} = $self->illcomments->count;
+ }
}
return $object;