use Text::Template;
use FS::Misc::DateTime qw( parse_datetime ); #for batch_import
use FS::Record qw( dbh qsearch qsearchs );
+use FS::UID qw( driver_name );
use FS::CurrentUser;
use FS::payby;
use FS::cust_main_Mixin;
}
+sub API_getinfo {
+ my $self = shift;
+ my @fields = grep { $_ ne 'payinfo' } $self->fields;
+ +{ ( map { $_=>$self->$_ } @fields ),
+ };
+}
+
# _upgrade_data
#
# Used by FS::Upgrade to migrate to a new database.
###
# migrate batchnums from the misused 'paybatch' field to 'batchnum'
###
+ my $text = (driver_name =~ /^mysql/i) ? 'char' : 'text';
my $search = FS::Cursor->new( {
'table' => 'cust_pay',
- 'addl_from' => ' JOIN pay_batch ON cust_pay.paybatch = CAST(pay_batch.batchnum AS text) ',
+ 'addl_from' => " JOIN pay_batch ON cust_pay.paybatch = CAST(pay_batch.batchnum AS $text) ",
} );
while (my $cust_pay = $search->fetch) {
$cust_pay->set('batchnum' => $cust_pay->paybatch);
foreach my $table (qw(cust_pay cust_pay_void cust_refund)) {
my $and_batchnum_is_null =
( $table =~ /^cust_pay/ ? ' AND batchnum IS NULL' : '' );
+ my $pkey = ($table =~ /^cust_pay/ ? 'paynum' : 'refundnum');
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 ) )",
+ $and_batchnum_is_null ) )
+ ORDER BY $pkey DESC"
});
while ( my $object = $search->fetch ) {
if ( $object->paybatch eq '' ) {