]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/javascript/backend/penalty/patron_penalty.js
3fa1a92aec0e832d300093c97eaee411ff2f28b3
[working/Evergreen.git] / Open-ILS / src / javascript / backend / penalty / patron_penalty.js
1 function go() {
2
3 /* load the lib script */
4 load_lib('../circ/circ_lib.js');
5
6
7 /* collect some useful variables */
8 var patron                                      = environment.patron;
9 var patronProfile                       = patron.profile.name.toLowerCase();
10 var patronFines                 = environment.patronFines;
11 var patronOverdueCount  = environment.patronOverdueCount;
12
13
14 log_debug('Patron penalty script: ' +
15         ', Patron:'                                     + patron.id +
16         ', Patron Username:'            + patron.usrname +
17         ', Patron Profile: '            + patronProfile +
18         ', Patron Library: '            + patron.home_ou.name +
19         ', Patron fines: '              + patronFines +
20         ', Patron overdue: '            + patronOverdueCount +
21         '');
22
23
24 var PROFILES = {
25         restricted : {
26                 fineLimit : 0,
27                 overdueLimit : 0,
28         },
29         patrons : {
30                 fineLimit : 10,
31                 overdueLimit : 10,
32         },
33         class : {
34                 fineLimit : 10,
35                 overdueLimit : 10,
36         },
37         'local system administrator' : {
38                 fineLimit : -1,
39                 overdueLimit : -1,
40         }
41
42         /* Add profiles as necessary ... */
43 }
44
45
46
47 var profile = PROFILES[patronProfile];
48
49 if( profile ) {
50
51         /* check the fine limit */
52         if( profile.fineLimit > 0 && patronFines >= profile.fineLimit )
53                 result.fatalEvents.push('PATRON_EXCEEDS_FINES');
54
55         /* check the overdue limit */
56         if( profile.overdueLimit > 0 && patronOverdueCount > profile.overdueLimit )
57                 result.fatalEvents.puth('PATRON_EXCEEDS_OVERDUE_COUNT');
58
59 } else {
60         log_warn("profile has no configured information: " + patronProfile);
61 }
62
63
64
65
66
67
68 } go();
69
70