[freeside-commits] freeside/FS/FS/part_pkg voip_cdr.pm,1.18,1.19

Jeff Finucane,420,, jeff at wavetail.420.am
Fri Aug 1 21:10:03 PDT 2008


Update of /home/cvs/cvsroot/freeside/FS/FS/part_pkg
In directory wavetail.420.am:/tmp/cvs-serv24332/FS/FS/part_pkg

Modified Files:
	voip_cdr.pm 
Log Message:
improve CDR usage presentation

Index: voip_cdr.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/part_pkg/voip_cdr.pm,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- voip_cdr.pm	20 Jun 2008 03:36:16 -0000	1.18
+++ voip_cdr.pm	2 Aug 2008 04:10:01 -0000	1.19
@@ -85,6 +85,10 @@
                          'select_options' => { FS::cdr::invoice_formats() },
                        },
 
+    'separate_usage' => { 'name' => 'Separate usage charges from recurring charges',
+                          'type' => 'checkbox',
+                        },
+
     #XXX also have option for an external db
 #    'cdr_location' => { 'name' => 'CDR database location'
 #                        'type' => 'select',
@@ -116,6 +120,7 @@
                        disable_src
                        domestic_prefix international_prefix
                        use_amaflags use_disposition output_format
+                       separate_usage
                      )
                   ],
   'weight' => 40,
@@ -126,8 +131,16 @@
   $self->option('setup_fee');
 }
 
-#false laziness w/voip_sqlradacct... resolve it if that one ever gets used again
 sub calc_recur {
+  my $self = shift;
+  my $charges = 0;
+  $charges = $self->calc_usage(@_)
+    unless $self->option('separate_usage', 'Hush!');
+  $self->option('recur_fee') + $charges;
+}
+
+#false laziness w/voip_sqlradacct calc_recur resolve it if that one ever gets used again
+sub calc_usage {
   my($self, $cust_pkg, $sdate, $details, $param ) = @_;
 
   my $last_bill = $cust_pkg->last_bill;
@@ -425,7 +438,7 @@
 
   } #if ( $spool_cdr && length($downstream_cdr) )
 
-  $self->option('recur_fee') + $charges;
+  $charges;
 
 }
 
@@ -445,5 +458,30 @@
   scalar(grep { $_->part_svc->svcdb eq 'svc_phone' } $cust_pkg->cust_svc);
 }
 
+sub append_cust_bill_pkgs {
+  my $self = shift;
+  my($cust_pkg, $sdate, $details, $param ) = @_;
+  return []
+    unless $self->option('separate_usage', 'Hush!');
+
+  my @details = ();
+  my $charges = $self->calc_usage($cust_pkg, $sdate, \@details, $param);
+
+  my $cust_bill_pkg = new FS::cust_bill_pkg {
+    'pkgnum'    => $cust_pkg->pkgnum,
+    'setup'     => 0,
+    'unitsetup' => 0,
+    'recur'     => sprintf( "%.2f", $charges),  # hmmm
+    'unitrecur' => 0,
+    'quantity'  => $cust_pkg->quantity,
+    'sdate'     => $$sdate,
+    'edate'     => $cust_pkg->bill,             # already fiddled
+    'itemdesc'  => 'Call details',              # configurable?
+    'details'   => \@details,
+  };
+
+  return [ $cust_bill_pkg ];
+}
+
 1;
 



More information about the freeside-commits mailing list