agent wholesale bulk billing: respect date_format setting for details, RT#30484
[freeside.git] / FS / FS / part_pkg / agent.pm
index d41978c..62cf185 100644 (file)
@@ -19,16 +19,8 @@ $me = '[FS::part_pkg::agent]';
 %info = (
   'name'      => 'Wholesale bulk billing, for master customers of an agent.',
   'shortname' => 'Wholesale bulk billing for agent.',
-
+  'inherit_fields' => [qw( prorate global_Mixin)],
   'fields' => {
-    'setup_fee'     => { 'name' => 'Setup fee for this package',
-                         'default' => 0,
-                       },
-    'recur_fee'     => { 'name' => 'Base recurring fee for this package',
-                         'default' => 0,
-                       },
-
-
     #'recur_method'  => { 'name' => 'Recurring fee method',
     #                     #'type' => 'radio',
     #                     #'options' => \%recur_method,
@@ -38,6 +30,10 @@ $me = '[FS::part_pkg::agent]';
     'cutoff_day'    => { 'name' => 'Billing Day (1 - 28)',
                          'default' => '1',
                        },
+    'add_full_period'=> { 'name' => 'When prorating first month, also bill '.
+                                    'for one full period after that',
+                          'type' => 'checkbox',
+                        },
 
     'no_pkg_prorate'   => { 'name' => 'Disable prorating bulk packages (charge full price for packages active only a portion of the month)',
                             'type' => 'checkbox',
@@ -45,10 +41,9 @@ $me = '[FS::part_pkg::agent]';
 
   },
 
-  #'fieldorder' => [qw( setup_fee recur_fee recur_method cutoff_day ) ],
-  'fieldorder' => [qw( setup_fee recur_fee cutoff_day no_pkg_prorate ) ],
+  'fieldorder' => [qw( cutoff_day add_full_period no_pkg_prorate ) ],
 
-  'weight' => 51,
+  'weight' => 52,
 
 );
 
@@ -64,6 +59,7 @@ sub calc_recur {
 
   my $conf = new FS::Conf;
   my $money_char = $conf->config('money_char') || '$';
+  my $date_format = $conf->config('date_format') || '%m/%d/%Y';
 
   my $total_agent_charge = 0;
 
@@ -110,11 +106,15 @@ sub calc_recur {
           if $DEBUG;
 
         my $pkg_details = $cust_main->name_short. ': '; #name?
+
+        my $part_pkg = $cust_pkg->part_pkg;
+
         # + something to identify package... primary service probably
+        # no... package def for now
+        $pkg_details .= $part_pkg->pkg. ': ';
 
         my $pkg_charge = 0;
 
-        my $part_pkg = $cust_pkg->part_pkg;
         #option to not fallback? via options above
         my $pkg_setup_fee  =
           $part_pkg->setup_cost || $part_pkg->option('setup_fee');
@@ -141,8 +141,8 @@ sub calc_recur {
         my $recur_charge += $pkg_recur_charge;
 
         $pkg_details .= $money_char. sprintf('%.2f', $recur_charge ).
-                        ' ('.  time2str('%x', $pkg_start).
-                        ' - '. time2str('%x', $pkg_end  ). ')'
+                        ' ('.  time2str($date_format, $pkg_start).
+                        ' - '. time2str($date_format, $pkg_end  ). ')'
           if $recur_charge;
 
         $pkg_charge += $recur_charge;
@@ -163,6 +163,8 @@ sub calc_recur {
 
 }
 
+sub can_discount { 0; }
+
 sub hide_svc_detail {
   1;
 }