X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=fs_selfservice%2FFS-SelfService%2Fcgi%2Fselfservice.cgi;h=cd81aeb8d828813845b422f90270b255311ea195;hb=b023b9a96799ee2ad11abc0c23fcaf33a8bf12ca;hp=36557b662fbed9960b54d33efb541bce95644bbb;hpb=c648976f0b7975f2328ebd7ba8c711fad0ca4195;p=freeside.git diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi index 36557b662..cd81aeb8d 100644 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -9,7 +9,7 @@ use Text::Template; use HTML::Entities; use Date::Format; use Number::Format 1.50; -use FS::SelfService qw( login customer_info edit_info invoice +use FS::SelfService qw( login_info login customer_info edit_info invoice payment_info process_payment process_prepay list_pkgs order_pkg signup_info order_recharge @@ -28,7 +28,9 @@ $form_max = 255; $cgi = new CGI; unless ( defined $cgi->param('session') ) { - do_template('login',{}); + my $login_info = login_info(); + + do_template('login', $login_info ); exit; } @@ -52,10 +54,12 @@ if ( $cgi->param('session') eq 'login' ) { 'password' => $password, ); if ( $rv->{error} ) { + my $login_info = login_info(); do_template('login', { 'error' => $rv->{error}, 'username' => $username, 'domain' => $domain, + %$login_info, } ); exit; } else { @@ -81,7 +85,10 @@ die $@ if $@; if ( $result->{error} eq "Can't resume session" || $result->{error} eq "Expired session" ) { #ick - do_template('login',{}); + my $login_info = login_info(); + use Data::Dumper; + warn Dumper($login_info); + do_template('login', $login_info); exit; } @@ -140,7 +147,7 @@ sub _process_change_info { sub process_change_bill { _process_change_info( 'change_bill', qw( first last company address1 address2 city state - county state zip country daytime night fax ) + county zip country daytime night fax ) ); } @@ -157,11 +164,22 @@ sub process_change_ship { } sub process_change_pay { - _process_change_info( 'change_pay', + my $postal = $cgi->param( 'postal_invoicing' ); + my @list = qw( payby payinfo payinfo1 payinfo2 month year payname address1 address2 city county state zip country auto paytype - paystate ss stateid stateid_state ) - ); + paystate ss stateid stateid_state invoicing_list + ); + push @list, 'postal_invoicing' if $postal; + unless ( $postal || $cgi->param( 'invoicing_list' ) ) { + $action = 'change_pay'; + return { + %{&change_pay()}, + $cgi->Vars, + 'error' => 'Postal or email required.', + }; + } + _process_change_info( 'change_pay', @list ); } sub view_invoice { @@ -609,12 +627,16 @@ sub do_template { $fill_in->{'selfurl'} = $cgi->self_url; $fill_in->{'cgi'} = \$cgi; - my $template = new Text::Template( TYPE => 'FILE', - SOURCE => "$template_dir/$name.html", + my $source = "$template_dir/$name.html"; + #warn "creating template for $source\n"; + my $template = new Text::Template( TYPE => 'FILE', + SOURCE => $source, DELIMITERS => [ '<%=', '%>' ], - UNTAINT => 1, ) + UNTAINT => 1, + ) or die $Text::Template::ERROR; + #warn "filling in $template with $fill_in\n"; print $cgi->header( '-expires' => 'now' ), $template->fill_in( PACKAGE => 'FS::SelfService::_selfservicecgi', HASH => $fill_in