X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fprocess%2Fpart_svc.cgi;h=9633fabdfe2726474b2dee043cf7d1a17a898bc5;hp=4c972e4d7c4283d6160637c972bce45c5bd54e67;hb=3595c874f8e476e58b98b7ab6d86918d4dbb1d5c;hpb=51984ac3d3da3006809c6866fdecd4ad83610731 diff --git a/httemplate/edit/process/part_svc.cgi b/httemplate/edit/process/part_svc.cgi index 4c972e4d7..9633fabdf 100755 --- a/httemplate/edit/process/part_svc.cgi +++ b/httemplate/edit/process/part_svc.cgi @@ -4,27 +4,59 @@ 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') + } ( 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 $error; if ( $svcpart ) { - $error = $new->replace($old); + $error = $new->replace($old, '1.3-COMPAT', [ 'usergroup' ] ); } else { - $error = $new->insert; + $error = $new->insert( [ 'usergroup' ] ); $svcpart=$new->getfield('svcpart'); } if ( $error ) { $cgi->param('error', $error); - $Response->Redirect(popurl(2). "part_svc.cgi?". $cgi->query_string ); + print $cgi->redirect(popurl(2). "part_svc.cgi?". $cgi->query_string ); } else { - warn "redirecting to ". popurl(3)."browse/part_svc.cgi via $Response"; - $Response->Redirect(popurl(3)."browse/part_svc.cgi"); + + #false laziness w/ edit/process/agent_type.cgi + foreach my $part_export (qsearch('part_export',{})) { + my $exportnum = $part_export->exportnum; + my $export_svc = qsearchs('export_svc', { + 'exportnum' => $part_export->exportnum, + 'svcpart' => $new->svcpart, + } ); + if ( $export_svc && ! $cgi->param("exportnum". $part_export->exportnum) ) { + $error = $export_svc->delete; + die $error if $error; + } elsif ( $cgi->param("exportnum". $part_export->exportnum) + && ! $export_svc ) { + $export_svc = new FS::export_svc ( { + 'exportnum' => $part_export->exportnum, + 'svcpart' => $new->svcpart, + } ); + $error = $export_svc->insert; + die $error if $error; + } + + } + + print $cgi->redirect(popurl(3)."browse/part_svc.cgi"); } %>