unprovision_svc change_pkg suspend_pkg domainselector
list_svcs list_svc_usage list_cdr_usage list_support_usage
myaccount_passwd list_invoices create_ticket get_ticket did_report
+ adjust_ticket_priority
mason_comp port_graph
);
myaccount
tktcreate
tktview
+ ticket_priority
didreport
invoices
view_invoice
view_usage_details
view_cdr_details
view_support_details
+ view_port_graph
+ real_port_graph
change_password
process_change_password
customer_suspend_pkg
sub tktview {
get_ticket( 'session_id' => $session_id,
- 'ticket_id' => $cgi->param('ticket_id'),
- 'reply' => $cgi->param('reply'),
+ 'ticket_id' => ($cgi->param('ticket_id') || ''),
+ 'subject' => ($cgi->param('subject') || ''),
+ 'reply' => ($cgi->param('reply') || ''),
);
}
+sub ticket_priority {
+ my %values;
+ foreach ( $cgi->param ) {
+ if ( /^ticket(\d+)$/ ) {
+ # a 'ticket1001' param implies the existence of a 'priority1001' param
+ # but if that's empty, we need to send it as empty rather than forget
+ # it.
+ $values{$1} = $cgi->param("priority$1") || '';
+ }
+ }
+ $action = 'myaccount';
+ # this returns an updated customer_info for myaccount
+ adjust_ticket_priority( 'session_id' => $session_id,
+ 'values' => \%values );
+}
+
sub customer_order_pkg {
my $init_data = signup_info( 'customer_session_id' => $session_id );
return $init_data if ( $init_data->{'error'} );
}
sub make_payment {
- payment_info( 'session_id' => $session_id );
+
+ my $payment_info = payment_info( 'session_id' => $session_id );
+
+ my $tr_amount_fee = mason_comp(
+ 'session_id' => $session_id,
+ 'comp' => '/elements/tr-amount_fee.html',
+ 'args' => [ 'amount' => $payment_info->{'balance'},
+ ],
+ );
+
+ $tr_amount_fee = $tr_amount_fee->{'error'} || $tr_amount_fee->{'output'};
+
+ $payment_info->{'tr_amount_fee'} = $tr_amount_fee;
+
+ $payment_info;
}
sub payment_results {
my $payinfo = $cgi->param('payinfo');
$payinfo =~ s/[^\dx]//g;
- $payinfo =~ /^([\dx]{13,16})$/
+ $payinfo =~ /^([\dx]{13,16}|[\dx]{8,9})$/
#or $error ||= $init_data->{msgcat}{invalid_card}; #. $self->payinfo;
or die "illegal card"; #!!!
$payinfo = $1;
my $result = part_svc_info(
'session_id' => $session_id,
- map { $_ => $cgi->param($_) } qw( pkgnum svcpart ),
+ map { $_ => $cgi->param($_) } qw( pkgnum svcpart svcnum ),
);
die $result->{'error'} if exists $result->{'error'} && $result->{'error'};
'session_id' => $session_id,
'bulkdid' => [ @bulkdid ],
'countrycode' => '1',
- map { $_ => $cgi->param($_) } qw( pkgnum svcpart phonenum )
+ map { $_ => $cgi->param($_) } qw( pkgnum svcpart phonenum svcnum email forwarddst )
);
}
return {
$cgi->Vars,
%{ part_svc_info( 'session_id' => $session_id,
- map { $_ => $cgi->param($_) } qw( pkgnum svcpart )
+ map { $_ => $cgi->param($_) } qw( pkgnum svcpart svcnum )
)
},
'error' => $result->{'error'},
);
}
-sub view_usage_details {
- my $svcnum = $cgi->param('svcnum');
-
- # for svc_port graphs
- if($cgi->param($svcnum.'_start') && $cgi->param($svcnum.'_end')) {
- return port_graph(
+sub real_port_graph {
+ my $svcnum = $cgi->param('svcnum');
+ my $res = port_graph(
'session_id' => $session_id,
'svcnum' => $svcnum,
- 'start' => str2time($cgi->param($svcnum.'_start')),
- 'end' => str2time($cgi->param($svcnum.'_end')),
+ 'beginning' => str2time($cgi->param('start')." 00:00:00"),
+ 'ending' => str2time($cgi->param('end') ." 23:59:59"),
);
+ my @usage = @{$res->{'usage'}};
+ my $png = $usage[0]->{'png'};
+ { 'content' => $png, 'format' => 'png' };
+}
+
+sub view_port_graph {
+ my $svcnum = $cgi->param('svcnum');
+ { 'svcnum' => $svcnum,
+ 'start' => $cgi->param($svcnum.'_start'),
+ 'end' => $cgi->param($svcnum.'_end'),
}
- else {
- return list_svc_usage(
+}
+
+sub view_usage_details {
+ list_svc_usage(
'session_id' => $session_id,
- 'svcnum' => $svcnum,
+ 'svcnum' => $cgi->param('svcnum'),
'beginning' => $cgi->param('beginning') || '',
'ending' => $cgi->param('ending') || '',
);
- }
}
sub view_cdr_details {
: {};
$fill_in->{$_} = $access_info->{$_} foreach keys %$access_info;
- my $source = "$template_dir/$name.html";
- #warn "creating template for $source\n";
- my $template = new Text::Template( TYPE => 'FILE',
- SOURCE => $source,
- DELIMITERS => [ '<%=', '%>' ],
- UNTAINT => 1,
- )
- or die $Text::Template::ERROR;
-
+
if($result && ref($result) && $result->{'format'} && $result->{'content'}
&& $result->{'format'} eq 'csv') {
print $cgi->header('-expires' => 'now',
),
$result->{'content'};
}
+ elsif($result && ref($result) && $result->{'format'} && $result->{'content'}
+ && $result->{'format'} eq 'png') {
+ print $cgi->header('-expires' => 'now',
+ '-Content-Type' => 'image/png',
+ ),
+ $result->{'content'};
+ }
else {
+ my $source = "$template_dir/$name.html";
+ my $template = new Text::Template( TYPE => 'FILE',
+ SOURCE => $source,
+ DELIMITERS => [ '<%=', '%>' ],
+ UNTAINT => 1,
+ )
+ or die $Text::Template::ERROR;
+
my $data = $template->fill_in(
PACKAGE => 'FS::SelfService::_selfservicecgi',
HASH => $fill_in,