Bug 33838

Summary: Offline circulation interface error on return
Product: Koha Reporter: Andrew Fuerste-Henry <andrew>
Component: CirculationAssignee: Kyle M Hall (khall) <kyle>
Status: RESOLVED FIXED QA Contact: Katrin Fischer <katrin.fischer>
Severity: normal    
Priority: P5 - low CC: gmcharlt, kyle.m.hall, kyle
Version: Main   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: Trivial patch
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
23.05.00,22.11.07
Circulation function:
Bug Depends on:    
Bug Blocks: 17506    
Attachments: check in item 3999900000001
Bug 33838: Don't reset the renewal count
Bug 33838: Don't reset the renewal count
Bug 33838: Don't reset the renewal count
Bug 33838: Don't reset the renewal count
Bug 33838: Don't reset the renewal count

Description Andrew Fuerste-Henry 2023-05-25 15:57:41 UTC
Created attachment 151700 [details]
check in item 3999900000001

The offline circ tool is behaving oddly when processing a return. The attached KOC file is just a return of barcode 3999900000001. To see the error:

1 - check item 3999900000001 out to a patron
2 - upload the attached KOC file
3 - navigate the Pending Offline Circ actions, see your return is listed
4 - click the checkbox to select your return
5 - click Process once. Nothing appears to happen
6 - in a new tab, pull up the bib for item 3999900000001, see that it has been checked in
7 - back on your Offline Circ tab, click Process a second time
8 - Koha tells you the item is not checked out
Comment 1 Kyle M Hall (khall) 2023-05-25 16:36:11 UTC
==> /var/log/koha/kohadev/plack-error.log <==
The method Koha::Item->renewals_count is not covered by tests!

Trace begun at /kohadevbox/koha/Koha/Object.pm line 925
Koha::Object::AUTOLOAD('Koha::Item=HASH(0x55e8cd9673b8)', 0) called at /kohadevbox/koha/C4/Circulation.pm line 4082
C4::Circulation::ProcessOfflineReturn('HASH(0x55e8cd676940)') called at /kohadevbox/koha/C4/Circulation.pm line 4054
C4::Circulation::ProcessOfflineOperation('HASH(0x55e8cd676940)') called at /kohadevbox/koha/offline_circ/process.pl line 42
eval {...} at /kohadevbox/koha/offline_circ/process.pl line 2
CGI::Compile::ROOT::kohadevbox_koha_offline_circ_process_2epl::__ANON__('CGI::Compile=HASH(0x55e8cda1f970)', '', '/kohadevbox/koha/offline_circ/process.pl', '/kohadevbox/koha/offline_circ', 'ARRAY(0x55e8cd836188)') called at /usr/share/perl5/CGI/Compile.pm line 151
CGI::Compile::ROOT::kohadevbox_koha_offline_circ_process_2epl::process_2epl at /usr/share/perl5/CGI/Emulate/PSGI.pm line 30
CGI::Emulate::PSGI::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/App/WrapCGI.pm line 95
Plack::App::WrapCGI::call('Plack::App::WrapCGI=HASH(0x55e8cd79c308)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/App/CGIBin.pm line 50
Plack::App::CGIBin::serve_path('Plack::App::CGIBin=HASH(0x55e8c368b7f0)', 'HASH(0x55e8ce1266c8)', '/kohadevbox/koha/offline_circ/process.pl') called at /usr/share/perl5/Plack/App/File.pm line 34
Plack::App::File::call('Plack::App::CGIBin=HASH(0x55e8c368b7f0)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Middleware/LogWarn.pm line 22
Plack::Middleware::LogWarn::call('Plack::Middleware::LogWarn=HASH(0x55e8cd778bc0)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Middleware/Log4perl.pm line 30
Plack::Middleware::Log4perl::call('Plack::Middleware::Log4perl=HASH(0x55e8cd778ff8)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Middleware/HTTPExceptions.pm line 20
Plack::Middleware::HTTPExceptions::try {...}  at /usr/share/perl5/Try/Tiny.pm line 100
eval {...} at /usr/share/perl5/Try/Tiny.pm line 93
Try::Tiny::try('CODE(0x55e8cda1c718)', 'Try::Tiny::Catch=REF(0x55e8cda986f0)') called at /usr/share/perl5/Plack/Middleware/HTTPExceptions.pm line 23
Plack::Middleware::HTTPExceptions::call('Plack::Middleware::HTTPExceptions=HASH(0x55e8cd778d58)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Middleware/ErrorDocument.pm line 15
Plack::Middleware::ErrorDocument::call('Plack::Middleware::ErrorDocument=HASH(0x55e8cd768138)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/App/URLMap.pm line 71
Plack::App::URLMap::call('Plack::App::URLMap=HASH(0x55e8cc324538)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /kohadevbox/koha/Koha/Middleware/RealIP.pm line 64
Koha::Middleware::RealIP::call('Koha::Middleware::RealIP=HASH(0x55e8cd7678f8)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /kohadevbox/koha/Koha/Middleware/SetEnv.pm line 105
Koha::Middleware::SetEnv::call('Koha::Middleware::SetEnv=HASH(0x55e8cda15358)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Middleware/Static.pm line 18
Plack::Middleware::Static::call('Plack::Middleware::Static=HASH(0x55e8cd7681c8)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Middleware/ReverseProxy.pm line 68
Plack::Middleware::ReverseProxy::call('Plack::Middleware::ReverseProxy=HASH(0x55e8cd768270)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Middleware/Lint.pm line 24
Plack::Middleware::Lint::call('Plack::Middleware::Lint=HASH(0x55e8c368b5c8)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Middleware/StackTrace.pm line 38
Plack::Middleware::StackTrace::try {...}  at /usr/share/perl5/Try/Tiny.pm line 100
eval {...} at /usr/share/perl5/Try/Tiny.pm line 93
Try::Tiny::try('CODE(0x55e8cd836008)', 'Try::Tiny::Catch=REF(0x55e8cdc0ca70)') called at /usr/share/perl5/Plack/Middleware/StackTrace.pm line 42
Plack::Middleware::StackTrace::call('Plack::Middleware::StackTrace=HASH(0x55e8cc313ab8)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Middleware/AccessLog.pm line 27
Plack::Middleware::AccessLog::call('Plack::Middleware::AccessLog=HASH(0x55e8cc308eb0)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Util.pm line 145
eval {...} at /usr/share/perl5/Plack/Util.pm line 145
Plack::Util::run_app('CODE(0x55e8cc308d00)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Starman/Server.pm line 195
Starman::Server::dispatch_request('Starman::Server=HASH(0x55e8c30aaa38)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Starman/Server.pm line 298
Starman::Server::process_request('Starman::Server=HASH(0x55e8c30aaa38)', 'Net::Server::Proto::UNIX=GLOB(0x55e8cd97af18)') called at /usr/share/perl5/Net/Server.pm line 72
Net::Server::run_client_connection('Starman::Server=HASH(0x55e8c30aaa38)') called at /usr/share/perl5/Net/Server/PreFork.pm line 225
eval {...} at /usr/share/perl5/Net/Server/PreFork.pm line 225
Net::Server::PreFork::run_child('Starman::Server=HASH(0x55e8c30aaa38)') called at /usr/share/perl5/Net/Server/PreFork.pm line 183
Net::Server::PreFork::run_n_children('Starman::Server=HASH(0x55e8c30aaa38)', 2) called at /usr/share/perl5/Net/Server/PreFork.pm line 107
Net::Server::PreFork::loop('Starman::Server=HASH(0x55e8c30aaa38)') called at /usr/share/perl5/Net/Server.pm line 58
Net::Server::run('Starman::Server=HASH(0x55e8c30aaa38)', 'port', 'ARRAY(0x55e8c36357f8)', 'host', '*', 'proto', 'tcp', 'serialize', 'none', 'min_servers', 2, 'min_spare_servers', 1, 'max_spare_servers', 1, 'max_servers', 2, 'max_requests', 50, 'user', 'kohadev-koha', 'group', 'kohadev-koha', 'listen', 1024, 'check_for_waiting', 1, 'no_client_stdout', 1, 'setsid', 1, 'log_file', '/var/log/koha/kohadev/plack-error.log', 'background', 1, 'pid_file', '/var/run/koha/kohadev/plack.pid') called at /usr/share/perl5/Starman/Server.pm line 106
Starman::Server::run('Starman::Server=HASH(0x55e8c30aaa38)', 'CODE(0x55e8c30aa8e8)', 'HASH(0x55e8c30aa690)') called at /usr/share/perl5/Plack/Handler/Starman.pm line 25
Plack::Handler::Starman::run('Plack::Handler::Starman=HASH(0x55e8c30aa900)', 'CODE(0x55e8c30aa8e8)') called at /usr/share/perl5/Plack/Loader/Delayed.pm line 20
Plack::Loader::Delayed::run('Plack::Loader::Delayed=HASH(0x55e8c2df7d48)', 'Plack::Handler::Starman=HASH(0x55e8c30aa900)') called at /usr/share/perl5/Plack/Runner.pm line 279
Plack::Runner::run('Plack::Runner=HASH(0x55e8c2d94a68)') called at /usr/bin/starman line 38
 at /usr/share/perl5/Exception/Class/Base.pm line 88
	Exception::Class::Base::throw('Koha::Exceptions::Object::MethodNotCoveredByTests', 'error', 'The method Koha::Item->renewals_count is not covered by tests!', 'show_trace', 1) called at /kohadevbox/koha/Koha/Object.pm line 925
	Koha::Object::AUTOLOAD('Koha::Item=HASH(0x55e8cd9673b8)', 0) called at /kohadevbox/koha/C4/Circulation.pm line 4082
	C4::Circulation::ProcessOfflineReturn('HASH(0x55e8cd676940)') called at /kohadevbox/koha/C4/Circulation.pm line 4054
	C4::Circulation::ProcessOfflineOperation('HASH(0x55e8cd676940)') called at /kohadevbox/koha/offline_circ/process.pl line 42
	eval {...} at /kohadevbox/koha/offline_circ/process.pl line 2
	CGI::Compile::ROOT::kohadevbox_koha_offline_circ_process_2epl::__ANON__('CGI::Compile=HASH(0x55e8cda1f970)', '', '/kohadevbox/koha/offline_circ/process.pl', '/kohadevbox/koha/offline_circ', 'ARRAY(0x55e8cd836188)') called at /usr/share/perl5/CGI/Compile.pm line 151
	CGI::Compile::ROOT::kohadevbox_koha_offline_circ_process_2epl::process_2epl at /usr/share/perl5/CGI/Emulate/PSGI.pm line 30
	CGI::Emulate::PSGI::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/App/WrapCGI.pm line 95
	Plack::App::WrapCGI::call('Plack::App::WrapCGI=HASH(0x55e8cd79c308)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/App/CGIBin.pm line 50
	Plack::App::CGIBin::serve_path('Plack::App::CGIBin=HASH(0x55e8c368b7f0)', 'HASH(0x55e8ce1266c8)', '/kohadevbox/koha/offline_circ/process.pl') called at /usr/share/perl5/Plack/App/File.pm line 34
	Plack::App::File::call('Plack::App::CGIBin=HASH(0x55e8c368b7f0)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Middleware/LogWarn.pm line 22
	Plack::Middleware::LogWarn::call('Plack::Middleware::LogWarn=HASH(0x55e8cd778bc0)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Middleware/Log4perl.pm line 30
	Plack::Middleware::Log4perl::call('Plack::Middleware::Log4perl=HASH(0x55e8cd778ff8)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Middleware/HTTPExceptions.pm line 20
	Plack::Middleware::HTTPExceptions::try {...}  at /usr/share/perl5/Try/Tiny.pm line 100
	eval {...} at /usr/share/perl5/Try/Tiny.pm line 93
	Try::Tiny::try('CODE(0x55e8cda1c718)', 'Try::Tiny::Catch=REF(0x55e8cda986f0)') called at /usr/share/perl5/Plack/Middleware/HTTPExceptions.pm line 23
	Plack::Middleware::HTTPExceptions::call('Plack::Middleware::HTTPExceptions=HASH(0x55e8cd778d58)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Middleware/ErrorDocument.pm line 15
	Plack::Middleware::ErrorDocument::call('Plack::Middleware::ErrorDocument=HASH(0x55e8cd768138)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/App/URLMap.pm line 71
	Plack::App::URLMap::call('Plack::App::URLMap=HASH(0x55e8cc324538)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /kohadevbox/koha/Koha/Middleware/RealIP.pm line 64
	Koha::Middleware::RealIP::call('Koha::Middleware::RealIP=HASH(0x55e8cd7678f8)', 'HASH(0x55e8ce1266c8)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8ce1266c8)') called at /kohadevbox/koha/Koha/Middleware/SetEnv.pm line 105
	Koha::Middleware::SetEnv::call('Koha::Middleware::SetEnv=HASH(0x55e8cda15358)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Middleware/Static.pm line 18
	Plack::Middleware::Static::call('Plack::Middleware::Static=HASH(0x55e8cd7681c8)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Middleware/ReverseProxy.pm line 68
	Plack::Middleware::ReverseProxy::call('Plack::Middleware::ReverseProxy=HASH(0x55e8cd768270)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Middleware/Lint.pm line 24
	Plack::Middleware::Lint::call('Plack::Middleware::Lint=HASH(0x55e8c368b5c8)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Middleware::StackTrace::try {...}  at /usr/share/perl5/Try/Tiny.pm line 100
	eval {...} at /usr/share/perl5/Try/Tiny.pm line 93
	Plack::Middleware::StackTrace::call('Plack::Middleware::StackTrace=HASH(0x55e8cc313ab8)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Middleware/AccessLog.pm line 27
	Plack::Middleware::AccessLog::call('Plack::Middleware::AccessLog=HASH(0x55e8cc308eb0)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Component.pm line 50
	Plack::Component::__ANON__('HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Plack/Util.pm line 145
	eval {...} at /usr/share/perl5/Plack/Util.pm line 145
	Plack::Util::run_app('CODE(0x55e8cc308d00)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Starman/Server.pm line 195
	Starman::Server::dispatch_request('Starman::Server=HASH(0x55e8c30aaa38)', 'HASH(0x55e8cd9c49b0)') called at /usr/share/perl5/Starman/Server.pm line 298
	Starman::Server::process_request('Starman::Server=HASH(0x55e8c30aaa38)', 'Net::Server::Proto::UNIX=GLOB(0x55e8cd97af18)') called at /usr/share/perl5/Net/Server.pm line 72
	Net::Server::run_client_connection('Starman::Server=HASH(0x55e8c30aaa38)') called at /usr/share/perl5/Net/Server/PreFork.pm line 225
	eval {...} at /usr/share/perl5/Net/Server/PreFork.pm line 225
	Net::Server::PreFork::run_child('Starman::Server=HASH(0x55e8c30aaa38)') called at /usr/share/perl5/Net/Server/PreFork.pm line 183
	Net::Server::PreFork::run_n_children('Starman::Server=HASH(0x55e8c30aaa38)', 2) called at /usr/share/perl5/Net/Server/PreFork.pm line 107
	Net::Server::PreFork::loop('Starman::Server=HASH(0x55e8c30aaa38)') called at /usr/share/perl5/Net/Server.pm line 58
	Net::Server::run('Starman::Server=HASH(0x55e8c30aaa38)', 'port', 'ARRAY(0x55e8c36357f8)', 'host', '*', 'proto', 'tcp', 'serialize', 'none', 'min_servers', 2, 'min_spare_servers', 1, 'max_spare_servers', 1, 'max_servers', 2, 'max_requests', 50, 'user', 'kohadev-koha', 'group', 'kohadev-koha', 'listen', 1024, 'check_for_waiting', 1, 'no_client_stdout', 1, 'setsid', 1, 'log_file', '/var/log/koha/kohadev/plack-error.log', 'background', 1, 'pid_file', '/var/run/koha/kohadev/plack.pid') called at /usr/share/perl5/Starman/Server.pm line 106
	Starman::Server::run('Starman::Server=HASH(0x55e8c30aaa38)', 'CODE(0x55e8c30aa8e8)', 'HASH(0x55e8c30aa690)') called at /usr/share/perl5/Plack/Handler/Starman.pm line 25
	Plack::Handler::Starman::run('Plack::Handler::Starman=HASH(0x55e8c30aa900)', 'CODE(0x55e8c30aa8e8)') called at /usr/share/perl5/Plack/Loader/Delayed.pm line 20
	Plack::Loader::Delayed::run('Plack::Loader::Delayed=HASH(0x55e8c2df7d48)', 'Plack::Handler::Starman=HASH(0x55e8c30aa900)') called at /usr/share/perl5/Plack/Runner.pm line 279
	Plack::Runner::run('Plack::Runner=HASH(0x55e8c2d94a68)') called at /usr/bin/starman line 38
Comment 2 Kyle M Hall (khall) 2023-05-25 16:37:39 UTC
Looks like the RM just needs to update the Schema files in master to fix this!
Comment 3 Kyle M Hall (khall) 2023-05-25 16:40:38 UTC
(In reply to Kyle M Hall from comment #2)
> Looks like the RM just needs to update the Schema files in master to fix
> this!

I have have been mistaken about that.
Comment 4 Kyle M Hall (khall) 2023-05-25 17:02:18 UTC
Created attachment 151704 [details] [review]
Bug 33838: Don't reset the renewal count

I cannot find any justification for this line existing.
MarkIssueReturned does not do this.
Comment 5 Kyle M Hall (khall) 2023-05-25 17:10:07 UTC
Resetting item's renewal count was introduced in bug 5877 with no explanation.
Comment 6 Kyle M Hall (khall) 2023-05-25 17:17:05 UTC
Created attachment 151705 [details] [review]
Bug 33838: Don't reset the renewal count

I cannot find any justification for this line existing.
MarkIssueReturned does not do this.

Resetting item's renewal count was introduced in bug 5877 with no explanation.

Test Plan:
1) Check out item 3999900000001 to a patron
2) Upload the KOC file attached to this bug report
3) Navigate the Pending Offline Circ actions, see your return is listed
4) Click the checkbox to select your return
5) Click Process once. Nothing appears to happen
6) In a new tab, pull up the bib for item 3999900000001, see that it has been checked in
7) Back on your Offline Circ tab, click Process a second time
8) Koha tells you the item is not checked out
9) Apply this patch, restart all the things!
10) Repeat steps 1-4, everything should now work!
Comment 7 Andrew Fuerste-Henry 2023-05-25 17:53:04 UTC
Created attachment 151706 [details] [review]
Bug 33838: Don't reset the renewal count

I cannot find any justification for this line existing.
MarkIssueReturned does not do this.

Resetting item's renewal count was introduced in bug 5877 with no explanation.

Test Plan:
1) Check out item 3999900000001 to a patron
2) Upload the KOC file attached to this bug report
3) Navigate the Pending Offline Circ actions, see your return is listed
4) Click the checkbox to select your return
5) Click Process once. Nothing appears to happen
6) In a new tab, pull up the bib for item 3999900000001, see that it has been checked in
7) Back on your Offline Circ tab, click Process a second time
8) Koha tells you the item is not checked out
9) Apply this patch, restart all the things!
10) Repeat steps 1-4, everything should now work!

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Comment 8 Katrin Fischer 2023-05-29 18:11:50 UTC
Created attachment 151787 [details] [review]
Bug 33838: Don't reset the renewal count

I cannot find any justification for this line existing.
MarkIssueReturned does not do this.

Resetting item's renewal count was introduced in bug 5877 with no explanation.

Test Plan:
1) Check out item 3999900000001 to a patron
2) Upload the KOC file attached to this bug report
3) Navigate the Pending Offline Circ actions, see your return is listed
4) Click the checkbox to select your return
5) Click Process once. Nothing appears to happen
6) In a new tab, pull up the bib for item 3999900000001, see that it has been checked in
7) Back on your Offline Circ tab, click Process a second time
8) Koha tells you the item is not checked out
9) Apply this patch, restart all the things!
10) Repeat steps 1-4, everything should now work!

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Comment 9 Tomás Cohen Arazi (tcohen) 2023-05-30 11:27:30 UTC
Created attachment 151792 [details] [review]
Bug 33838: Don't reset the renewal count

I cannot find any justification for this line existing.
MarkIssueReturned does not do this.

Resetting item's renewal count was introduced in bug 5877 with no explanation.

Test Plan:
1) Check out item 3999900000001 to a patron
2) Upload the KOC file attached to this bug report
3) Navigate the Pending Offline Circ actions, see your return is listed
4) Click the checkbox to select your return
5) Click Process once. Nothing appears to happen
6) In a new tab, pull up the bib for item 3999900000001, see that it has been checked in
7) Back on your Offline Circ tab, click Process a second time
8) Koha tells you the item is not checked out
9) Apply this patch, restart all the things!
10) Repeat steps 1-4, everything should now work!

Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Edit: this line was introduced by bug 30275, by mistake. The
renewals_count attribute belongs to the `issues` table, and I agree it
shouldn't be set to 0 at all as it will (with no reason) make us loose
the value!
Tests pass with and without this change, so this isn't even tested.
Comment 10 Tomás Cohen Arazi (tcohen) 2023-05-30 11:29:30 UTC
Pushed to master for 23.05.

Nice work everyone, thanks!
Comment 11 Matt Blenkinsop 2023-06-08 17:29:12 UTC
Nice work everyone!

Pushed to stable for 22.11.x