X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=fs_selfservice%2FFS-SelfService%2Fcgi%2Fselfservice.cgi;h=034a684c62e23acc9382f2f65f98693fe6da4fa2;hb=673b9a458d9138523026963df6fa3b4683e09bae;hp=d8e044a965b9ba1de3e3419d424a4c19b25aa444;hpb=6ced9264b8ec79e4b460be90ede25ec72a7dfc16;p=freeside.git diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi index d8e044a96..034a684c6 100644 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -6,10 +6,13 @@ use subs qw(do_template); use CGI; use CGI::Carp qw(fatalsToBrowser); use Text::Template; +use HTML::Entities; use FS::SelfService qw( login customer_info invoice payment_info process_payment + process_prepay list_pkgs - part_svc_info provision_acct unprovision_svc + part_svc_info provision_acct provision_external + unprovision_svc ); $template_dir = '.'; @@ -59,7 +62,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|recharge_prepay|recharge_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; @@ -77,6 +80,7 @@ if ( $result->{error} eq "Can't resume session" ) { #ick warn "processing template $action\n"; do_template($action, { 'session_id' => $session_id, + 'action' => $action, #so the menu knows what tab we're on... %{$result} }); @@ -171,12 +175,30 @@ sub payment_results { } +sub recharge_prepay { + customer_info( 'session_id' => $session_id ); +} + +sub recharge_results { + + my $prepaid_cardnum = $cgi->param('prepaid_cardnum'); + $prepaid_cardnum =~ s/\W//g; + $prepaid_cardnum =~ /^(\w*)$/ or die "illegal prepaid card number"; + $prepaid_cardnum = $1; + + process_prepay ( 'session_id' => $session_id, + 'prepaid_cardnum' => $prepaid_cardnum, + ); +} + sub logout { FS::SelfService::logout( 'session_id' => $session_id ); } sub provision { - list_pkgs( 'session_id' => $session_id ); + my $result = list_pkgs( 'session_id' => $session_id ); + die $result->{'error'} if exists $result->{'error'} && $result->{'error'}; + $result; } sub provision_svc { @@ -204,7 +226,7 @@ sub process_svc_acct { ); if ( exists $result->{'error'} && $result->{'error'} ) { - warn "$result $result->{'error'}"; + #warn "$result $result->{'error'}"; $action = 'provision_svc_acct'; return { $cgi->Vars, @@ -215,12 +237,19 @@ sub process_svc_acct { 'error' => $result->{'error'}, }; } else { - warn "$result $result->{'error'}"; + #warn "$result $result->{'error'}"; return $result; } } +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, @@ -255,8 +284,10 @@ sub do_template { package FS::SelfService::_selfservicecgi; #use FS::SelfService qw(regionselector expselect popselector); +use HTML::Entities; use FS::SelfService qw(popselector); +#false laziness w/agent.cgi sub include { my $name = shift; my $template = new Text::Template( TYPE => 'FILE', @@ -266,7 +297,9 @@ sub include { ) or die $Text::Template::ERROR; - $template->fill_in(); + $template->fill_in( PACKAGE => 'FS::SelfService::_selfservicecgi', + #HASH => $fill_in + ); }