3 log_debug('Checking permit circ on ' +
5 ' Patron:' + patron.id +
6 ' Patron Profile: ' + patron.profile +
7 ' Patron Standing: ' + patron.standing +
8 ' Patron copies: ' + patron_info.items_out +
9 ' Patron fines: ' + patron_info.fines +
10 ' Copy status: ' + copy.status +
11 ' Copy location: ' + copy.location.name +
16 /* Patron checks --------------------------------------------- */
17 if( ! patron.standing.match(/good/i) )
18 return result.event = 'PATRON_BAD_STANDING';
20 if( patron.profile.match(/patrons/i) && patron_info.items_out > 10 )
21 return result.event = 'PATRON_EXCEEDS_CHECKOUT_COUNT';
23 if( patron.profile.match(/staff/i) && patron_info.items_out > 30 )
24 return result.event = 'PATRON_EXCEEDS_CHECKOUT_COUNT';
28 /* Copy checks ------------------------------------------------ */
29 if( is_false( copy.circulate ) )
30 return result.event = 'COPY_CIRC_NOT_ALLOWED';
32 if( is_true( copy.ref ) )
33 return result.event = 'COPY_IS_REFERENCE';
35 if( !copy.status.match(/available/i) && !copy.status.match(/on holds shelf/i) )
36 return result.event = 'COPY_NOT_AVAILABLE';
39 /* check for holds -------------------------------------------- */
40 fetch_hold_by_copy( copy.id );
41 if( hold && hold.usr != patron.id )
42 return result.event = 'COPY_NEEDED_FOR_HOLD';