From 560be4f577baed156a2e1e4d05f316f15f4f40d2 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Wed, 13 Jul 2022 14:31:09 +0000 Subject: [PATCH] Bug 12225: Use ProcessOfflineIssue --- C4/Circulation.pm | 1 + C4/SIP/ILS/Transaction/Checkout.pm | 27 +++++++++++++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index a10503385f2..6e89b75a019 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -124,6 +124,7 @@ BEGIN { DeleteOfflineOperation ProcessOfflineOperation ProcessOfflinePayment + ProcessOfflineIssue ); push @EXPORT_OK, '_GetCircControlBranch'; # This is wrong! } diff --git a/C4/SIP/ILS/Transaction/Checkout.pm b/C4/SIP/ILS/Transaction/Checkout.pm index c1c1e18eeb4..91bd0bf30b0 100644 --- a/C4/SIP/ILS/Transaction/Checkout.pm +++ b/C4/SIP/ILS/Transaction/Checkout.pm @@ -15,7 +15,7 @@ use CGI qw ( -utf8 ); use C4::SIP::ILS::Transaction; use C4::Context; -use C4::Circulation qw( AddIssue GetIssuingCharges CanBookBeIssued ); +use C4::Circulation qw( AddIssue GetIssuingCharges CanBookBeIssued ProcessOfflineIssue ); use C4::Members; use Koha::DateUtils qw( dt_from_string ); @@ -58,8 +58,7 @@ sub do_checkout { my $minute = substr($no_block_due_date,14,2); my $second = substr($no_block_due_date,16,2); - my $iso = "$year-$month-$day $hour:$minute:$second"; - $no_block_due_date = dt_from_string( $iso, "iso" ); + $no_block_due_date = "$year-$month-$day $hour:$minute:$second 000"; } my $noerror=1; # If set to zero we block the issue @@ -127,19 +126,23 @@ sub do_checkout { } } - if ( $no_block_due_date ) { - $overridden_duedate = $no_block_due_date; - $noerror = 1; - } - - unless ($noerror) { + if ( $noerror == 0 && !$no_block_due_date ) { $self->ok(0); return $self; } - # can issue - my $issue = AddIssue( $patron->unblessed, $barcode, $overridden_duedate, 0 ); - $self->{due} = $self->duedatefromissue($issue, $itemnumber); + if ( $no_block_due_date ) { + $overridden_duedate = $no_block_due_date; + ProcessOfflineIssue({ + cardnumber => $patron->cardnumber, + barcode => $barcode, + timestamp => $no_block_due_date, + }); + } else { + # can issue + my $issue = AddIssue( $patron->unblessed, $barcode, $overridden_duedate, 0 ); + $self->{due} = $self->duedatefromissue($issue, $itemnumber); + } $self->ok(1); return $self; -- 2.30.2