<% if ( $cgi->param('eventpart') && $cgi->param('eventpart') =~ /^(\d+)$/ ) { $cgi->param('eventpart', $1); } else { $cgi->param('eventpart', ''); } my ($query) = $cgi->keywords; my $action = ''; my $part_bill_event = ''; if ( $cgi->param('error') ) { $part_bill_event = new FS::part_bill_event ( { map { $_, scalar($cgi->param($_)) } fields('part_bill_event') } ); } if ( $query && $query =~ /^(\d+)$/ ) { $part_bill_event ||= qsearchs('part_bill_event',{'eventpart'=>$1}); } else { $part_bill_event ||= new FS::part_bill_event {}; } $action ||= $part_bill_event->pkgpart ? 'Edit' : 'Add'; my $hashref = $part_bill_event->hashref; print header("$action Invoice Event Definition", menubar( 'Main Menu' => popurl(2), 'View all invoice events' => popurl(2). 'browse/part_bill_event.cgi', )); print qq!Error: !, $cgi->param('error'), "" if $cgi->param('error'); print '
'. ''; print "Invoice Event #", $hashref->{eventpart} ? $hashref->{eventpart} : "(NEW)"; print ntable("#cccccc",2), <Payby After days END print 'Disabled'; print '{disabled} eq "Y"; print '>'; print ''; print 'Action'; #print ntable(); #this is pretty kludgy right here. tie my %events, 'Tie::IxHash', 'fee' => { 'name' => 'Late fee', 'code' => '$cust_main->charge( %%%charge%%%, \'%%%reason%%%\' );', 'html' => 'Amount '. '
Reason ', 'weight' => 10, }, 'suspend' => { 'name' => 'Suspend', 'code' => '$cust_main->suspend();', 'weight' => 10, }, 'cancel' => { 'name' => 'Cancel', 'code' => '$cust_main->cancel();', 'weight' => 10, }, 'addpost' => { 'name' => 'Add postal invoicing', 'code' => '$cust_main->invoicing_list_addpost(); "";', 'weight' => 20, }, 'comp' => { 'name' => 'Pay invoice with a complimentary "payment"', 'code' => '$cust_bill->comp();', 'weight' => 30, }, 'realtime-card' => { 'name' => 'Run card with a Business::OnlinePayment realtime gateway', 'code' => '$cust_bill->realtime_card();', 'weight' => 30, }, 'realtime-check' => { 'name' => 'Run check with a Business::OnlinePayment realtime gateway', 'code' => '$cust_bill->realtime_ach();', 'weight' => 30, }, 'batch-card' => { 'name' => 'Add card to the pending credit card batch', 'code' => '$cust_bill->batch_card();', 'weight' => 40, }, 'send' => { 'name' => 'Send invoice (email/print)', 'code' => '$cust_bill->send();', 'weight' => 50, }, 'send_alternate' => { 'name' => 'Send invoice (email/print) with alternate template', 'code' => '$cust_bill->send(\'%%%templatename%%%\');', 'html' => '', '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%%%\' );', 'html' => ''. ''. ''. ''. ''. ''. '
FTP server: '. '
FTP username: '. ''. '
FTP password: '. ''. '
FTP directory: '. '
', 'weight' => 50, }, 'bill' => { 'name' => 'Generate invoices (normally only used with a Late Fee event)', 'code' => '$cust_main->bill();', 'weight' => 60, }, 'apply' => { 'name' => 'Apply unapplied payments and credits', 'code' => '$cust_main->apply_payments; $cust_main->apply_credits; "";', 'weight' => 70, }, 'collect' => { 'name' => 'Collect on invoices (normally only used with a Late Fee and Generate Invoice events)', 'code' => '$cust_main->collect();', 'weight' => 80, }, ; foreach my $event ( keys %events ) { my %plandata = map { /^(\w+) (.*)$/; ($1, $2); } split(/\n/, $part_bill_event->plandata); my $html = $events{$event}{html}; while ( $html =~ /%%%(\w+)%%%/ ) { my $field = $1; $html =~ s/%%%$field%%%/$plandata{$field}/; } print ntable( "#cccccc", 2). qq!plan; print qq!VALUE="!. $event. ":". $events{$event}{weight}. ":". encode_entities($events{$event}{code}). qq!">$events{$event}{name}!; print ''. $html. '' if $html; print qq!!; print ''; } #print ''; print < END print qq!!; %>