projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
backport from 3.3-TESTING to fix XSS on ticket lists
[freeside.git]
/
fs_signup
/
fs_signup_server
diff --git
a/fs_signup/fs_signup_server
b/fs_signup/fs_signup_server
index
7f962e0
..
d6eb4a8
100755
(executable)
--- a/
fs_signup/fs_signup_server
+++ b/
fs_signup/fs_signup_server
@@
-14,6
+14,8
@@
use FS::Conf;
use FS::Record qw( qsearch qsearchs );
use FS::cust_main_county;
use FS::cust_main;
use FS::Record qw( qsearch qsearchs );
use FS::cust_main_county;
use FS::cust_main;
+use FS::cust_bill;
+use FS::cust_pkg;
use FS::Msgcat qw(gettext);
use vars qw( $opt $Debug );
use FS::Msgcat qw(gettext);
use vars qw( $opt $Debug );
@@
-25,6
+27,11
@@
my $user = shift or die &usage;
my $conf = new FS::Conf;
my $conf = new FS::Conf;
+if ($conf->exists('signup_server-quiet')) {
+ $FS::cust_bill::quiet = 1;
+ $FS::cust_pkg::quiet = 1;
+}
+
#my @payby = qw(CARD PREPAY);
my @payby = $conf->config('signup_server-payby');
my $smtpmachine = $conf->config('smtpmachine');
#my @payby = qw(CARD PREPAY);
my @payby = $conf->config('signup_server-payby');
my $smtpmachine = $conf->config('smtpmachine');
@@
-94,7
+101,11
@@
while (1) {
'msgcat' => { map { $_=>gettext($_) } qw(
passwords_dont_match invalid_card unknown_card_type not_a
'msgcat' => { map { $_=>gettext($_) } qw(
passwords_dont_match invalid_card unknown_card_type not_a
- ) }
+ ) },
+
+ 'statedefault' => $conf->config('statedefault') || 'CA',
+
+ 'countrydefault' => $conf->config('countrydefault') || 'US',
};
};
@@
-132,7
+143,7
@@
while (1) {
map { $_ => $signup_data->{$_} } qw(
last first ss company address1 address2 city county state zip country
map { $_ => $signup_data->{$_} } qw(
last first ss company address1 address2 city county state zip country
- daytime night fax payby payinfo paydate payname referral_custnum
+ daytime night fax payby payinfo paydate payname referral_custnum
comments
),
} );
),
} );
@@
-140,6
+151,9
@@
while (1) {
$error ||= "Illegal payment type"
unless grep { $_ eq $signup_data->{'payby'} } @payby;
$error ||= "Illegal payment type"
unless grep { $_ eq $signup_data->{'payby'} } @payby;
+ $cust_main->payinfo($cust_main->daytime)
+ if $cust_main->payby eq 'LECB' && ! $cust_main->payinfo;
+
my @invoicing_list = split( /\s*\,\s*/, $signup_data->{'invoicing_list'} );
$signup_data->{'pkgpart'} =~ /^(\d+)$/ or '' =~ /^()$/;
my @invoicing_list = split( /\s*\,\s*/, $signup_data->{'invoicing_list'} );
$signup_data->{'pkgpart'} =~ /^(\d+)$/ or '' =~ /^()$/;
@@
-148,7
+162,7
@@
while (1) {
my $part_pkg =
qsearchs( 'part_pkg', { 'pkgpart' => $pkgpart } )
or $error ||= "WARNING: unknown pkgpart: $pkgpart";
my $part_pkg =
qsearchs( 'part_pkg', { 'pkgpart' => $pkgpart } )
or $error ||= "WARNING: unknown pkgpart: $pkgpart";
- my $svcpart = $part_pkg->svcpart unless $error;
+ my $svcpart = $part_pkg->svcpart
('svc_acct')
unless $error;
my $cust_pkg = new FS::cust_pkg ( {
#later#'custnum' => $custnum,
my $cust_pkg = new FS::cust_pkg ( {
#later#'custnum' => $custnum,
@@
-188,9
+202,15
@@
while (1) {
if $bill_error;
if ( $cust_main->balance > 0 ) {
if $bill_error;
if ( $cust_main->balance > 0 ) {
+
+ #this makes sense. credit is "un-doing" the invoice
+ $cust_main->credit( $cust_main->balance, 'signup server decline' );
+ $cust_main->apply_credits;
+
#should check list for errors...
#$cust_main->suspend;
$cust_main->cancel;
#should check list for errors...
#$cust_main->suspend;
$cust_main->cancel;
+
$error = '_decline';
}
}
$error = '_decline';
}
}