If you click Submit on the staff home page without entering a cardnumber, you will find these warnings in the log: Problem = a value of override_high_holds has been passed to param without key at /usr/share/koha/masterclone/C4/Templates.pm line 137. Problem = a value of nopermission has been passed to param without key at /usr/share/koha/masterclone/C4/Templates.pm line 137. Use of uninitialized value $val in concatenation (.) or string at /usr/share/koha/masterclone/C4/Templates.pm line 137. Problem = a value of has been passed to param without key at /usr/share/koha/masterclone/C4/Templates.pm line 137. Cause is this call to $template->param: $template->param( CircAutocompl => C4::Context->preference("CircAutocompl"), debarments => GetDebarments({ borrowernumber => $borrowernumber }), todaysdate => output_pref( { dt => dt_from_string()->set(hour => 23)->set(minute => 59), dateformat => 'sql' } ), has_modifications => $has_modifications, override_high_holds => $override_high_holds, nopermission => scalar $query->param('nopermission'), In this specific case GetDebarments returns undef in list context (empty list), so all items in the list shift one place. Either we should force GetDebarments to return []; or we force scalar context in a construction like this. Note: The calls in memberentry.pl and moremember.pl are not affected.
Created attachment 68288 [details] [review] Bug 19493: Remove few warnings from circulation.pl If you click Submit on the staff home page without entering a cardnumber, you will find these warnings in the log: Problem = a value of override_high_holds has been passed to param without key at /usr/share/koha/masterclone/C4/Templates.pm line 137. Problem = a value of nopermission has been passed to param without key at /usr/share/koha/masterclone/C4/Templates.pm line 137. Use of uninitialized value $val in concatenation (.) or string at /usr/share/koha/masterclone/C4/Templates.pm line 137. Problem = a value of has been passed to param without key at /usr/share/koha/masterclone/C4/Templates.pm line 137. Cause is this call to $template->param: $template->param( CircAutocompl => C4::Context->preference("CircAutocompl"), debarments => GetDebarments({ borrowernumber => $borrowernumber }), todaysdate => output_pref( { dt => dt_from_string()->set(hour => 23)->set(minute => 59), dateformat => 'sql' } ), has_modifications => $has_modifications, override_high_holds => $override_high_holds, nopermission => scalar $query->param('nopermission'), In this specific case GetDebarments returns undef in list context (empty list), so all items in the list shift one place. Either we should force GetDebarments to return []; or we force scalar context in a construction like this. This patch does the last thing. Note: The calls in memberentry.pl and moremember.pl are not affected. Test plan: [1] Do not apply. Click Submit without cardnumber. Check the log. [2] Apply. Click Submit again without cardnumber. Check log. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Moving to SO: super trivial.
Created attachment 68599 [details] [review] Bug 19493: Remove few warnings from circulation.pl If you click Submit on the staff home page without entering a cardnumber, you will find these warnings in the log: Problem = a value of override_high_holds has been passed to param without key at /usr/share/koha/masterclone/C4/Templates.pm line 137. Problem = a value of nopermission has been passed to param without key at /usr/share/koha/masterclone/C4/Templates.pm line 137. Use of uninitialized value $val in concatenation (.) or string at /usr/share/koha/masterclone/C4/Templates.pm line 137. Problem = a value of has been passed to param without key at /usr/share/koha/masterclone/C4/Templates.pm line 137. Cause is this call to $template->param: $template->param( CircAutocompl => C4::Context->preference("CircAutocompl"), debarments => GetDebarments({ borrowernumber => $borrowernumber }), todaysdate => output_pref( { dt => dt_from_string()->set(hour => 23)->set(minute => 59), dateformat => 'sql' } ), has_modifications => $has_modifications, override_high_holds => $override_high_holds, nopermission => scalar $query->param('nopermission'), In this specific case GetDebarments returns undef in list context (empty list), so all items in the list shift one place. Either we should force GetDebarments to return []; or we force scalar context in a construction like this. This patch does the last thing. Note: The calls in memberentry.pl and moremember.pl are not affected. Test plan: [1] Do not apply. Click Submit without cardnumber. Check the log. [2] Apply. Click Submit again without cardnumber. Check log. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Created attachment 68755 [details] [review] Bug 19493: Force scalar context to prevent future error If someone decide the reuse the template->param statement to pass values to the template, we will get the same issue.
Pushed to master for 17.11, thanks to everybody involved!