X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=fs_selfservice%2FFS-SelfService%2Fcgi%2Fselfservice.cgi;h=40fe98af2398d5c061750b8ee52da21e695e64db;hb=a1a0800de7c69fe5ee414b79e408ceacd4a1c2c3;hp=0e8b990daac467b0207f71d2d19e76b76a9bfc39;hpb=a01d29e1bfa007399711c58a0c9655dca28956d9;p=freeside.git diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi old mode 100644 new mode 100755 index 0e8b990da..40fe98af2 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -18,6 +18,7 @@ use FS::SelfService qw( 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 ); @@ -77,6 +78,7 @@ my @actions = ( qw( myaccount tktcreate tktview + ticket_priority didreport invoices view_invoice @@ -276,11 +278,28 @@ sub tktcreate { 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'} ); @@ -457,7 +476,21 @@ sub process_order_recharge { } 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 { @@ -474,7 +507,7 @@ 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; @@ -634,12 +667,15 @@ sub make_thirdparty_payment { } sub post_thirdparty_payment { - $cgi->param('payby_method') =~ /^(CC|ECHECK)$/ + $cgi->param('payby_method') =~ /^(CC|ECHECK|PAYPAL)$/ or die "illegal payby method"; my $method = $1; $cgi->param('amount') =~ /^(\d+(\.\d*)?)$/ or die "illegal amount"; my $amount = $1; + # realtime_collect() returns the result from FS::cust_main->realtime_collect + # which returns realtime_bop() + # which returns a hashref of popup_url, collectitems, and reference my $result = realtime_collect( 'session_id' => $session_id, 'method' => $method, @@ -703,7 +739,7 @@ sub provision_svc { 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'}; @@ -737,7 +773,7 @@ sub process_svc_phone { '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 ) ); } @@ -746,7 +782,7 @@ sub process_svc_phone { 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'}, @@ -810,7 +846,7 @@ sub real_port_graph { 'session_id' => $session_id, 'svcnum' => $svcnum, 'beginning' => str2time($cgi->param('start')." 00:00:00"), - 'ending' => str2time($cgi->param('end')." 23:59:59"), + 'ending' => str2time($cgi->param('end') ." 23:59:59"), ); my @usage = @{$res->{'usage'}}; my $png = $usage[0]->{'png'}; @@ -840,6 +876,7 @@ sub view_cdr_details { 'svcnum' => $cgi->param('svcnum'), 'beginning' => $cgi->param('beginning') || '', 'ending' => $cgi->param('ending') || '', + 'inbound' => $cgi->param('inbound') || 0, ); }