summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2022-03-03 12:25:10 -0800
committerIvan Kohler <ivan@freeside.biz>2022-03-03 12:25:10 -0800
commit925c59ada6a80ad6c8c78ff5f560f74c230f195b (patch)
tree6912632354e6788f16bd43ba6e07d9acceafac6d
parentd974ae7af672a22163f0a97dd19f97277293c594 (diff)
update warnings re: census tract length so real errors are easier to spot, RT#86245
-rw-r--r--FS/FS/Report/FCC_477.pm23
1 files changed, 18 insertions, 5 deletions
diff --git a/FS/FS/Report/FCC_477.pm b/FS/FS/Report/FCC_477.pm
index 760f6f2..29505f8 100644
--- a/FS/FS/Report/FCC_477.pm
+++ b/FS/FS/Report/FCC_477.pm
@@ -320,7 +320,7 @@ sub report {
my $num_errors = 0;
foreach my $row (@$data) {
if ( $class->can($check_method) ) { # they don't all have these
- my $eh = $class->$check_method( $row );
+ my $eh = $class->$check_method( $row, 'date'=>$opt{'date'} );
$num_errors++ if keys(%$eh);
push @$error, $eh
}
@@ -442,12 +442,19 @@ sub fbs_sql {
sub fbs_check {
my $class = shift;
my $row = shift;
+
+ my %opt = @_;
+ my $date = $opt{date} || time;
+ my $census_digits = ($date < 1601449200) ? 11 : 15; # 9/30/2020, halfway
+ # between the two filing
+ # dates when it changed
+
my %e;
#censustract
if ( length($row->[0]) == 0 ) {
$e{'censustract_null'} = 'The package location has no census tract.';
- } elsif ($row->[0] !~ /^\d{11}$/) {
- $e{'censustract_bad'} = 'The census tract must be exactly 11 digits.';
+ } elsif ($row->[0] !~ /^\d{$census_digits}$/) {
+ $e{'censustract_bad'} = "The census tract must be exactly $census_digits digits.";
}
#technology
@@ -515,12 +522,18 @@ sub fvs_sql {
sub fvs_check {
my $class = shift;
my $row = shift;
+ my %opt = @_;
+ my $date = $opt{date} || time;
+ my $census_digits = ($date < 1601449200) ? 11 : 15; # 9/30/2020, halfway
+ # between the two filing
+ # dates when it changed
+
my %e;
#censustract
if ( length($row->[0]) == 0 ) {
$e{'censustract_null'} = 'The package location has no census tract.';
- } elsif ($row->[0] !~ /^\d{11}$/) {
- $e{'censustract_bad'} = 'The census tract must be exactly 11 digits.';
+ } elsif ($row->[0] !~ /^\d{$census_digits}$/) {
+ $e{'censustract_bad'} = "The census tract must be exactly $census_digits digits.";
}
return \%e;
}