summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2005-06-09 05:34:07 +0000
committerivan <ivan>2005-06-09 05:34:07 +0000
commit6cd950830fa622fa6cbe87895dc58fb1c9868eef (patch)
tree96b3a6bdc655222efc80dd2ff77226cf943195cd
parentc6c8e2d15723eb0aed516664025b9bd9d57a2528 (diff)
add multiple agent selection to agent-specific invoicing
-rw-r--r--FS/FS/cust_bill.pm8
-rw-r--r--FS/FS/part_bill_event.pm2
-rwxr-xr-xhttemplate/edit/part_bill_event.cgi11
3 files changed, 13 insertions, 8 deletions
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index f090978ca..a9bb7452b 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -550,7 +550,8 @@ emails or print. See L<FS::cust_main_invoice>.
TEMPLATENAME, if specified, is the name of a suffix for alternate invoices.
AGENTNUM, if specified, means that this invoice will only be sent for customers
-of the specified agent.
+of the specified agent or agent(s). AGENTNUM can be a scalar agentnum (for a
+single agent) or an arrayref of agentnums.
INVOICE_FROM, if specified, overrides the default email invoice From: address.
@@ -559,7 +560,10 @@ INVOICE_FROM, if specified, overrides the default email invoice From: address.
sub send {
my $self = shift;
my $template = scalar(@_) ? shift : '';
- return 'N/A' if scalar(@_) && $_[0] && $self->cust_main->agentnum != shift;
+ if ( scalar(@_) && $_[0] ) {
+ my $agentnums = ref($_[0]) ? shift : [ shift ];
+ return 'N/A' unless grep { $_ == $self->cust_main->agentnum } @$agentnums;
+ }
my $invoice_from =
scalar(@_)
diff --git a/FS/FS/part_bill_event.pm b/FS/FS/part_bill_event.pm
index 0d03ebf29..5731f7883 100644
--- a/FS/FS/part_bill_event.pm
+++ b/FS/FS/part_bill_event.pm
@@ -126,7 +126,7 @@ sub check {
or $c =~ /^\s*\$cust_bill\->(comp|realtime_(card|ach|lec)|batch_card|send)\(\);\s*$/
- or $c =~ /^\s*\$cust_bill\->send(_if_newest)?\(\'[\w\-\s]+\'\s*(,\s*\d+\s*,\s*'[\w\@\.\-\+]*'\s*)?\);\s*$/
+ or $c =~ /^\s*\$cust_bill\->send(_if_newest)?\(\'[\w\-\s]+\'\s*(,\s*(\d+|\[\s*\d+(,\s*\d+)*\s*\])\s*,\s*'[\w\@\.\-\+]*'\s*)?\);\s*$/
or $c =~ /^\s*\$cust_main\->apply_payments; \$cust_main->apply_credits; "";\s*$/
diff --git a/httemplate/edit/part_bill_event.cgi b/httemplate/edit/part_bill_event.cgi
index 99bc2609f..06bdaf647 100755
--- a/httemplate/edit/part_bill_event.cgi
+++ b/httemplate/edit/part_bill_event.cgi
@@ -83,11 +83,12 @@ sub select_pkgpart {
sub select_agentnum {
my $plandata = shift;
- my $agentnum = $plandata->{'agentnum'};
- '<SELECT NAME="agentnum">'.
+ #my $agentnum = $plandata->{'agentnum'};
+ my %agentnums = map { $_=>1 } split(/,\s*/, $plandata->{'agentnum'});
+ '<SELECT NAME="agentnum" MULTIPLE>'.
join("\n", map {
'<OPTION VALUE="'. $_->agentnum. '"'.
- ( $_->agentnum == $agentnum ? ' SELECTED' : '' ).
+ ( $agentnums{$_->agentnum} ? ' SELECTED' : '' ).
'>'. $_->agent
} qsearch('agent', { 'disabled' => '' } ) ).
'</SELECT>';
@@ -187,11 +188,11 @@ tie my %events, 'Tie::IxHash',
'send_agent' => {
'name' => 'Send invoice (email/print) ',
- 'code' => '$cust_bill->send(\'%%%agent_templatename%%%\', %%%agentnum%%%, \'%%%agent_invoice_from%%%\');',
+ 'code' => '$cust_bill->send(\'%%%agent_templatename%%%\', [ %%%agentnum%%% ], \'%%%agent_invoice_from%%%\');',
'html' => sub {
'<TABLE BORDER=0>
<TR>
- <TD ALIGN="right">only for agent </TD>
+ <TD ALIGN="right">only for agent(s) </TD>
<TD>'. &select_agentnum(@_). '</TD>
</TR>
<TR>