$e->xact_begin;
$incoming = $e->retrieve_acq_edi_message($incoming->id);
if ($@) {
+ $logger->error($@);
$incoming->status('proc_error');
$incoming->error($@);
} else {
}
if (!$eg_inv->receiver) {
- $logger->error($log_prefix .
+ die($log_prefix .
sprintf("unable to determine buyer (org unit) in invoice; ".
"buyer_san=%s; buyer_acct=%s",
($invoice->{buyer_san} || ''),
($invoice->{buyer_acct} || '')
)
);
- return 0;
}
$eg_inv->inv_ident($invoice->{invoice_ident});
if (!$eg_inv->inv_ident) {
- $logger->error(
- $log_prefix . "no invoice ID # in INVOIC message; " . shift
- );
- return 0;
+ die($log_prefix . "no invoice ID # in INVOIC message; " . shift);
}
my @eg_inv_entries;
my $li = $e->retrieve_acq_lineitem($li_id);
if (!$li) {
- $logger->warn($log_prefix .
- "no LI found with ID: $li_id : " . $e->event);
- return 0;
+ die($log_prefix . "no LI found with ID: $li_id : " . $e->event);
}
my ($quant) = grep {$_->{code} eq '47'} @{$lineitem->{quantities}};
# save changes to acq.edi_message row
if (not $e->update_acq_edi_message($message)) {
- $logger->error(
- $log_prefix . "couldn't update edi_message " . $message->id
- );
- return 0;
+ die($log_prefix . "couldn't update edi_message " . $message->id);
}
# create EG invoice
if (not $e->create_acq_invoice($eg_inv)) {
- $logger->error($log_prefix . "couldn't create invoice: " . $e->event);
- return 0;
+ die($log_prefix . "couldn't create invoice: " . $e->event);
}
# Now we have a pkey for our EG invoice, so set the invoice field on all
foreach (@eg_inv_entries) {
$_->invoice($eg_inv_id);
if (not $e->create_acq_invoice_entry($_)) {
- $logger->error(
+ die(
$log_prefix . "couldn't create entry against lineitem " .
$_->lineitem . ": " . $e->event
);
- return 0;
}
}
foreach (@eg_inv_items) {
$_->invoice($eg_inv_id);
if (not $e->create_acq_invoice_item($_)) {
- $logger->error(
- $log_prefix . "couldn't create inv item: " . $e->event
- );
- return 0;
+ die($log_prefix . "couldn't create inv item: " . $e->event);
}
}
$lid->clear_cancel_reason;
unless ($e->update_acq_lineitem_detail($lid)) {
- $logger->error($log_prefix .
+ die($log_prefix .
"couldn't clear lid cancel reason: ". $e->die_event
);
- return 0;
}
}
$li->edit_time('now');
unless ($e->update_acq_lineitem($li)) {
- $logger->error($log_prefix .
+ die($log_prefix .
"couldn't clear li cancel reason: ". $e->die_event
);
- return 0;
}
}