'Cust# | Cust. Status | Customer' =>
'custnum | Status | Last, First or Company (Last, First)',
+ 'Agent | Agent Cust# or Cust# | Cust. Status | Customer' =>
+ 'Agent | Agent Cust# | Status | Last, First or Company (Last, First)',
+
'Customer | Day phone | Night phone | Mobile phone | Fax number' =>
'Customer | (all phones)',
'Cust# | Customer | Day phone | Night phone | Mobile phone | Fax number' =>
'Payment Type' => 'cust_payby',
'Current Balance' => 'current_balance',
'Agent Cust#' => 'agent_custid',
+ 'Agent' => 'agent_name',
+ 'Agent Cust# or Cust#' => 'display_custnum',
'Advertising Source' => 'referral',
);
$header2method{'Cust#'} = 'display_custnum'
if grep { $_ eq 'cust_payby' } @cust_fields;
push @fields, 'agent_custid';
+ push @fields, 'agentnum' if grep { $_ eq 'agent_name' } @cust_fields;
+
my @extra_fields = ();
if (grep { $_ eq 'current_balance' } @cust_fields) {
push @extra_fields, FS::cust_main->balance_sql . " AS current_balance";
#email it
- my $conf = new FS::Conf;
-
my $cust_main = $self->cust_main
or die "no customer"; #reset a password for a prospect contact? someday
'skip_dcontext' => { 'name' => 'Do not charge for CDRs where dcontext is set to any of these (comma-separated) values: ',
},
+ 'skip_dcontext_prefix' => { 'name' => 'Do not charge for CDRs where dcontext starts with: ',
+ },
+
'skip_dcontext_suffix' => { 'name' => 'Do not charge for CDRs where dcontext ends with: ',
},
use_cdrtypenum ignore_cdrtypenum
use_calltypenum ignore_calltypenum
ignore_disposition disposition_in disposition_prefix
- skip_dcontext skip_dcontext_suffix skip_dst_prefix
+ skip_dcontext skip_dcontext_prefix skip_dcontext_suffix
+ skip_dst_prefix
skip_dstchannel_prefix skip_src_length_more
noskip_src_length_accountcode_tollfree
accountcode_tollfree_ratenum accountcode_tollfree_field
if $self->option_cacheable('skip_dcontext') =~ /\S/
&& grep { $cdr->dcontext eq $_ } split(/\s*,\s*/, $self->option_cacheable('skip_dcontext'));
+ my $len_dcontext_prefix =
+ length($self->option_cacheable('skip_dcontext_prefix'));
+ return "dcontext starts with ". $self->option_cacheable('skip_dcontext_prefix')
+ if $len_dcontext_prefix
+ && substr($cdr->dcontext,0,$len_dcontext_prefix) eq $self->option_cacheable('skip_dcontext_prefix');
+
my $len_suffix = length($self->option_cacheable('skip_dcontext_suffix'));
return "dcontext ends with ". $self->option_cacheable('skip_dcontext_suffix')
if $len_suffix
<TR>
<TD WIDTH="50%">
<%= if ($previous < $beginning) {
- $OUT .= qq!<A HREF="${url}view_cdr_details;svcnum=$svcnum;beginning=!;
- $OUT .= qq!$previous;ending=$beginning">Previous period</A>!;
+ $OUT .= qq!<A HREF="${url}view_cdr_details;svcnum=$svcnum;!;
+ $OUT .= qq!inbound=1;! if $inbound;
+ $OUT .= qq!beginning=$previous;ending=$beginning">Previous period</A>!;
}else{
'';
} %>
</TD>
<TD WIDTH="50%" ALIGN="right">
<%= if ($next > $ending) {
- $OUT .= qq!<A HREF="${url}view_cdr_details;svcnum=$svcnum;beginning=!;
- $OUT .= qq!$ending;ending=$next">Next period</A>!;
+ $OUT .= qq!<A HREF="${url}view_cdr_details;svcnum=$svcnum;!;
+ $OUT .= qq!inbound=1;! if $inbound;
+ $OUT .= qq!beginning=$ending;ending=$next">Next period</A>!;
}else{
'';
}%>
<% include('/elements/error.html') %>
-<FORM NAME="DiscountPkgForm" ACTION="<% $p %>edit/process/cust_pkg_discount.html" METHOD=POST>
+<FORM NAME = "DiscountPkgForm"
+ ACTION = "<% $p %>edit/process/cust_pkg_discount.html"
+ METHOD = POST
+ onSubmit = "document.DiscountPkgForm.submit.disabled=true;"
+>
<INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>">
<% ntable('#cccccc') %>
<TR>
- <TH ALIGN="right">Current package </TH>
+ <TH ALIGN="right">Package </TH>
<TD COLSPAN=7>
<% $curuser->option('show_pkgnum') ? $cust_pkg->pkgnum.': ' : '' %><B><% $part_pkg->pkg |h %></B> - <% $part_pkg->comment |h %>
</TD>