added (disabled) signature parsing and (disabled) param count, type, and class checking
[Evergreen.git] / Evergreen / circ_rules / circ_permit.js
1 function go() {
2
3 log_debug('Checking permit circ on ' +
4         ' Copy: '                               + copy.id + 
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 +
12         '');
13
14
15
16 /* Patron checks --------------------------------------------- */
17 if( ! patron.standing.match(/good/i) ) 
18         return result.event = 'PATRON_BAD_STANDING';
19
20 if( patron.profile.match(/patrons/i) && patron_info.items_out > 10 )
21         return result.event = 'PATRON_EXCEEDS_CHECKOUT_COUNT';
22
23 if( patron.profile.match(/staff/i) && patron_info.items_out > 30 )
24         return result.event = 'PATRON_EXCEEDS_CHECKOUT_COUNT';
25
26
27
28 /* Copy checks ------------------------------------------------ */
29 if( is_false( copy.circulate ) ) 
30         return result.event = 'COPY_CIRC_NOT_ALLOWED';
31
32 if( is_true( copy.ref ) ) 
33         return result.event = 'COPY_IS_REFERENCE';
34
35 if( !copy.status.match(/available/i) && !copy.status.match(/on holds shelf/i) )
36         return result.event = 'COPY_NOT_AVAILABLE';
37
38
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';
43
44
45 } go();
46
47