X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FRecord.pm;h=946e39dd551d11c3b0ed84b717d88d33d6657d55;hb=af723d02722d00c863ec4552627fe4ad77973d75;hp=801b89daf84cfac24467eee44240f9354758d579;hpb=916ed88ae0aa126941d4f6135a98298dac55eade;p=freeside.git diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm index 801b89daf..946e39dd5 100644 --- a/FS/FS/Record.pm +++ b/FS/FS/Record.pm @@ -986,7 +986,14 @@ sub check { for ($self->getfield($field)) { # See notes on check_block in FS::part_virtual_field. eval $self->pvf($field)->check_block; - return $@ if $@; + if ( $@ ) { + #this is bad, probably want to follow the stack backtrace up and see + #wtf happened + my $err = "Fatal error checking $field for $self"; + cluck "$err: $@"; + return "$err (see log for backtrace): $@"; + + } $self->setfield($field, $_); } } @@ -1307,9 +1314,13 @@ sub ut_zip { $self->getfield($field); $self->setfield($field,$1); } else { - $self->getfield($field) =~ /^\s*(\w[\w\-\s]{2,8}\w)\s*$/ - or return gettext('illegal_zip'). " $field: ". $self->getfield($field); - $self->setfield($field,$1); + if ( $self->getfield($field) =~ /^\s*$/ ) { + $self->setfield($field,''); + } else { + $self->getfield($field) =~ /^\s*(\w[\w\-\s]{2,8}\w)\s*$/ + or return gettext('illegal_zip'). " $field: ". $self->getfield($field); + $self->setfield($field,$1); + } } ''; }