summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorivan <ivan>2003-11-29 08:32:40 +0000
committerivan <ivan>2003-11-29 08:32:40 +0000
commit281d9b3d2f0f955c159275cafe405f73c88733ba (patch)
tree531088fcc21f136e019e8e5f58b923d5c31e0963 /FS
parent98fc23b80dbc4935ff7a6efeb49fd3876b96f029 (diff)
option to send statements when a payment or credit is applied
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/Conf.pm7
-rw-r--r--FS/FS/cust_bill_pay.pm19
-rw-r--r--FS/FS/cust_credit_bill.pm33
3 files changed, 49 insertions, 10 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index b30beafaf..d911480df 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -492,6 +492,13 @@ httemplate/docs/config.html
},
{
+ 'key' => 'invoice_send_receipts',
+ 'section' => 'billing',
+ 'description' => 'Send receipts for payments and credits.',
+ 'type' => 'checkbox',
+ },
+
+ {
'key' => 'lpr',
'section' => 'required',
'description' => 'Print command for paper invoices, for example `lpr -h\'',
diff --git a/FS/FS/cust_bill_pay.pm b/FS/FS/cust_bill_pay.pm
index 5f4a49144..c8b5525ea 100644
--- a/FS/FS/cust_bill_pay.pm
+++ b/FS/FS/cust_bill_pay.pm
@@ -1,13 +1,18 @@
package FS::cust_bill_pay;
use strict;
-use vars qw( @ISA );
+use vars qw( @ISA $conf );
use FS::Record qw( qsearch qsearchs dbh );
use FS::cust_bill;
use FS::cust_pay;
@ISA = qw( FS::Record );
+#ask FS::UID to run this stuff for us later
+FS::UID->install_callback( sub {
+ $conf = new FS::Conf;
+} );
+
=head1 NAME
FS::cust_bill_pay - Object methods for cust_bill_pay records
@@ -101,7 +106,8 @@ sub insert {
" greater than cust_pay.paid ". $cust_pay->paid;
}
- my $cust_bill = qsearchs('cust_bill', { 'invnum' => $self->invnum } ) or do {
+ my $cust_bill = $self->cust_bill;
+ unless ( $cust_bill ) {
$dbh->rollback if $oldAutoCommit;
return "unknown cust_bill.invnum: ". $self->invnum;
};
@@ -120,6 +126,11 @@ sub insert {
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
+ if ( $conf->exists('invoice_send_receipts') ) {
+ my $send_error = $cust_bill->send;
+ warn "Error sending receipt: $send_error\n" if $send_error;
+ }
+
'';
}
@@ -197,10 +208,6 @@ sub cust_bill {
=back
-=head1 VERSION
-
-$Id: cust_bill_pay.pm,v 1.13 2003-08-05 00:20:41 khoff Exp $
-
=head1 BUGS
Delete and replace methods.
diff --git a/FS/FS/cust_credit_bill.pm b/FS/FS/cust_credit_bill.pm
index a54acb683..0bbc656ea 100644
--- a/FS/FS/cust_credit_bill.pm
+++ b/FS/FS/cust_credit_bill.pm
@@ -1,7 +1,7 @@
package FS::cust_credit_bill;
use strict;
-use vars qw( @ISA );
+use vars qw( @ISA $conf );
use FS::UID qw( getotaker );
use FS::Record qw( qsearch qsearchs );
use FS::cust_main;
@@ -11,6 +11,11 @@ use FS::cust_bill;
@ISA = qw( FS::Record );
+#ask FS::UID to run this stuff for us later
+FS::UID->install_callback( sub {
+ $conf = new FS::Conf;
+} );
+
=head1 NAME
FS::cust_credit_bill - Object methods for cust_credit_bill records
@@ -69,6 +74,19 @@ sub table { 'cust_credit_bill'; }
Adds this cust_credit_bill to the database ("Posts" all or part of a credit).
If there is an error, returns the error, otherwise returns false.
+sub insert {
+ my $self = shift;
+ my $error = $self->SUPER::insert(@_);
+ return $error if $error;
+
+ if ( $conf->exists('invoice_send_receipts') ) {
+ my $send_error = $self->cust_bill->send;
+ warn "Error sending receipt: $send_error\n" if $send_error;
+ }
+
+ '';
+}
+
=item delete
Currently unimplemented.
@@ -141,11 +159,18 @@ sub cust_credit {
qsearchs( 'cust_credit', { 'crednum' => $self->crednum } );
}
-=back
+=item cust_bill
+
+Returns the invoice (see L<FS::cust_bill>)
-=head1 VERSION
+=cut
-$Id: cust_credit_bill.pm,v 1.8 2003-08-05 00:20:41 khoff Exp $
+sub cust_bill {
+ my $self = shift;
+ qsearchs( 'cust_bill', { 'invnum' => $self->invnum } );
+}
+
+=back
=head1 BUGS