my %payby = map { $_ => 1 } $conf->config('payby');
+# cached for conditions, to avoid looking it up twice
+my $invoicing_list_emailonly = $cust_main->invoicing_list_emailonly;
+
# nice declarative menu; should be a parameter to some kind of menu generator
my @menu = (
[
url => sub {
my $cust_main = shift;
my $agentnum = $cust_main->agentnum;
- 'misc/email-customers.html?table=cust_main;search_hash='.
- 'agent_virt_agentnum='.$agentnum.";custnum=$custnum";
+ 'misc/email-customers.html?table=cust_main;'.
+ 'agent_virt_agentnum='.$agentnum.";custnum=$custnum;url=".
+ uri_escape($cgi->self_url);
},
- condition => sub { shift->invoicing_list_emailonly },
+ condition => sub { $invoicing_list_emailonly },
+ acl => 'Bulk send customer notices',
},
],
[
show => 'quotations',
},
{
- label => 'Add quotation',
+ label => 'Create new quotation',
url => "edit/quotation.html?custnum=$custnum",
acl => 'Generate quotation',
},
},
# separator, definitely
{
- label => 'Download statement',
+ label => 'Download PDF statement',
url => "view/cust_main_statement-pdf.cgi?$custnum",
- acl => 'List invoices',
+ acl => 'View legacy typeset statements',
condition => sub {
FS::cust_bill->count('custnum = ?', shift->custnum) > 0
},
FS::cust_pay_pending->count('custnum = ?', shift->custnum) > 0
},
},
+ {
+ label => 'Email statement to this customer',
+ url => sub {
+ my $cust_main = shift;
+ my $agentnum = $cust_main->agentnum;
+ 'misc/email-customer-statement.html?table=cust_main;'.
+ 'agent_virt_agentnum='.$agentnum.";custnum=$custnum;url=".
+ uri_escape($cgi->self_url);
+ },
+ condition => sub { $invoicing_list_emailonly },
+ acl => 'Resend invoices',
+ },
],
[
{
}
$a .= qq[>$label</A> ];
+ $cgi->param('show', $opt{show});
} elsif ( $entry->{popup} ) {