summaryrefslogtreecommitdiff
path: root/FS/FS/cust_credit.pm
diff options
context:
space:
mode:
Diffstat (limited to 'FS/FS/cust_credit.pm')
-rw-r--r--FS/FS/cust_credit.pm13
1 files changed, 9 insertions, 4 deletions
diff --git a/FS/FS/cust_credit.pm b/FS/FS/cust_credit.pm
index deebe27..76fdecb 100644
--- a/FS/FS/cust_credit.pm
+++ b/FS/FS/cust_credit.pm
@@ -382,13 +382,18 @@ adds a record of the voided credit to the cust_credit_void table.
=cut
-# yes, false laziness with cust_pay and cust_bill
-# but frankly I don't have time to fix it now
-
sub void {
my $self = shift;
my $reason = shift;
+ unless (ref($reason) || !$reason) {
+ $reason = FS::reason->new_or_existing(
+ 'class' => 'X',
+ 'type' => 'Void credit',
+ 'reason' => $reason
+ );
+ }
+
local $SIG{HUP} = 'IGNORE';
local $SIG{INT} = 'IGNORE';
local $SIG{QUIT} = 'IGNORE';
@@ -403,7 +408,7 @@ sub void {
my $cust_credit_void = new FS::cust_credit_void ( {
map { $_ => $self->get($_) } $self->fields
} );
- $cust_credit_void->set('void_reason', $reason);
+ $cust_credit_void->set('void_reasonnum', $reason->reasonnum);
my $error = $cust_credit_void->insert;
if ( $error ) {
$dbh->rollback if $oldAutoCommit;