Class: BrNfe::Response::Service::Default

Inherits:
ActiveModelBase show all
Defined in:
lib/br_nfe/response/service/default.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from ActiveModelBase

#assign_attributes, #default_values

Constructor Details

#initialize(attributes = {}) ⇒ Default

Returns a new instance of Default.



129
130
131
132
133
# File 'lib/br_nfe/response/service/default.rb', line 129

def initialize(attributes = {})
	self.notas_fiscais  = [] # Para poder utilizar o <<
	self.error_messages = [] # Para poder utilizar o <<
	super
end

Instance Attribute Details

#cancelation_date_timeObject

Data e hora do cancelamento da NF-e utilizado apenas para o Cancelamento da NF

Tipo de retorno: DateTime



62
63
64
# File 'lib/br_nfe/response/service/default.rb', line 62

def cancelation_date_time
  @cancelation_date_time
end

#data_recebimentoObject

Data/Data hora do recebimento do XML pelo orgão emissor Nesse atrubuto pe setado a data/hora na qual o orgão emissor recebeu o XML que foi enviado. também é nesse atributo que é setado a data/hora do processamento da NF-e (nos casos de consulta)

Tipo de retorno: DateTime



40
41
42
# File 'lib/br_nfe/response/service/default.rb', line 40

def data_recebimento
  @data_recebimento
end

#error_messagesObject

Array contendo as mensagens de erros No array pode conter Hash (com :codigo, :mensagem e :correcao) mas também pode conter mensagens de texto puro

Tipo de retorno: Array



12
13
14
# File 'lib/br_nfe/response/service/default.rb', line 12

def error_messages
  @error_messages
end

#notas_fiscaisObject

Array contendo as notas fiscais encontradas no xml de retorno. Utillizado em algumas requisições onde pode ser que retorne algum XML de NFe É um Array contendo objetos da classe BrNfe::Response::Service::NotaFiscal

Tipo de retorno: Array



20
21
22
# File 'lib/br_nfe/response/service/default.rb', line 20

def notas_fiscais
  @notas_fiscais
end

#numero_loteObject

Número do lote RPS Nesse atributo é setado o número do lote RPS quando o mesmo for retornado na resposta

Tipo de retorno: Integer



48
49
50
# File 'lib/br_nfe/response/service/default.rb', line 48

def numero_lote
  @numero_lote
end

#original_xmlObject

XML original da resposta Contém todo o XML Envelope da resposta SOAP

Tipo de retorno: String XML



55
56
57
# File 'lib/br_nfe/response/service/default.rb', line 55

def original_xml
  @original_xml
end

#protocoloObject

Número do protocolo de recebimento do XML Setado normalmente quando é enviado um lote RPS para processamento. O valor desse atributo é utilizado para posteriormente fazer a consulta para saber se o RPS já foi processado

Tipo de retorno: Integer ou String



30
31
32
# File 'lib/br_nfe/response/service/default.rb', line 30

def protocolo
  @protocolo
end

#situationObject

Código da situação do lote RPS Utilizado para saber se o Lote RPS já foi processado e se foi processado com sucesso ou teve algum erro

Tipo de retorno: Integer ou String



77
78
79
# File 'lib/br_nfe/response/service/default.rb', line 77

def situation
  @situation
end

#statusObject

Status possíveis

:success, :falied, :soap_error, :http_error, :unknown_error

Tipo de retorno: Hash



69
70
71
# File 'lib/br_nfe/response/service/default.rb', line 69

def status
  @status
end

Instance Method Details

#get_situation_by_message_codesObject

Como alguns orgãos emissores (como a Betha) não tem a capacidade de programar para colocar o codigo da situação em determinados momentos e simplesmente colocam uma mensagem de erro na resposta sem setar a situação foi necessário construir esse método para que a partir dos códigos das mensagens seja possível distinguir qual a situação atual do lote enviado. Por exemplo: Quando retornar o erro com código ‘E92’ quer dizer que a situação do lote é :unprocessed. Equivalente ao código de situação 2

Tipo de retorno: Symbol



117
118
119
120
121
122
123
124
125
126
127
# File 'lib/br_nfe/response/service/default.rb', line 117

def get_situation_by_message_codes
	if (situation_unprocessed_code_errors & message_codes).any?
		:unprocessed
	elsif (situation_unreceived_code_errors & message_codes).any?
		:unreceived
	elsif (situation_success_code_errors & message_codes).any?
		:success
	elsif message_codes.any?
		:error
	end				
end

#get_statusObject



170
171
172
# File 'lib/br_nfe/response/service/default.rb', line 170

def get_status
	error_messages.blank? ? :success : :falied
end

#message_codesObject

Retorna um array apenas com os códigos das mensagens de erro. Sempre retornar o código no formato de String.

Tipo de retorno: Array



179
180
181
# File 'lib/br_nfe/response/service/default.rb', line 179

def message_codes
	@message_codes ||= error_messages.select{|msg| msg.is_a?(Hash)}.map{|msg| msg[:code].try(:to_s) }
end

#situation_success_code_errorsObject



99
100
101
102
# File 'lib/br_nfe/response/service/default.rb', line 99

def situation_success_code_errors
	@situation_success_code_errors ||= []
	@situation_success_code_errors#+[]
end

#situation_success_code_errors=(value) ⇒ Object



103
104
105
# File 'lib/br_nfe/response/service/default.rb', line 103

def situation_success_code_errors=(value)
	@situation_success_code_errors = [value].flatten
end

#situation_unprocessed_code_errorsObject



91
92
93
94
# File 'lib/br_nfe/response/service/default.rb', line 91

def situation_unprocessed_code_errors
	@situation_unprocessed_code_errors ||= []
	@situation_unprocessed_code_errors+['E92']
end

#situation_unprocessed_code_errors=(value) ⇒ Object



95
96
97
# File 'lib/br_nfe/response/service/default.rb', line 95

def situation_unprocessed_code_errors=(value)
	@situation_unprocessed_code_errors = [value].flatten
end

#situation_unreceived_code_errorsObject



83
84
85
86
# File 'lib/br_nfe/response/service/default.rb', line 83

def situation_unreceived_code_errors
	@situation_unreceived_code_errors ||= []
	@situation_unreceived_code_errors+['E4']
end

#situation_unreceived_code_errors=(value) ⇒ Object



87
88
89
# File 'lib/br_nfe/response/service/default.rb', line 87

def situation_unreceived_code_errors=(value)
	@situation_unreceived_code_errors = [value].flatten
end

#success?Boolean

Returns:

  • (Boolean)


162
163
164
# File 'lib/br_nfe/response/service/default.rb', line 162

def success?
	status == :success
end

#successful_request?Boolean

Método para saber se a conexão com a prefeitura foi bem-sucedida. Caso a requisição ocorra certo e não apresente nenhuma exception irá retornar true.

Tipo de retorno: Boolean

Returns:

  • (Boolean)


158
159
160
# File 'lib/br_nfe/response/service/default.rb', line 158

def successful_request?
	!unsuccessful_request?
end

#unsuccessful_request?Boolean

Método para saber se a conexão com a prefeitura foi mal-sucedida. Caso ocorra algum erro na requisição irá retornar true.

Tipo de retorno: Boolean

Returns:

  • (Boolean)


148
149
150
# File 'lib/br_nfe/response/service/default.rb', line 148

def unsuccessful_request?
	status.in?([:soap_error, :http_error, :unknown_error])
end