relying on copy fine_level and loan_duration - not retrieving from script
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 7 Aug 2006 14:02:02 +0000 (14:02 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 7 Aug 2006 14:02:02 +0000 (14:02 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@5326 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/javascript/backend/circ/circ_duration.js
Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm

index 5277956..fa1d8a5 100644 (file)
@@ -19,98 +19,84 @@ var MARC_ITEM_TYPE_MAP = {
        a : { /* Language material [Books] */
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        t : { /* Manuscript language material [Books] */
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        g : { /* Projected medium [Videos, etc.] */
                durationRule                    : '7_days_0_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        k : { /* Two-dimensional nonprojectable graphic [Card, charts, etc.] */
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        r : { /* Three-dimensional artifact or naturally occurring object [Models, games, etc.] */ 
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        o : { /* Kit [Mixture of item types] */
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        p : { /* Mixed materials [Mixture of item types] */
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        e : { /* Cartographic material [Map] */
                durationRule                    : '3_days_1_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        f : { /* Manuscript cartographic material [Map] */
                durationRule                    : '3_days_1_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        c : { /* Notated music [Printed music] */
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        d : { /* Manuscript notated music [Printed music] */
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        i : { /* Nonmusical sound recording [Audiobooks, sound effects, etc.] */
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        j : { /* Musical sound recording [Music] */
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        m : { /* Computer file */
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        }
 }
@@ -121,55 +107,47 @@ var CIRC_MOD_MAP = {
        'Art'           : {
                durationRule                    : '3_month_0_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Atlas'         : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Audiobook' : {
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'AV-miscellaneous nonprint' : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Bestseller (high demand)'              : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Bestseller not high demand'    : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Bestseller-not holdable'               : {
                durationRule                    : '7_days_2_renew',
-               recurringFinesLevel     : 'normal',
                recurringFinesRule      : '50_cent_per_day',
                maxFine                                 : 'overdue_mid'
        },
 
        'Classroom' : {
                durationRule                    : '28_days_2_renew',
-               recurringFinesLevel     : 'normal',
                recurringFinesRule      : '10_cent_per_day',
                maxFine                                 : 'overdue_mid'
        },
@@ -177,49 +155,42 @@ var CIRC_MOD_MAP = {
        'Compact Disc'                          : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Computer Use' : {
                durationRule                    : '1_hour_2_renew',
                recurringFinesRule      : '10_cent_per_day', 
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Deposit [monetary]'            : {
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'DVD'                                                   : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'DVD with long loan period'     : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'E-Book' : {
                durationRule                    : '3_days_1_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Equipment' : { 
                durationRule                    : '3_days_1_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
@@ -229,21 +200,18 @@ var CIRC_MOD_MAP = {
        'Non-PINES GA loan (NILS-Item)' : {
                durationRule                    : '28_days_0_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'ILL item' : {
                durationRule                    : '28_days_0_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'PINES ILL loan (ILS-Item)' : {
                durationRule                    : '28_days_0_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
@@ -251,7 +219,6 @@ var CIRC_MOD_MAP = {
        'Filmstrip'                                     : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
@@ -261,14 +228,12 @@ var CIRC_MOD_MAP = {
        'Kit' : {
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Laserdisc'                                     : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
@@ -278,7 +243,6 @@ var CIRC_MOD_MAP = {
        'Magazine-Circulating'  : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
@@ -289,7 +253,6 @@ var CIRC_MOD_MAP = {
        'Map' : {
                durationRule                    : '3_days_1_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
@@ -300,56 +263,48 @@ var CIRC_MOD_MAP = {
        'Music' : {
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'New AV material'                       : {
                durationRule                    : '3_days_1_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'New Book'                                      : {
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Outreach' : {
                durationRule                    : '2_months_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Pamphlet'                                      : {
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Paperback' : {
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Realia' : {
                durationRule                    : '28_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Record'                                                : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
@@ -368,14 +323,12 @@ var CIRC_MOD_MAP = {
        'Software' : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Software with long loan period' : {
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
@@ -385,63 +338,54 @@ var CIRC_MOD_MAP = {
        'State Library book' : {
                durationRule                    : '35_days_1_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'State Library microform        ' : {
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'State Library reference' : {
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Talkingbook'                           : { 
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Toy'                                                   : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Video (high demand)'   : {
                durationRule                    : '7_days_0_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Video (not high demand)' : {
                durationRule                    : '7_days_0_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Video - long loan period' : {
                durationRule                    : '14_days_2_renew',
                recurringFinesRule      : '10_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Video public performance'              : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
@@ -458,27 +402,23 @@ var CIRC_MOD_MAP = {
        'Atlas'         : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Bestseller (high demand)'              : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Bestseller not high demand'    : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Bestseller-not holdable'               : {
                durationRule                    : '7_days_2_renew',
-               recurringFinesLevel     : 'normal',
                recurringFinesRule      : '50_cent_per_day',
                maxFine                                 : 'overdue_mid'
        },
@@ -486,98 +426,84 @@ var CIRC_MOD_MAP = {
        'Compact Disc'                                          : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'DVD'                                                                   : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'DVD with long loan period'     : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Filmstrip'                                                     : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Laserdisc'                                                     : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Magazine-Circulating'                  : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'New AV material'                                       : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'New Book'                                                      : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Pamphlet'                                                      : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Record'                                                                : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Talkingbook'                                           : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Toy'                                                                   : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Video (high demand)'                   : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
        },
 
        'Video public performance'              : {
                durationRule                    : '7_days_2_renew',
                recurringFinesRule      : '50_cent_per_day',
-               recurringFinesLevel     : 'normal',
                maxFine                                 : 'overdue_mid'
 
        }
@@ -585,24 +511,16 @@ var CIRC_MOD_MAP = {
 */
 
 
-
-
-/* Get the load duration level directly from the copy */
-result.durationLevel   = copy.loan_duration;
-
-
 /* treat pre-cat copies like vanilla books */
 if( isTrue(isPrecat) ) {
        log_info("pre-cat copy getting duration defaults...");
        result.durationRule                     = '14_days_2_renew';
        result.recurringFinesRule       = '10_cent_per_day';
-       result.recurringFinesLevel      = 'normal';
        result.maxFine                                  = 'overdue_mid';
        return;
 }
 
 
-
 /* ----------------------------------------------------------------------------- 
        If a circ_modifier is defined on the copy and we have config info for the
        provided circ_modifier, use that config.  Otherwise fall back on the MARC 
@@ -638,17 +556,14 @@ if( config ) {
        log_debug("circ_duration found a config for the copy");
        result.durationRule                     = config.durationRule;
        result.recurringFinesRule       = config.recurringFinesRule;
-       result.recurringFinesLevel = config.recurringFinesLevel;
        result.maxFine                                  = config.maxFine;
 
-       log_debug(config.durationRule + ' : ' + config.recurringFinesRule + ' : ' +
-               config.recurringFinesLevel + ' : ' + config.maxFine );
+       log_debug(config.durationRule + ' : ' + config.recurringFinesRule + ' : ' + config.maxFine );
 
 } else {
 
        result.durationRule                     = '14_days_2_renew';
        result.recurringFinesRule       = "10_cent_per_day";
-       result.recurringFinesLevel = 'normal';
        result.maxFine                                  = "overdue_mid";
 }
 
@@ -665,7 +580,6 @@ if( isOrgDescendent('STATELIB', copy.circ_lib.id) ) {
 
        result.durationRule                     = '35_days_1_renew';
        result.recurringFinesRule       = "10_cent_per_day";
-       result.recurringFinesLevel = 'normal';
        result.maxFine                                  = "overdue_mid";
 
        /* reference, microfiche, microfilm */
index c554629..162fecb 100644 (file)
@@ -880,10 +880,10 @@ sub run_checkout_scripts {
                throw OpenSRF::EX::ERROR ("Circ Duration Script Died: $@");
 
    my $duration   = $result->{durationRule};
-   my $dur_level  = $result->{durationLevel};
+   #my $dur_level  = $result->{durationLevel};
    my $recurring  = $result->{recurringFinesRule};
    my $max_fine   = $result->{maxFine};
-   my $rec_fines_level = $result->{recurringFinesLevel};
+   #my $rec_fines_level = $result->{recurringFinesLevel};
 
    ($duration, $evt) = $U->fetch_circ_duration_by_name($duration);
        return $self->bail_on_events($evt) if $evt;
@@ -892,8 +892,8 @@ sub run_checkout_scripts {
    ($max_fine, $evt) = $U->fetch_max_fine_by_name($max_fine);
        return $self->bail_on_events($evt) if $evt;
 
-   $self->duration_level($dur_level);
-   $self->recurring_fines_level($rec_fines_level);
+   #$self->duration_level($dur_level);
+   #$self->recurring_fines_level($rec_fines_level);
    $self->duration_rule($duration);
    $self->recurring_fines_rule($recurring);
    $self->max_fine_rule($max_fine);
@@ -909,23 +909,33 @@ sub build_checkout_circ_object {
    my $recurring  = $self->recurring_fines_rule;
    my $copy       = $self->copy;
    my $patron     = $self->patron;
-   my $dur_level  = $self->duration_level;
-   my $rec_level  = $self->recurring_fines_level;
+   #my $dur_level  = $self->duration_level;
+   #my $rec_level  = $self->recurring_fines_level;
 
        my $dname = $duration->name;
        my $mname = $max->name;
        my $rname = $recurring->name;
 
-       $logger->debug("circulator: building circulation with duration=$dname, ".
-               "maxfine=$mname, recurring=$rname, duration-level=$dur_level, recurring-level=$rec_level");
-
-       $circ->duration( $duration->shrt ) if ($dur_level == OILS_CIRC_DURATION_SHORT);
-   $circ->duration( $duration->normal ) if ($dur_level == OILS_CIRC_DURATION_NORMAL);
-   $circ->duration( $duration->extended ) if ($dur_level == OILS_CIRC_DURATION_EXTENDED);
-
-   $circ->recuring_fine( $recurring->low ) if ($rec_level eq OILS_REC_FINE_LEVEL_LOW);
-   $circ->recuring_fine( $recurring->normal ) if ($rec_level eq OILS_REC_FINE_LEVEL_NORMAL);
-   $circ->recuring_fine( $recurring->high ) if ($rec_level eq OILS_REC_FINE_LEVEL_HIGH);
+       $logger->debug("circulator: building circulation ".
+               "with duration=$dname, maxfine=$mname, recurring=$rname");
+
+       #$circ->duration( $duration->shrt ) if ($dur_level == OILS_CIRC_DURATION_SHORT);
+   #$circ->duration( $duration->normal ) if ($dur_level == OILS_CIRC_DURATION_NORMAL);
+   #$circ->duration( $duration->extended ) if ($dur_level == OILS_CIRC_DURATION_EXTENDED);
+
+       $circ->duration( $duration->shrt ) 
+               if $copy->loan_duration == OILS_CIRC_DURATION_SHORT;
+   $circ->duration( $duration->normal ) 
+               if $copy->loan_duration == OILS_CIRC_DURATION_NORMAL;
+   $circ->duration( $duration->extended ) 
+               if $copy->loan_duration ==OILS_CIRC_DURATION_EXTENDED;
+
+   $circ->recuring_fine( $recurring->low ) 
+               if $copy->fine_level == OILS_REC_FINE_LEVEL_LOW;
+   $circ->recuring_fine( $recurring->normal ) 
+               if $copy->fine_level == OILS_REC_FINE_LEVEL_NORMAL;
+   $circ->recuring_fine( $recurring->high ) 
+               if $copy->fine_level == OILS_REC_FINE_LEVEL_HIGH;
 
    $circ->duration_rule( $duration->name );
    $circ->recuring_fine_rule( $recurring->name );