Class: NfsePrefeituraSp::Services::Sync::EnvioRps

Inherits:
Object
  • Object
show all
Defined in:
lib/nfse_prefeitura_sp/services/sync/envio_rps.rb

Overview

PedidoEnvioRPS

Constant Summary collapse

OPERATION_REQUEST =
:envio_rps
OPERATION_RESPONSE =
:envio_rps_response

Instance Method Summary collapse

Constructor Details

#initialize(data, signer) ⇒ EnvioRps

Returns a new instance of EnvioRps.



6
7
8
9
10
# File 'lib/nfse_prefeitura_sp/services/sync/envio_rps.rb', line 6

def initialize(data, signer)
  @data   = data
  @signer = signer
  @rps    = NfsePrefeituraSp::Types::TpRps.new('RPS', @data, @signer)
end

Instance Method Details

#request_xmlObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/nfse_prefeitura_sp/services/sync/envio_rps.rb', line 12

def request_xml
  builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
    xml.PedidoEnvioRPS("xmlns" => "http://www.prefeitura.sp.gov.br/nfe") do
      xml.Cabecalho('Versao' => '2', 'xmlns' => '') do
        xml.CPFCNPJRemetente do
          xml.CNPJ @data[:cnpj_remetente]
        end
      end

      @rps.add_tag_to_xml(xml, 'xmlns' => '')
    end
  end

  signed_xml = @signer.sign_xml(builder.to_xml)
  ("<VersaoSchema>#{NfsePrefeituraSp::XSD_VERSION.to_s}</VersaoSchema><MensagemXML>" + "<![CDATA[#{signed_xml}]]>" + "</MensagemXML>").gsub(/\n/,'')
end