Class: Arca::WSCDC

Inherits:
Object
  • Object
show all
Includes:
TypeConversions
Defined in:
lib/arca/wscdc.rb

Constant Summary collapse

WSDL =
{
  development: "https://wswhomo.afip.gov.ar/WSCDC/service.asmx?WSDL",
  production: "https://servicios1.afip.gov.ar/WSCDC/service.asmx?WSDL",
  test: "#{Root}/test/fixtures/wscdc/wscdc.wsdl"
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from TypeConversions

#r2x, #x2r

Constructor Details

#initialize(options = {}) ⇒ WSCDC

Returns a new instance of WSCDC.



18
19
20
21
22
23
24
25
26
# File 'lib/arca/wscdc.rb', line 18

def initialize(options = {})
  @cuit = normalize_cuit(options[:cuit])
  @wsaa = WSAA.new options.merge(service: "wscdc")
  @client = Client.new Hash(options[:savon]).reverse_merge(
    wsdl: WSDL[@wsaa.env],
    soap_version: 1,
    convert_request_keys_to: :camelcase
  )
end

Instance Attribute Details

#cuitObject (readonly)

Returns the value of attribute cuit.



16
17
18
# File 'lib/arca/wscdc.rb', line 16

def cuit
  @cuit
end

#wsaaObject (readonly)

Returns the value of attribute wsaa.



16
17
18
# File 'lib/arca/wscdc.rb', line 16

def wsaa
  @wsaa
end

Instance Method Details

#comprobante_constatar(cmp_req) ⇒ Object

Constata un comprobante. cmp_req: hash con cbte_modo, cuit_emisor, pto_vta, cbte_tipo, cbte_nro, cbte_fch, imp_total, cod_autorizacion y opcionalmente doc_tipo_receptor, doc_nro_receptor, opcionales. Returns hash con :cmp_resp, :resultado ('A'|'R'), :observaciones, :fch_proceso, :errors.



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/arca/wscdc.rb', line 42

def comprobante_constatar(cmp_req)
  message = { auth: auth, cmp_req: cmp_req }
  r = raw_request(:comprobante_constatar, message)
  result = r[:comprobante_constatar_result]
  if result[:errors] && (errs = Array.wrap(result[:errors][:err])).any?
    raise ResponseError, errs.map { |e| { code: e[:code], msg: e[:msg] } }
  end

  {
    cmp_resp: result[:cmp_resp],
    resultado: result[:resultado],
    observaciones: parse_observaciones(result[:observaciones]),
    fch_proceso: result[:fch_proceso],
    errors: parse_errors(result[:errors]),
    events: parse_events(result[:events])
  }
end

#comprobantes_modalidad_consultarObject

Modalidades de autorización (CAE, CAEA, CAI).



61
62
63
64
# File 'lib/arca/wscdc.rb', line 61

def comprobantes_modalidad_consultar
  r = request(:comprobantes_modalidad_consultar)
  get_array(r, :fac_mod_tipo)
end

#comprobantes_tipo_consultarObject

Tipos de comprobante.



67
68
69
70
# File 'lib/arca/wscdc.rb', line 67

def comprobantes_tipo_consultar
  r = request(:comprobantes_tipo_consultar)
  x2r get_array(r, :cbte_tipo), id: :integer, fch_desde: :date, fch_hasta: :date
end

#documentos_tipo_consultarObject

Tipos de documento.



73
74
75
76
# File 'lib/arca/wscdc.rb', line 73

def documentos_tipo_consultar
  r = request(:documentos_tipo_consultar)
  x2r get_array(r, :doc_tipo), id: :integer, fch_desde: :date, fch_hasta: :date
end

#dummyObject



28
29
30
31
32
33
34
35
36
# File 'lib/arca/wscdc.rb', line 28

def dummy
  r = raw_request(:comprobante_dummy, nil)
  result = r[:comprobante_dummy_result]
  {
    app_server: result[:app_server],
    db_server: result[:db_server],
    auth_server: result[:auth_server]
  }
end

#opcionales_tipo_consultarObject

Tipos de datos opcionales.



79
80
81
82
# File 'lib/arca/wscdc.rb', line 79

def opcionales_tipo_consultar
  r = request(:opcionales_tipo_consultar)
  get_array(r, :opcional_tipo)
end