class Afip::CTG
Attributes
base_imp[R]
body[RW]
client[R]
cod_especie[RW]
cosecha[RW]
cp_num[RW]
ctg_num[RW]
cuit_canjeador[RW]
cuit_corredor[RW]
cuit_destinatario[RW]
cuit_destino[RW]
cuit_transportista[RW]
horas[RW]
km[RW]
localidad_destino[RW]
localidad_origen[RW]
patente[RW]
peso[RW]
rccc[RW]
remitente_com[RW]
total[R]
Public Class Methods
new(attrs = {})
click to toggle source
# File lib/Afip/ctg.rb, line 7 def initialize(attrs = {}) Afip::AuthData.fetch("wsctg") @client = Savon.client( ssl_cert_key_file: Afip.pkey, ssl_cert_file: Afip.cert, env_namespace: :soapenv, namespace_identifier: :ctg, log: true, logger: Rails.logger, log_level: :debug, pretty_print_xml: true, encoding: 'UTF-8', ssl_version: :TLSv1, wsdl: Afip.service_url ) @ctg_num = attrs[:ctg_num] @cp_num = attrs[:cp_num] @cod_especie = attrs[:cod_especie] @cuit_canjeador = attrs[:cuit_canjeador] @rccc = attrs[:rccc] @cuit_destino = attrs[:cuit_destino] @cuit_destinatario = attrs[:cuit_destinatario] @localidad_origen = attrs[:localidad_origen] @localidad_destino = attrs[:localidad_destino] @cosecha = attrs[:cosecha] @peso = attrs[:peso] @cuit_transportista = attrs[:cuit_transportista] @horas = attrs[:horas] @patente = attrs[:patente] @km = attrs[:km] @cuit_corredor = attrs[:cuit_corredor] @remitente_com = attrs[:remitente_com] @cuit_chofer = attrs[:cuit_chofer] @cant_kilos_carta_porte = attrs[:cant_kilos_carta_porte] @establecimiento = attrs[:establecimiento] @cuit_solicitante = attrs[:cuit_solicitante] @fecha_desde = attrs[:fecha_desde] @fecha_hasta = attrs[:fecha_hasta] @body = {"request" =>{"auth" => Afip.auth_hash("wsctg")}} end
Public Instance Methods
anular_ctg()
click to toggle source
# File lib/Afip/ctg.rb, line 91 def anular_ctg request = { "datosAnularCTG" =>{ "cartaPorte" => @cp_num, "ctg" => @ctg_num } } body["request"].merge(request) response = client.call(:anular_ctg, message: body) end
cambiar_destino_detinatario_ctg_rechazado()
click to toggle source
# File lib/Afip/ctg.rb, line 103 def cambiar_destino_detinatario_ctg_rechazado request = { "datosCambiarDestinoDestinatarioCTGRechazado" =>{ "cartaPorte" => @cp_num, "ctg" => @ctg_num, "codigoLocalidadDestino" => @destino, "codigoLocalidadDestinatario" => @destinatario, "kmARecorrer" => @km } } body["request"].merge(request) response = client.call(:cambiar_destino_detinatario_ctg_rechazado, message: body) end
confirmar_arribo()
click to toggle source
# File lib/Afip/ctg.rb, line 118 def confirmar_arribo request = { "datosConfirmarArribo" =>{ "cartaPorte" => @cp_num, "ctg" => @ctg_num, "cuitTransportista" => @cuit_transportista, "cuitChofer" => @cuit_chofer, "cantKilosCartaPorte" => @cant_kilos_carta_porte } } body["request"].merge(request) response = client.call(:confirmar_arribo, message: body) end
confirmar_definitivo()
click to toggle source
# File lib/Afip/ctg.rb, line 133 def confirmar_definitivo request = { "datosConfirmarDefinitivo" =>{ "cartaPorte" => @cp_num, "ctg" => @ctg_num, "establecimiento" => @establecimiento, "codigoCosecha" => @cosecha, "pesoNeto" => @peso } } body["request"].merge(request) response = client.call(:confirmar_definitivo, message: body) end
consultar_constancia_ctg_pdf()
click to toggle source
# File lib/Afip/ctg.rb, line 153 def consultar_constancia_ctg_pdf request = { "ctg" => @ctg_num } body["request"].merge(request) pp response = client.call(:consultar_constancia_ctgpdf, message: body) end
consultar_cosechas()
click to toggle source
# File lib/Afip/ctg.rb, line 148 def consultar_cosechas response = client.call(:obtener_cosechas, message: body) return response["arrayCosechas"] end
consultar_ctg()
click to toggle source
# File lib/Afip/ctg.rb, line 163 def consultar_ctg request = { "consultarCTGDatos" =>{ "cartaPorte" => @cp_num, "ctg" => @ctg_num, "patente" => @patente, "cuitSolicitante" => @cuit_solicitante, "cuitDestino" => @destino, "fechaEmisionDesde" => @fecha_desde, "fechaEmisionHsta" => @fecha_hasta, "cuitCorredor" => @cuit_corredor } } body["request"].merge(request) response = client.call(:consultar_ctg, message: body) end
consultar_ctg_rechazados()
click to toggle source
# File lib/Afip/ctg.rb, line 181 def consultar_ctg_rechazados response = client.call(:consultar_ctg_rechazados, message: body) return response.to_hash["response"]["arrayConsultarCTGRechazados"] end
consultar_detalle_ctg()
click to toggle source
# File lib/Afip/ctg.rb, line 186 def consultar_detalle_ctg request = { "ctg" => @ctg_num } body["request"].merge(request) response = client.call(:consultar_constancia_ctg_pdf, message: body) return response.to_hash["response"]["consultarDetalleCTGDatos"] end
consultar_especies()
click to toggle source
# File lib/Afip/ctg.rb, line 197 def consultar_especies response = client.call(:consultar_especies, message: body) response.body[:consultar_especies_response][:response][:array_especies][:especie].map{|c| [c[:codigo],c[:descripcion]]} end
consultar_establecimientos()
click to toggle source
# File lib/Afip/ctg.rb, line 202 def consultar_establecimientos response = client.call(:consultar_establecimientos, message: body) response.body[:consultar_especies_response][:response][:array_establecimientos][:establecimiento].map{|c| [c]} end
consultar_localidades(city)
click to toggle source
# File lib/Afip/ctg.rb, line 217 def consultar_localidades(city) body["request"]["codigoProvincia"] = city response = client.call(:consultar_localidades_por_provincia, message: body) if response.body[:consultar_localidades_por_provincia_response][:response][:array_localidades][:localidad].class.name != "Array" [response.body[:consultar_localidades_por_provincia_response][:response][:array_localidades][:localidad]].map{|c| [c[:codigo],c[:descripcion]]} else response.body[:consultar_localidades_por_provincia_response][:response][:array_localidades][:localidad].map{|c| [c[:codigo],c[:descripcion]]} end end
consultar_provincias()
click to toggle source
# File lib/Afip/ctg.rb, line 207 def consultar_provincias response = client.call(:consultar_provincias, message: body) response.body[:consultar_provincias_response][:consultar_provincias_response][:array_provincias][:provincia].map{|c| [c[:codigo],c[:descripcion]]} end
setup_ctg()
click to toggle source
# File lib/Afip/ctg.rb, line 60 def setup_ctg datos = { "datosSolicitarCTGInicial" =>{ "cartaPorte" => @cp_num, #long "codigoEspecie" => @cod_especie, #int #"cuitCanjeador" => @cuit_canjeador.to_i, #long #"remitenteComercialComoCanjeador" => @rccc, "cuitDestino" => @cuit_destino, #long "cuitDestinatario" => @cuit_destinatario, #long "codigoLocalidadOrigen" => @localidad_origen, #int "codigoLocalidadDestino" => @localidad_destino, #int "codigoCosecha" => @cosecha, #string "pesoNeto" => @peso.to_i, #long #"cuitTransportista" => @cuit_transportista.to_i, #long #"cantHoras" => @horas, #int #"patente" => @patente, #string "kmARecorrer" => @km, #unsignedint #"cuitCorredor" => @cuit_corredor.to_i, #long #"remitenteComercialcomoProductor" => @remitente_com } } @body["request"].merge!(datos) return @body end
solicitar_ctg_inicial()
click to toggle source
# File lib/Afip/ctg.rb, line 50 def solicitar_ctg_inicial pp body = setup_ctg pp response = client.call(:solicitar_ctg_inicial,message: body) setup_response(response.to_hash) self.authorized? end
Private Instance Methods
setup_response(response)
click to toggle source
# File lib/Afip/ctg.rb, line 229 def setup_response(response) # TODO: turn this into an all-purpose Response class pp response end