diff options
Diffstat (limited to 'fs_selfservice')
-rw-r--r-- | fs_selfservice/FS-SelfService/SelfService.pm | 1 | ||||
-rw-r--r-- | fs_selfservice/FS-SelfService/cgi/agent.cgi | 25 | ||||
-rw-r--r-- | fs_selfservice/FS-SelfService/cgi/process_svc_external.html | 16 | ||||
-rw-r--r-- | fs_selfservice/FS-SelfService/cgi/provision_list.html | 17 | ||||
-rw-r--r-- | fs_selfservice/FS-SelfService/cgi/selfservice.cgi | 12 |
5 files changed, 65 insertions, 6 deletions
diff --git a/fs_selfservice/FS-SelfService/SelfService.pm b/fs_selfservice/FS-SelfService/SelfService.pm index de33b75b1..6e3ca3b5a 100644 --- a/fs_selfservice/FS-SelfService/SelfService.pm +++ b/fs_selfservice/FS-SelfService/SelfService.pm @@ -36,6 +36,7 @@ $socket .= '.'.$tag if defined $tag && length($tag); 'charge' => 'MyAccount/charge', #? 'part_svc_info' => 'MyAccount/part_svc_info', 'provision_acct' => 'MyAccount/provision_acct', + 'provision_external' => 'MyAccount/provision_external', 'unprovision_svc' => 'MyAccount/unprovision_svc', 'signup_info' => 'Signup/signup_info', 'new_customer' => 'Signup/new_customer', diff --git a/fs_selfservice/FS-SelfService/cgi/agent.cgi b/fs_selfservice/FS-SelfService/cgi/agent.cgi index b88709862..92c76f38e 100644 --- a/fs_selfservice/FS-SelfService/cgi/agent.cgi +++ b/fs_selfservice/FS-SelfService/cgi/agent.cgi @@ -14,7 +14,8 @@ use FS::SelfService qw( agent_login agent_logout agent_info agent_list_customers signup_info new_customer customer_info list_pkgs order_pkg - part_svc_info provision_acct unprovision_svc + part_svc_info provision_acct provision_external + unprovision_svc ); $DEBUG = 0; @@ -67,7 +68,7 @@ $session_id = $cgi->param('session'); warn "$me checking action\n" if $DEBUG; $cgi->param('action') =~ - /^(agent_main|signup|process_signup|list_customers|view_customer|agent_provision|provision_svc|process_svc_acct|delete_svc|agent_order_pkg|process_order_pkg|logout)$/ + /^(agent_main|signup|process_signup|list_customers|view_customer|agent_provision|provision_svc|process_svc_acct|process_svc_external|delete_svc|agent_order_pkg|process_order_pkg|logout)$/ or die "unknown action ". $cgi->param('action'); my $action = $1; @@ -321,6 +322,26 @@ sub process_svc_acct { } +sub process_svc_external { + + my $result = provision_external ( + 'agent_session_id' => $session_id, + map { $_ => $cgi->param($_) } qw( custnum pkgnum svcpart ) + ); + + #warn "$result $result->{'error'}"; + $action = 'agent_provision'; + return { + %{agent_provision()}, + 'message' => $result->{'error'} + ? '<FONT COLOR="#FF0000">'. $result->{'error'}. '</FONT>' + : $result->{'svc'}. ' setup sucessfully'. + ': serial number '. + sprintf('%010d', $result->{'id'}). '-'. $result->{'title'} + }; + +} + sub delete_svc { my $result = unprovision_svc( 'agent_session_id' => $session_id, diff --git a/fs_selfservice/FS-SelfService/cgi/process_svc_external.html b/fs_selfservice/FS-SelfService/cgi/process_svc_external.html new file mode 100644 index 000000000..772cf0838 --- /dev/null +++ b/fs_selfservice/FS-SelfService/cgi/process_svc_external.html @@ -0,0 +1,16 @@ +<HTML><HEAD><TITLE><%= $error ? 'MyAccount' : sprintf("Your serial number is %010d-$title", $id) %></TITLE></HEAD> +<BODY BGCOLOR="#eeeeee"><FONT SIZE=5>MyAccount</FONT><BR><BR> +<%= $url = "$selfurl?session=$session_id;action="; ''; %> +<TABLE BORDER=0 CELLPADDING=4><TR> +<%= include('myaccount_menu') %> +<TD VALIGN="top"> + +<FONT SIZE=4><%= $svc %> setup sucessfully.</FONT> + +<BR><BR>Your serial number is <%= sprintf("%010d-$title", $id) %> + +</TD></TR></TABLE> +<HR> +<FONT SIZE="-2">powered by <a href="http://www.sisd.com/freeside">freeside</a></FONT> +</BODY></HTML> + diff --git a/fs_selfservice/FS-SelfService/cgi/provision_list.html b/fs_selfservice/FS-SelfService/cgi/provision_list.html index 7e7059388..0c8e05078 100644 --- a/fs_selfservice/FS-SelfService/cgi/provision_list.html +++ b/fs_selfservice/FS-SelfService/cgi/provision_list.html @@ -58,9 +58,22 @@ function areyousure(href, message) { my $td = qq!<TD BGCOLOR="#$col"!; + my $link; + + if ( $part_svc->{'svcdb'} eq 'svc_external' + #&& $conf->exists('svc_external-skip_manual') + ) { + $link = "${url}process_svc_external;". + "pkgnum=$pkg->{'pkgnum'};". + "svcpart=$part_svc->{'svcpart'}"; + } else { + $link = "${url}provision_svc;". + "pkgnum=$pkg->{'pkgnum'};". + "svcpart=$part_svc->{'svcpart'}"; + } + $OUT .= "<TR>$td COLSPAN=3 ALIGN=center>". - qq!<A HREF="${url}provision_svc;pkgnum=$pkg->{'pkgnum'};svcpart=$part_svc->{'svcpart'}">!. - 'Setup '. $part_svc->{'svc'}. '</A> '. + qq!<A HREF="$link">!. 'Setup '. $part_svc->{'svc'}. '</A> '. '('. $part_svc->{'num_avail'}. ' available)'. '</TD></TR>'; $col = $col eq $col1 ? $col2 : $col1; diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi index 44dd8bb3a..0816758fb 100644 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -10,7 +10,8 @@ use HTML::Entities; use FS::SelfService qw( login customer_info invoice payment_info process_payment list_pkgs - part_svc_info provision_acct unprovision_svc + part_svc_info provision_acct provision_external + unprovision_svc ); $template_dir = '.'; @@ -60,7 +61,7 @@ $session_id = $cgi->param('session'); #order|pw_list XXX ??? $cgi->param('action') =~ - /^(myaccount|view_invoice|make_payment|payment_results|logout|change_bill|change_ship|provision|provision_svc|process_svc_acct|delete_svc)$/ + /^(myaccount|view_invoice|make_payment|payment_results|logout|change_bill|change_ship|provision|provision_svc|process_svc_acct|process_svc_external|delete_svc)$/ or die "unknown action ". $cgi->param('action'); my $action = $1; @@ -224,6 +225,13 @@ sub process_svc_acct { } +sub process_svc_external { + provision_external ( + 'session_id' => $session_id, + map { $_ => $cgi->param($_) } qw( pkgnum svcpart ) + ); +} + sub delete_svc { unprovision_svc( 'session_id' => $session_id, |