diff options
author | ivan <ivan> | 2004-05-14 12:25:45 +0000 |
---|---|---|
committer | ivan <ivan> | 2004-05-14 12:25:45 +0000 |
commit | e975ed0585280f4cbb90b02f57114dedc43f58be (patch) | |
tree | 907d80f711853116ce390a5d3306b52f7c7084fd /httemplate | |
parent | aa2daf29c5bb13a3728b434159afc4065367af91 (diff) |
add per-agent invoice templates, add per-package suspend invoice events, fix automatic creation of invoice_latex alternate templates
Diffstat (limited to 'httemplate')
-rwxr-xr-x | httemplate/edit/part_bill_event.cgi | 60 | ||||
-rwxr-xr-x | httemplate/edit/process/part_bill_event.cgi | 5 |
2 files changed, 63 insertions, 2 deletions
diff --git a/httemplate/edit/part_bill_event.cgi b/httemplate/edit/part_bill_event.cgi index 48ed7916b..d0fa973bf 100755 --- a/httemplate/edit/part_bill_event.cgi +++ b/httemplate/edit/part_bill_event.cgi @@ -68,6 +68,31 @@ print '<TR><TD ALIGN="right">Action</TD><TD>'; #print ntable(); +sub select_pkgpart { + my $label = shift; + my $plandata = shift; + my %selected = map { $_=>1 } split(/,\s*/, $plandata->{$label}); + qq(<SELECT NAME="$label" MULTIPLE>). + join("\n", map { + '<OPTION VALUE="'. $_->pkgpart. '"'. + ( $selected{$_->pkgpart} ? ' SELECTED' : '' ). + '>'. $_->pkg. ' - '. $_->comment + } qsearch('part_pkg', { 'disabled' => '' } ) ). + '</SELECT>'; +} + +sub select_agentnum { + my $plandata = shift; + my $agentnum = $plandata->{'agentnum'}; + '<SELECT NAME="agentnum">'. + join("\n", map { + '<OPTION VALUE="'. $_->agentnum. '"'. + ( $_->agentnum == $agentnum ? ' SELECTED' : '' ). + '>'. $_->agent + } qsearch('agent', { 'disabled' => '' } ) ). + '</SELECT>'; +} + #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();', @@ -140,6 +177,26 @@ tie my %events, 'Tie::IxHash', 'weight' => 50, }, + 'send_agent' => { + 'name' => 'Send invoice (email/print) ', + 'code' => '$cust_bill->send(\'%%%agent_templatename%%%\', %%%agentnum%%%);', + 'html' => sub { + '<TABLE BORDER=0> + <TR> + <TD ALIGN="right">only for agent </TD> + <TD>'. &select_agentnum(@_). '</TD> + </TR> + <TR> + <TD ALIGN="right">with template </TD> + <TD> + <INPUT TYPE="text" NAME="agent_templatename" VALUE="%%%agent_templatename%%%"> + </TD> + </TR> + </TABLE>'; + }, + 'weight' => 50, + }, + 'send_csv_ftp' => { 'name' => 'Upload CSV invoice data to an FTP server', 'code' => '$cust_bill->send_csv( protocol => \'ftp\', @@ -188,6 +245,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}/; diff --git a/httemplate/edit/process/part_bill_event.cgi b/httemplate/edit/process/part_bill_event.cgi index e224bf634..77dcd242a 100755 --- a/httemplate/edit/process/part_bill_event.cgi +++ b/httemplate/edit/process/part_bill_event.cgi @@ -5,7 +5,7 @@ my $eventpart = $cgi->param('eventpart'); my $old = qsearchs('part_bill_event',{'eventpart'=>$eventpart}) if $eventpart; #s/days/seconds/ -$cgi->param('seconds', $cgi->param('days') * 86400 ); +$cgi->param('seconds', int( $cgi->param('days') * 86400 ) ); my $error; if ( ! $cgi->param('plan_weight_eventcode') ) { @@ -21,7 +21,8 @@ if ( ! $cgi->param('plan_weight_eventcode') ) { my $plandata = ''; while ( $eventcode =~ /%%%(\w+)%%%/ ) { my $field = $1; - my $value = $cgi->param($field); + my $value = join(', ', $cgi->param($field) ); + $cgi->param($field, $value); #in case it errors out $eventcode =~ s/%%%$field%%%/$value/; $plandata .= "$field $value\n"; } |