Bug 5578 Followup: Hard Due Dates break hard-coded default circ rule
authorIan Walls <ian.walls@bywatersolutions.com>
Thu, 31 Mar 2011 19:33:17 +0000 (15:33 -0400)
committerChris Cormack <chrisc@catalyst.net.nz>
Thu, 31 Mar 2011 20:10:45 +0000 (09:10 +1300)
If you do not have an applicable circulation rule for a combination of branch,
item type and patron category defined in your Circulation and Fines rules,
the Hard Due Dates development prevents circulation by introducing an error:

Can't call method "output" on an undefined value at /home/magnus/kohahead/C4/Circulation.pm line 2713

This is because the $hardduedate variable is not defined.  Changing the conditional
to check it, rather that it's output, fixes the issue.  That's what this patch does.

Is this the longest commit message for a single line fix?  Maybe.

Signed-off-by: Ian Walls <ian.walls@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
C4/Circulation.pm

index dad54e3..22f9dc6 100644 (file)
@@ -2710,7 +2710,7 @@ sub CalcDateDue {
 
        # if Hard Due Dates are used, retreive them and apply as necessary
         my ($hardduedate, $hardduedatecompare) = GetHardDueDate($borrower->{'categorycode'},$itemtype, $branch);
-       if ( $hardduedate->output('iso') && $hardduedate->output('iso') ne '0000-00-00') {
+       if ( $hardduedate && $hardduedate->output('iso') ne '0000-00-00') {
             # if the calculated due date is after the 'before' Hard Due Date (ceiling), override
             if ( $datedue->output( 'iso' ) gt $hardduedate->output( 'iso' ) && $hardduedatecompare == -1) {
                 $datedue = $hardduedate;