Brunomm/br_nfe

View on GitHub
lib/br_nfe/service/thema/v1/consulta_nfs_por_rps.rb

Summary

Maintainability
A
1 hr
Test Coverage
module BrNfe
    module Service
        module Thema
            module V1
                class ConsultaNfsPorRps < BrNfe::Service::Thema::V1::Base
                    include BrNfe::Service::Concerns::Rules::ConsultaNfsPorRps
                    
                    def url_wsdl
                        get_wsdl_by_city[:consult]
                    end

                    def method_wsdl
                        :consultar_nfse_por_rps
                    end

                    def xml_builder
                        render_xml 'servico_consultar_nfse_rps_envio'
                    end

                    # Tag root da requisição
                    #
                    def soap_body_root_tag
                        'consultarNfsePorRps'
                    end

                private

                    # Não é utilizado o keys_root_path pois
                    # esse órgão emissor trata o XML de forma diferente
                    # e para instanciar a resposta adequadamente é utilizado o 
                    # body_xml_path.
                    # A resposta contém outro XML dentro do Body.
                    #
                    def set_response
                        @response = BrNfe::Service::Response::Build::ConsultaNfsPorRps.new(
                            savon_response: @original_response, # Rsposta da requisição SOAP
                            keys_root_path: [],
                            body_xml_path:  [:consultar_nfse_por_rps_response, :return],
                            xml_encode:     response_encoding, # Codificação do xml de resposta
                            
                            #//Envelope/Body/ConsultarLoteRpsEnvioResponse/ConsultarLoteRpsResposta
                            nfe_xml_path:                '//*',
                            
                            invoices_path:               [:consultar_nfse_rps_resposta, :lista_nfse, :comp_nfse],
                            message_errors_path:         [:consultar_nfse_rps_resposta, :lista_mensagem_retorno, :mensagem_retorno]
                        ).response
                    end
                    def response_class
                        BrNfe::Service::Response::ConsultaNfsPorRps
                    end

                end
            end
        end
    end
end