fleshed out the inspect call to return more info in an easier to parse/read fashion
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 4 Aug 2008 18:05:45 +0000 (18:05 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 4 Aug 2008 18:05:45 +0000 (18:05 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@10251 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm

index 2a2fd3d..71d90be 100644 (file)
@@ -857,12 +857,52 @@ sub run_indb_circ_test {
 sub do_inspect {
     my $self = shift;
     $self->run_indb_circ_test;
-    return {
+
+    my $results = {
         circ_test_success => $self->circ_test_success,
-        matrix_test_result => $self->matrix_test_result,
-        circ_matrix_test => $self->circ_matrix_test,
-        circ_matrix_ruleset => $self->circ_matrix_ruleset
+        failure_events => [],
+        failure_codes => [],
     };
+
+    unless($self->circ_test_success) {
+        push(@{$results->{failure_codes}}, 
+            $_->{fail_part}) for @{$self->matrix_test_result};
+        push(@{$results->{failure_events}}, 
+            $LEGACY_CIRC_EVENT_MAP->{$_->{fail_part}}) 
+                for @{$self->matrix_test_result};
+        return $results;
+    }
+
+    # XXX lot of duplicated code here. extract this out to a 
+    # shared routine
+
+    my $duration_rule = $self->circ_matrix_ruleset->duration_rule;
+    my $recurring_fine_rule = $self->circ_matrix_ruleset->recurring_fine_rule;
+    my $max_fine_rule = $self->circ_matrix_ruleset->max_fine_rule;
+
+    $results->{duration_rule} = $duration_rule->name;
+    $results->{recurring_fine_rule} = $recurring_fine_rule->name;
+    $results->{max_fine_rule} =$max_fine_rule->name;
+    $results->{max_fine} = $max_fine_rule->amount; # XXX support for price percents
+    $results->{fine_interval} = $recurring_fine_rule->recurance_interval;
+    $results->{renewal_remaining} = $duration_rule->max_renewals;
+
+    $results->{duration} = $duration_rule->shrt
+        if $self->copy->loan_duration == OILS_CIRC_DURATION_SHORT;
+    $results->{duration} = $duration_rule->normal
+        if $self->copy->loan_duration == OILS_CIRC_DURATION_NORMAL;
+    $results->{duration} = $duration_rule->extended
+        if $self->copy->loan_duration == OILS_CIRC_DURATION_EXTENDED;
+
+    $results->{recurring_fine} = $recurring_fine_rule->low
+        if $self->copy->fine_level == OILS_REC_FINE_LEVEL_LOW;
+    $results->{recurring_fine} = $recurring_fine_rule->normal
+        if $self->copy->fine_level == OILS_REC_FINE_LEVEL_NORMAL;
+    $results->{recurring_fine} = $recurring_fine_rule->high
+        if $self->copy->fine_level == OILS_REC_FINE_LEVEL_HIGH;
+
+
+    return $results;
 }