added circ_modifier permissions for Windsor Leddy
authorpzed <pzed@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Thu, 16 Jul 2009 18:40:56 +0000 (18:40 +0000)
committerpzed <pzed@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Thu, 16 Jul 2009 18:40:56 +0000 (18:40 +0000)
git-svn-id: svn://svn.open-ils.org/ILS-Contrib/conifer/trunk@582 6d9bc8c9-1ec2-4278-b937-99fde70a366f

circ/circ_permit_copy.js

index 4a7603d..c35b1cc 100644 (file)
-function go() {
-
-/* load the lib script */
-load_lib('circ/circ_lib.js');
-load_lib('JSON_v1.js');
-log_vars('circ_permit_copy');
-
-var lusys = ['LUSYS', 'CRC', 'HUNTINGTON', 'LDCR', 'MRC', 'OSUL', 'MEDIACEN', 'SUDBURY'];
-var hearstsys = ['HEARSTSYS', 'HEARST', 'KAP', 'TIMMINS'];
-var nosmsys = ['OSM', 'NOSME', 'NOSMW'];
-var winsys = ['OWA', 'OWAL'];
-
-/* In theory, isOrgDescendent would work - but it isn't, for some reason */
-if (patron.home_ou.id != copy.circ_lib.id) {
-        /* Laurentian campus patrons can borrow from one another */
-        if (isOrgDescendent('LUSYS', patron.home_ou.id) && isOrgDescendent('LUSYS', copy.circ_lib.id)) {
-                // go in peace
-        } else if (isAMember(patron.home_ou.shortname, lusys) && (
-                       isAMember(copy.circ_lib.shortname, lusys) || isAMember(copy.circ_lib.shortname, nosmsys) 
-               ))
-       {
-                // No problemo
-        } else if (isOrgDescendent('HEARSTSYS', patron.home_ou.id) && isOrgDescendent('LUSYS', copy.circ_lib.id)) {
-                // go in peace
-        } else if (isAMember(patron.home_ou.shortname, hearstsys) && isAMember(copy.circ_lib.shortname, hearstsys)) {
-                // No problemo
-        } else if (isAMember(patron.home_ou.shortname, winsys) && isAMember(copy.circ_lib.shortname, winsys)) {
-                // No problemo
-        } else if (isOrgDescendent('OSM', patron.home_ou.id) && isOrgDescendent('OSM', copy.circ_lib.id)) {
-                // go in peace
-        } else if (isAMember(patron.home_ou.shortname, nosmsys) && (
-                       isAMember(copy.circ_lib.shortname, lusys) || isAMember(copy.circ_lib.shortname, nosmsys) 
-               ))
-       {
-                // No problemo
-        } else {
-                result.events.push('CIRC_EXCEEDS_COPY_RANGE');
-        }
-}
-
-if( ! isTrue(copy.circulate) || 
-       !isTrue(copy.location.circulate) ||
-       (copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'DEPOSIT') ||
-       (copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'DOCUMENTS') ||
-       (copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'PERIODICAL') ||
-       (copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'REFERENCE')
-) {
-       result.events.push('COPY_CIRC_NOT_ALLOWED');
-}
-
-
-if( ! isTrue(isRenewal) ) {
-       if(copyStatus != 'Available' && 
-               copyStatus != 'On holds shelf' && copyStatus != 'Reshelving' ) {
-                       result.events.push('COPY_NOT_AVAILABLE');
-       } 
-}
-
-}
-
-function isAMember(shortname, group) {
-       for (var i = 0; i < group.length; i++) {
-               if (group[i] == shortname) {
-                       return true;
-               }
-       }
-       return false;
-}
-
-go();
-
+function go() {\r
+\r
+/* load the lib script */\r
+load_lib('circ/circ_lib.js');\r
+load_lib('JSON_v1.js');\r
+log_vars('circ_permit_copy');\r
+\r
+var lusys = ['LUSYS', 'CRC', 'HUNTINGTON', 'LDCR', 'MRC', 'OSUL', 'MEDIACEN', 'SUDBURY'];\r
+var hearstsys = ['HEARSTSYS', 'HEARST', 'KAP', 'TIMMINS'];\r
+var nosmsys = ['OSM', 'NOSME', 'NOSMW'];\r
+var winsys = ['OWA', 'OWAL'];\r
+\r
+/* In theory, isOrgDescendent would work - but it isn't, for some reason */\r
+if (patron.home_ou.id != copy.circ_lib.id) {\r
+        /* Laurentian campus patrons can borrow from one another */\r
+        if (isOrgDescendent('LUSYS', patron.home_ou.id) && isOrgDescendent('LUSYS', copy.circ_lib.id)) {\r
+                // go in peace\r
+        } else if (isAMember(patron.home_ou.shortname, lusys) && (\r
+                       isAMember(copy.circ_lib.shortname, lusys) || isAMember(copy.circ_lib.shortname, nosmsys) \r
+               ))\r
+       {\r
+                // No problemo\r
+        } else if (isOrgDescendent('HEARSTSYS', patron.home_ou.id) && isOrgDescendent('LUSYS', copy.circ_lib.id)) {\r
+                // go in peace\r
+        } else if (isAMember(patron.home_ou.shortname, hearstsys) && isAMember(copy.circ_lib.shortname, hearstsys)) {\r
+                // No problemo\r
+        } else if (isAMember(patron.home_ou.shortname, winsys) && isAMember(copy.circ_lib.shortname, winsys)) {\r
+                // No problemo\r
+        } else if (isOrgDescendent('OSM', patron.home_ou.id) && isOrgDescendent('OSM', copy.circ_lib.id)) {\r
+                // go in peace\r
+        } else if (isAMember(patron.home_ou.shortname, nosmsys) && (\r
+                       isAMember(copy.circ_lib.shortname, lusys) || isAMember(copy.circ_lib.shortname, nosmsys) \r
+               ))\r
+       {\r
+                // No problemo\r
+        } else {\r
+                result.events.push('CIRC_EXCEEDS_COPY_RANGE');\r
+        }\r
+}\r
+\r
+if( ! isTrue(copy.circulate) || \r
+       !isTrue(copy.location.circulate) ||\r
+       (copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'DEPOSIT') ||\r
+       (copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'DOCUMENTS') ||\r
+       (copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'PERIODICAL') ||\r
+       (copy.circ_lib.shortname == 'OSUL' && copy.circ_modifier == 'REFERENCE')\r
+) {\r
+       result.events.push('COPY_CIRC_NOT_ALLOWED');\r
+}\r
+\r
+// set permissions for Windsor Leddy\r
+if (copy.circ_lib.shortname == 'OWA') {\r
+\r
+       // permit circulations for the following circ modifiers to all patrons\r
+       var circ_allow_list['CIRC', 'CRC MEDIA', 'CRC SPEC', 'CRC TEXT', 'DOC', 'DVD VIDEO', 'MAP (CIRCULATING)', 'MEDIA', 'MFORM', 'REF', 'THESIS'];\r
+\r
+       // add permissions for patron groups who are not external borrowers\r
+       if (patronProfile == 'Faculty' || patronProfile == 'Graduate' || patronProfile == 'Undergraduate' || patronProfile == 'Staff members') {\r
+               circ_allow_list = circ_allow_list.concat('CIRC SHORT', 'RSV1', 'RSV2', 'RSV3', 'RSV7');\r
+       }\r
+\r
+       // faculty, grads, and staff can borrow serials\r
+       if (patronProfile == 'Faculty' || patronProfile == 'Graduate'|| patronProfile == 'Staff members') {\r
+               circ_allow_list = circ_allow_list.concat('SER');\r
+       }\r
+\r
+       // faculty and staff can also borrow music CDs\r
+       if (patronProfile == 'Faculty' || patronProfile == 'Staff members') {\r
+               circ_allow_list = circ_allow_list.concat('CD MUSIC');\r
+       }\r
+\r
+       if ( ! testCircAllow(circ_allow_list) ) {\r
+               result.events.push('COPY_CIRC_NOT_ALLOWED');\r
+       }\r
+} // end permissions for Windsor Leddy\r
+\r
+\r
+if( ! isTrue(isRenewal) ) {\r
+       if(copyStatus != 'Available' && \r
+               copyStatus != 'On holds shelf' && copyStatus != 'Reshelving' ) {\r
+                       result.events.push('COPY_NOT_AVAILABLE');\r
+       } \r
+}\r
+\r
+}\r
+\r
+function isAMember(shortname, group) {\r
+       for (var i = 0; i < group.length; i++) {\r
+               if (group[i] == shortname) {\r
+                       return true;\r
+               }\r
+       }\r
+       return false;\r
+}\r
+\r
+function testCircAllow(circ_allow_list) {\r
+       for (var i = 0; i < circ_allow_list.length; i++) {\r
+               if (circ_allow_list[i] == copy.circ_modifier) {\r
+                       return true;\r
+               }\r
+       }\r
+       return false;\r
+}\r
+\r
+go();\r
+\r