Services
$ rails generate service BsaleService orderclass BsaleService < PowerTypes::Service.new(:order)
def create_commercial_invoice
return unless @order.invoiceable?
document = client.post_commercial_invoice(@order)
return unless document.success?
save_document(document, 'commercial_invoice')
@order.generate_invoice!
end
def create_credit_note
return if invoice.nil?
invoice_details = client.get_commercial_invoice_details(invoice)
return unless invoice_details.success?
credit_note = client.post_credit_note(@order, invoice, invoice_details)
return unless credit_note.success?
document = client.get_document(credit_note)
return unless document.success?
save_document(document, 'credit_note')
@order.cancel_invoice!
end
private
def client
@client ||= BsaleClient.new
end
def invoice
@invoice ||= @order.last_invoice
end
def save_document(document, document_type)
@order.last_payment.documents.create!(
document_type: document_type,
document_url: document.url,
document_identifier: document.id
)
end
endServicios vs Jobs
Última actualización