sub table { 'svc_acct'; }
sub _fieldhandlers {
- #false laziness with edit/svc_acct.cgi
- 'usergroup' => sub {
- my $usergroup = shift;
- if ( ref($usergroup) eq 'ARRAY' ) {
- $usergroup;
- } elsif ( length($usergroup) ) {
- [ split(/\s*,\s*/, $usergroup) ];
- } else {
- [];
- }
- },
+ {
+ #false laziness with edit/svc_acct.cgi
+ 'usergroup' => sub {
+ my( $self, $groups ) = @_;
+ if ( ref($groups) eq 'ARRAY' ) {
+ $groups;
+ } elsif ( length($groups) ) {
+ [ split(/\s*,\s*/, $groups) ];
+ } else {
+ [];
+ }
+ },
+ };
}
=item insert [ , OPTION => VALUE ... ]
my $error;
warn "$me replacing $old with $new\n" if $DEBUG;
+ # We absolutely have to have an old vs. new record to make this work.
+ if (!defined($old)) {
+ $old = qsearchs( 'svc_acct', { 'svcnum' => $new->svcnum } );
+ }
+
return "can't modify system account" if $old->_check_system;
{
my($recref) = $self->hashref;
- my $x = $self->setfixed;
+ my $x = $self->setfixed( $self->_fieldhandlers );
return $x unless ref($x);
my $part_svc = $x;