X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=fs_selfservice%2FFS-SelfService%2FSelfService.pm;h=990ff207430e91539fa80a2691991c13e7785624;hp=a82616118e21985a1090fc0cb24c9074faee5c05;hb=d7eafc9c9aae2bf47ea19a56cc5bb1380c5874e4;hpb=e7ab6cb3a3e2b1cb9a33fa162356b428f02bae2d diff --git a/fs_selfservice/FS-SelfService/SelfService.pm b/fs_selfservice/FS-SelfService/SelfService.pm index a82616118..990ff2074 100644 --- a/fs_selfservice/FS-SelfService/SelfService.pm +++ b/fs_selfservice/FS-SelfService/SelfService.pm @@ -35,13 +35,17 @@ $socket .= '.'.$tag if defined $tag && length($tag); 'list_invoices' => 'MyAccount/list_invoices', #? 'cancel' => 'MyAccount/cancel', #add to ss cgi! 'payment_info' => 'MyAccount/payment_info', + 'payment_info_renew_info' => 'MyAccount/payment_info_renew_info', 'process_payment' => 'MyAccount/process_payment', 'process_payment_order_pkg' => 'MyAccount/process_payment_order_pkg', + 'process_payment_change_pkg' => 'MyAccount/process_payment_change_pkg', 'process_payment_order_renew' => 'MyAccount/process_payment_order_renew', 'process_prepay' => 'MyAccount/process_prepay', + 'realtime_collect' => 'MyAccount/realtime_collect', 'list_pkgs' => 'MyAccount/list_pkgs', #add to ss (added?) 'list_svcs' => 'MyAccount/list_svcs', #add to ss (added?) 'list_svc_usage' => 'MyAccount/list_svc_usage', + 'list_cdr_usage' => 'MyAccount/list_cdr_usage', 'list_support_usage' => 'MyAccount/list_support_usage', 'order_pkg' => 'MyAccount/order_pkg', #add to ss cgi! 'change_pkg' => 'MyAccount/change_pkg', @@ -49,28 +53,52 @@ $socket .= '.'.$tag if defined $tag && length($tag); 'renew_info' => 'MyAccount/renew_info', 'order_renew' => 'MyAccount/order_renew', 'cancel_pkg' => 'MyAccount/cancel_pkg', #add to ss cgi! + 'suspend_pkg' => 'MyAccount/suspend_pkg', #add to ss cgi! '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', 'myaccount_passwd' => 'MyAccount/myaccount_passwd', + 'create_ticket' => 'MyAccount/create_ticket', 'signup_info' => 'Signup/signup_info', + 'skin_info' => 'MyAccount/skin_info', + 'access_info' => 'MyAccount/access_info', 'domain_select_hash' => 'Signup/domain_select_hash', # expose? 'new_customer' => 'Signup/new_customer', + 'capture_payment' => 'Signup/capture_payment', 'agent_login' => 'Agent/agent_login', 'agent_logout' => 'Agent/agent_logout', 'agent_info' => 'Agent/agent_info', 'agent_list_customers' => 'Agent/agent_list_customers', + 'check_username' => 'Agent/check_username', + 'suspend_username' => 'Agent/suspend_username', + 'unsuspend_username' => 'Agent/unsuspend_username', 'mason_comp' => 'MasonComponent/mason_comp', 'call_time' => 'PrepaidPhone/call_time', 'call_time_nanpa' => 'PrepaidPhone/call_time_nanpa', 'phonenum_balance' => 'PrepaidPhone/phonenum_balance', + 'bulk_processrow' => 'Bulk/processrow', + 'check_username' => 'Bulk/check_username', + #sg + 'ping' => 'SGNG/ping', + 'decompify_pkgs' => 'SGNG/decompify_pkgs', + 'previous_payment_info' => 'SGNG/previous_payment_info', + 'previous_payment_info_renew_info' + => 'SGNG/previous_payment_info_renew_info', + 'previous_process_payment' => 'SGNG/previous_process_payment', + 'previous_process_payment_order_pkg' + => 'SGNG/previous_process_payment_order_pkg', + 'previous_process_payment_change_pkg' + => 'SGNG/previous_process_payment_change_pkg', + 'previous_process_payment_order_renew' + => 'SGNG/previous_process_payment_order_renew', ); @EXPORT_OK = ( keys(%autoload), - qw( regionselector regionselector_hashref - expselect popselector domainselector didselector ) + qw( regionselector regionselector_hashref location_form + expselect popselector domainselector didselector + ) ); $ENV{'PATH'} ='/usr/bin:/usr/ucb:/bin'; @@ -472,10 +500,14 @@ Array reference of all states in the current default country. Hash reference of card types; keys are card types, values are the exact strings passed to the process_payment function -=item paybatch +=cut -Unique transaction identifier (prevents multiple charges), passed to the -process_payment function +#this doesn't actually work yet +# +#=item paybatch +# +#Unique transaction identifier (prevents multiple charges), passed to the +#process_payment function =back @@ -529,6 +561,10 @@ State Zip or postal code +=item country + +Two-letter country code + =item payinfo Card number @@ -541,15 +577,19 @@ Card expiration month Card expiration year -=item paybatch +=cut -Unique transaction identifier, returned from the payment_info function. -Prevents multiple charges. +#this doesn't actually work yet +# +#=item paybatch +# +#Unique transaction identifier, returned from the payment_info function. +#Prevents multiple charges. =back Returns a hash reference with a single key, B, empty on success, or an -error message on errors +error message on errors. =item process_payment_order_pkg @@ -560,6 +600,16 @@ as parameter with the keys of both methods. Returns a hash reference with a single key, B, empty on success, or an error message on errors. +=item process_payment_change_pkg + +Combines the B and B functions in one step. If the +payment processes sucessfully, the package is ordered. Takes a hash reference +as parameter with the keys of both methods. + +Returns a hash reference with a single key, B, empty on success, or an +error message on errors. + + =item process_payment_order_renew Combines the B and B functions in one step. If @@ -584,6 +634,10 @@ Returns a hash reference containing customer package information. The hash refe Customer number +=item error + +Empty on success, or an error message on errors. + =item cust_pkg HASHREF Array reference of hash references, each of which has the fields of a cust_pkg @@ -640,11 +694,11 @@ Primary key for this service =item svcpart -Service definition (part_pkg) +Service definition (see L) =item pkgnum -Customer package (cust_pkg) +Customer package (see L) =item overlimit @@ -654,12 +708,6 @@ Blank if the service is not over limit, or the date the service exceeded its usa =back -=item error - -Empty on success, or an error message on errors. - -=back - =item list_svcs Returns service information for this customer. @@ -698,6 +746,8 @@ mail alias). Account (svc_acct) services also have the following keys: +=over 4 + =item username Username @@ -744,6 +794,8 @@ Number of total bytes gained by recharge =back +=back + =item order_pkg Orders a package for this customer. @@ -758,13 +810,22 @@ Session identifier =item pkgpart -pkgpart of package to order +Package to order (see L). =item svcpart -optional svcpart, required only if the package definition does not contain -one svc_acct service definition with quantity 1 (it may contain others with -quantity >1) +Service to order (see L). + +Normally optional; required only to provision a non-svc_acct service, or if the +package definition does not contain one svc_acct service definition with +quantity 1 (it may contain others with quantity >1). A svcpart of "none" can +also be specified to indicate that no initial service should be provisioned. + +=back + +Fields used when provisioning an svc_acct service: + +=over 4 =item username @@ -784,10 +845,77 @@ Optional Access number number =back +Fields used when provisioning an svc_domain service: + +=over 4 + +=item domain + +Domain + +=back + +Fields used when provisioning an svc_phone service: + +=over 4 + +=item phonenum + +Phone number + +=item pin + +Voicemail PIN + +=item sip_password + +SIP password + +=back + +Fields used when provisioning an svc_external service: + +=over 4 + +=item id + +External numeric ID. + +=item title + +External text title. + +=back + Returns a hash reference with a single key, B, empty on success, or an error message on errors. The special error '_decline' is returned for declined transactions. +=item change_pkg + +Changes a package for this customer. + +Takes a hash reference as parameter with the following keys: + +=over 4 + +=item session_id + +Session identifier + +=item pkgnum + +Existing customer package. + +=item pkgpart + +New package to order (see L). + +=back + +Returns a hash reference with a single key, B, empty on success, or an +error message on errors. + =item renew_info Provides useful info for early renewals. @@ -835,6 +963,20 @@ Specified as a integer UNIX timestamp. Renewal date as a human-readable string. (Convenience for display; subject to change, so best not to parse for the date.) +=item pkgnum + +Package that will be renewed. + +=item expire_date + +Expiration date of the package that will be renewed. + +=item expire_date_pretty + +Expiration date of the package that will be renewed, as a human-readable +string. (Convenience for display; subject to change, so best not to parse for +the date.) + =back =item order_renew @@ -1255,6 +1397,18 @@ END my $county_html = $script_html; if ( $countyflag ) { $county_html .= qq!'; } else { $county_html .= @@ -1309,6 +1463,52 @@ sub regionselector_hashref { }; } +=item location_form HASHREF | LIST + +Takes as input a hashref or list of key/value pairs with the following keys: + +=over 4 + +=item session_id + +Current customer session_id + +=item no_asterisks + +Omit red asterisks from required fields. + +=item address1_label + +Label for first address line. + +=back + +Returns an HTML fragment for a location form (address, city, state, zip, +country) + +=cut + +sub location_form { + my $param; + if ( ref($_[0]) ) { + $param = shift; + } else { + $param = { @_ }; + } + + my $session_id = delete $param->{'session_id'}; + + my $rv = mason_comp( 'session_id' => $session_id, + 'comp' => '/elements/location.html', + 'args' => [ %$param ], + ); + + #hmm. + $rv->{'error'} || $rv->{'output'}; + +} + + #=item expselect HASHREF | LIST # #Takes as input a hashref or list of key/value pairs with the following keys: @@ -1476,6 +1676,8 @@ END $text .= "}\n\n"; + $param->{'acstate'} = '' unless defined($param->{'acstate'}); + $text .= qq!