From b4aba212f8f28a77c9e62323b30209601463c5ff Mon Sep 17 00:00:00 2001 From: Brian Medley Date: Fri, 20 Apr 2012 09:58:25 -0500 Subject: new fee either flat or percentage based, #17319 --- .../cust_bill_fee_greater_percent_or_flat.pm | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 FS/FS/part_event/Action/cust_bill_fee_greater_percent_or_flat.pm diff --git a/FS/FS/part_event/Action/cust_bill_fee_greater_percent_or_flat.pm b/FS/FS/part_event/Action/cust_bill_fee_greater_percent_or_flat.pm new file mode 100644 index 000000000..13f886ab1 --- /dev/null +++ b/FS/FS/part_event/Action/cust_bill_fee_greater_percent_or_flat.pm @@ -0,0 +1,41 @@ +package FS::part_event::Action::cust_bill_fee_greater_percent_or_flat; + +use strict; +use base qw( FS::part_event::Action::fee ); +use Tie::IxHash; + +sub description { 'Late fee (greater of percentage of invoice or flat fee)'; } + +sub eventtable_hashref { + { 'cust_bill' => 1 }; +} + +sub option_fields { + my $class = shift; + + my $t = tie my %option_fields, 'Tie::IxHash', $class->SUPER::option_fields(); + $t->Shift; #assumes charge is first + $t->Unshift( 'flat_fee' => { label=>'Flat Fee', type=>'money', } ); + $t->Unshift( 'percent' => { label=>'Percent', size=>2, } ); + + %option_fields; +} + +sub _calc_fee { + my( $self, $cust_bill ) = @_; + my $percent = sprintf('%.2f', $cust_bill->owed * $self->option('percent') / 100 ); + my $flat_fee = $self->option('flat_fee'); + + my $num = $flat_fee - $percent; + if ($num == 0) { + return($percent); + } + elsif ($num > 0) { + return($flat_fee); + } + else { + return($percent); + } +} + +1; -- cgit v1.2.1 From 25f8c85c0723294a7fbf57df82ded48d9f07a074 Mon Sep 17 00:00:00 2001 From: Brian Medley Date: Fri, 20 Apr 2012 11:48:50 -0500 Subject: remove whitespace, #17319 --- FS/FS/part_event/Action/cust_bill_fee_greater_percent_or_flat.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FS/FS/part_event/Action/cust_bill_fee_greater_percent_or_flat.pm b/FS/FS/part_event/Action/cust_bill_fee_greater_percent_or_flat.pm index 13f886ab1..558f5cdf2 100644 --- a/FS/FS/part_event/Action/cust_bill_fee_greater_percent_or_flat.pm +++ b/FS/FS/part_event/Action/cust_bill_fee_greater_percent_or_flat.pm @@ -29,7 +29,7 @@ sub _calc_fee { my $num = $flat_fee - $percent; if ($num == 0) { return($percent); - } + } elsif ($num > 0) { return($flat_fee); } -- cgit v1.2.1 From 28b2b233e588f03a9d7966f29db918ace9382d26 Mon Sep 17 00:00:00 2001 From: Brian Medley Date: Fri, 20 Apr 2012 13:34:25 -0500 Subject: update link text, #16585 --- httemplate/elements/coord-links.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/httemplate/elements/coord-links.html b/httemplate/elements/coord-links.html index 3fd3ff696..81af8120b 100644 --- a/httemplate/elements/coord-links.html +++ b/httemplate/elements/coord-links.html @@ -12,7 +12,7 @@ % if ( $origin ) { <& /elements/popup_link.html, 'action' => $p. "view/directions.html?origin=$origin;". $query, - 'label' => mt('dir'), + 'label' => mt('directions'), 'actionlabel' => $name, 'width' => 763, 'height' => 575, -- cgit v1.2.1