X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fagent.pm;h=af7f103df48d67e4d7f868c38fbb4c2ec7d2b57b;hb=6e3c1b8915c39e82a9a1ac48acc5b0c360daadb7;hp=bb8a26df5ea0a59f5ee91da54fc94306f9793937;hpb=359a6c266813ba42ae534a900da36c5885984207;p=freeside.git diff --git a/FS/FS/part_pkg/agent.pm b/FS/FS/part_pkg/agent.pm index bb8a26df5..af7f103df 100644 --- a/FS/FS/part_pkg/agent.pm +++ b/FS/FS/part_pkg/agent.pm @@ -43,9 +43,13 @@ $me = '[FS::part_pkg::agent]'; 'type' => 'checkbox', }, + 'cost_only' => { 'name' => 'Bill wholesale on cost only, disabling the price fallback', + 'type' => 'checkbox' + }, + }, - 'fieldorder' => [qw( cutoff_day add_full_period no_pkg_prorate ) ], + 'fieldorder' => [qw( cutoff_day add_full_period no_pkg_prorate display_separate_cust cost_only) ], 'weight' => 52, @@ -127,11 +131,15 @@ sub calc_recur { my $quantity = $cust_pkg->quantity || 1; - #option to not fallback? via options above - 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($cust_pkg); + my $pkg_setup_fee = $part_pkg->setup_cost; + $pkg_setup_fee ||= $part_pkg->option('setup_fee') + unless $self->option('cost_only'); + $pkg_setup_fee ||= 0; + + my $pkg_base_recur = $part_pkg->recur_cost; + $pkg_base_recur ||= $part_pkg->base_recur_permonth($cust_pkg) + unless $self->option('cost_only'); + $pkg_base_recur ||= 0; my $pkg_start = $cust_pkg->get('setup'); if ( $pkg_start < $last_bill ) {