+ unless $FS::CurrentUser::CurrentUser->access_right($right);
+
+$cgi->param('phonenum', $cgi->param('phonenum_manual') )
+ if $cgi->param('phonenum_which') eq 'phonenum_manual';
+
+my $tollfreephonenum = $cgi->param('tollfreephonenum');
+$cgi->param('phonenum',$tollfreephonenum) if $tollfreephonenum =~ /^\d+$/;
+
+my $args_callback = sub {
+ my( $cgi, $object ) = @_;
+
+ my %opt = ();
+ if ( $cgi->param('locationnum') == -1 ) {
+ my $cust_location = FS::cust_location->new({
+ map { $_ => scalar($cgi->param($_)) }
+ qw( custnum address1 address2 city county state zip country )
+ });
+ $opt{'cust_location'} = $cust_location;
+ }
+
+ %opt;
+
+};
+
+my $value_callback = sub {
+ my ($field, $value) = @_;
+ ($field =~ /_date$/) ? parse_datetime($value) : $value;
+};
+
+my $edit_callback = sub {
+ my( $new, $old ) = @_;
+ $new->sip_password( $old->sip_password ) if $new->sip_password eq '*HIDDEN*';
+};