From: Jeremy Davis Date: Wed, 12 Aug 2015 18:26:14 +0000 (-0400) Subject: #31495 Date changes for Earthlink X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=a73684bba1b297715a95eabb8845c5212523f4e1 #31495 Date changes for Earthlink --- diff --git a/FS/FS/cdr/earthlink.pm b/FS/FS/cdr/earthlink.pm index 5042f6fa5..c6c4e1535 100644 --- a/FS/FS/cdr/earthlink.pm +++ b/FS/FS/cdr/earthlink.pm @@ -3,11 +3,13 @@ package FS::cdr::earthlink; use strict; use vars qw( @ISA %info $date); use Time::Local; -use FS::cdr qw(_cdr_date_parser_maker _cdr_min_parser_maker); +use FS::cdr qw(_cdr_min_parser_maker); use Date::Parse; @ISA = qw(FS::cdr); +my ($tmp_mday, $tmp_mon, $tmp_year); + %info = ( 'name' => 'Earthlink', 'weight' => 120, @@ -15,14 +17,30 @@ use Date::Parse; 'import_fields' => [ skip(3), #Account number/ SERVICE LOC / BILL NUMBER - sub { my($cdr, $date) = @_; - $date; - }, #date + sub { my($cdr, $date) = @_; + $date =~ /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/ + or die "unparseable date: $date"; + ($tmp_mon, $tmp_mday, $tmp_year) = ($1, $2, $3); + }, #date sub { my($cdr, $time) = @_; + $time =~ /^(\d{1,2}):(\d{1,2}):(\d{1,2}) (AM|PM)$/ + or die "unparsable time: $time"; #maybe we shouldn't die... + my $hour = $1; + $hour += 12 if $4 eq 'PM' && $hour != 12; + $hour = 0 if $4 eq 'AM' && $hour == 12; + + my $dt = DateTime->new( + year => $tmp_year, + month => $tmp_mon, + day => $tmp_mday, + hour => $hour, + minute => $2, + second => $3, + time_zone => 'local', + ); + $cdr->set('startdate', $dt->epoch); - my $datetime = $date. " ". $time; - $cdr->set('startdate', $datetime ); - }, #time + }, skip(1), #TollFreeNumber sub { my($cdr, $src) = @_; $src =~ s/\D//g;