Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / FS / FS / part_pkg / agent.pm
index 9bcf33d..6ab21d6 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,8 +41,7 @@ $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,
 
@@ -68,8 +63,7 @@ sub calc_recur {
   my $total_agent_charge = 0;
 
   warn "$me billing for agent packages from ". time2str('%x', $last_bill).
-                                       " to ". time2str('%x', $$sdate);
-       "\n"
+                                       " to ". time2str('%x', $$sdate). "\n"
     if $DEBUG;
 
   my $prorate_ratio =   ( $$sdate                     - $last_bill )
@@ -120,7 +114,7 @@ sub calc_recur {
         my $pkg_setup_fee  =
           $part_pkg->setup_cost || $part_pkg->option('setup_fee');
         my $pkg_base_recur =
-          $part_pkg->recur_cost || $part_pkg->base_recur_permonth;
+          $part_pkg->recur_cost || $part_pkg->base_recur_permonth($cust_pkg);
 
         my $pkg_start = $cust_pkg->get('setup');
         if ( $pkg_start < $last_bill ) {
@@ -164,6 +158,8 @@ sub calc_recur {
 
 }
 
+sub can_discount { 0; }
+
 sub hide_svc_detail {
   1;
 }