updating closed time overlap to handle times
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 19 Jun 2006 14:54:48 +0000 (14:54 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 19 Jun 2006 14:54:48 +0000 (14:54 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@4670 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm

index 16047c2..6c3fc24 100644 (file)
@@ -2,6 +2,7 @@ package OpenILS::Application::Storage::Publisher::actor;
 use base qw/OpenILS::Application::Storage/;
 use OpenILS::Application::Storage::CDBI::actor;
 use OpenSRF::Utils::Logger qw/:level/;
+use OpenSRF::Utils qw/:datetime/;
 use OpenILS::Utils::Fieldmapper;
 
 use DateTime;           
@@ -47,25 +48,25 @@ sub org_closed_overlap {
                $begin ||= $closure->{close_start};
                $end = $closure->{close_end};
 
-               my $before = $_dt_parser->parse_datetime( $begin );
-               $before->subtract( days => 1 );
-               my $after = $_dt_parser->parse_datetime( $end );
-               $after->add( days => 1 );
+               my $before = $_dt_parser->parse_datetime( clense_ISO8601($begin) );
+               $before->subtract( seconds => 1 );
+               my $after = $_dt_parser->parse_datetime( clense_ISO8601($end) );
+               $after->add( seconds => 1 );
 
                if ( $direction <= 0 ) {
-                       while ( my $_b = org_closed_overlap($self, $client, $ou, $before->ymd, -1 ) ) {
-                               $before = $_dt_parser->parse_datetime( $_b->{start} );
+                       while ( my $_b = org_closed_overlap($self, $client, $ou, $before->iso8601, -1 ) ) {
+                               $before = $_dt_parser->parse_datetime( clense_ISO8601($_b->{start}) );
                        }
                }
 
                if ( $direction >= 0 ) {
-                       while ( my $_a = org_closed_overlap($self, $client, $ou, $after->ymd, 1 ) ) {
-                               $after = $_dt_parser->parse_datetime( $_a->{end} );
+                       while ( my $_a = org_closed_overlap($self, $client, $ou, $after->iso8601, 1 ) ) {
+                               $after = $_dt_parser->parse_datetime( clense_ISO8601($_a->{end}) );
                        }
                }
 
-               $begin = $before->ymd;
-               $end = $after->ymd;
+               $begin = clense_ISO8601($before->iso8601);
+               $end = clense_ISO8601($after->iso8601);
        }
 
        if ($begin && $end) {