Browse Source

Bug 19771: Fix crashing in pending offline circulation actions list

When the barcode is empty or invalid, an "Internal Server Error"
is triggered on the kohadev box.

0) back up your database if you care about it.
1) Run the following commands:
    git checkout master
    git pull
    git checkout -b bug_19771 origin/master
    git bz apply 19771
   -- This should be quite uneventful. Standard promptings.
2) Continue to run the following commands:
    git checkout master
    sudo koha-shell -c bash kohadev
    ./misc/cronjobs/ --sqlite3
   -- This will create a borrowers.db in your current directory.
3) On the host where you intend on running the koct install it.
      download and install.
4) get the borrowers.db file to your host where you installed koct
5) point koct at the file you downloaded
   Database -> Select Borrowers DB File
6) Create a .koc file with the following transactions.
    check in, check out, check in (bad barcode),
    pay fines (any non-zero amount).
7) Run the following commands:
   -- we want to make sure caching for plack isn't in the way.
8) In the staff client: Home -> Circulation
    -> Upload offline circulation file (.koc)
9) Choose the file created and click 'Upload file'.
10) Add to offline circulation queue.
11) View pending offline circulation actions
    -- This should die. Reading /var/log/koha/kohadev/plack-error.log
       should be the same error as comment #0.
       However, this was only the bad biblio error.
12) Run the following commands:
    git checkout bug_19771
13) Refresh staff client page.
    -- it should all come up.
14) Select the bad biblio line, and delete it.
15) Run the following commands:
    git checkout master
16) Refresh the staff client page.
    -- it should die. Same error as comment #0.
       This confirms the fine payment issue.
17) Run the following commands
    git checkout bug_19771
18) Refresh the staff client page.
    -- it should all come up.
19) run the koha qa test tools
20) if you backed up your database, restore it. :)

Signed-off-by: Mark Tompsett <>

Signed-off-by: Nick Clemens <>

Signed-off-by: Jonathan Druart <>
Josef Moravec 5 years ago
committed by Jonathan Druart
  1. 10


@ -46,10 +46,12 @@ my ($template, $loggedinuser, $cookie) = get_template_and_user({
my $operations = GetOfflineOperations;
for (@$operations) {
my $item = Koha::Items->find({ barcode => $_->{barcode} });
my $biblio = $item->biblio;
$_->{'bibliotitle'} = $biblio->title;
$_->{'biblionumber'} = $biblio->biblionumber;
my $item = $_->{barcode} ? Koha::Items->find({ barcode => $_->{barcode} }) : undef;
if ($item) {
my $biblio = $item->biblio;
$_->{'bibliotitle'} = $biblio->title;
$_->{'biblionumber'} = $biblio->biblionumber;
my $patron = $_->{cardnumber} ? Koha::Patrons->find( { cardnumber => $_->{cardnumber} } ) : undef;
if ($patron) {
$_->{'borrowernumber'} = $patron->borrowernumber;