add invoice event to suspend only when greater than N amount
[freeside.git] / httemplate / edit / part_bill_event.cgi
index e60cc87..cc6bb47 100755 (executable)
@@ -94,6 +94,9 @@ sub select_agentnum {
   '</SELECT>';
 }
 
+my $conf = new FS::Conf;
+my $money_char = $conf->config('money_char');
+
 #this is pretty kludgy right here.
 tie my %events, 'Tie::IxHash',
 
@@ -110,6 +113,12 @@ tie my %events, 'Tie::IxHash',
     'code'   => '$cust_main->suspend();',
     'weight' => 10,
   },
+  'suspend' => {
+    'name'   => 'Suspend if balance (this invoice and previous) over',
+    'code'   => '$cust_bill->cust_suspend_if_balance_over( %%%balanceover%%% );',
+    'html'   => " $money_char ". '<INPUT TYPE="text" SIZE="7" NAME="balanceover" VALUE="%%%balanceover%%%">',
+    'weight' => 10,
+  },
   'suspend-if-pkgpart' => {
     'name'   => 'Suspend packages',
     'code'   => '$cust_main->suspend_if_pkgpart(%%%if_pkgpart%%%);',
@@ -223,7 +232,7 @@ tie my %events, 'Tie::IxHash',
                                    );',
     'html' =>
         '<TABLE BORDER=0>'.
-        '<TR><TD align="right">Format ("default" or "billco"): </TD>'.
+        '<TR><TD ALIGN="right">Format ("default" or "billco"): </TD>'.
           '<TD>'.
             '<!--'.
             '<SELECT NAME="ftpformat">'.
@@ -251,21 +260,58 @@ tie my %events, 'Tie::IxHash',
 
   'spool_csv' => {
     'name' => 'Spool CSV invoice data',
-    'code' => '$cust_bill->spool_csv( \'format\' => \'%%%spoolformat%%%\',
-                                    );',
-    'html' =>
-        '<TABLE BORDER=0>'.
-        '<TR><TD align="right">Format ("default" or "billco"): </TD>'.
-          '<TD>'.
-            '<!--'.
-            '<SELECT NAME="spoolformat">'.
-              '<OPTION VALUE="default">Default'.
-              '<OPTION VALUE="billco">Billco'.
-            '</SELECT>'.
-            '-->'.
-            '<INPUT TYPE="text" NAME="spoolformat" VALUE="%%%spoolformat%%%">'.
-          '</TD></TR>'.
-        '</TABLE>',
+    'code' => '$cust_bill->spool_csv(
+                 \'format\' => \'%%%spoolformat%%%\',
+                 \'dest\'   => \'%%%spooldest%%%\',
+                 \'agent_spools\' => \'%%%spoolagent_spools%%%\',
+               );',
+    'html' => sub {
+       my $plandata = shift;
+
+       my $html =
+       '<TABLE BORDER=0>'.
+       '<TR><TD ALIGN="right">Format: </TD>'.
+         '<TD>'.
+           '<SELECT NAME="spoolformat">';
+
+       foreach my $option (qw( default billco )) {
+         $html .= qq(<OPTION VALUE="$option");
+         $html .= ' SELECTED' if $option eq $plandata->{'spoolformat'};
+         $html .= ">\u$option";
+       }
+
+       $html .= 
+           '</SELECT>'.
+         '</TD></TR>'.
+       '<TR><TD ALIGN="right">For destination: </TD>'.
+         '<TD>'.
+           '<SELECT NAME="spooldest">';
+
+       tie my %dest, 'Tie::IxHash', 
+         ''      => '(all)',
+         'POST'  => 'Postal Mail',
+         'EMAIL' => 'Email',
+         'FAX'   => 'Fax',
+       ;
+
+       foreach my $dest (keys %dest) {
+         $html .= qq(<OPTION VALUE="$dest");
+         $html .= ' SELECTED' if $dest eq $plandata->{'spooldest'};
+         $html .= '>'. $dest{$dest};
+       }
+
+       $html .=
+           '</SELECT>'.
+         '</TD></TR>'.
+       '<TR><TD ALIGN="right">Individual per-agent spools? </TD>'.
+         '<TD><INPUT TYPE="checkbox" NAME="spoolagent_spools" VALUE="1" '.
+           ( $plandata->{'spoolagent_spools'} ? 'CHECKED' : '' ).
+           '>'.
+         '</TD></TR>'.
+       '</TABLE>';
+
+       $html;
+    },
     'weight' => 50,
   },