Rollback part_pkg.def_svcpart changes.
authorkhoff <khoff>
Mon, 10 Jun 2002 01:39:51 +0000 (01:39 +0000)
committerkhoff <khoff>
Mon, 10 Jun 2002 01:39:51 +0000 (01:39 +0000)
FS/FS/part_pkg.pm
FS/FS/pkg_svc.pm
bin/fs-setup
httemplate/browse/part_pkg.cgi
httemplate/docs/schema.html
httemplate/edit/part_pkg.cgi

index 420ffcb..e914636 100644 (file)
@@ -2,7 +2,7 @@ package FS::part_pkg;
 
 use strict;
 use vars qw( @ISA );
-use FS::Record qw( qsearch qsearchs dbh );
+use FS::Record qw( qsearch dbh );
 use FS::pkg_svc;
 use FS::agent_type;
 use FS::type_pkgs;
@@ -225,12 +225,6 @@ sub check {
 
   }
 
-  if ($self->def_svcpart and my @pkg_svc = $self->pkg_svc) {
-    unless (grep { $_->svcpart == $self->def_svcpart } @pkg_svc) {
-      return "no svcparts for this package match def_svcpart ".$self->def_svcpart;
-    }
-  }
-
     $self->ut_numbern('pkgpart')
       || $self->ut_text('pkg')
       || $self->ut_text('comment')
@@ -265,23 +259,11 @@ associated with this billing item definition (see L<FS::pkg_svc>).  Returns
 false if there not exactly one service definition with quantity 1, or if 
 SVCDB is specified and does not match the svcdb of the service definition, 
 
-If the part_pkg has a nonzero def_svcpart, it takes precedence, even if it has 
-quantity > 1 and/or there are other service definitions, UNLESS SVCDB is specified 
-and doesn't match the svcdb of the def_svcpart.
-
 =cut
 
 sub svcpart {
   my $self = shift;
   my $svcdb = shift;
-
-  if ($self->def_svcpart) {
-    if ((not $svcdb) or qsearchs('part_svc', { svcpart => $self->def_svcpart,
-                                               svcdb   => $svcdb })) {
-      return $self->def_svcpart;
-    }
-  }
-
   my @pkg_svc = $self->pkg_svc;
   return '' if scalar(@pkg_svc) != 1
                || $pkg_svc[0]->quantity != 1
@@ -315,7 +297,7 @@ sub payby {
 
 =head1 VERSION
 
-$Id: part_pkg.pm,v 1.15 2002-06-08 07:48:36 khoff Exp $
+$Id: part_pkg.pm,v 1.16 2002-06-10 01:39:50 khoff Exp $
 
 =head1 BUGS
 
index d64d10d..3c544ff 100644 (file)
@@ -67,24 +67,8 @@ otherwise returns false.
 
 =item delete
 
-Deletes this record from the database.  If this svcpart is also the default svcpart,
-we set part_pkg.def_svcpart to NULL.  If there is an error, returns the error,
-otherwise returns false.
-
-sub delete {
-  my $self = shift;
-  my $part_pkg = qsearchs( 'part_pkg', { pkgpart => $self->pkgpart } );
-
-  # Should this be wrapped in a transaction?
-  if ( $part_pkg->def_svcpart == $self->svcpart ) {
-    my $new = new FS::part_pkg $part_pkg->hash;
-    $new->def_svcpart = 0;
-    my $error = $new->replace($part_pkg);
-    return $error if $error;
-  }
-
-  $self->SUPER::delete;
-}
+Deletes this record from the database.  If there is an error, returns the
+error, otherwise returns false.
 
 =item replace OLD_RECORD
 
@@ -99,16 +83,6 @@ sub replace {
   return "Can't change pkgpart!" if $old->pkgpart != $new->pkgpart;
   return "Can't change svcpart!" if $old->svcpart != $new->svcpart;
 
-  my $part_pkg = qsearchs( 'part_pkg', { pkgpart => $new->pkgpart } );
-
-  # Should this be wrapped in a transaction?
-  if ( ($part_pkg->def_svcpart == $new->svcpart) && ($new->quantity == 0) ) {
-    my $new_part_pkg = new FS::part_pkg $part_pkg->hash;
-    $new_part_pkg->def_svcpart = 0;
-    my $error = $new_part_pkg->replace($part_pkg);
-    return $error if $error;
-  }
-
   $new->SUPER::replace($old);
 }
 
@@ -163,7 +137,7 @@ sub part_svc {
 
 =head1 VERSION
 
-$Id: pkg_svc.pm,v 1.2 2002-06-08 07:48:37 khoff Exp $
+$Id: pkg_svc.pm,v 1.3 2002-06-10 01:39:50 khoff Exp $
 
 =head1 BUGS
 
index 9b9ce86..77f1452 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -Tw
 #
-# $Id: fs-setup,v 1.93 2002-06-08 07:48:37 khoff Exp $
+# $Id: fs-setup,v 1.94 2002-06-10 01:39:50 khoff Exp $
 
 #to delay loading dbdef until we're ready
 BEGIN { $FS::Record::setup_hack = 1; }
@@ -662,7 +662,6 @@ sub tables_hash_hack {
         'plandata',   'text', 'NULL', '',
         'disabled',   'char', 'NULL', 1,
         'taxclass',   'varchar', 'NULL', $char_d,
-        'def_svcpart','int', '', '',
       ],
       'primary_key' => 'pkgpart',
       'unique' => [ [] ],
index fd269be..c208114 100755 (executable)
@@ -81,8 +81,7 @@ END
     my($svcpart)=$pkg_svc->getfield('svcpart');
     my($part_svc) = qsearchs('part_svc',{'svcpart'=> $svcpart });
     print $n,qq!<TD><A HREF="${p}edit/part_svc.cgi?$svcpart">!,
-          $part_svc->getfield('svc'),"</A>",
-          (($hashref->{def_svcpart} == $svcpart) ? "*</TD><TD>" : "</TD><TD>"),
+          $part_svc->getfield('svc'),"</A></TD><TD>",
           $pkg_svc->getfield('quantity'),"</TD></TR>\n";
     $n="<TR>";
   }
@@ -94,7 +93,6 @@ $colspan = $cgi->param('showdisabled') ? 8 : 9;
 print <<END;
    <TR><TD COLSPAN=$colspan><I><A HREF="${p}edit/part_pkg.cgi">Add a new package definition</A></I></TD></TR>
     </TABLE>
-    &nbsp* - Default service
   </BODY>
 </HTML>
 END
index e2a0f47..2b8b3a1 100644 (file)
         <li>plan - price plan
         <li>plandata - additional price plan data
         <li>disabled - Disabled flag, empty or `Y'
-        <li>def_svcpart - Default svcpart to use when ordering this part_pkg
       </ul>
     <li><a name="part_referral" href="man/FS/part_referral.html">part_referral</a> - Referral listing
       <ul>
index 770facb..e03017d 100755 (executable)
@@ -112,10 +112,7 @@ print '>';
 print '</TD></TR></TABLE>';
 
 my $thead =  "\n\n". ntable('#cccccc', 2). <<END;
-<TR>
-<TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Quan.</FONT></TH>
-<TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Service</FONT></TH>
-</TR>
+<TR><TH BGCOLOR="#dcdcdc"><FONT SIZE=-1>Quan.</FONT></TH><TH BGCOLOR="#dcdcdc">Service</TH></TR>
 END
 
 #unless ( $cgi->param('clone') ) {
@@ -172,16 +169,6 @@ unless ( 0 ) {
   #print "</TR></TABLE>";
 }
 
-print qq!Default service <SELECT NAME="def_svcpart" onChange="fchanged(this)">!,
-      qq!<OPTION VALUE="0">None!;
-foreach my $part_svc ( @part_svc ) {
-  print qq!<OPTION VALUE="!, $part_svc->svcpart, '"',
-        (($hashref->{def_svcpart} == $part_svc->svcpart) ? " SELECTED>" : ">"),
-        $part_svc->svc, qq!</OPTION>!;
-}
-print qq!</SELECT><BR>\n!;
-
-
 foreach my $f ( qw( clone pkgnum ) ) {
   print qq!<INPUT TYPE="hidden" NAME="$f" VALUE="!. $cgi->param($f). '">';
 }
@@ -389,7 +376,7 @@ my $widget = new HTML::Widgets::SelectLayers(
   'form_action'    => 'process/part_pkg.cgi',
   'form_text'      => [ qw(pkg comment freq clone pkgnum pkgpart), @fixups ],
   'form_checkbox'  => [ qw(setuptax recurtax disabled) ],
-  'form_select'    => [ qw(def_svcpart), @form_select ],
+  'form_select'    => [ @form_select ],
   'fixup_callback' => sub {
                         #my $ = @_;
                         my $html = '';