projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b0ca0f4
)
add apply option to realtime_collect, RT#5071
author
ivan
<ivan>
Sun, 25 Oct 2009 23:30:00 +0000
(23:30 +0000)
committer
ivan
<ivan>
Sun, 25 Oct 2009 23:30:00 +0000
(23:30 +0000)
FS/FS/ClientAPI/MyAccount.pm
patch
|
blob
|
history
FS/FS/cust_main.pm
patch
|
blob
|
history
diff --git
a/FS/FS/ClientAPI/MyAccount.pm
b/FS/FS/ClientAPI/MyAccount.pm
index
1e029ed
..
21dab46
100644
(file)
--- a/
FS/FS/ClientAPI/MyAccount.pm
+++ b/
FS/FS/ClientAPI/MyAccount.pm
@@
-680,7
+680,6
@@
sub process_payment {
}
sub realtime_collect {
}
sub realtime_collect {
-
my $p = shift;
my $session = _cache->get($p->{'session_id'})
my $p = shift;
my $session = _cache->get($p->{'session_id'})
@@
-695,6
+694,7
@@
sub realtime_collect {
'method' => $p->{'method'},
'pkgnum' => $session->{'pkgnum'},
'session_id' => $p->{'session_id'},
'method' => $p->{'method'},
'pkgnum' => $session->{'pkgnum'},
'session_id' => $p->{'session_id'},
+ 'apply' => 1,
);
return { 'error' => $error } unless ref( $error );
);
return { 'error' => $error } unless ref( $error );
diff --git
a/FS/FS/cust_main.pm
b/FS/FS/cust_main.pm
index
506f10b
..
ffc9f0f
100644
(file)
--- a/
FS/FS/cust_main.pm
+++ b/
FS/FS/cust_main.pm
@@
-3854,7
+3854,9
@@
I<description> is a free-text field passed to the gateway. It defaults to
If an I<invnum> is specified, this payment (if successful) is applied to the
specified invoice. If you don't specify an I<invnum> you might want to
If an I<invnum> is specified, this payment (if successful) is applied to the
specified invoice. If you don't specify an I<invnum> you might want to
-call the B<apply_payments> method.
+call the B<apply_payments> method or set the I<apply> option.
+
+I<apply> can be set to true to apply a resulting payment.
I<quiet> can be set true to surpress email decline notices.
I<quiet> can be set true to surpress email decline notices.
@@
-3873,7
+3875,16
@@
sub realtime_bop {
return $self->_new_realtime_bop(@_)
if $self->_new_bop_required();
return $self->_new_realtime_bop(@_)
if $self->_new_bop_required();
- my( $method, $amount, %options ) = @_;
+ my($method, $amount);
+ my %options = ();
+ if (ref($_[0]) eq 'HASH') {
+ %options = %{$_[0]};
+ $method = $options{method};
+ $amount = $options{amount};
+ } else {
+ ( $method, $amount ) = ( shift, shift );
+ %options = @_;
+ }
if ( $DEBUG ) {
warn "$me realtime_bop: $method $amount\n";
warn " $_ => $options{$_}\n" foreach keys %options;
if ( $DEBUG ) {
warn "$me realtime_bop: $method $amount\n";
warn " $_ => $options{$_}\n" foreach keys %options;
@@
-4347,6
+4358,16
@@
sub realtime_bop {
} else {
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
} else {
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
+
+ if ( $options{'apply'} ) {
+ my $apply_error = $self->apply_payments_and_credits;
+ if ( $apply_error ) {
+ warn "WARNING: error applying payment: $apply_error\n";
+ #but we still should return no error cause the payment otherwise went
+ #through...
+ }
+ }
+
return ''; #no error
}
return ''; #no error
}
@@
-4802,7
+4823,6
@@
sub _new_bop_required {
'';
}
'';
}
-
=item realtime_collect [ OPTION => VALUE ... ]
Runs a realtime credit card, ACH (electronic check) or phone bill transaction
=item realtime_collect [ OPTION => VALUE ... ]
Runs a realtime credit card, ACH (electronic check) or phone bill transaction
@@
-4830,7
+4850,9
@@
I<description> is a free-text field passed to the gateway. It defaults to
If an I<invnum> is specified, this payment (if successful) is applied to the
specified invoice. If you don't specify an I<invnum> you might want to
If an I<invnum> is specified, this payment (if successful) is applied to the
specified invoice. If you don't specify an I<invnum> you might want to
-call the B<apply_payments> method.
+call the B<apply_payments> method or set the I<apply> option.
+
+I<apply> can be set to true to apply a resulting payment.
I<quiet> can be set true to surpress email decline notices.
I<quiet> can be set true to surpress email decline notices.
@@
-5513,6
+5535,16
@@
sub _realtime_bop_result {
} else {
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
} else {
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
+
+ if ( $options{'apply'} ) {
+ my $apply_error = $self->apply_payments_and_credits;
+ if ( $apply_error ) {
+ warn "WARNING: error applying payment: $apply_error\n";
+ #but we still should return no error cause the payment otherwise went
+ #through...
+ }
+ }
+
return ''; #no error
}
return ''; #no error
}
@@
-6374,7
+6406,6
@@
A hash of optional arguments may be passed. Currently "manual" is supported.
If true, a payment receipt is sent instead of a statement when
'payment_receipt_email' configuration option is set.
If true, a payment receipt is sent instead of a statement when
'payment_receipt_email' configuration option is set.
-
Dies if there is an error.
=cut
Dies if there is an error.
=cut