X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=fs_selfservice%2FFS-SelfService%2Fcgi%2Fselfservice.cgi;h=3f0562a818ca4ea25358e57b4edfc0ca0cdfddc6;hp=1f8e55025858a42dc247f968e326ad33db917219;hb=d6741df87df9e3352d7ae47a02d0e3f46154fef9;hpb=46e04077cc22ff9d31e8e9896cbf97e31f1b0e7d diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi index 1f8e55025..3f0562a81 100644 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -16,13 +16,13 @@ use FS::SelfService qw( part_svc_info provision_acct provision_external provision_phone 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 + myaccount_passwd list_invoices create_ticket get_ticket mason_comp ); $template_dir = '.'; -$DEBUG = 1; +$DEBUG = 0; $form_max = 255; @@ -72,8 +72,51 @@ if ( $cgi->param('session') eq 'login' ) { $session_id = $cgi->param('session'); #order|pw_list XXX ??? -$cgi->param('action') =~ - /^(myaccount|tktcreate|tktview|didreport|invoices|view_invoice|make_payment|make_ach_payment|make_term_payment|make_thirdparty_payment|payment_results|ach_payment_results|recharge_prepay|recharge_results|logout|change_bill|change_ship|change_pay|process_change_bill|process_change_ship|process_change_pay|customer_order_pkg|process_order_pkg|customer_change_pkg|process_change_pkg|process_order_recharge|provision|provision_svc|process_svc_acct|process_svc_phone|process_svc_external|delete_svc|view_usage|view_usage_details|view_cdr_details|view_support_details|change_password|process_change_password|customer_suspend_pkg|process_suspend_pkg)$/ +my @actions = ( qw( + myaccount + tktcreate + tktview + didreport + invoices + view_invoice + make_payment + make_ach_payment + make_term_payment + make_thirdparty_payment + post_thirdparty_payment + payment_results + ach_payment_results + recharge_prepay + recharge_results + logout + change_bill + change_ship + change_pay + process_change_bill + process_change_ship + process_change_pay + customer_order_pkg + process_order_pkg + customer_change_pkg + process_change_pkg + process_order_recharge + provision + provision_svc + process_svc_acct + process_svc_phone + process_svc_external + delete_svc + view_usage + view_usage_details + view_cdr_details + view_support_details + change_password + process_change_password + customer_suspend_pkg + process_suspend_pkg +)); + +$cgi->param('action') =~ ( '^(' . join('|', @actions) . ')$' ) or die "unknown action ". $cgi->param('action'); my $action = $1; @@ -83,9 +126,11 @@ $FS::SelfService::DEBUG = $DEBUG; my $result = eval "&$action();"; die $@ if $@; -#fixed "Use of uninitialized value in string eq"; very annoying when developing -if ( $result->{error} && ($result->{error} eq "Can't resume session" - || $result->{error} eq "Expired session") ) { +warn Dumper($result) if $DEBUG; + +if ( $result->{error} eq "Can't resume session" + || $result->{error} eq "Expired session" ) { #ick + my $login_info = login_info(); do_template('login', $login_info); exit; @@ -106,7 +151,9 @@ do_template($action, { #-- use Data::Dumper; -sub myaccount { my $result = customer_info( 'session_id' => $session_id ); warn Dumper($result); $result;} +sub myaccount { + customer_info( 'session_id' => $session_id ); +} sub change_bill { my $payment_info = payment_info( 'session_id' => $session_id ); @@ -580,9 +627,22 @@ sub ach_payment_results { } sub make_thirdparty_payment { + payment_info('session_id' => $session_id); +} + +sub post_thirdparty_payment { $cgi->param('payby_method') =~ /^(CC|ECHECK)$/ or die "illegal payby method"; - realtime_collect( 'session_id' => $session_id, 'method' => $1 ); + my $method = $1; + $cgi->param('amount') =~ /^(\d+(\.\d*)?)$/ + or die "illegal amount"; + my $amount = $1; + my $result = realtime_collect( + 'session_id' => $session_id, + 'method' => $method, + 'amount' => $amount, + ); + $result; } sub make_term_payment { @@ -619,15 +679,6 @@ sub logout { FS::SelfService::logout( 'session_id' => $session_id ); } -sub didreport { - my $result = did_report( 'session_id' => $session_id, - 'format' => $cgi->param('type'), - 'recentonly' => $cgi->param('recentonly'), - ); - die $result->{'error'} if exists $result->{'error'} && $result->{'error'}; - $result; -} - sub provision { my $result = list_pkgs( 'session_id' => $session_id ); die $result->{'error'} if exists $result->{'error'} && $result->{'error'}; @@ -815,31 +866,12 @@ sub do_template { or die $Text::Template::ERROR; #warn "filling in $template with $fill_in\n"; - - if($result && ref($result) && $result->{'format'} && $result->{'content'} - && $result->{'format'} eq 'csv') { - print $cgi->header('-expires' => 'now', - '-Content-Type' => 'text/csv', - '-Content-Disposition' => "attachment;filename=output.csv", - ), - $result->{'content'}; - } - elsif($result && ref($result) && $result->{'format'} && $result->{'content'} - && $result->{'format'} eq 'xls') { - print $cgi->header('-expires' => 'now', - '-Content-Type' => 'application/vnd.ms-excel', - '-Content-Disposition' => "attachment;filename=output.xls", - '-Content-Length' => length($result->{'content'}), - ), - $result->{'content'}; - } - else { - print $cgi->header( '-expires' => 'now' ), - $template->fill_in( PACKAGE => 'FS::SelfService::_selfservicecgi', - HASH => $fill_in - ); - } - + my $data = $template->fill_in( + PACKAGE => 'FS::SelfService::_selfservicecgi', + HASH => $fill_in, + ) || "Error processing template $source"; # at least print _something_ + print $cgi->header( '-expires' => 'now' ); + print $data; } #*FS::SelfService::_selfservicecgi::include = \&Text::Template::fill_in_file;