'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',
'order_recharge' => 'MyAccount/order_recharge',
+ '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_phone' => 'MyAccount/provision_phone',
'provision_external' => 'MyAccount/provision_external',
'unprovision_svc' => 'MyAccount/unprovision_svc',
'myaccount_passwd' => 'MyAccount/myaccount_passwd',
+ 'create_ticket' => 'MyAccount/create_ticket',
+ 'get_ticket' => 'MyAccount/get_ticket',
+ 'did_report' => 'MyAccount/did_report',
'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',
+ #izoom
+ #'bulk_processrow' => 'Bulk/processrow',
+ #conflicts w/Agent one# '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';
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
Zip or postal code
+=item country
+
+Two-letter country code
+
=item payinfo
Card number
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<error>, empty on success, or an
-error message on errors
+error message on errors.
+
+=item process_payment_order_pkg
+
+Combines the B<process_payment> and B<order_pkg> 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<error>, empty on success, or an
+error message on errors.
+
+=item process_payment_change_pkg
+
+Combines the B<process_payment> and B<change_pkg> 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<error>, empty on success, or an
+error message on errors.
+
+
+=item process_payment_order_renew
+
+Combines the B<process_payment> and B<order_renew> functions in one step. If
+the payment processes sucessfully, the renewal is processed. Takes a hash
+reference as parameter with the keys of both methods.
+
+Returns a hash reference with a single key, B<error>, empty on success, or an
+error message on errors.
=item list_pkgs
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
=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
+Array reference with three elements: The first element is the name of this service. The second element is a meaningful user-specific identifier for the service (i.e. username, domain or mail alias). The last element is the table name of this service.
=back
=item svcpart
-Service definition (part_pkg)
+Service definition (see L<FS::part_svc>)
=item pkgnum
-Customer package (cust_pkg)
+Customer package (see L<FS::cust_pkg>)
=item overlimit
=back
-=item error
-
-Empty on success, or an error message on errors.
-
-=back
-
=item list_svcs
Returns service information for this customer.
Account (svc_acct) services also have the following keys:
+=over 4
+
=item username
Username
=item pkgpart
-pkgpart of package to order
+Package to order (see L<FS::part_pkg>).
=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<FS::part_svc>).
+
+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
=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<error>, 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<FS::part_pkg>).
+
+=back
+
+Returns a hash reference with a single key, B<error>, empty on success, or an
+error message on errors.
+
+=item renew_info
+
+Provides useful info for early renewals.
+
+Takes a hash reference as parameter with the following keys:
+
+=over 4
+
+=item session_id
+
+Session identifier
+
+=back
+
+Returns a hash reference. On errors, it contains a single key, B<error>, with
+the error message. Otherwise, contains a single key, B<dates>, pointing to
+an array refernce of hash references. Each hash reference contains the
+following keys:
+
+=over 4
+
+=item bill_date
+
+(Future) Bill date. Indicates a future date for which billing could be run.
+Specified as a integer UNIX timestamp. Pass this value to the B<order_renew>
+function.
+
+=item bill_date_pretty
+
+(Future) Bill date as a human-readable string. (Convenience for display;
+subject to change, so best not to parse for the date.)
+
+=item amount
+
+Base amount which will be charged if renewed early as of this date.
+
+=item renew_date
+
+Renewal date; i.e. even-futher future date at which the customer will be paid
+through if the early renewal is completed with the given B<bill-date>.
+Specified as a integer UNIX timestamp.
+
+=item renew_date_pretty
+
+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
+
+Renews this customer early; i.e. runs billing for this customer in advance.
+
+Takes a hash reference as parameter with the following keys:
+
+=over 4
+
+=item session_id
+
+Session identifier
+
+=item date
+
+Integer date as returned by the B<renew_info> function, indicating the advance
+date for which to run billing.
+
+=back
+
+Returns a hash reference with a single key, B<error>, empty on success, or an
+error message on errors.
+
=item cancel_pkg
Cancels a package for this customer.
my $county_html = $script_html;
if ( $countyflag ) {
$county_html .= qq!<SELECT NAME="${prefix}county" onChange="$param->{'onchange'}">!;
+ foreach my $county (
+ sort keys %{ $cust_main_county{$param->{'selected_country'}}{$param->{'selected_state'}} }
+ ) {
+ my $text = $county || '(n/a)';
+ $county_html .= qq!<OPTION VALUE="$county"!.
+ ($county eq $param->{'selected_county'} ?
+ ' SELECTED>' :
+ '>'
+ ).
+ $text.
+ '</OPTION>';
+ }
$county_html .= '</SELECT>';
} else {
$county_html .=
};
}
+=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:
$text .= "}\n</SCRIPT>\n";
+ $param->{'acstate'} = '' unless defined($param->{'acstate'});
+
$text .=
qq!<TABLE CELLPADDING="0"><TR><TD><SELECT NAME="acstate"! .
qq!SIZE=1 onChange="acstate_changed(this)"><OPTION VALUE=-1>State!;
=item field
+Field name for the returned HTML fragment.
+
=item svcpart
+Service definition (see L<FS::part_svc>)
+
=back
Returns an HTML fragment for DID selection.
with their active session, and the B<customer_info> and B<order_pkg> functions
with their active session and an additional I<custnum> parameter.
+For the most part, development of the reseller web interface has been
+superceded by agent-virtualized access to the backend.
+
=over 4
=item agent_login
+Agent login
+
=item agent_info
+Agent info
+
=item agent_list_customers
+List agent's customers.
+
=back
=head1 BUGS