X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=fs_selfservice%2FFS-SelfService%2FSelfService.pm;h=4367aa1e45b0cf095cb89b204b4f220eaad18def;hb=ee2d1447f9130fb9ed20d54f0169ab7a8f87167e;hp=0c8ec8b6ecef253b169e089d2601c76660e3219a;hpb=6309ab261ddcac0a07609f13744864094acb0718;p=freeside.git diff --git a/fs_selfservice/FS-SelfService/SelfService.pm b/fs_selfservice/FS-SelfService/SelfService.pm index 0c8ec8b6e..4367aa1e4 100644 --- a/fs_selfservice/FS-SelfService/SelfService.pm +++ b/fs_selfservice/FS-SelfService/SelfService.pm @@ -51,13 +51,15 @@ $socket .= '.'.$tag if defined $tag && length($tag); 'unprovision_svc' => 'MyAccount/unprovision_svc', 'myaccount_passwd' => 'MyAccount/myaccount_passwd', 'signup_info' => 'Signup/signup_info', + 'domain_select_hash' => 'Signup/domain_select_hash', # expose? 'new_customer' => 'Signup/new_customer', 'agent_login' => 'Agent/agent_login', 'agent_logout' => 'Agent/agent_logout', 'agent_info' => 'Agent/agent_info', 'agent_list_customers' => 'Agent/agent_list_customers', + 'mason_comp' => 'MasonComponent/mason_comp', ); -@EXPORT_OK = ( keys(%autoload), qw( regionselector expselect popselector ) ); +@EXPORT_OK = ( keys(%autoload), qw( regionselector expselect popselector domainselector didselector) ); $ENV{'PATH'} ='/usr/bin:/usr/ucb:/bin'; $ENV{'SHELL'} = '/bin/sh'; @@ -191,11 +193,16 @@ FS::SelfService - Freeside self-service API 'payname' => $payname, 'invoicing_list' => $invoicing_list, 'referral_custnum' => $referral_custnum, + 'agentnum' => $agentnum, 'pkgpart' => $pkgpart, + 'username' => $username, '_password' => $password, 'popnum' => $popnum, - 'agentnum' => $agentnum, + #OR + 'countrycode' => 1, + 'phonenum' => $phonenum, + 'pin' => $pin, } ); @@ -468,6 +475,10 @@ hash reference as parameter with the following keys: Session identifier +=item amount + +Amount + =item save If true, address and card information entered will be saved for subsequent @@ -527,7 +538,8 @@ error message on errors =item list_pkgs -Returns package information for this customer. +Returns package information for this customer. For more detail on services, +see L. Takes a hash reference as parameter with a single key: B @@ -535,6 +547,10 @@ Returns a hash reference containing customer package information. The hash refe =over 4 +=item custnum + +Customer number + =item cust_pkg HASHREF Array reference of hash references, each of which has the fields of a cust_pkg @@ -545,8 +561,9 @@ the internal FS:: objects, but hash references of columns and values. =item part_pkg fields -All fields of part_pkg (be careful with this information - it may reveal more -about your available packages than you would like users to know in aggregate) +All fields of part_pkg for this specific cust_pkg (be careful with this +information - it may reveal more about your available packages than you would +like users to know in aggregate) =cut @@ -554,7 +571,9 @@ about your available packages than you would like users to know in aggregate) =item part_svc -An array of hash references, each of which has the following keys: +An array of hash references indicating information on unprovisioned services +available for provisioning for this specific cust_pkg. Each has the following +keys: =over 4 @@ -569,6 +588,51 @@ about your available packages than you would like users to know in aggregate) =back +=item cust_svc + +An array of hash references indicating information on the customer services +already provisioned for this specific cust_pkg. Each has the following keys: + +=over 4 + +=item label + +Array reference with three elements: + +=over 4 + +=item + +Name of this service + +=item + +Meaningful user-specific identifier for the service (i.e. username, domain or mail alias) + +=item + +Table name of this service + +=back + +=item svcnum + +Primary key for this service + +=item svcpart + +Service definition (part_pkg) + +=item pkgnum + +Customer package (cust_pkg) + +=item overlimit + +Blank if the service is not over limit, or the date the service exceeded its usage limit (as a UNIX timestamp). + +=back + =back =item error @@ -577,6 +641,92 @@ Empty on success, or an error message on errors. =back +=item list_svcs + +Returns service information for this customer. + +Takes a hash reference as parameter with a single key: B + +Returns a hash reference containing customer package information. The hash reference contains the following keys: + +=over 4 + +=item custnum + +Customer number + +=item svcs + +An array of hash references indicating information on all of this customer's +services. Each has the following keys: + +=over 4 + +=item svcnum + +Primary key for this service + +=item label + +Name of this service + +=item value + +Meaningful user-specific identifier for the service (i.e. username, domain, or +mail alias). + +=back + +Account (svc_acct) services also have the following keys: + +=item username + +Username + +=item email + +username@domain + +=item seconds + +Seconds remaining + +=item upbytes + +Upload bytes remaining + +=item downbytes + +Download bytes remaining + +=item totalbytes + +Total bytes remaining + +=item recharge_amount + +Cost of a recharge + +=item recharge_seconds + +Number of seconds gained by recharge + +=item recharge_upbytes + +Number of upload bytes gained by recharge + +=item recharge_downbytes + +Number of download bytes gained by recharge + +=item recharge_totalbytes + +Number of total bytes gained by recharge + +=back + +=back + =item order_pkg Orders a package for this customer. @@ -834,6 +984,10 @@ comma-separated list of email addresses for email invoices. The special value ' referring customer number +=item agentnum + +Agent number + =item pkgpart pkgpart of initial package @@ -854,9 +1008,17 @@ Security phrase Access number (index, not the literal number) -=item agentnum +=item countrycode -Agent number +Country code (to be provisioned as a service) + +=item phonenum + +Phone number (to be provisioned as a service) + +=item pin + +Voicemail PIN =back @@ -1239,6 +1401,99 @@ END } +=item domainselector HASHREF | LIST + +Takes as input a hashref or list of key/value pairs with the following keys: + +=over 4 + +=item pkgnum + +Package number + +=item domsvc + +Service number of the selected item. + +=back + +Returns an HTML fragment for domain selection. + +=cut + +sub domainselector { + my $param; + if ( ref($_[0]) ) { + $param = shift; + } else { + $param = { @_ }; + } + my $domsvc= $param->{'domsvc'}; + my $rv = + domain_select_hash(map {$_ => $param->{$_}} qw(pkgnum svcpart pkgpart) ); + my $domains = $rv->{'domains'}; + $domsvc = $rv->{'domsvc'} unless $domsvc; + + return '' + unless scalar(keys %$domains); + + if (scalar(keys %$domains) == 1) { + my $key; + foreach(keys %$domains) { + $key = $_; + } + return 'Domain'. $domains->{$key}. + '' + } + + my $text .= qq!Domain!; + + $text; + +} + +=item didselector HASHREF | LIST + +Takes as input a hashref or list of key/value pairs with the following keys: + +=over 4 + +=item field + +=item svcpart + +=back + +Returns an HTML fragment for DID selection. + +=cut + +sub didselector { + my $param; + if ( ref($_[0]) ) { + $param = shift; + } else { + $param = { @_ }; + } + + my $rv = mason_comp( 'comp'=>'/elements/select-did.html', + 'args'=>[ %$param ], + ); + + #hmm. + $rv->{'error'} || $rv->{'output'}; + +} + =back =head1 RESELLER FUNCTIONS