+ Action |
+
+
+<%
#print ntable();
+sub select_pkgpart {
+ my $label = shift;
+ my $plandata = shift;
+ my %selected = map { $_=>1 } split(/,\s*/, $plandata->{$label});
+ qq(';
+}
+
+sub select_agentnum {
+ my $plandata = shift;
+ #my $agentnum = $plandata->{'agentnum'};
+ my %agentnums = map { $_=>1 } split(/,\s*/, $plandata->{'agentnum'});
+ '';
+}
+
+my $conf = new FS::Conf;
+my $money_char = $conf->config('money_char') || '$';
+
#this is pretty kludgy right here.
tie my %events, 'Tie::IxHash',
@@ -84,6 +151,24 @@ tie my %events, 'Tie::IxHash',
'code' => '$cust_main->suspend();',
'weight' => 10,
},
+ 'suspend-if-balance' => {
+ 'name' => 'Suspend if balance (this invoice and previous) over',
+ 'code' => '$cust_bill->cust_suspend_if_balance_over( %%%balanceover%%% );',
+ 'html' => " $money_char ". '',
+ 'weight' => 10,
+ },
+ 'suspend-if-pkgpart' => {
+ 'name' => 'Suspend packages',
+ 'code' => '$cust_main->suspend_if_pkgpart(%%%if_pkgpart%%%);',
+ 'html' => sub { &select_pkgpart('if_pkgpart', @_) },
+ 'weight' => 10,
+ },
+ 'suspend-unless-pkgpart' => {
+ 'name' => 'Suspend packages except',
+ 'code' => '$cust_main->suspend_unless_pkgpart(%%%unless_pkgpart%%%);',
+ 'html' => sub { &select_pkgpart('unless_pkgpart', @_) },
+ 'weight' => 10,
+ },
'cancel' => {
'name' => 'Cancel',
'code' => '$cust_main->cancel();',
@@ -114,6 +199,12 @@ tie my %events, 'Tie::IxHash',
'weight' => 30,
},
+ 'realtime-lec' => {
+ 'name' => 'Run phone bill ("LEC") billing with a Business::OnlinePayment realtime gateway',
+ 'code' => '$cust_bill->realtime_lec();',
+ 'weight' => 30,
+ },
+
'batch-card' => {
'name' => 'Add card to the pending credit card batch',
'code' => '$cust_bill->batch_card();',
@@ -121,28 +212,75 @@ tie my %events, 'Tie::IxHash',
},
'send' => {
- 'name' => 'Send invoice (email/print)',
+ 'name' => 'Send invoice (email/print/fax)',
'code' => '$cust_bill->send();',
'weight' => 50,
},
'send_alternate' => {
- 'name' => 'Send invoice (email/print) with alternate template',
+ 'name' => 'Send invoice (email/print/fax) with alternate template',
'code' => '$cust_bill->send(\'%%%templatename%%%\');',
'html' =>
'',
'weight' => 50,
},
+ 'send_if_newest' => {
+ 'name' => 'Send invoice (email/print/fax) with alternate template, if it is still the newest invoice (useful for late notices - set to 31 days or later)',
+ 'code' => '$cust_bill->send_if_newest(\'%%%if_newest_templatename%%%\');',
+ 'html' =>
+ '',
+ 'weight' => 50,
+ },
+
+ 'send_agent' => {
+ 'name' => 'Send invoice (email/print/fax) ',
+ 'code' => '$cust_bill->send(\'%%%agent_templatename%%%\', [ %%%agentnum%%% ], \'%%%agent_invoice_from%%%\');',
+ 'html' => sub {
+ '';
+ },
+ 'weight' => 50,
+ },
+
'send_csv_ftp' => {
'name' => 'Upload CSV invoice data to an FTP server',
- 'code' => '$cust_bill->send_csv( protocol => \'ftp\',
- server => \'%%%ftpserver%%%\',
- username => \'%%%ftpusername%%%\',
- password => \'%%%ftppassword%%%\',
- dir => \'%%%ftpdir%%%\' );',
+ 'code' => '$cust_bill->send_csv( protocol => \'ftp\',
+ server => \'%%%ftpserver%%%\',
+ username => \'%%%ftpusername%%%\',
+ password => \'%%%ftppassword%%%\',
+ dir => \'%%%ftpdir%%%\',
+ \'format\' => \'%%%ftpformat%%%\',
+ );',
'html' =>
- 'FTP server: | '.
+ ''.
+ 'Format ("default" or "billco"): | '.
+ ''.
+ ''.
+ ''.
+ ' | '.
+ 'FTP server: | '.
''.
' | '.
'FTP username: | '.
@@ -158,6 +296,71 @@ tie my %events, 'Tie::IxHash',
'weight' => 50,
},
+ 'spool_csv' => {
+ 'name' => 'Spool CSV invoice data',
+ 'code' => '$cust_bill->spool_csv(
+ \'format\' => \'%%%spoolformat%%%\',
+ \'dest\' => \'%%%spooldest%%%\',
+ \'balanceover\' => \'%%%spoolbalanceover%%%\',
+ \'agent_spools\' => \'%%%spoolagent_spools%%%\',
+ );',
+ 'html' => sub {
+ my $plandata = shift;
+
+ my $html =
+ '';
+
+ $html;
+ },
+ 'weight' => 50,
+ },
+
'bill' => {
'name' => 'Generate invoices (normally only used with a Late Fee event)',
'code' => '$cust_main->bill();',
@@ -182,6 +385,9 @@ foreach my $event ( keys %events ) {
my %plandata = map { /^(\w+) (.*)$/; ($1, $2); }
split(/\n/, $part_bill_event->plandata);
my $html = $events{$event}{html};
+ if ( ref($html) eq 'CODE' ) {
+ $html = &{$html}(\%plandata);
+ }
while ( $html =~ /%%%(\w+)%%%/ ) {
my $field = $1;
$html =~ s/%%%$field%%%/$plandata{$field}/;
|
|