% include("/elements/table-grid.html") %>
% my $bgcolor1 = '#eeeeee';
% my $bgcolor2 = '#ffffff';
% my $bgcolor = '';
% my $otaker = '';
% if ( $item->history_usernum ) {
% $access_user{ $item->history_usernum } ||=
% FS::access_user->by_key( $item->history_usernum );
% $otaker = $access_user{ $item->history_usernum }->username
% if $access_user{ $item->history_usernum };
% }
% $otaker ||= $item->history_user;
% $otaker = 'auto billing' if $otaker eq 'fs_daily';
% $otaker = 'customer self-service' if $otaker eq 'fs_selfservice';
% $otaker = 'job queue' if $otaker eq 'fs_queue';
% $otaker = 'system bootstrap user' if $otaker eq 'fs_bootstrap';
<% $otaker %>
|
% my $d = time2str('%b %o, %Y', $item->history_date );
% $d =~ s/ / /g;
<% $d %>
|
% my $t = time2str('%r', $item->history_date );
% $t =~ s/ / /g;
<% $t %>
|
% unless ( $single_cust ) {
% my $cust_main = qsearchs('cust_main', { custnum => $item->custnum });
<% $cust_main ? "".$cust_main->name.'' : '' %>
|
% }
% my $label = '';
% if ( $item->table eq 'legacy_cust_history' ) {
% $label = $item->item;
% } else {
% $label = $item->table;
% $label =~ s/^h_//;
% $label = $tables{$label};
% $label = &{ $h_table_labelsub{$item->table} }( $item, $label )
% if $single_cust && $h_table_labelsub{$item->table};
% }
<% $label %>
|
<% $action{$item->history_action} || ucfirst($item->history_action) |h %>
|
<% $description %>
|
% }
<%init>
my %opt = @_;
my @history = @{$opt{'history'}};
my %tables = %{$opt{'tables'}};
my $single_cust = $opt{'single_cust'};
my $conf = new FS::Conf;
my $curuser = $FS::CurrentUser::CurrentUser;
die "access deined"
unless $curuser->access_right('View customer history');
my %action = (
'insert' => 'Insert', #'Create',
'replace_old' => "Change\xA0from",
'replace_new' => "Change\xA0to",
'delete' => 'Remove',
);
my %cust_pkg_date_fields = map { $_=>1 } qw(
start_date setup bill last_bill susp adjourn cancel expire contract_end
resume change_date
);
# finding the other replace row
my %replace_other = (
'replace_new' => 'replace_old',
'replace_old' => 'replace_new',
);
my %replace_dir = (
'replace_new' => '<',
'replace_old' => '>',
);
my %replace_direq = (
'replace_new' => '<=',
'replace_old' => '>=',
);
my %replace_op = (
'replace_new' => '-',
'replace_old' => '+',
);
my %replace_ord = (
'replace_new' => 'DESC',
'replace_old' => 'ASC',
);
my $fuzz = 5; #seems like a lot
my %pkgpart = ();
my $pkg_labelsub = sub {
my($item, $label) = @_;
$pkgpart{$item->pkgpart} ||= $item->part_pkg->pkg;
$label. ':