freeside/FS/FS Conf.pm,1.100,1.101 cust_credit_bill.pm,1.12,1.13 cust_bill_pay.pm,1.15,1.16 cust_pay_refund.pm,1.1,1.2 cust_pay.pm,1.28,1.29

ivan ivan at pouncequick.420.am
Wed Jun 30 10:57:06 PDT 2004


Update of /home/cvs/cvsroot/freeside/FS/FS
In directory pouncequick:/tmp/cvs-serv8454/FS/FS

Modified Files:
	Conf.pm cust_credit_bill.pm cust_bill_pay.pm 
	cust_pay_refund.pm cust_pay.pm 
Log Message:
payment receipts!


Index: cust_bill_pay.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/cust_bill_pay.pm,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- cust_bill_pay.pm	29 Jun 2004 04:02:44 -0000	1.15
+++ cust_bill_pay.pm	30 Jun 2004 17:57:03 -0000	1.16
@@ -70,21 +70,6 @@
 Adds this record to the database.  If there is an error, returns the error,
 otherwise returns false.
 
-=cut
-
-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
 
 Deletes this payment application, unless the closed flag for the parent payment

Index: Conf.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/Conf.pm,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -d -r1.100 -r1.101
--- Conf.pm	30 Jun 2004 10:02:45 -0000	1.100
+++ Conf.pm	30 Jun 2004 17:57:03 -0000	1.101
@@ -542,9 +542,16 @@
 
   {
     'key'         => 'invoice_send_receipts',
-    'section'     => 'billing',
-    'description' => 'Send receipts for payments and credits.',
+    'section'     => 'deprecated',q
+    'description' => '<b>DEPRECATED</b>, this used to send an invoice copy on payments and credits.  See the payment_receipt_email and  instead.',
     'type'        => 'checkbox',
+  },
+
+  {
+    'key'         => 'payment_receipt_email',
+    'section'     => 'billing',
+    'description' => 'Template file for payment receipts.',
+    'type'        => 'textarea',
   },
 
   {

Index: cust_pay_refund.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/cust_pay_refund.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- cust_pay_refund.pm	29 Jun 2004 04:02:44 -0000	1.1
+++ cust_pay_refund.pm	30 Jun 2004 17:57:03 -0000	1.2
@@ -73,16 +73,6 @@
 Adds this cust_pay_refund to the database.  If there is an error, returns the
 error, otherwise returns false.
 
-=cut
-
-sub insert {
-  my $self = shift;
-  my $error = $self->SUPER::insert(@_);
-  return $error if $error;
-
-  '';
-}
-
 =item delete
 
 =cut

Index: cust_credit_bill.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/cust_credit_bill.pm,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- cust_credit_bill.pm	29 Jun 2004 04:02:44 -0000	1.12
+++ cust_credit_bill.pm	30 Jun 2004 17:57:03 -0000	1.13
@@ -74,21 +74,6 @@
 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.
 
-=cut
-
-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.

Index: cust_pay.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/cust_pay.pm,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- cust_pay.pm	29 Jun 2004 04:02:44 -0000	1.28
+++ cust_pay.pm	30 Jun 2004 17:57:03 -0000	1.29
@@ -4,6 +4,7 @@
 use vars qw( @ISA $conf $unsuspendauto );
 use Date::Format;
 use Business::CreditCard;
+use Text::Template;
 use FS::UID qw( dbh );
 use FS::Record qw( dbh qsearch qsearchs dbh );
 use FS::Misc qw(send_email);
@@ -112,7 +113,7 @@
     $self->custnum($cust_bill->custnum );
   }
 
-  my $cust_main = qsearchs( 'cust_main', { 'custnum' => $self->custnum } );
+  my $cust_main = $self->cust_main;
   my $old_balance = $cust_main->balance;
 
   my $error = $self->check;
@@ -162,64 +163,44 @@
 
   $dbh->commit or die $dbh->errstr if $oldAutoCommit;
 
-  '';
-
-}
-
-sub upgrade_replace { #1.3.x->1.4.x
-  my $self = shift;
-
-  local $SIG{HUP} = 'IGNORE';
-  local $SIG{INT} = 'IGNORE';
-  local $SIG{QUIT} = 'IGNORE';
-  local $SIG{TERM} = 'IGNORE';
-  local $SIG{TSTP} = 'IGNORE';
-  local $SIG{PIPE} = 'IGNORE';
-
-  my $oldAutoCommit = $FS::UID::AutoCommit;
-  local $FS::UID::AutoCommit = 0;
-  my $dbh = dbh;
+  #my $cust_main = $self->cust_main;
+  if ( $conf->exists('payment_receipt_email')
+       && grep { $_ ne 'POST' } $cust_main->invoicing_list
+  ) {
 
-  my $error = $self->check;
-  return $error if $error;
+    my $receipt_template = new Text::Template (
+      TYPE   => 'ARRAY',
+      SOURCE => [ map "$_\n", $conf->config('payment_receipt_email') ],
+    ) or do {
+      warn "can't create payment receipt template: $Text::Template::ERROR";
+      return '';
+    };
 
-  my %new = $self->hash;
-  my $new = FS::cust_pay->new(\%new);
+    my @invoicing_list = grep { $_ ne 'POST' } $cust_main->invoicing_list;
 
-  if ( $self->invnum ) {
-    my $cust_bill_pay = new FS::cust_bill_pay {
-      'invnum' => $self->invnum,
-      'paynum' => $self->paynum,
-      'amount' => $self->paid,
-      '_date'  => $self->_date,
-    };
-    $error = $cust_bill_pay->insert;
-    if ( $error =~ 
-           /total cust_bill_pay.amount and cust_credit_bill.amount .* for invnum .* greater than cust_bill.charged/ ) {
-      #warn $error;
-      my $cust_bill = qsearchs( 'cust_bill', { 'invnum' => $self->invnum } );
-      $new->custnum($cust_bill->custnum);
-    } elsif ( $error ) {
-      $dbh->rollback if $oldAutoCommit;
-      return $error;
-    } else {
-      $new->custnum($cust_bill_pay->cust_bill->custnum);
+    my $error = send_email(
+      'from'    => $conf->config('invoice_from'), #??? well as good as any
+      'to'      => \@invoicing_list,
+      'subject' => 'Payment receipt',
+      'body'    => $receipt_template->fill_in( HASH => {
+                     'date'    => str2time("%a %B %o, %Y", $self->_date),
+                     'paynum'  => $self->paynum,
+                     'paid'    => $self->paid,
+                     'payby'   => ucfirst(lc($self->payby)),
+                     'payinfo' => ( $self->payby eq 'CARD'
+                                      ? $self->payinfo_masked
+                                      : $self->payinfo        ),
+                     'balance' => $cust_main->balance,
+                   } ),
+    );
+    if ( $error ) {
+      warn "can't send payment receipt: $error";
     }
-  } else {
-    die;
-  }
 
-  $error = $new->SUPER::replace($self);
-  if ( $error ) {
-    $dbh->rollback if $oldAutoCommit;
-    return $error;
   }
 
-  $dbh->commit or die $dbh->errstr if $oldAutoCommit;
-
   '';
 
-
 }
 
 =item delete
@@ -260,7 +241,7 @@
 
   if ( $conf->config('deletepayments') ne '' ) {
 
-    my $cust_main = qsearchs('cust_main',{ 'custnum' => $self->custnum });
+    my $cust_main = $self->cust_main;
 
     my $error = send_email(
       'from'    => $conf->config('invoice_from'), #??? well as good as any




More information about the freeside-commits mailing list