class Bsale::Document

documentTypeId: Id del tipo de documento que indicara si es factura, boleta, nota de venta etc. (Integer). officeId: Id de la sucursal donde se emite el documento, si no es especificada el documento quedara asignado a la sucursal por defecto del sistema (Integer). priceListId: Id de la lista de precio utilizada por el documento, si no es especificada se utilizara la lista de precio por defecto de la sucursal (Integer). emissionDate: Fecha de emisión del documento, se envía en formato GMT (Integer). expirationDate: Fecha vencimiento del documento, se envía en formato GMT (Integer). declareSii: Si se desea declarar el documento al Servicio de impuestos internos se envía 1, en caso contrario un 0 (Boolean). codeSii(opcional): Opcionalmente puedes utilizar el parámetro codeSii en vez de documentTypeId si conoces el código tributario del documento. client: Bsale::Client object.to_hash details: Bsale::Detail object.to_hash payments: Bsale::Payment object.to_hash references: Bsale::Reference object.to_hash dynamicAttributes: Bsale::DinamicAttributes object.to_hash

Attributes

limit[RW]
offset[RW]
version[RW]

Public Class Methods

new(opts = {}) click to toggle source
# File lib/bsale/document.rb, line 17
def initialize(opts = {})
  set_values(attrs.merge(opts))
  @connection = Faraday.new("#{BASE_URL}#{Bsale.config.version}/")
  @connection.headers = Bsale.config.headers
end

Public Instance Methods

all(opts = {}) click to toggle source
# File lib/bsale/document.rb, line 23
def all(opts = {})
  response = @connection.get "documents#{Bsale.config.extension}"
  JSON.parse(response.body)
end
attrs() click to toggle source
# File lib/bsale/document.rb, line 73
def attrs
  { documentTypeId: nil, officeId: nil, emissionDate: nil, expirationDate: nil,
    declareSii: nil, priceListId: nil, client: nil, details: [], payments: [],
    references: [], dynamicAttributes: nil }
end
by_details(opts = {}) click to toggle source
# File lib/bsale/document.rb, line 39
def by_details(opts = {})
  raise "You must need to pass an ID" if opts[:id].nil?
  response = @connection.get "documents/#{opts[:id]}/details#{Bsale.config.extension}"
  JSON.parse(response.body)
end
by_references(opts = {}) click to toggle source
# File lib/bsale/document.rb, line 45
def by_references(opts = {})
  raise "You must need to pass an ID" if opts[:id].nil?
  response = @connection.get "documents/#{opts[:id]}/references#{Bsale.config.extension}"
  JSON.parse(response.body)
end
count() click to toggle source
# File lib/bsale/document.rb, line 63
def count
  response = @connection.get "documents/count#{Bsale.config.extension}"
  JSON.parse(response.body)
end
create(opts = {}) click to toggle source
# File lib/bsale/document.rb, line 68
def create(opts = {})
  response = @connection.post "documents#{Bsale.config.extension}", opts.to_json
  JSON.parse(response.body)
end
find(opts = {}) click to toggle source
# File lib/bsale/document.rb, line 33
def find(opts = {})
  raise "You must need to pass an ID" if opts[:id].nil?
  response = @connection.get "documents/#{opts[:id]}#{Bsale.config.extension}"
  JSON.parse(response.body)
end
sellers(opts = {}) click to toggle source
# File lib/bsale/document.rb, line 57
def sellers(opts = {})
  raise "You must need to pass an ID" if opts[:id].nil?
  response = @connection.get "documents/#{opts[:id]}/sellers#{Bsale.config.extension}"
  JSON.parse(response.body)
end
set_values(opts = {}) click to toggle source
# File lib/bsale/document.rb, line 79
def set_values(opts = {})
  opts.each do |k,v|
    singleton_class.send(:attr_accessor, k)
    instance_variable_set("@#{k}", v)
  end
end
summary(opts = {}) click to toggle source
# File lib/bsale/document.rb, line 28
def summary(opts = {})
  response = @connection.get "documents/summary#{Bsale.config.extension}"
  JSON.parse(response.body)
end
taxes(opts = {}) click to toggle source
# File lib/bsale/document.rb, line 51
def taxes(opts = {})
  raise "You must need to pass an ID" if opts[:id].nil?
  response = @connection.get "documents/#{opts[:id]}/document_taxes#{Bsale.config.extension}"
  JSON.parse(response.body)
end