class JeraPayment::Services::Iugu::Invoices::Duplicate
Public Class Methods
new(resource, attributes)
click to toggle source
# File lib/jera_payment/services/iugu/invoices/duplicate.rb, line 6 def initialize(resource, attributes) @resource = resource @attributes = attributes end
Public Instance Methods
call()
click to toggle source
# File lib/jera_payment/services/iugu/invoices/duplicate.rb, line 11 def call begin ApplicationRecord.transaction do iugu_invoice_duplicated = JeraPayment::Api::Iugu::Invoice.duplicate(@resource.api_id, @attributes, @resource&.sub_account&.api_token) raise(StandardError, iugu_invoice_duplicated[:errors]) if iugu_invoice_duplicated[:errors].present? invoice_duplicated = set_new_invoice(iugu_invoice_duplicated) raise(StandardError, invoice_duplicated[:errors]) if invoice_duplicated[:errors].present? @resource = invoice_duplicated end rescue Exception => error add_error(error.message) end @resource end
Private Instance Methods
set_new_invoice(iugu_invoice_duplicated)
click to toggle source
# File lib/jera_payment/services/iugu/invoices/duplicate.rb, line 33 def set_new_invoice(iugu_invoice_duplicated) invoice_duplicated = JeraPayment::Invoice.new(@resource.attributes.except('id', 'api_id')) invoice_duplicated.api_id = iugu_invoice_duplicated[:id] invoice_duplicated.assign_attributes(iugu_invoice_duplicated.slice(:total_cents, :secure_url, :digitable_line, :barcode_data, :barcode, :items, :ignore_due_email, :ignore_canceled_email, :current_fines_option, :keep_early_payment_discount, :due_date)) invoice_duplicated.duplicated = true invoice_duplicated.save invoice_duplicated end