[freeside-commits] branch FREESIDE_2_3_BRANCH updated. 65a95197d48922dc4d62ca259c37b1b13eefc0f8

Ivan ivan at 420.am
Sun Jan 20 11:43:08 PST 2013


The branch, FREESIDE_2_3_BRANCH has been updated
       via  65a95197d48922dc4d62ca259c37b1b13eefc0f8 (commit)
      from  6988f1f4ed6b7cd18292675a55605ae8a1fe66f2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 65a95197d48922dc4d62ca259c37b1b13eefc0f8
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Sun Jan 20 11:43:01 2013 -0800

    commissions based on actual invoiced amounts, RT#21002

diff --git a/FS/FS/part_event/Action/Mixin/credit_pkg.pm b/FS/FS/part_event/Action/Mixin/credit_pkg.pm
index 9dcd701..a3c1d6e 100644
--- a/FS/FS/part_event/Action/Mixin/credit_pkg.pm
+++ b/FS/FS/part_event/Action/Mixin/credit_pkg.pm
@@ -16,18 +16,24 @@ sub option_fields {
                      'type'    => 'input-percentage',
                      'default' => '100',
                    },
-    'what' => { 'label'   => 'Of',
-                'type'    => 'select',
-                #add additional ways to specify in the package def
-                'options' => [ qw( base_recur_permonth unit_setup recur_cost_permonth setup_cost ) ],
-                'labels'  => { 'base_recur_permonth' => 'Base monthly fee',
-                               'unit_setup'          => 'Setup fee',
-                               'recur_cost_permonth' => 'Monthly cost',
-                               'setup_cost'          => 'Setup cost',
-                             },
-              },
+    'what' => {
+      'label'   => 'Of',
+      '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
+      )],
+      'labels'  => {
+        'base_recur_permonth' => 'Base monthly fee',
+        'cust_bill_pkg_recur' => 'Actual invoiced amount of most recent'.
+                                 ' recurring charge',
+        'recur_cost_permonth' => 'Monthly cost',
+        'unit_setup'          => 'Setup fee',
+        'setup_cost'          => 'Setup cost',
+      },
+    },
   );
-
 }
 
 #my %no_cust_pkg = ( 'setup_cost' => 1 );
diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm
index 9fcbc4a..4054c2f 100644
--- a/FS/FS/part_pkg.pm
+++ b/FS/FS/part_pkg.pm
@@ -1318,6 +1318,29 @@ sub recur_cost_permonth {
   sprintf('%.2f', $self->recur_cost / $self->freq );
 }
 
+=item cust_bill_pkg_recur CUST_PKG
+
+Actual recurring charge for the specified customer package from customer's most
+recent invoice
+
+=cut
+
+sub cust_bill_pkg_recur {
+  my($self, $cust_pkg) = @_;
+  my $cust_bill_pkg = qsearchs({
+    'table'     => 'cust_bill_pkg',
+    'addl_from' => 'LEFT JOIN cust_bill USING ( invnum )',
+    'hashref'   => { 'pkgnum' => $cust_pkg->pkgnum,
+                     'recur'  => { op=>'>', value=>'0' },
+                   },
+    'order_by'  => 'ORDER BY cust_bill._date     DESC,
+                             cust_bill_pkg.sdate DESC
+                     LIMIT 1
+                   ',
+  }) or return 0; #die "use cust_bill_pkg_recur credits with once_perinv condition";
+  $cust_bill_pkg->recur;
+}
+
 =item format OPTION DATA
 
 Returns data formatted according to the function 'format' described

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/part_event/Action/Mixin/credit_pkg.pm |   28 ++++++++++++++++----------
 FS/FS/part_pkg.pm                           |   23 ++++++++++++++++++++++
 2 files changed, 40 insertions(+), 11 deletions(-)




More information about the freeside-commits mailing list