$ctx->{copy_barcode} = $ctx->{barcode};
$ctx->{fetch_patron_circ_info} = 1;
- my @evts = OpenILS::Application::Circ::ScriptBuilder->build($ctx);
+ OpenILS::Application::Circ::ScriptBuilder->build($ctx);
+ my @evts = @{$ctx->{_events}} if $ctx->{_events};
if(!$params{noncat}) {
if( @evts and grep { $_->{textcode} eq 'ASSET_COPY_NOT_FOUND' } @evts) {
}
}
+ warn "PRECAT = TRUE\n" if $ctx->{precat};
+
_build_circ_script_runner($ctx);
return ($ctx);
#}
#
#
-#sub _find_copy_by_attr {
-# my %params = @_;
-# $U->logmark;
-# my $evt;
-#
-# my $copy = $params{copy} || undef;
-#
-# if(!$copy) {
-#
-# ( $copy, $evt ) =
-# $U->fetch_copy($params{copyid}) if $params{copyid};
-# return (undef,$evt) if $evt;
-#
-# if(!$copy) {
-# ( $copy, $evt ) =
-# $U->fetch_copy_by_barcode( $params{barcode} ) if $params{barcode};
-# return (undef,$evt) if $evt;
-# }
-# }
-# return ( $copy, $evt );
-#}
+sub _find_copy_by_attr {
+ my %params = @_;
+ $U->logmark;
+ my $evt;
+
+ my $copy = $params{copy} || undef;
+
+ if(!$copy) {
+
+ ( $copy, $evt ) =
+ $U->fetch_copy($params{copyid}) if $params{copyid};
+ return (undef,$evt) if $evt;
+
+ if(!$copy) {
+ ( $copy, $evt ) =
+ $U->fetch_copy_by_barcode( $params{barcode} ) if $params{barcode};
+ return (undef,$evt) if $evt;
+ }
+ }
+ return ( $copy, $evt );
+}
+
#
#sub _ctx_add_copy_objects {
# my($ctx, %params) = @_;
if( $override ) {
$evt = override_events($requestor, $requestor->ws_ou,
- $events, $authtoken, $ctx->{copy}->id, $client);
+ $events, $authtoken, $client);
return $evt if $evt;
+ return OpenILS::Event->new(
+ 'ITEM_NOT_CATALOGED', payload => $ctx->{permit_key}) if $ctx->{precat};
return OpenILS::Event->new('SUCCESS', payload => $ctx->{permit_key} );
}
sub override_events {
- my( $requestor, $org, $events, $authtoken, $copyid, $conn ) = @_;
+ my( $requestor, $org, $events, $authtoken, $conn ) = @_;
$events = [ $events ] unless ref($events) eq 'ARRAY';
my @failed;
my @allevents;
push( @allevents, OpenILS::Event->new($_)) for @evts_so_far;
+
return \@allevents if @allevents;
+ if($ctx->{precat}) {
+ warn "Item is precat in checkout permit\n";
+ $logger->debug("Exiting circ permit early because copy is pre-cataloged");
+ #push( @allevents, OpenILS::Event->new('ITEM_NOT_CATALOGED', payload => $key));
+ return OpenILS::Event->new('ITEM_NOT_CATALOGED', payload => $key);
+ }
if( $ctx->{noncat} ) {
$logger->debug("Exiting circ permit early because item is a non-cataloged item");
return OpenILS::Event->new('SUCCESS', payload => $key);
}
- if($ctx->{precat}) {
- $logger->debug("Exiting circ permit early because copy is pre-cataloged");
- return OpenILS::Event->new('ITEM_NOT_CATALOGED', payload => $key);
- }
if($ctx->{ishold}) {
$logger->debug("Exiting circ permit early because request is for hold patron permit");