From 719acce16404ce63773159842f75cce230f34486 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Tue, 6 May 2014 06:38:43 -0700 Subject: [PATCH] commissions on package margin, RT#24086 --- FS/FS/part_event/Action/Mixin/credit_pkg.pm | 6 ++++-- FS/FS/part_pkg.pm | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/FS/FS/part_event/Action/Mixin/credit_pkg.pm b/FS/FS/part_event/Action/Mixin/credit_pkg.pm index a3c1d6efb..e586f8532 100644 --- a/FS/FS/part_event/Action/Mixin/credit_pkg.pm +++ b/FS/FS/part_event/Action/Mixin/credit_pkg.pm @@ -21,8 +21,8 @@ sub option_fields { 'type' => 'select', #add additional ways to specify in the package def 'options' => [qw( - base_recur_permonth cust_bill_pkg_recur recur_cost_permonth - unit_setup setup_cost + base_recur_permonth cust_bill_pkg_recur recur_cost_permonth recur_margin_permonth + unit_setup setup_cost setup_margin )], 'labels' => { 'base_recur_permonth' => 'Base monthly fee', @@ -31,6 +31,8 @@ sub option_fields { 'recur_cost_permonth' => 'Monthly cost', 'unit_setup' => 'Setup fee', 'setup_cost' => 'Setup cost', + 'setup_margin' => 'Setup margin (fee minus cost)', + 'recur_margin_permonth' => 'Monthly margin (fee minus cost)', }, }, ); diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm index 07f59aa96..deba655c5 100644 --- a/FS/FS/part_pkg.pm +++ b/FS/FS/part_pkg.pm @@ -1610,6 +1610,28 @@ sub unit_setup { $self->option('setup_fee') || 0; } +=item setup_margin + +unit_setup minus setup_cost + +=cut + +sub setup_margin { + my $self = shift; + $self->unit_setup(@_) - $self->setup_cost; +} + +=item recur_margin_permonth + +base_recur_permonth minus recur_cost_permonth + +=cut + +sub recur_margin_permonth { + my $self = shift; + $self->base_recur_permonth(@_) - $self->recur_cost_permonth(@_); +} + =item format OPTION DATA Returns data formatted according to the function 'format' described -- 2.11.0