projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix big in RADIUS session viewing when using an ignored-accounting export
[freeside.git]
/
FS
/
FS
/
cust_bill.pm
diff --git
a/FS/FS/cust_bill.pm
b/FS/FS/cust_bill.pm
index
72852d1
..
2755be0
100644
(file)
--- a/
FS/FS/cust_bill.pm
+++ b/
FS/FS/cust_bill.pm
@@
-6,6
+6,7
@@
use vars qw( $invoice_lines @buf ); #yuck
use Date::Format;
use Text::Template;
use File::Temp 0.14;
use Date::Format;
use Text::Template;
use File::Temp 0.14;
+use String::ShellQuote;
use FS::UID qw( datasrc );
use FS::Record qw( qsearch qsearchs );
use FS::Misc qw( send_email );
use FS::UID qw( datasrc );
use FS::Record qw( qsearch qsearchs );
use FS::Misc qw( send_email );
@@
-335,7
+336,10
@@
sub send {
my $self = shift;
my $template = scalar(@_) ? shift : '';
return 'N/A' if scalar(@_) && $_[0] && $self->cust_main->agentnum != shift;
my $self = shift;
my $template = scalar(@_) ? shift : '';
return 'N/A' if scalar(@_) && $_[0] && $self->cust_main->agentnum != shift;
- my $invoice_from = scalar(@_) ? shift : $conf->config('invoice_from');
+ my $invoice_from =
+ scalar(@_)
+ ? shift
+ : ( $self->_agent_invoice_from || $conf->config('invoice_from') );
my @print_text = $self->print_text('', $template);
my @invoicing_list = $self->cust_main->invoicing_list;
my @print_text = $self->print_text('', $template);
my @invoicing_list = $self->cust_main->invoicing_list;
@@
-668,24
+672,38
@@
sub batch_card {
sub _agent_template {
my $self = shift;
sub _agent_template {
my $self = shift;
+ $self->_agent_plandata('agent_templatename');
+}
+
+sub _agent_invoice_from {
+ my $self = shift;
+ $self->_agent_plandata('agent_invoice_from');
+}
+
+sub _agent_plandata {
+ my( $self, $option ) = @_;
- my $
cus
t_bill_event = qsearchs( 'part_bill_event',
+ my $
par
t_bill_event = qsearchs( 'part_bill_event',
{
'payby' => $self->cust_main->payby,
'plan' => 'send_agent',
{
'payby' => $self->cust_main->payby,
'plan' => 'send_agent',
- 'eventcode' => { 'op' => 'LIKE',
- 'value' => '_%, '. $self->cust_main->agentnum. ');' },
+ 'plandata' => { 'op' => '~',
+ 'value' => "(^|\n)agentnum ".
+ $self->cust_main->agentnum.
+ "(\n|\$)",
+ },
},
'',
'ORDER BY seconds LIMIT 1'
);
},
'',
'ORDER BY seconds LIMIT 1'
);
- return '' unless $
cus
t_bill_event;
+ return '' unless $
par
t_bill_event;
- if ( $
cust_bill_event->eventcode =~ /\(\s*'(.*)'\s*,\s*(\d+)\s*\)\;$/
) {
+ if ( $
part_bill_event->plandata =~ /^$option (.*)$/m
) {
return $1;
} else {
return $1;
} else {
- warn "can't parse eventcode for agent-specific invoice template";
+ warn "can't parse part_bill_event eventpart#". $part_bill_event->eventpart.
+ " plandata for $option";
return '';
}
return '';
}
@@
-702,14
+720,16
@@
L<Time::Local> and L<Date::Parse> for conversion functions.
=cut
=cut
+#still some false laziness w/print_text
sub print_text {
my( $self, $today, $template ) = @_;
$today ||= time;
sub print_text {
my( $self, $today, $template ) = @_;
$today ||= time;
+
# my $invnum = $self->invnum;
# my $invnum = $self->invnum;
- my $cust_main =
qsearchs('cust_main', { 'custnum', $self->custnum } )
;
+ my $cust_main =
$self->cust_main
;
$cust_main->payname( $cust_main->first. ' '. $cust_main->getfield('last') )
$cust_main->payname( $cust_main->first. ' '. $cust_main->getfield('last') )
- unless $cust_main->payname && $cust_main->payby
ne 'CHEK'
;
+ unless $cust_main->payname && $cust_main->payby
!~ /^(CHEK|DCHK)$/
;
my( $pr_total, @pr_cust_bill ) = $self->previous; #previous balance
# my( $cr_total, @cr_cust_credit ) = $self->cust_credit; #credits
my( $pr_total, @pr_cust_bill ) = $self->previous; #previous balance
# my( $cr_total, @cr_cust_credit ) = $self->cust_credit; #credits
@@
-949,7
+969,7
@@
sub print_latex {
# my $invnum = $self->invnum;
my $cust_main = $self->cust_main;
$cust_main->payname( $cust_main->first. ' '. $cust_main->getfield('last') )
# my $invnum = $self->invnum;
my $cust_main = $self->cust_main;
$cust_main->payname( $cust_main->first. ' '. $cust_main->getfield('last') )
- unless $cust_main->payname && $cust_main->payby
ne 'CHEK'
;
+ unless $cust_main->payname && $cust_main->payby
!~ /^(CHEK|DCHK)$/
;
my( $pr_total, @pr_cust_bill ) = $self->previous; #previous balance
# my( $cr_total, @cr_cust_credit ) = $self->cust_credit; #credits
my( $pr_total, @pr_cust_bill ) = $self->previous; #previous balance
# my( $cr_total, @cr_cust_credit ) = $self->cust_credit; #credits
@@
-1145,9
+1165,11
@@
sub print_ps {
my $dir = $FS::UID::conf_dir. "cache.". $FS::UID::datasrc;
chdir($dir);
my $dir = $FS::UID::conf_dir. "cache.". $FS::UID::datasrc;
chdir($dir);
- system("pslatex $file.tex >/dev/null 2>&1") == 0
+ my $sfile = shell_quote $file;
+
+ system("pslatex $sfile.tex >/dev/null 2>&1") == 0
or die "pslatex $file.tex failed: $!";
or die "pslatex $file.tex failed: $!";
- system("pslatex $file.tex >/dev/null 2>&1") == 0
+ system("pslatex $
s
file.tex >/dev/null 2>&1") == 0
or die "pslatex $file.tex failed: $!";
system('dvips', '-q', '-t', 'letter', "$file.dvi", '-o', "$file.ps" ) == 0
or die "pslatex $file.tex failed: $!";
system('dvips', '-q', '-t', 'letter', "$file.dvi", '-o', "$file.ps" ) == 0
@@
-1192,15
+1214,17
@@
sub print_pdf {
#system('pdflatex', "$file.tex");
#! LaTeX Error: Unknown graphics extension: .eps.
#system('pdflatex', "$file.tex");
#! LaTeX Error: Unknown graphics extension: .eps.
- system("pslatex $file.tex >/dev/null 2>&1") == 0
+ my $sfile = shell_quote $file;
+
+ system("pslatex $sfile.tex >/dev/null 2>&1") == 0
or die "pslatex $file.tex failed: $!";
or die "pslatex $file.tex failed: $!";
- system("pslatex $file.tex >/dev/null 2>&1") == 0
+ system("pslatex $
s
file.tex >/dev/null 2>&1") == 0
or die "pslatex $file.tex failed: $!";
#system('dvipdf', "$file.dvi", "$file.pdf" );
system(
or die "pslatex $file.tex failed: $!";
#system('dvipdf', "$file.dvi", "$file.pdf" );
system(
- "dvips -q -t letter -f $file.dvi ".
- "| gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$file.pdf ".
+ "dvips -q -t letter -f $
s
file.dvi ".
+ "| gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$
s
file.pdf ".
" -c save pop -"
) == 0
or die "dvips | gs failed: $!";
" -c save pop -"
) == 0
or die "dvips | gs failed: $!";
@@
-1406,7
+1430,7
@@
sub _items_credits {
#'description' => 'Credit ref\#'. $_->crednum.
# " (". time2str("%x",$_->cust_credit->_date) .")".
# $reason,
#'description' => 'Credit ref\#'. $_->crednum.
# " (". time2str("%x",$_->cust_credit->_date) .")".
# $reason,
- 'description' => 'Credit applied'.
+ 'description' => 'Credit applied
'.
time2str("%x",$_->cust_credit->_date). $reason,
'amount' => sprintf("%10.2f",$_->amount),
};
time2str("%x",$_->cust_credit->_date). $reason,
'amount' => sprintf("%10.2f",$_->amount),
};