should hopefully fix old services showing up on invoices, RT#5451/RT#5514/RT#5564...
authorivan <ivan>
Wed, 10 Jun 2009 21:58:30 +0000 (21:58 +0000)
committerivan <ivan>
Wed, 10 Jun 2009 21:58:30 +0000 (21:58 +0000)
FS/FS/cust_bill.pm
FS/FS/cust_bill_pkg.pm

index 51b9766..737f68c 100644 (file)
@@ -2861,8 +2861,12 @@ sub _items_cust_bill_pkg {
 
           #at least until cust_bill_pkg has "past" ranges in addition to
           #the "future" sdate/edate ones... see #3032
+          my @dates = ( $self->_date );
+          my $prev = $cust_bill_pkg->previous_cust_bill_pkg;
+          push @dates, $prev->sdate if $prev;
+
           push @d, map &{$escape_function}($_),
-                       $cust_pkg->h_labels_short($self->_date)
+                       $cust_pkg->h_labels_short(@dates)
                                                  #$cust_bill_pkg->edate,
                                                  #$cust_bill_pkg->sdate)
             unless $cust_pkg->part_pkg->hide_svc_detail
index 6bd39d4..bb07173 100644 (file)
@@ -276,6 +276,23 @@ sub cust_bill {
   qsearchs( 'cust_bill', { 'invnum' => $self->invnum } );
 }
 
+=item previous_cust_bill_pkg
+
+Returns the previous cust_bill_pkg for this package, if any.
+
+=cut
+
+sub previous_cust_bill_pkg {
+  my $self = shift;
+  qsearchs({
+    'table'    => 'cust_bill_pkg',
+    'hashref'  => { 'pkgnum' => $self->pkgnum,
+                    'sdate'  => { op=>'<', value=>$self->sdate },
+                  },
+    'order_by' => 'ORDER BY sdate DESC LIMIT 1',
+  });
+}
+
 =item details [ OPTION => VALUE ... ]
 
 Returns an array of detail information for the invoice line item.