X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_bill_event.cgi;h=e60cc87e91401e6d5bea63cb5b5f0ee697ba4d3f;hb=172c50ae6b9bef1e72c9f454d0c3621aabe210fb;hp=48ed7916b76f2882f5c530d661b9dc82ebb98cf2;hpb=f0bcdae0719f2634df3c51bd3f21906de14817d4;p=freeside.git diff --git a/httemplate/edit/part_bill_event.cgi b/httemplate/edit/part_bill_event.cgi index 48ed7916b..e60cc87e9 100755 --- a/httemplate/edit/part_bill_event.cgi +++ b/httemplate/edit/part_bill_event.cgi @@ -68,6 +68,32 @@ print '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'}); + ''; +} + #this is pretty kludgy right here. tie my %events, 'Tie::IxHash', @@ -84,6 +110,18 @@ tie my %events, 'Tie::IxHash', 'code' => '$cust_main->suspend();', '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();', @@ -140,15 +178,62 @@ tie my %events, 'Tie::IxHash', 'weight' => 50, }, + 'send_if_newest' => { + 'name' => 'Send invoice (email/print) 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) ', + 'code' => '$cust_bill->send(\'%%%agent_templatename%%%\', [ %%%agentnum%%% ], \'%%%agent_invoice_from%%%\');', + 'html' => sub { + ' + + + + + + + + + + + + +
only for agent(s) '. &select_agentnum(@_). '
with template + +
email From: + +
'; + }, + '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: '. @@ -164,6 +249,26 @@ tie my %events, 'Tie::IxHash', 'weight' => 50, }, + 'spool_csv' => { + 'name' => 'Spool CSV invoice data', + 'code' => '$cust_bill->spool_csv( \'format\' => \'%%%spoolformat%%%\', + );', + 'html' => + ''. + ''. + ''. + '
Format ("default" or "billco"): '. + ''. + ''. + '
', + 'weight' => 50, + }, + 'bill' => { 'name' => 'Generate invoices (normally only used with a Late Fee event)', 'code' => '$cust_main->bill();', @@ -188,6 +293,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}/;