freeside/httemplate/edit/process part_pkg.cgi,1.11,1.12

ivan ivan at pouncequick.420.am
Fri Nov 26 00:51:58 PST 2004


Update of /home/cvs/cvsroot/freeside/httemplate/edit/process
In directory pouncequick:/tmp/cvs-serv1882/httemplate/edit/process

Modified Files:
	part_pkg.cgi 
Log Message:
move part_pkg transactional stuff from web interface to part_pkg.pm, bumps Bug#18 to 1.5

Index: part_pkg.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/edit/process/part_pkg.cgi,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- part_pkg.cgi	31 Jan 2004 06:33:39 -0000	1.11
+++ part_pkg.cgi	26 Nov 2004 08:51:52 -0000	1.12
@@ -23,95 +23,31 @@
   } fields('part_pkg')
 } );
 
-#warn "setuptax: ". $new->setuptax;
-#warn "recurtax: ". $new->recurtax;
-
-#most of the stuff below should move to part_pkg.pm
-
-foreach my $part_svc ( qsearch('part_svc', {} ) ) {
-  my $quantity = $cgi->param('pkg_svc'. $part_svc->svcpart) || 0;
-  unless ( $quantity =~ /^(\d+)$/ ) {
-    $cgi->param('error', "Illegal quantity" );
-    print $cgi->redirect(popurl(2). "part_pkg.cgi?". $cgi->query_string );
-    myexit();
-  }
-}
-
-local $SIG{HUP} = 'IGNORE';
-local $SIG{INT} = 'IGNORE';
-local $SIG{QUIT} = 'IGNORE';
-local $SIG{TERM} = 'IGNORE';
-local $SIG{TSTP} = 'IGNORE';
-local $SIG{PIPE} = 'IGNORE';
-
-local $FS::UID::AutoCommit = 0;
+my %pkg_svc = map { $_ => $cgi->param("pkg_svc$_") }
+              map { $_->svcpart }
+              qsearch('part_svc', {} );
 
 my $error;
+my $custnum = '';
 if ( $pkgpart ) {
-  $error = $new->replace($old);
+  $error = $new->replace( $old, 'pkg_svc'     => \%pkg_svc,
+                                'primary_svc' => $cgi->param('pkg_svc_primary'),
+                        );
 } else {
-  $error = $new->insert;
-  $pkgpart=$new->pkgpart;
+  $error = $new->insert( 'pkg_svc'     => \%pkg_svc,
+                         'primary_svc' => $cgi->param('pkg_svc_primary'),
+                         'cust_pkg'    => $cgi->param('pkgnum'),
+                         'custnum_ref' => \$custnum,
+                       );
+  $pkgpart = $new->pkgpart;
 }
 if ( $error ) {
-  $dbh->rollback;
   $cgi->param('error', $error );
   print $cgi->redirect(popurl(2). "part_pkg.cgi?". $cgi->query_string );
-  myexit();
-}
-
-foreach my $part_svc (qsearch('part_svc',{})) {
-  my $quantity = $cgi->param('pkg_svc'. $part_svc->svcpart) || 0;
-  my $primary_svc =
-    $cgi->param('pkg_svc_primary') == $part_svc->svcpart ? 'Y' : '';
-  my $old_pkg_svc = qsearchs('pkg_svc', {
-    'pkgpart' => $pkgpart,
-    'svcpart' => $part_svc->svcpart,
-  } );
-  my $old_quantity = $old_pkg_svc ? $old_pkg_svc->quantity : 0;
-  my $old_primary_svc =
-    ( $old_pkg_svc && $old_pkg_svc->dbdef_table->column('primary_svc') )
-      ? $old_pkg_svc->primary_svc
-      : '';
-  next unless $old_quantity != $quantity || $old_primary_svc ne $primary_svc;
-
-  my $new_pkg_svc = new FS::pkg_svc( {
-    'pkgpart'     => $pkgpart,
-    'svcpart'     => $part_svc->svcpart,
-    'quantity'    => $quantity, 
-    'primary_svc' => $primary_svc,
-  } );
-  if ( $old_pkg_svc ) {
-    my $myerror = $new_pkg_svc->replace($old_pkg_svc);
-    if ( $myerror ) {
-      $dbh->rollback;
-      die $myerror;
-    }
-  } else {
-    my $myerror = $new_pkg_svc->insert;
-    if ( $myerror ) {
-      $dbh->rollback;
-      die $myerror;
-    }
-  }
-}
-
-unless ( $cgi->param('pkgnum') && $cgi->param('pkgnum') =~ /^(\d+)$/ ) {
-  $dbh->commit or die $dbh->errstr;
-  print $cgi->redirect(popurl(3). "browse/part_pkg.cgi");
+} elsif ( $custnum )  {
+  print $cgi->redirect(popurl(3). "view/cust_main.cgi?$custnum");
 } else {
-  my($old_cust_pkg) = qsearchs( 'cust_pkg', { 'pkgnum' => $1 } );
-  my %hash = $old_cust_pkg->hash;
-  $hash{'pkgpart'} = $pkgpart;
-  my($new_cust_pkg) = new FS::cust_pkg \%hash;
-  my $myerror = $new_cust_pkg->replace($old_cust_pkg);
-  if ( $myerror ) {
-    $dbh->rollback;
-    die "Error modifying cust_pkg record: $myerror\n";
-  }
-
-  $dbh->commit or die $dbh->errstr;
-  print $cgi->redirect(popurl(3). "view/cust_main.cgi?". $new_cust_pkg->custnum);
+  print $cgi->redirect(popurl(3). "browse/part_pkg.cgi");
 }
 
 %>




More information about the freeside-commits mailing list