Payment Information (See L<FS::payinfo_Mixin> for data format)
-=item cardtype
+=item paycardtype
Detected credit card type, if appropriate; autodetected.
sub replace {
my $self = shift;
- return "Can't modify closed refund" if $self->closed =~ /^Y/i;
+ return "Can't modify closed refund"
+ if $self->closed =~ /^Y/i && !$FS::payinfo_Mixin::allow_closed_replace;
$self->SUPER::replace(@_);
}
}
+sub _upgrade_schema {
+ #my ($class, %opts) = @_;
+
+ my $sql = 'UPDATE cust_refund SET source_paynum = NULL
+ WHERE source_paynum IS NOT NULL
+ AND NOT EXISTS ( SELECT 1 FROM cust_pay
+ WHERE paynum = cust_refund.source_paynum )
+ ';
+ my $sth = dbh->prepare($sql) or die dbh->errstr;
+ $sth->execute or die $sth->errstr;
+ '';
+}
+
# Used by FS::Upgrade to migrate to a new database.
sub _upgrade_data { # class method
my ($class, %opts) = @_;