X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_pay.pm;h=605f21c358ec29b071cd9b0a8131b057e34b7b2a;hb=6cd0b2ba573ff345de8093ab8c7caeb3f49cf033;hp=d3e0301dc991c2e2b86bf679a9f1f837c92ea762;hpb=9c659edbaa1789b28b3da47779bbf17508bea9c5;p=freeside.git diff --git a/FS/FS/cust_pay.pm b/FS/FS/cust_pay.pm index d3e0301dc..605f21c35 100644 --- a/FS/FS/cust_pay.pm +++ b/FS/FS/cust_pay.pm @@ -23,6 +23,7 @@ use FS::cust_main; use FS::cust_pkg; use FS::cust_pay_void; use FS::upgrade_journal; +use FS::Cursor; $DEBUG = 0; @@ -192,6 +193,15 @@ A hash of optional arguments may be passed. Currently "manual" is supported. If true, a payment receipt is sent instead of a statement when 'payment_receipt_email' configuration option is set. +About the "manual" flag: Normally, if the 'payment_receipt' config option +is set, and the customer has an invoice email address, inserting a payment +causes a I to be emailed to the customer. If the payment is +considered "manual" (or if the customer has no invoices), then it will +instead send a I. "manual" should be true whenever a +payment is created directly from the web interface, from a user-initiated +realtime payment, or from a third-party payment via self-service. It should +be I when creating a payment from a billing event or from a batch. + =cut sub insert { @@ -1028,11 +1038,11 @@ sub _upgrade_data { #class method ### # migrate batchnums from the misused 'paybatch' field to 'batchnum' ### - my @cust_pay = qsearch( { - 'table' => 'cust_pay', - 'addl_from' => ' JOIN pay_batch ON cust_pay.paybatch = CAST(pay_batch.batchnum AS text) ', + my $search = FS::Cursor->new( { + 'table' => 'cust_pay', + 'addl_from' => ' JOIN pay_batch ON cust_pay.paybatch = CAST(pay_batch.batchnum AS text) ', } ); - foreach my $cust_pay (@cust_pay) { + while (my $cust_pay = $search->fetch) { $cust_pay->set('batchnum' => $cust_pay->paybatch); $cust_pay->set('paybatch' => ''); my $error = $cust_pay->replace; @@ -1051,14 +1061,14 @@ sub _upgrade_data { #class method foreach my $table (qw(cust_pay cust_pay_void cust_refund)) { my $and_batchnum_is_null = ( $table =~ /^cust_pay/ ? ' AND batchnum IS NULL' : '' ); - foreach my $object ( qsearch({ - table => $table, - extra_sql => "WHERE payby IN('CARD','CHEK') ". - "AND (paybatch IS NOT NULL ". - "OR (paybatch IS NULL AND auth IS NULL - $and_batchnum_is_null ) )", - }) ) - { + my $search = FS::Cursor->new({ + table => $table, + extra_sql => "WHERE payby IN('CARD','CHEK') ". + "AND (paybatch IS NOT NULL ". + "OR (paybatch IS NULL AND auth IS NULL + $and_batchnum_is_null ) )", + }); + while ( my $object = $search->fetch ) { if ( $object->paybatch eq '' ) { # repair for a previous upgrade that didn't save 'auth' my $pkey = $object->primary_key;