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 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;
 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')
     $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, 
 
 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;
 =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
   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
 
 
 =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
 
 
 =head1 BUGS
 
index d64d10d..3c544ff 100644 (file)
@@ -67,24 +67,8 @@ otherwise returns false.
 
 =item delete
 
 
 =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
 
 
 =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;
 
   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);
 }
 
   $new->SUPER::replace($old);
 }
 
@@ -163,7 +137,7 @@ sub part_svc {
 
 =head1 VERSION
 
 
 =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
 
 
 =head1 BUGS
 
index 9b9ce86..77f1452 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -Tw
 #
 #!/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; }
 
 #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,
         'plandata',   'text', 'NULL', '',
         'disabled',   'char', 'NULL', 1,
         'taxclass',   'varchar', 'NULL', $char_d,
-        'def_svcpart','int', '', '',
       ],
       'primary_key' => 'pkgpart',
       'unique' => [ [] ],
       ],
       '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">!,
     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>";
   }
           $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>
 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
   </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>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>
       </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;
 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') ) {
 END
 
 #unless ( $cgi->param('clone') ) {
@@ -172,16 +169,6 @@ unless ( 0 ) {
   #print "</TR></TABLE>";
 }
 
   #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). '">';
 }
 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_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 = '';
   'fixup_callback' => sub {
                         #my $ = @_;
                         my $html = '';