my $cust_main = $self->cust_main;
my $error = send_email(
- 'from' => $conf->config('invoice_from', $self->cust_main->agentnum),
+ 'from' => $conf->invoice_from_full($self->cust_main->agentnum),
#invoice_from??? well as good as any
'to' => $conf->config('deletecredits'),
'subject' => 'FREESIDE NOTIFICATION: Credit deleted',
=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';
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;
$class->_upgrade_otaker(%opts);
if ( !FS::upgrade_journal->is_done('cust_credit__tax_link')
- and !$conf->exists('enable_taxproducts') ) {
+ and !$conf->config('tax_data_vendor') ) {
# RT#25458: fix credit line item applications that should refer to a
# specific tax allocation
my @cust_credit_bill_pkg = qsearch({
foreach my $invnum ( sort { $a <=> $b } keys %cust_credit_bill ) {
- my $arrayref_or_error =
- $cust_main->calculate_taxes(
+ local $@;
+ my $arrayref_or_error = eval { $cust_main->calculate_taxes(
$cust_bill_pkg{$invnum}, # list of taxable items that we're crediting
$taxlisthash{$invnum}, # list of tax-item bindings
$cust_bill_pkg{$invnum}->[0]->cust_bill->_date, # invoice time
- );
+ ) };
- unless ( ref( $arrayref_or_error ) ) {
+ if ( $@ ) {
$dbh->rollback if $oldAutoCommit;
- return "Error calculating taxes: $arrayref_or_error";
+ return "Error calculating taxes: $@";
}
my %tax_links; # {tax billpkgnum}{nontax billpkgnum}