$cgi->param('refnum', (split(/:/, ($cgi->param('refnum'))[0] ))[0] );
-my $payby = $cgi->param('payby');
+#my $payby = $cgi->param('payby');
+my $payby = $cgi->param('select'); # XXX key
+
+my %noauto = (
+ 'CARD' => 'DCRD',
+ 'CHEK' => 'DCHK',
+);
+$payby = $noauto{$payby}
+ if ! $cgi->param('payauto') && exists $noauto{$payby};
+
+$cgi->param('payby', $payby);
+
if ( $payby ) {
if ( $payby eq 'CHEK' || $payby eq 'DCHK' ) {
$cgi->param('payinfo',
- $cgi->param($payby. '_payinfo1'). '@'. $cgi->param($payby. '_payinfo2') );
- } else {
- $cgi->param('payinfo', $cgi->param( $payby. '_payinfo' ) );
+ $cgi->param('payinfo1'). '@'. $cgi->param('payinfo2') );
}
$cgi->param('paydate',
- $cgi->param( $payby. '_month' ). '-'. $cgi->param( $payby. '_year' ) );
- $cgi->param('payname', $cgi->param( $payby. '_payname' ) );
- $cgi->param('paycvv', $cgi->param( $payby. '_paycvv' ) )
- if defined $cgi->param( $payby. '_paycvv' );
+ $cgi->param( 'exp_month' ). '-'. $cgi->param( 'exp_year' ) );
}
my @invoicing_list = split( /\s*\,\s*/, $cgi->param('invoicing_list') );
);
}
+$new->setfield('paid', $cgi->param('paid') )
+ if $cgi->param('paid');
+
#perhaps this stuff should go to cust_main.pm
my $cust_pkg = '';
my $svc_acct = '';
'popnum' => $cgi->param('popnum'),
} );
- my $y = $svc_acct->setdefault; # arguably should be in new method
- $error ||= $y unless ref($y);
#and just in case you were silly
$svc_acct->svcpart($svcpart);
$svc_acct->username($cgi->param('username'));
tie my %hash, 'Tie::RefHash';
%hash = ( $cust_pkg => [ $svc_acct ] ) if $cust_pkg;
$error ||= $new->insert( \%hash, \@invoicing_list );
+
+ my $conf = new FS::Conf;
+ if ( $conf->exists('backend-realtime') && ! $error ) {
+
+ my $berror = $new->bill;
+ $new->apply_payments;
+ $new->apply_credits;
+ $berror ||= $new->collect;
+ warn "Warning, error billing during backend-realtime: $berror" if $berror;
+
+ }
+
} else { #create old record object
+
my $old = qsearchs( 'cust_main', { 'custnum' => $new->custnum } );
$error ||= "Old record not found!" unless $old;
if ( defined dbdef->table('cust_main')->column('paycvv')
$new->paycvv($old->paycvv);
}
$error ||= $new->replace($old, \@invoicing_list);
+
}
if ( $error ) {