use DBIx::DBSchema 0.19;
use FS::UID qw(dbh checkruid getotaker datasrc driver_name);
use FS::SearchCache;
+use FS::msgcat qw(gettext);
@ISA = qw(Exporter);
@EXPORT_OK = qw(dbh fields hfields qsearch qsearchs dbdef jsearch);
=cut
# readable/safe
-#sub AUTOLOAD {
-# my($self,$value)=@_;
-# my($field)=$AUTOLOAD;
-# $field =~ s/.*://;
-# if ( defined($value) ) {
-# confess "errant AUTOLOAD $field for $self (arg $value)"
-# unless $self->can('setfield');
-# $self->setfield($field,$value);
-# } else {
-# confess "errant AUTOLOAD $field for $self (no args)"
-# unless $self->can('getfield');
-# $self->getfield($field);
-# }
-#}
-
-# efficient
sub AUTOLOAD {
- my $field = $AUTOLOAD;
+ my($self,$value)=@_;
+ my($field)=$AUTOLOAD;
$field =~ s/.*://;
- if ( defined($_[1]) ) {
- $_[0]->setfield($field, $_[1]);
+ if ( defined($value) ) {
+ confess "errant AUTOLOAD $field for $self (arg $value)"
+ unless $self->can('setfield');
+ $self->setfield($field,$value);
} else {
- $_[0]->getfield($field);
+ confess "errant AUTOLOAD $field for $self (no args)"
+ unless $self->can('getfield');
+ $self->getfield($field);
}
}
+# efficient
+#sub AUTOLOAD {
+# my $field = $AUTOLOAD;
+# $field =~ s/.*://;
+# if ( defined($_[1]) ) {
+# $_[0]->setfield($field, $_[1]);
+# } else {
+# $_[0]->getfield($field);
+# }
+#}
+
=item hash
Returns a list of the column/value pairs, usually for assigning to a new hash.
sub ut_text {
my($self,$field)=@_;
$self->getfield($field) =~ /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/]+)$/
- or return "Illegal or empty (text) $field: ". $self->getfield($field);
+ or return gettext('illegal_or_empty_text'). " $field: ".
+ $self->getfield($field);
$self->setfield($field,$1);
'';
}
sub ut_textn {
my($self,$field)=@_;
$self->getfield($field) =~ /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/]*)$/
- or return "Illegal (text) $field: ". $self->getfield($field);
+ or return gettext('illegal_text'). " $field: ". $self->getfield($field);
$self->setfield($field,$1);
'';
}
} elsif ( $country eq 'US' || $country eq 'CA' ) {
$phonen =~ s/\D//g;
$phonen =~ /^(\d{3})(\d{3})(\d{4})(\d*)$/
- or return "Illegal (phone) $field: ". $self->getfield($field);
+ or return gettext('illegal_phone'). " $field: ". $self->getfield($field);
$phonen = "$1-$2-$3";
$phonen .= " x$4" if $4;
$self->setfield($field,$phonen);
sub ut_domain {
my( $self, $field ) = @_;
#$self->getfield($field) =~/^(\w+\.)*\w+$/
- $self->getfield($field) =~/^(\w+\.)*\w+$/
+ $self->getfield($field) =~/^(([\w\-]+\.)*\w+)$/
or return "Illegal (domain) $field: ". $self->getfield($field);
$self->setfield($field,$1);
'';
sub ut_name {
my( $self, $field ) = @_;
$self->getfield($field) =~ /^([\w \,\.\-\']+)$/
- or return "Illegal (name) $field: ". $self->getfield($field);
+ or return gettext('illegal_name'). " $field: ". $self->getfield($field);
$self->setfield($field,$1);
'';
}
my( $self, $field, $country ) = @_;
if ( $country eq 'US' ) {
$self->getfield($field) =~ /\s*(\d{5}(\-\d{4})?)\s*$/
- or return "Illegal (zip) $field for country $country: ".
+ or return gettext('illegal_zip'). " $field for country $country: ".
$self->getfield($field);
$self->setfield($field,$1);
} else {
$self->getfield($field) =~ /^\s*(\w[\w\-\s]{2,8}\w)\s*$/
- or return "Illegal (zip) $field: ". $self->getfield($field);
+ or return gettext('illegal_zip'). " $field: ". $self->getfield($field);
$self->setfield($field,$1);
}
'';