diff options
author | Jonathan Prykop <jonathan@freeside.biz> | 2015-02-16 13:53:20 -0600 |
---|---|---|
committer | Jonathan Prykop <jonathan@freeside.biz> | 2015-02-16 13:53:20 -0600 |
commit | 251d07aa41b6830a0a2f2a51c14fa94586d843c2 (patch) | |
tree | c53f5a96bc595b914187a4c2be0c9a3084bedb98 /FS/FS/cust_credit.pm | |
parent | 4771a2fe6202aa77d8e6fda10dc2b221899f3941 (diff) |
RT#27710: Credit voiding
Diffstat (limited to 'FS/FS/cust_credit.pm')
-rw-r--r-- | FS/FS/cust_credit.pm | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/FS/FS/cust_credit.pm b/FS/FS/cust_credit.pm index deebe2764..76fdecbdf 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; |