From 7c1bb1bdf8a791f318bb8908b5ca9a3349f7c26f Mon Sep 17 00:00:00 2001 From: erickson Date: Fri, 25 Jul 2008 19:00:18 +0000 Subject: [PATCH] turning raw time durations into h/m/s notation so interval_to_seconds can parse it git-svn-id: svn://svn.open-ils.org/ILS/trunk@10134 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/perlmods/OpenILS/Application/Circ.pm | 10 ++++++++-- Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm | 4 +++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ.pm index 2076337490..ce9ff84ffd 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ.pm @@ -380,7 +380,13 @@ sub void_overdues { # one fine interval to the backdate to ensure that we are not # voiding fines that were applicable before the backdate. # ------------------------------------------------------------------ - my $interval = OpenSRF::Utils->interval_to_seconds($circ->fine_interval); + + # if there is a raw time component (e.g. from postgres), + # turn it into an interval that interval_to_seconds can parse + my $duration = $circ->fine_interval; + $duration =~ s/(\d{2}):(\d{2}):(\d{2})/$1 h $2 m $3 s/o; + my $interval = OpenSRF::Utils->interval_to_seconds($duration); + my $date = DateTime::Format::ISO8601->parse_datetime($backdate); $backdate = $U->epoch2ISO8601($date->epoch + $interval); $logger->info("applying backdate $backdate in overdue voiding"); @@ -1103,7 +1109,7 @@ sub fleshed_circ_retrieve { }; } - +# {"select":{"acp":["id"],"circ":[{"aggregate":true,"transform":"count","alias":"count","column":"id"}]},"from":{"acp":{"circ":{"field":"target_copy","fkey":"id","type":"left"},"acn"{"field":"id","fkey":"call_number"}}},"where":{"+acn":{"record":200057}} 1; diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm index a28d94ff62..25ce248256 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm @@ -263,7 +263,6 @@ sub translate_legacy_args { $$args{is_precat} = $$args{precat}; delete $$args{precat}; } - } @@ -1167,6 +1166,9 @@ sub apply_modified_due_date { sub create_due_date { my( $self, $duration ) = @_; + # if there is a raw time component (e.g. from postgres), + # turn it into an interval that interval_to_seconds can parse + $duration =~ s/(\d{2}):(\d{2}):(\d{2})/$1 h $2 m $3 s/o; my ($sec,$min,$hour,$mday,$mon,$year) = gmtime(OpenSRF::Utils->interval_to_seconds($duration) + int(time())); $year += 1900; $mon += 1; -- 2.11.0