X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fcust_bill.pm;h=b2495338d96d05fcf9a530f78eef63c73f1d7c0a;hp=d0583b2ef27baa27abf9cdee16c73e0f7b09f097;hb=af723d02722d00c863ec4552627fe4ad77973d75;hpb=fc0e102e2e843e991f919eba9aba3429c4602ccf diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index d0583b2ef..b2495338d 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -334,8 +334,11 @@ INVOICE_FROM, if specified, overrides the default email invoice From: address. sub send { my $self = shift; my $template = scalar(@_) ? shift : ''; - return '' if scalar(@_) && $_[0] && $self->cust_main->agentnum ne shift; - my $invoice_from = scalar(@_) ? shift : $conf->config('invoice_from'); + return 'N/A' if scalar(@_) && $_[0] && $self->cust_main->agentnum != shift; + 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 ''; } @@ -1406,7 +1422,7 @@ sub _items_credits { #'description' => 'Credit ref\#'. $_->crednum. # " (". time2str("%x",$_->cust_credit->_date) .")". # $reason, - 'description' => 'Credit applied'. + 'description' => 'Credit applied '. time2str("%x",$_->cust_credit->_date). $reason, 'amount' => sprintf("%10.2f",$_->amount), };