class SunatInvoice::InvoiceClient

Public Instance Methods

dev_server() click to toggle source
# File lib/sunat_invoice/clients/invoice_client.rb, line 13
def dev_server
  'https://e-beta.sunat.gob.pe/ol-ti-itcpfegem-beta/billService?wsdl'
end
dispatch(document) click to toggle source
# File lib/sunat_invoice/clients/invoice_client.rb, line 28
def dispatch(document)
  # * document - Invoice or DailySummary instance
  xml_build = document.xml
  name = document.document_name
  operation = document.operation
  zip = prepare_zip(xml_build, "#{name}.xml")
  @soap_client.call(operation,
                    message: { fileName: "#{name}.zip", contentFile: zip })
end
get_status(ticket) click to toggle source
# File lib/sunat_invoice/clients/invoice_client.rb, line 38
def get_status(ticket)
  @soap_client.call(:get_status, message: { ticket: ticket })
end
prepare_zip(invoice, name) click to toggle source
# File lib/sunat_invoice/clients/invoice_client.rb, line 17
def prepare_zip(invoice, name)
  # * invoice - xml document to zip
  # * name - xml document name
  zip_file = Zip::OutputStream.write_buffer do |zip|
    zip.put_next_entry name
    zip.write invoice
  end
  zip_file.rewind
  encode(zip_file.sysread)
end
prod_server() click to toggle source
# File lib/sunat_invoice/clients/invoice_client.rb, line 9
def prod_server
  'https://e-factura.sunat.gob.pe/ol-ti-itcpfegem/billService?wsdl'
end
wsdl() click to toggle source
# File lib/sunat_invoice/clients/invoice_client.rb, line 5
def wsdl
  send("#{@env}_server")
end

Private Instance Methods

encode(zip_str) click to toggle source
# File lib/sunat_invoice/clients/invoice_client.rb, line 44
def encode(zip_str)
  Base64.encode64(zip_str)
end