better option label
[freeside.git] / FS / FS / part_pkg / voip_cdr.pm
index 005009a..9981da0 100644 (file)
@@ -22,6 +22,7 @@ $DEBUG = 0;
 tie my %cdr_svc_method, 'Tie::IxHash',
   'svc_phone.phonenum' => 'Phone numbers (svc_phone.phonenum)',
   'svc_pbx.title'      => 'PBX name (svc_pbx.title)',
+  'svc_pbx.svcnum'     => 'Freeside service # (svc_pbx.svcnum)',
 ;
 
 tie my %rating_method, 'Tie::IxHash',
@@ -70,7 +71,10 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities();
                                    'subscription',
                          'default' => '1',
                        },
-
+    'add_full_period'=> { 'name' => 'When prorating first month, also bill '.
+                                    'for one full period after that',
+                          'type' => 'checkbox',
+                        },
     'recur_method'  => { 'name' => 'Recurring fee method',
                          #'type' => 'radio',
                          #'options' => \%recur_method,
@@ -253,6 +257,7 @@ tie my %granularity, 'Tie::IxHash', FS::rate_detail::granularities();
   'fieldorder' => [qw(
                        setup_fee recur_fee recur_temporality unused_credit
                        recur_method cutoff_day
+                       add_full_period
                        cdr_svc_method
                        rating_method ratenum min_charge sec_granularity
                        ignore_unrateable
@@ -365,13 +370,16 @@ sub calc_usage {
   ) {
 
     my $svc_x = $cust_svc->svc_x;
-    foreach my $cdr (
-      $svc_x->get_cdrs(
+    my %options = (
         'disable_src'    => $self->option('disable_src'),
         'default_prefix' => $self->option('default_prefix'),
         'status'         => '',
         'for_update'     => 1,
-      )  # $last_bill, $$sdate )
+      );  # $last_bill, $$sdate )
+    $options{'by_svcnum'} = 1 if $svc_field eq 'svcnum';
+
+    foreach my $cdr (
+      $svc_x->get_cdrs( %options )
     ) {
       if ( $DEBUG > 1 ) {
         warn "rating CDR $cdr\n".