From: ivan Date: Sat, 29 Nov 2003 08:32:39 +0000 (+0000) Subject: option to send statements when a payment or credit is applied X-Git-Tag: freeside_1_4_2beta1~359 X-Git-Url: http://git.freeside.biz/gitweb/?a=commitdiff_plain;h=3dbdd7c4b89cfbc9f94aa897ac712f35d3590785;p=freeside.git option to send statements when a payment or credit is applied --- diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index e06beaa58..ac638f875 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -498,6 +498,13 @@ httemplate/docs/config.html 'select_enum' => [ '', 'Payable upon receipt', 'Net 10', 'Net 15', 'Net 30', 'Net 45', 'Net 60' ], }, + { + 'key' => 'invoice_send_receipts', + 'section' => 'billing', + 'description' => 'Send receipts for payments and credits.', + 'type' => 'checkbox', + }, + { 'key' => 'lpr', 'section' => 'required', diff --git a/FS/FS/cust_bill_pay.pm b/FS/FS/cust_bill_pay.pm index 913704bef..ea0236deb 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.12 2002-02-07 22:29:34 ivan Exp $ - =head1 BUGS Delete and replace methods. diff --git a/FS/FS/cust_credit_bill.pm b/FS/FS/cust_credit_bill.pm index 62215419c..725c6d682 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) -=head1 VERSION +=cut -$Id: cust_credit_bill.pm,v 1.7 2002-01-24 16:58:47 ivan Exp $ +sub cust_bill { + my $self = shift; + qsearchs( 'cust_bill', { 'invnum' => $self->invnum } ); +} + +=back =head1 BUGS