X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpart_bill_event.cgi;h=7034969e65d2167dfe634e5b794eba732bc011de;hb=c2a596e1d9a59af750291f26fd73cd6893673e71;hp=bd328898257c44691ad6aec6db7275d01efbf62e;hpb=7bb14a35af85a729770a0a5568df6cb00cdeb514;p=freeside.git diff --git a/httemplate/edit/part_bill_event.cgi b/httemplate/edit/part_bill_event.cgi index bd3288982..7034969e6 100755 --- a/httemplate/edit/part_bill_event.cgi +++ b/httemplate/edit/part_bill_event.cgi @@ -20,7 +20,7 @@ if ( $query && $query =~ /^(\d+)$/ ) { } else { $part_bill_event ||= new FS::part_bill_event {}; } -$action ||= $part_bill_event->pkgpart ? 'Edit' : 'Add'; +$action ||= $part_bill_event->eventpart ? 'Edit' : 'Add'; my $hashref = $part_bill_event->hashref; print header("$action Invoice Event Definition", menubar( @@ -68,6 +68,31 @@ 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'}; + ''; +} + #this is pretty kludgy right here. tie my %events, 'Tie::IxHash', @@ -84,6 +109,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();', @@ -146,6 +183,26 @@ tie my %events, 'Tie::IxHash', 'weight' => 50, }, + 'send_agent' => { + 'name' => 'Send invoice (email/print) ', + 'code' => '$cust_bill->send(\'%%%agent_templatename%%%\', %%%agentnum%%%);', + 'html' => sub { + ' + + + + + + + + +
only for agent '. &select_agentnum(@_). '
with template + +
'; + }, + 'weight' => 50, + }, + 'send_csv_ftp' => { 'name' => 'Upload CSV invoice data to an FTP server', 'code' => '$cust_bill->send_csv( protocol => \'ftp\', @@ -194,6 +251,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}/;