class NubeFact::Document

Constants

FIELDS

Public Class Methods

anular(serie, numero, motivo) click to toggle source
# File lib/nube_fact/document.rb, line 181
def anular(serie, numero, motivo)
  NubeFact.request({
    operacion: "generar_anulacion",
    tipo_de_comprobante: self::TIPO_DE_COMPROBANTE,
    serie: serie,
    numero: numero,
    motivo: motivo
  })
end
consultar(serie, numero) click to toggle source
# File lib/nube_fact/document.rb, line 172
def consultar(serie, numero)
  NubeFact.request({
    operacion: "consultar_comprobante",
    tipo_de_comprobante: self::TIPO_DE_COMPROBANTE,
    serie: serie,
    numero: numero
  })
end
new(data_hash) click to toggle source
# File lib/nube_fact/document.rb, line 123
def initialize(data_hash)
  if self.class == NubeFact::Document
    raise "Don't initialize NubeFact::Document directly "
  end

  @items = []
  @guias = []

  load_data_from_param data_hash
end

Public Instance Methods

add_guia(guia) click to toggle source
# File lib/nube_fact/document.rb, line 141
def add_guia(guia)

end
add_item(item) click to toggle source
# File lib/nube_fact/document.rb, line 134
def add_item(item)
  if item.is_a? Hash
    item = Item.new self, item
  end
  @items << item
end
calculate_amounts() click to toggle source
# File lib/nube_fact/document.rb, line 154
def calculate_amounts

end
deliver() click to toggle source
# File lib/nube_fact/document.rb, line 145
def deliver
  if items.empty?
    raise NubeFact::ValidationError.new "At least one item have to be present"
  end
  validate!

  NubeFact.request to_h
end
fecha_de_emision() click to toggle source
# File lib/nube_fact/document.rb, line 164
def fecha_de_emision
  if [Date, Time, DateTime].include? @fecha_de_emision.class
    return @fecha_de_emision.strftime(NubeFact::DATE_FORMAT)
  end
  @fecha_de_emision
end
set_tipo_de_cambio() click to toggle source
# File lib/nube_fact/document.rb, line 158
def set_tipo_de_cambio
  return "" unless moneda == 2
  NubeFact::Sunat.dollar_rate Date.parse(fecha_de_emision)
end