summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/elements/mac_addr.html53
-rwxr-xr-xhttemplate/search/elements/cust_pay_or_refund.html22
-rw-r--r--httemplate/view/cust_main/packages/package.html9
-rw-r--r--httemplate/view/elements/svc_Common.html7
4 files changed, 77 insertions, 14 deletions
diff --git a/httemplate/elements/mac_addr.html b/httemplate/elements/mac_addr.html
new file mode 100644
index 000000000..1d867f504
--- /dev/null
+++ b/httemplate/elements/mac_addr.html
@@ -0,0 +1,53 @@
+% if (!$init) {
+% if ($clipboard_hack) {
+<& init_overlib.html &>
+<script>
+<&| /elements/onload.js &>
+ var transform_text = function(str) {
+ var regexp = new RegExp('.*(..):(..):(..):(..):(..):(..).*');
+ return str.replace(regexp, '$1$2$3$4$5$6');
+ }
+ var span_onclick = function() {
+ var input = document.createElement('INPUT');
+ // IE8 doesn't support textContent
+ var str = this.textContent || this.innerText || '';
+ input.value = transform_text(str);
+ input.style.position = 'absolute';
+ input.style.top = '0px';
+ input.style.left = '0px';
+ input.onblur = function() { input.parentNode.removeChild(input) }
+ this.appendChild(input);
+ input.select();
+ }
+ // set this on any ".mac_addr" object in the doc
+
+ // IE8 doesn't support getElementsByClassName
+ var els = document.getElementsByTagName('span');
+ for (var i = 0; i < els.length; i++) {
+ if (els[i].className = 'mac_addr') {
+ els[i].id = 'span_mac_addr' + i;
+ els[i].onclick = span_onclick;
+ }
+ }
+</&>
+</SCRIPT>
+<style type="text/css">
+.mac_addr {
+ border-bottom: 1px dotted blue;
+ color: blue;
+ position: relative;
+}
+</style>
+% } # if $clipboard_hack
+% $init++;
+% }
+%# the only part to be included in every instance
+<SPAN CLASS="mac_addr"><% $value |h %></SPAN>
+<%shared>
+my $init = 0;
+</%shared>
+<%init>
+my $clipboard_hack =
+ $FS::CurrentUser::CurrentUser->option('enable_mask_clipboard_hack');
+my $value = shift; # no other params
+</%init>
diff --git a/httemplate/search/elements/cust_pay_or_refund.html b/httemplate/search/elements/cust_pay_or_refund.html
index 8aece0cc2..b5172fb36 100755
--- a/httemplate/search/elements/cust_pay_or_refund.html
+++ b/httemplate/search/elements/cust_pay_or_refund.html
@@ -239,14 +239,14 @@ if ( $cgi->param('magic') ) {
if ( $cgi->param('magic') eq '_date' ) {
if ( $cgi->param('agentnum') && $cgi->param('agentnum') =~ /^(\d+)$/ ) {
- push @search, "agentnum = $1"; # $search{'agentnum'} = $1;
+ push @search, "cust_main.agentnum = $1"; # $search{'agentnum'} = $1;
my $agent = qsearchs('agent', { 'agentnum' => $1 } );
die "unknown agentnum $1" unless $agent;
$title = $agent->agent. " $title";
}
if ( $cgi->param('refnum') && $cgi->param('refnum') =~ /^(\d+)$/ ) {
- push @search, "refnum = $1";
+ push @search, "cust_main.refnum = $1";
my $part_referral = qsearchs('part_referral', { 'refnum' => $1 } );
die "unknown refnum $1" unless $part_referral;
$title = $part_referral->referral. " $title";
@@ -262,7 +262,7 @@ if ( $cgi->param('magic') ) {
}
if ( $cgi->param('custnum') =~ /^(\d+)$/ ) {
- push @search, "custnum = $1";
+ push @search, "$table.custnum = $1";
}
if ( $cgi->param('payby') ) {
@@ -421,22 +421,22 @@ if ( $cgi->param('magic') ) {
#for cust_pay_pending... statusNOT=done
if ( $cgi->param('statusNOT') =~ /^(\w+)$/ ) {
- push @search, "status != '$1'";
+ push @search, "$table.status != '$1'";
}
my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi);
- push @search, "_date >= $beginning ",
- "_date <= $ending";
+ push @search, "$table._date >= $beginning ",
+ "$table._date <= $ending";
if ( $table eq 'cust_pay_void' ) {
my($v_beginning, $v_ending) =
FS::UI::Web::parse_beginning_ending($cgi, 'void');
- push @search, "void_date >= $v_beginning ",
- "void_date <= $v_ending";
+ push @search, "$table.void_date >= $v_beginning ",
+ "$table.void_date <= $v_ending";
}
- push @search, FS::UI::Web::parse_lt_gt($cgi, $amount_field );
+ push @search, FS::UI::Web::parse_lt_gt($cgi, "$table.$amount_field" );
$orderby = '_date';
@@ -517,7 +517,7 @@ if ( $cgi->param('magic') ) {
my $search = ' WHERE '. join(' AND ', @search);
- $count_query = "SELECT COUNT(*), SUM($amount_field) ";
+ $count_query = "SELECT COUNT(*), SUM($table.$amount_field) ";
$count_query .= ', SUM(' . "FS::$table"->unapplied_sql . ') '
if $unapplied;
$count_query .= "FROM $table $addl_from".
@@ -545,7 +545,7 @@ if ( $cgi->param('magic') ) {
$cgi->param('payby') =~ /^(\w+)$/ or die "illegal payby";
my $payby = $1;
- $count_query = "SELECT COUNT(*), SUM($amount_field) FROM $table".
+ $count_query = "SELECT COUNT(*), SUM($table.$amount_field) FROM $table".
" WHERE payinfo = '$payinfo' AND payby = '$payby'".
" AND ". $curuser->agentnums_sql;
@count_addl = ( '$%.2f total '.$opt{name_verb} );
diff --git a/httemplate/view/cust_main/packages/package.html b/httemplate/view/cust_main/packages/package.html
index cf5c98a1c..e47d891f5 100644
--- a/httemplate/view/cust_main/packages/package.html
+++ b/httemplate/view/cust_main/packages/package.html
@@ -52,8 +52,15 @@
% # One-time charge. Nothing you can do with this, unless:
% if ( $curuser->access_right('Modify one-time charge') ) {
(&nbsp;<%onetime_change_link($cust_pkg)%>&nbsp;)
- <BR>
% }
+% # also, you can discount it
+% if ( $curuser->access_right('Discount customer package')
+% && ! scalar($cust_pkg->cust_pkg_discount_active)
+% && ! scalar($cust_pkg->part_pkg->part_pkg_discount)
+% ) {
+ (&nbsp;<%pkg_discount_link($cust_pkg)%>&nbsp;)
+% }
+ <BR>
%
% } elsif ( !$cust_pkg->get('cancel') and !$opt{no_links} ) {
%
diff --git a/httemplate/view/elements/svc_Common.html b/httemplate/view/elements/svc_Common.html
index 6c5c90201..b7f7a2c63 100644
--- a/httemplate/view/elements/svc_Common.html
+++ b/httemplate/view/elements/svc_Common.html
@@ -222,6 +222,7 @@ my $format_field = sub {
$field = $f;
$type = 'text';
}
+ warn "$field\t$type\t$value\n";
my $columndef = $part_svc->part_svc_column($field);
# skip fields that are fixed and empty
@@ -273,8 +274,10 @@ my $format_field = sub {
$value = time2str("$date_format %H:%M",$value)
} elsif ( $type eq 'checkbox' ) {
$value = $value eq 'Y' ? emt('Yes') : emt('No');
- } elsif ( $type eq 'mac_addr' and $value =~ /\w/) {
- $value .= ' ('. (Net::MAC::Vendor::lookup($value))->[0]. ')'
+ } elsif ( $type =~ /(input-)?mac_addr/ and $value =~ /\w/) {
+ my $vendor = Net::MAC::Vendor::lookup($value)->[0];
+ $value .= " ($vendor)" if $vendor;
+ $value = $m->scomp('/elements/mac_addr.html', $value);
}
# 'link' option