From dff06d208bc558eb1efe41498834aa6e67b3b2b3 Mon Sep 17 00:00:00 2001 From: erickson Date: Mon, 4 Aug 2008 18:05:45 +0000 Subject: [PATCH] fleshed out the inspect call to return more info in an easier to parse/read fashion git-svn-id: svn://svn.open-ils.org/ILS/trunk@10251 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../perlmods/OpenILS/Application/Circ/Circulate.pm | 48 ++++++++++++++++++++-- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm index 2a2fd3d642..71d90be54f 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm @@ -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; } -- 2.11.0