projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix freeside-daily w/Torrus :)
[freeside.git]
/
FS
/
FS
/
pay_batch.pm
diff --git
a/FS/FS/pay_batch.pm
b/FS/FS/pay_batch.pm
index
5cd40cd
..
850335e
100644
(file)
--- a/
FS/FS/pay_batch.pm
+++ b/
FS/FS/pay_batch.pm
@@
-231,17
+231,12
@@
sub import_results {
my $reself = $self->select_for_update;
my $reself = $self->select_for_update;
- unless ( $reself->status eq 'I' ) {
+ if ( $reself->status ne 'I'
+ and !$conf->exists('batch-manual_approval') ) {
$dbh->rollback if $oldAutoCommit;
return "batchnum ". $self->batchnum. "no longer in transit";
}
$dbh->rollback if $oldAutoCommit;
return "batchnum ". $self->batchnum. "no longer in transit";
}
- my $error = $self->set_status('R');
- if ( $error ) {
- $dbh->rollback if $oldAutoCommit;
- return $error;
- }
-
my $total = 0;
my $line;
my $total = 0;
my $line;
@@
-352,13
+347,16
@@
sub import_results {
my $custnum = $cust_pay_batch->custnum,
my $payby = $cust_pay_batch->payby,
my $custnum = $cust_pay_batch->custnum,
my $payby = $cust_pay_batch->payby,
- my $new_cust_pay_batch = new FS::cust_pay_batch { $cust_pay_batch->hash };
-
&{$hook}(\%hash, $cust_pay_batch->hashref);
&{$hook}(\%hash, $cust_pay_batch->hashref);
+ my $new_cust_pay_batch = new FS::cust_pay_batch { $cust_pay_batch->hash };
+
my $error = '';
if ( &{$approved_condition}(\%hash) ) {
my $error = '';
if ( &{$approved_condition}(\%hash) ) {
+ foreach ('paid', '_date', 'payinfo') {
+ $new_cust_pay_batch->$_($hash{$_}) if $hash{$_};
+ }
$error = $new_cust_pay_batch->approve($hash{'paybatch'} || $self->batchnum);
$total += $hash{'paid'};
$error = $new_cust_pay_batch->approve($hash{'paybatch'} || $self->batchnum);
$total += $hash{'paid'};
@@
-393,7
+391,13
@@
sub import_results {
$dbh->rollback;
die $@;
}
$dbh->rollback;
die $@;
}
- $self->set_status('I') if !$close;
+ if ( $close ) {
+ my $error = $self->set_status('R');
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
+ }
+ }
}
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
}
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
@@
-471,12
+475,15
@@
sub export_batch {
$_->setfield('expmmyy', sprintf('%02u%02u', $mon+1, $year % 100));
}
}
$_->setfield('expmmyy', sprintf('%02u%02u', $mon+1, $year % 100));
}
}
+
+ my $delim = exists($info->{'delimiter'}) ? $info->{'delimiter'} : "\n";
+
my $h = $info->{'header'};
if(ref($h) eq 'CODE') {
my $h = $info->{'header'};
if(ref($h) eq 'CODE') {
- $batch .= &$h($self, \@cust_pay_batch) .
"\n"
;
+ $batch .= &$h($self, \@cust_pay_batch) .
$delim
;
}
else {
}
else {
- $batch .= $h .
"\n"
;
+ $batch .= $h .
$delim
;
}
foreach my $cust_pay_batch (@cust_pay_batch) {
}
foreach my $cust_pay_batch (@cust_pay_batch) {
@@
-503,16
+510,16
@@
sub export_batch {
$batchcount++;
$batchtotal += $cust_pay_batch->amount;
$batchcount++;
$batchtotal += $cust_pay_batch->amount;
- $batch .= &{$info->{'row'}}($cust_pay_batch, $self, $batchcount, $batchtotal) .
"\n"
;
+ $batch .= &{$info->{'row'}}($cust_pay_batch, $self, $batchcount, $batchtotal) .
$delim
;
}
my $f = $info->{'footer'};
if(ref($f) eq 'CODE') {
}
my $f = $info->{'footer'};
if(ref($f) eq 'CODE') {
- $batch .= &$f($self, $batchcount, $batchtotal) .
"\n"
;
+ $batch .= &$f($self, $batchcount, $batchtotal) .
$delim
;
}
else {
}
else {
- $batch .= $f .
"\n"
;
+ $batch .= $f .
$delim
;
}
if ($info->{'autopost'}) {
}
if ($info->{'autopost'}) {
@@
-532,6
+539,7
@@
sub manual_approve {
my $date = time;
my %opt = @_;
my $paybatch = $opt{'paybatch'} || $self->batchnum;
my $date = time;
my %opt = @_;
my $paybatch = $opt{'paybatch'} || $self->batchnum;
+ my $usernum = $opt{'usernum'} || die "manual approval requires a usernum";
my $conf = FS::Conf->new;
return 'manual batch approval disabled'
if ( ! $conf->exists('batch-manual_approval') );
my $conf = FS::Conf->new;
return 'manual batch approval disabled'
if ( ! $conf->exists('batch-manual_approval') );
@@
-556,8
+564,9
@@
sub manual_approve {
) {
my $new_cust_pay_batch = new FS::cust_pay_batch {
$cust_pay_batch->hash,
) {
my $new_cust_pay_batch = new FS::cust_pay_batch {
$cust_pay_batch->hash,
- 'paid' => $cust_pay_batch->amount,
- '_date' => $date,
+ 'paid' => $cust_pay_batch->amount,
+ '_date' => $date,
+ 'usernum' => $usernum,
};
my $error = $new_cust_pay_batch->approve($paybatch);
if ( $error ) {
};
my $error = $new_cust_pay_batch->approve($paybatch);
if ( $error ) {
@@
-566,9
+575,7
@@
sub manual_approve {
}
$payments++;
}
}
$payments++;
}
- return 'no unresolved payments in batch' if $payments == 0;
$self->set_status('R');
$self->set_status('R');
-
$dbh->commit;
return;
}
$dbh->commit;
return;
}