avoid spurious bash default usage category charges
[freeside.git] / FS / FS / cust_bill_pkg.pm
index d3bdfd1..80077aa 100644 (file)
@@ -2,6 +2,7 @@ package FS::cust_bill_pkg;
 
 use strict;
 use vars qw( @ISA $DEBUG $me );
+use Carp;
 use FS::Record qw( qsearch qsearchs dbdef dbh );
 use FS::cust_main_Mixin;
 use FS::cust_pkg;
@@ -18,7 +19,7 @@ use FS::cust_tax_adjustment;
 
 @ISA = qw( FS::cust_main_Mixin FS::Record );
 
-$DEBUG = 2;
+$DEBUG = 0;
 $me = '[FS::cust_bill_pkg]';
 
 =head1 NAME
@@ -151,6 +152,8 @@ sub insert {
         'amount'     => (ref($detail) ? $detail->[2] : '' ),
         'classnum'   => (ref($detail) ? $detail->[3] : '' ),
         'phonenum'   => (ref($detail) ? $detail->[4] : '' ),
+        'duration'   => (ref($detail) ? $detail->[5] : '' ),
+        'regionname' => (ref($detail) ? $detail->[6] : '' ),
       };
       $error = $cust_bill_pkg_detail->insert;
       if ( $error ) {
@@ -342,7 +345,7 @@ Returns the package (see L<FS::cust_pkg>) for this invoice line item.
 
 sub cust_pkg {
   my $self = shift;
-  #warn "$me $self -> cust_pkg"; #carp?
+  carp "$me $self -> cust_pkg" if $DEBUG;
   qsearchs( 'cust_pkg', { 'pkgnum' => $self->pkgnum } );
 }
 
@@ -627,7 +630,7 @@ sub disintegrate {
 
   #split usage from recur
   my $usage = sprintf( "%.2f", $cust_bill_pkg{recur}->usage );
-  warn "usage is $usage\n" if $DEBUG;
+  warn "usage is $usage\n" if $DEBUG > 1;
   if ($usage) {
     my $cust_bill_pkg_usage =
         new FS::cust_bill_pkg { $cust_bill_pkg{recur}->hash };
@@ -652,7 +655,10 @@ sub disintegrate {
       $cust_bill_pkg{''}->recur( $classless );
       $cust_bill_pkg{$class} = $cust_bill_pkg_usage;
     }
-    delete $cust_bill_pkg{''} unless $cust_bill_pkg{''}->recur;
+    warn "Unexpected classless usage value: ". $cust_bill_pkg{''}->recur
+      if ($cust_bill_pkg{''}->recur && $cust_bill_pkg{''}->recur < 0);
+    delete $cust_bill_pkg{''}
+      unless ($cust_bill_pkg{''}->recur && $cust_bill_pkg{''}->recur > 0);
   }
 
 #  # sort setup,recur,'', and the rest numeric && return
@@ -780,6 +786,25 @@ sub _cust_tax_exempt_pkg {
 }
 
 
+=item cust_bill_pkg_detail [ CLASSNUM ]
+
+Returns the list of associated cust_bill_pkg_detail objects
+The optional CLASSNUM argument will limit the details to the specified usage
+class.
+
+=cut
+
+sub cust_bill_pkg_detail {
+  my $self = shift;
+  my $classnum = shift || '';
+
+  my %hash = ( 'billpkgnum' => $self->billpkgnum );
+  $hash{classnum} = $classnum if $classnum;
+
+  qsearch ( 'cust_bill_pkg_detail', { %hash  } ),
+
+}
+
 =back
 
 =head1 BUGS