-my $error = '';
-if ( $cgi->param('magic') eq 'process' ) {
-
- my $svcpart = $cgi->param('svcpart');
- my $old = qsearchs('part_svc', { 'svcpart' => $svcpart }) if $svcpart;
-
- $cgi->param( 'svc_acct__usergroup',
- join(',', $cgi->param('svc_acct__usergroup') ) );
-
- my $new = new FS::part_svc ( {
- map {
- $_, scalar($cgi->param($_));
- # } qw(svcpart svc svcdb)
- } ( fields('part_svc'),
- map { my $svcdb = $_;
- my @fields = fields($svcdb);
- push @fields, 'usergroup' if $svcdb eq 'svc_acct'; #kludge
- map { ( $svcdb.'__'.$_, $svcdb.'__'.$_.'_flag' ) } @fields;
- } grep defined( $FS::Record::dbdef->table($_) ),
- qw( svc_acct svc_domain svc_forward svc_www svc_broadband )
- )
- } );
-
- my %exportnums =
- map { $_->exportnum => ( $cgi->param('exportnum'.$_->exportnum) || '') }
- qsearch('part_export', {} );
-
- if ( $svcpart ) {
- $error = $new->replace($old, '1.3-COMPAT', [ 'usergroup' ], \%exportnums );
- } else {
- $error = $new->insert( [ 'usergroup' ], \%exportnums );
- $svcpart = $new->getfield('svcpart');
- }
-
- unless ( $error ) { #no error, redirect
- #print $cgi->redirect(popurl(3)."browse/part_svc.cgi");
- print $cgi->redirect("${p}browse/part_svc.cgi");
- myexit;
- }
-
- $part_svc = $new; #??
- #$part_svc = new FS::part_svc ( {
- # map { $_, scalar($cgi->param($_)) } fields('part_svc')
- #} );
-
-} elsif ( $cgi->param('clone') && $cgi->param('clone') =~ /^(\d+)$/ ) {#clone