Class: BrNfe::Servico::Betha::V1::RecepcaoLoteRps

Inherits:
Gateway show all
Defined in:
lib/br_nfe/servico/betha/v1/recepcao_lote_rps.rb

Instance Attribute Summary

Attributes inherited from BrNfe::Servico::Base

#lote_rps, #numero_lote_rps, #operacao

Attributes inherited from Base

#certificado_password, #certificado_path, #certificado_value, #env

Instance Method Summary collapse

Methods inherited from Gateway

#content_xml, #namespace_identifier, #namespaces, #request, #set_response, #version

Methods inherited from Base

#version

Methods inherited from BrNfe::Servico::Base

#initialize

Methods inherited from Base

#certificado, #certificado=, #client_wsdl, #env_namespace, #namespace_identifier, #namespaces, #original_response, #response, #wsdl_encoding

Methods included from Helper::HaveEmitente

#emitente, #emitente=

Methods inherited from ActiveModelBase

#assign_attributes, #default_values, #initialize

Constructor Details

This class inherits a constructor from BrNfe::Servico::Base

Instance Method Details

#certificado_obrigatorio?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/br_nfe/servico/betha/v1/recepcao_lote_rps.rb', line 13

def certificado_obrigatorio?
	true
end

#lote_rps_xmlObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/br_nfe/servico/betha/v1/recepcao_lote_rps.rb', line 32

def lote_rps_xml
	Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
		xml.LoteRps("Id" => "lote#{numero_lote_rps}"){
			xml.NumeroLote BrNfe::Helper.only_number(numero_lote_rps).max_size(15)
			tag_cpf_cnpj(xml, emitente.cnpj)
			
			xml.InscricaoMunicipal "#{emitente.inscricao_municipal}".max_size(15) if env == :production

			xml.QuantidadeRps lote_rps.size
			xml.ListaRps {
				xml.Rps do |xml_rps|
					lote_rps.each do |rps|
						xml_informacao_rps = xml_inf_rps(rps).doc.root
						xml_rps.__send__ :insert, Nokogiri::XML::DocumentFragment.parse( xml_informacao_rps.to_s ) 
						xml_rps.__send__ :insert, Nokogiri::XML::DocumentFragment.parse( assinatura_xml( xml_informacao_rps.to_s, "#rps#{rps.numero}" ) )
					end
				end
			}
		}
	end
end

#method_wsdlObject



9
10
11
# File 'lib/br_nfe/servico/betha/v1/recepcao_lote_rps.rb', line 9

def method_wsdl
	:enviar_lote_rps
end

#wsdlObject



6
7
8
# File 'lib/br_nfe/servico/betha/v1/recepcao_lote_rps.rb', line 6

def wsdl
	"http://e-gov.betha.com.br/e-nota-contribuinte-#{'test-' if env == :test}ws/recepcionarLoteRps?wsdl"
end

#xml_builderObject



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/br_nfe/servico/betha/v1/recepcao_lote_rps.rb', line 20

def xml_builder
	xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
		xml.Temp {
			xml_lote_rps = lote_rps_xml.doc.root
			xml.__send__ :insert, Nokogiri::XML::DocumentFragment.parse( xml_lote_rps.to_s )
			xml.__send__ :insert, Nokogiri::XML::DocumentFragment.parse( assinatura_xml(xml_lote_rps.to_s, "#lote#{numero_lote_rps}") )
		}
	end.doc
	
	canonicalize(xml.root())
end

#xml_inf_rps(rps) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/br_nfe/servico/betha/v1/recepcao_lote_rps.rb', line 54

def xml_inf_rps(rps)
	Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
		xml.InfRps('Id' => "rps#{rps.numero}") {
			
			# Identificação RPS
			xml.__send__ :insert, Nokogiri::XML::DocumentFragment.parse( xml_identificacao_rps(rps).doc.root.to_s )

			xml.DataEmissao              value_date_time(rps.data_emissao)
			xml.NaturezaOperacao         "#{emitente.natureza_operacao}".max_size(2)
			xml.RegimeEspecialTributacao "#{emitente.regime_especial_tributacao}".max_size(2) unless emitente.regime_especial_tributacao.blank? # Código de identificação do regime especial de tributação: (1)Microempresa municipal, (2)Estimativa, (3)Sociedade de profissionais, (4)Cooperativa, (5)Microempresário Individual (MEI), (6)Microempresário e Empresa de Pequeno Porte (ME EPP) , 
			xml.OptanteSimplesNacional   value_true_false(emitente.optante_simples_nacional?)   # (1)sim ----- (2)não -----
			xml.IncentivadorCultural     value_true_false(emitente.incentivo_fiscal?)           # (1)sim ----- (2)não -----
			xml.Status                   "#{rps.status}".max_size(1)

			# RPS subistituido
			xml.__send__ :insert, Nokogiri::XML::DocumentFragment.parse( xml_rps_substituido(rps).doc.root.to_s )
			
			# Dados do(s) serviço(s)
			xml.__send__ :insert, Nokogiri::XML::DocumentFragment.parse( xml_dados_servico(rps).doc.root.to_s )

			# Pestador / Emitente
			xml.__send__ :insert, Nokogiri::XML::DocumentFragment.parse( xml_prestador.doc.root.to_s )

			# Tomador / Destinatário
			xml.__send__ :insert, Nokogiri::XML::DocumentFragment.parse( xml_dados_tomador(rps.destinatario).doc.root.to_s )

			# Intermediario
			xml.__send__ :insert, Nokogiri::XML::DocumentFragment.parse( xml_intermediario_servico(rps.intermediario).doc.root.to_s )

			# Dados Construção Civil
			xml.__send__ :insert, Nokogiri::XML::DocumentFragment.parse( xml_dados_construcao_civil(rps).doc.root.to_s )

			xml.OutrasInformacoes "#{rps.outras_informacoes}".max_size(255) unless rps.outras_informacoes.blank?

			# Condição de pagamento
			xml.__send__ :insert, Nokogiri::XML::DocumentFragment.parse( xml_condicao_pagamento(rps).doc.root.to_s )
		}
	end
end