summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2004-06-03 09:55:58 +0000
committerivan <ivan>2004-06-03 09:55:58 +0000
commit11118ad24d23047a6f30b80532d418b84c81e4c5 (patch)
tree26fef610edf078096731618011cc11fb3e65887a
parent79c0fbbfc4cb61fc948b8517bc204b9d7ec01104 (diff)
fix agent-specific template on "invoice view" screen and "re-email/re-print" links, also fix agent-specific From: address on "re-email" link
-rw-r--r--FS/FS/cust_bill.pm26
1 files changed, 21 insertions, 5 deletions
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index 72852d1f1..49d53bc26 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -335,7 +335,10 @@ sub send {
my $self = shift;
my $template = scalar(@_) ? shift : '';
return 'N/A' if scalar(@_) && $_[0] && $self->cust_main->agentnum != shift;
- my $invoice_from = scalar(@_) ? shift : $conf->config('invoice_from');
+ my $invoice_from =
+ scalar(@_)
+ ? shift
+ : ( $self->_agent_invoice_from || $conf->config('invoice_from') );
my @print_text = $self->print_text('', $template);
my @invoicing_list = $self->cust_main->invoicing_list;
@@ -668,13 +671,26 @@ sub batch_card {
sub _agent_template {
my $self = shift;
+ $self->_agent_plandata('agent_templatename');
+}
+
+sub _agent_invoice_from {
+ my $self = shift;
+ $self->_agent_plandata('agent_invoice_from');
+}
+
+sub _agent_plandata {
+ my( $self, $option ) = @_;
my $cust_bill_event = qsearchs( 'part_bill_event',
{
'payby' => $self->cust_main->payby,
'plan' => 'send_agent',
- 'eventcode' => { 'op' => 'LIKE',
- 'value' => '_%, '. $self->cust_main->agentnum. ');' },
+ 'plandata' => { 'op' => '~',
+ 'value' => "(^|\n)agentnum ".
+ $self->cust_main->agentnum.
+ "(\n|\$)",
+ },
},
'',
'ORDER BY seconds LIMIT 1'
@@ -682,10 +698,10 @@ sub _agent_template {
return '' unless $cust_bill_event;
- if ( $cust_bill_event->eventcode =~ /\(\s*'(.*)'\s*,\s*(\d+)\s*\)\;$/ ) {
+ if ( $cust_bill_event->plandata =~ /^$option (.*)$/m ) {
return $1;
} else {
- warn "can't parse eventcode for agent-specific invoice template";
+ warn "can't parse plandata for $1";
return '';
}