Class: DeliveryInvoicingWorker
- Inherits:
-
Object
- Object
- DeliveryInvoicingWorker
- Includes:
- Sidekiq::Job
- Defined in:
- app/workers/delivery_invoicing_worker.rb
Overview
Sidekiq worker: delivery invoicing.
Instance Method Summary collapse
Instance Method Details
#perform(delivery_id) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/workers/delivery_invoicing_worker.rb', line 17 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 # CreateInvoiceFromDelivery service handles advisory locking internally 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 |