16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'app/workers/delivery_invoicing_worker.rb', line 16
def perform(delivery_id)
delivery = Delivery.find(delivery_id)
if delivery.invoiced?
logger.info 'delivery already invoiced'
true
elsif delivery.total.to_f.negative?
logger.error "Skipping invoicing for delivery #{delivery_id}: negative total ($#{delivery.total})"
ErrorReporting.error(RuntimeError.new("Cannot invoice delivery #{delivery_id}: negative total ($#{delivery.total})"))
else
logger.info 'no invoice found, calling delivery.trigger_invoiced!'
invoke_trigger_invoiced!(delivery, delivery_id)
verify_post_commit_integrity(delivery, delivery_id)
logger.info 'invoicing finished'
end
end
|