);
return { error => 'User not found.' } unless $svc_acct;
+ my $conf = new FS::Conf;
+ my $pkg_svc = $svc_acct->cust_svc->pkg_svc;
+ return { error => 'Only primary user may log in.' }
+ if $conf->exists('selfservice_server-primary_only')
+ && ( ! $pkg_svc || $pkg_svc->primary_svc ne 'Y' );
return { error => 'Incorrect password.' }
unless $svc_acct->check_password($p->{'password'});
$session->{'custnum'} = $cust_main->custnum;
}
- my $conf = new FS::Conf;
- my $pkg_svc = $svc_acct->cust_svc->pkg_svc;
- return { error => 'Only primary user may log in.' }
- if $conf->exists('selfservice_server-primary_only')
- && ( ! $pkg_svc || $pkg_svc->primary ne 'Y' );
-
my $session_id;
do {
$session_id = md5_hex(md5_hex(time(). {}. rand(). $$))
#list all counties/states/countries
$return{'cust_main_county'} =
- [ map { $_->hashref } qsearch('cust_main_county', {}) ],
+ [ map { $_->hashref } qsearch('cust_main_county', {}) ];
#shortcut for one-country folks
my $conf = new FS::Conf;
if ( $cust_main->balance > $old_balance
&& $cust_main->payby !~ /^(BILL|DCRD|DCHK)$/ ) {
+ #this makes sense. credit is "un-doing" the invoice
+ $cust_main->credit( sprintf("%.2f", $cust_main->balance - $old_balance ),
+ 'self-service decline' );
+ $cust_main->apply_credits( 'order' => 'newest' );
+
$cust_pkg->cancel('quiet'=>1);
return { 'error' => '_decline' };
} else {