fix tax class selection in package add/edit too
[freeside.git] / httemplate / edit / process / part_pkg.cgi
index 5ff3e6f..0d0a134 100755 (executable)
@@ -19,28 +19,36 @@ foreach (qw( setuptax recurtax disabled )) {
 
 my $new = new FS::part_pkg ( {
   map {
-    $_, scalar($cgi->param($_));
+    $_ => scalar($cgi->param($_));
   } fields('part_pkg')
 } );
 
-my %pkg_svc = map { $_ => $cgi->param("pkg_svc$_") }
+my %pkg_svc = map { $_ => scalar($cgi->param("pkg_svc$_")) }
               map { $_->svcpart }
               qsearch('part_svc', {} );
 
 my $error;
 my $custnum = '';
-if ( $pkgpart ) {
-  $error = $new->replace( $old, 'pkg_svc'     => \%pkg_svc,
-                                'primary_svc' => $cgi->param('pkg_svc_primary'),
+if ( $cgi->param('taxclass') eq '(select)' ) {
+
+  $error = 'Must select a tax class';
+
+} elsif ( $pkgpart ) {
+
+  $error = $new->replace( $old,
+                          pkg_svc     => \%pkg_svc,
+                          primary_svc => scalar($cgi->param('pkg_svc_primary')),
                         );
 } else {
-  $error = $new->insert( 'pkg_svc'     => \%pkg_svc,
-                         'primary_svc' => $cgi->param('pkg_svc_primary'),
-                         'cust_pkg'    => $cgi->param('pkgnum'),
-                         'custnum_ref' => \$custnum,
+
+  $error = $new->insert(  pkg_svc     => \%pkg_svc,
+                          primary_svc => scalar($cgi->param('pkg_svc_primary')),
+                          cust_pkg    => $cgi->param('pkgnum'),
+                          custnum_ref => \$custnum,
                        );
   $pkgpart = $new->pkgpart;
 }
+
 if ( $error ) {
   $cgi->param('error', $error );
   print $cgi->redirect(popurl(2). "part_pkg.cgi?". $cgi->query_string );