projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tower for svc_acct, RT#15538
[freeside.git]
/
FS
/
FS
/
bill_batch.pm
diff --git
a/FS/FS/bill_batch.pm
b/FS/FS/bill_batch.pm
index
3afe209
..
1a46db0
100644
(file)
--- a/
FS/FS/bill_batch.pm
+++ b/
FS/FS/bill_batch.pm
@@
-2,9
+2,11
@@
package FS::bill_batch;
use strict;
use vars qw( @ISA $me $DEBUG );
use strict;
use vars qw( @ISA $me $DEBUG );
+use CAM::PDF;
+use FS::Conf;
use FS::Record qw( qsearch qsearchs dbh );
use FS::Record qw( qsearch qsearchs dbh );
+use FS::agent;
use FS::cust_bill_batch;
use FS::cust_bill_batch;
-use CAM::PDF;
@ISA = qw( FS::Record );
$me = '[ FS::bill_batch ]';
@ISA = qw( FS::Record );
$me = '[ FS::bill_batch ]';
@@
-37,6
+39,8
@@
inherits from FS::Record. The following fields are currently supported:
=item batchnum - primary key
=item batchnum - primary key
+=item agentnum - empty for global batches or agent (see L<FS::agent>)
+
=item status - either 'O' (open) or 'R' (resolved/closed).
=item pdf - blob field for temporarily storing the invoice as a PDF.
=item status - either 'O' (open) or 'R' (resolved/closed).
=item pdf - blob field for temporarily storing the invoice as a PDF.
@@
-80,6
+84,7
@@
sub print_pdf {
die $error if $error;
}
}
die $error if $error;
}
}
+ $job->update_statustext(100, 'Combining invoices') if $job;
return $pdf_out->toPDF;
}
return $pdf_out->toPDF;
}
@@
-96,26
+101,38
@@
sub close {
return $self->replace;
}
return $self->replace;
}
-=back
+sub check {
+ my $self = shift;
-=head1 CLASS METHODS
+ my $error =
+ $self->ut_numbern('batchnum')
+ || $self->ut_foreign_keyn('agentnum', 'agent', 'agentnum')
+ || $self->ut_enum('status', [ 'O', 'R' ] )
+ ;
+ return $error if $error;
-=item get_open_batch
+ $self->SUPER::check;
+}
+
+=item agent
-Returns the
currently open batch. There should only be one at a time
.
+Returns the
agent (see L<FS::agent>) for this invoice batch
.
=cut
=cut
-sub get_open_batch {
- my $class = shift;
- my $batch = qsearchs('bill_batch', { status => 'O' });
- return $batch if $batch;
- $batch = FS::bill_batch->new({status => 'O'});
- my $error = $batch->insert;
- die $error if $error;
- return $batch;
+sub agent {
+ my $self = shift;
+ qsearchs( 'agent', { 'agentnum' => $self->agentnum } );
}
}
+=back
+
+=head1 SUBROUTINES
+
+=item process_print_pdf
+
+=cut
+
use Storable 'thaw';
use Data::Dumper;
use MIME::Base64;
use Storable 'thaw';
use Data::Dumper;
use MIME::Base64;
@@
-128,13
+145,17
@@
sub process_print_pdf {
my $batch = FS::bill_batch->by_key($param->{batchnum});
die "batch '$param->{batchnum}' not found!\n" if !$batch;
my $batch = FS::bill_batch->by_key($param->{batchnum});
die "batch '$param->{batchnum}' not found!\n" if !$batch;
+ if ( $param->{'close'} ) {
+ my $error = $batch->close;
+ die $error if $error;
+ }
+
my $pdf = $batch->print_pdf($job);
$batch->pdf($pdf);
my $error = $batch->replace;
die $error if $error;
}
my $pdf = $batch->print_pdf($job);
$batch->pdf($pdf);
my $error = $batch->replace;
die $error if $error;
}
-
=back
=head1 BUGS
=back
=head1 BUGS