summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2012-04-20 14:25:30 -0700
committerIvan Kohler <ivan@freeside.biz>2012-04-20 14:25:30 -0700
commit7dd79523c75c3cd238fb1c0cb7ccb346a6569811 (patch)
tree6056d37d36eb90bfa7c506688c213fca1933e523
parent0eb70754e2fd9efe99ae8620489c675683daff91 (diff)
parent28b2b233e588f03a9d7966f29db918ace9382d26 (diff)
Merge branch 'master' of git.freeside.biz:/home/git/freeside
-rw-r--r--FS/FS/part_event/Action/cust_bill_fee_greater_percent_or_flat.pm41
-rw-r--r--httemplate/elements/coord-links.html2
2 files changed, 42 insertions, 1 deletions
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..558f5cdf2
--- /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;
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,