This commit was generated by cvs2svn to compensate for changes in r3921,
[freeside.git] / httemplate / edit / process / part_pkg.cgi
1 <%
2
3 my $dbh = dbh;
4
5 my $pkgpart = $cgi->param('pkgpart');
6
7 my $old = qsearchs('part_pkg',{'pkgpart'=>$pkgpart}) if $pkgpart;
8
9 #fixup plandata
10 my $plandata = $cgi->param('plandata');
11 my @plandata = split(',', $plandata);
12 $cgi->param('plandata', 
13   join('', map { "$_=". join(', ', $cgi->param($_)). "\n" } @plandata )
14 );
15
16 foreach (qw( setuptax recurtax disabled )) {
17   $cgi->param($_, '') unless defined $cgi->param($_);
18 }
19
20 my $new = new FS::part_pkg ( {
21   map {
22     $_, scalar($cgi->param($_));
23   } fields('part_pkg')
24 } );
25
26 my %pkg_svc = map { $_ => $cgi->param("pkg_svc$_") }
27               map { $_->svcpart }
28               qsearch('part_svc', {} );
29
30 my $error;
31 my $custnum = '';
32 if ( $pkgpart ) {
33   $error = $new->replace( $old, 'pkg_svc'     => \%pkg_svc,
34                                 'primary_svc' => $cgi->param('pkg_svc_primary'),
35                         );
36 } else {
37   $error = $new->insert( 'pkg_svc'     => \%pkg_svc,
38                          'primary_svc' => $cgi->param('pkg_svc_primary'),
39                          'cust_pkg'    => $cgi->param('pkgnum'),
40                          'custnum_ref' => \$custnum,
41                        );
42   $pkgpart = $new->pkgpart;
43 }
44 if ( $error ) {
45   $cgi->param('error', $error );
46   print $cgi->redirect(popurl(2). "part_pkg.cgi?". $cgi->query_string );
47 } elsif ( $custnum )  {
48   print $cgi->redirect(popurl(3). "view/cust_main.cgi?$custnum");
49 } else {
50   print $cgi->redirect(popurl(3). "browse/part_pkg.cgi");
51 }
52
53 %>