module InovadoraXml::Modules::DadosNfseService
Public Instance Methods
get_aliquota()
click to toggle source
# File lib/inovadora_xml/modules/dados_nfse_service.rb, line 113 def get_aliquota self.fnnfse.percentual_iss || 0.0 end
get_cnpj_prestador()
click to toggle source
# File lib/inovadora_xml/modules/dados_nfse_service.rb, line 117 def get_cnpj_prestador self.hospital.cgc.to_s.gsub(/[^0-9]/, "") end
get_codigo_municipio_prest_servico()
click to toggle source
# File lib/inovadora_xml/modules/dados_nfse_service.rb, line 125 def get_codigo_municipio_prest_servico self.hospital.cidade_ibge.try(:ibge_com_digito) end
get_informacoes_complementares()
click to toggle source
# File lib/inovadora_xml/modules/dados_nfse_service.rb, line 94 def get_informacoes_complementares mensagem = self.fnnfse.observacao.to_s.strip if self.fnnfse.cliente_type == "Paciente" intern = self.fnnfse.fnnfses_interns.try(:first).try(:intern) unless intern.blank? mensagem += " Intern:#{intern.id}-#{intern.paciente.try(:nome).try(:strip)}" mensagem += " Conv.:#{self.fnnfse.get_convenio.try(:nome).try(:strip)}" mensagem += " CPF:#{intern.paciente.cpf}" if intern.paciente.cpf.to_s.strip != "" && intern.paciente.cpf.to_s.strip != "0" mensagem += " Nasc:#{intern.paciente.data_nascimento.to_s_br}" end end mensagem = nil if mensagem.to_s.strip.blank? mensagem end
get_inscricao_municipal_prestador()
click to toggle source
# File lib/inovadora_xml/modules/dados_nfse_service.rb, line 121 def get_inscricao_municipal_prestador self.hospital.inscricao_municipal.to_s.gsub(/[^0-9]-/, "") end
get_item_lista_servico()
click to toggle source
# File lib/inovadora_xml/modules/dados_nfse_service.rb, line 109 def get_item_lista_servico self.hospital.iss_cd_lei_116 || '4.03' end
get_itens_servicos()
click to toggle source
# File lib/inovadora_xml/modules/dados_nfse_service.rb, line 14 def get_itens_servicos case self.parametro.fornecedor when 7..8 # Publica e #NF-em get_itens_servicos_publica else "Não implementado para esse fornecedor" end end
get_itens_servicos_publica()
click to toggle source
# File lib/inovadora_xml/modules/dados_nfse_service.rb, line 23 def get_itens_servicos_publica itens_da_nota= "{" if self.fnnfse.descritivo_servico.to_s == "" unless self.fnnfse.fnpacote.nil? itens_da_nota += "[" + "[Descricao=#{self.fnnfse.try(:fnpacote).try(:descricao)} #{fnnfse.obs_pacote}]" + "[Quantidade=1.0]" + "[ValorUnitario=#{self.fnnfse.valor_pacote}]" + "[Deducoes=0]" + "[DescontoCondicionado=0]" + "[DescontoIncondicionado=#{self.fnnfse.valor_pacote_desconto.to_f.round(2)}]" + "[Aliquota=#{get_aliquota}]" + "[itemServico=#{get_item_lista_servico}]" + "]" end self.fnnfse.fnnfseis.each do |fnnfsei| qtde = fnnfsei.qtde.to_f.round(2) == 0 ? 1.0 : fnnfsei.qtde.to_f.round(2) itens_da_nota += "[" + "[Descricao=#{fnnfsei.ftforma.nome}]" + "[Quantidade=#{qtde}]" + "[ValorUnitario=#{(fnnfsei.valor.to_f / qtde).round(8)}]" + "[Deducoes=0]" + "[DescontoCondicionado=0]" + "[DescontoIncondicionado=#{fnnfsei.desconto.to_s.to_d}]" + "[Aliquota=#{get_aliquota}]" + "[itemServico=#{get_item_lista_servico}]" + "]" end else itens_da_nota += "[" + "[Descricao=#{self.fnnfse.descritivo_servico}]" + "[Quantidade=1.0]" + "[ValorUnitario=#{self.fnnfse.valor_servicos}]" + "[Deducoes=0]" + "[DescontoCondicionado=0]" + "[DescontoIncondicionado=#{self.fnnfse.valor_descontos}]" + "[Aliquota=#{get_aliquota}]" + "[itemServico=#{get_item_lista_servico}]" + "]" end itens_da_nota += "}" end
get_itens_servicos_texto()
click to toggle source
# File lib/inovadora_xml/modules/dados_nfse_service.rb, line 66 def get_itens_servicos_texto itens_da_nota = "" if self.fnnfse.descritivo_servico.to_s == "" if self.fnnfse.try(:fnpacote).present? itens_da_nota += "#{self.fnnfse.try(:fnpacote).try(:descricao)} #{fnnfse.obs_pacote} " + "Valor: #{self.fnnfse.valor_pacote} " + "Desconto: #{self.fnnfse.valor_pacote_desconto.to_f.round(2)}" end if self.fnnfse.fnnfseis.size > 1 self.fnnfse.fnnfseis.each do |fnnfsei| qtde = fnnfsei.qtde.to_f.round(2) == 0 ? 1.0 : fnnfsei.qtde.to_f.round(2) itens_da_nota += "- #{fnnfsei.ftforma.nome} Qtde: #{qtde} " + "Valor: #{((fnnfsei.valor.to_f / qtde).round(8)).round(2)} " + (fnnfsei.desconto.to_s.to_d>0 ? "Desconto: #{fnnfsei.desconto.to_s.to_d.round(2)}" : "") + " \n" end else fnnfsei = self.fnnfse.fnnfseis.first itens_da_nota += "#{fnnfsei.ftforma.nome}" rescue "" end else itens_da_nota += "#{self.fnnfse.descritivo_servico} " + "Valor: #{self.fnnfse.valor_servicos.to_d.round(2)} " + (self.fnnfse.valor_descontos.to_d>0 ? "Desconto: #{self.fnnfse.valor_descontos.to_d.round(2)}" : "") end itens_da_nota end
get_numero_lote_rps()
click to toggle source
# File lib/inovadora_xml/modules/dados_nfse_service.rb, line 5 def get_numero_lote_rps self.fnnfse.build_fnnfses_sancionada if self.fnnfse.fnnfses_sancionada.blank? (self.fnnfse.fnnfses_sancionada.numero_rps = self.fnnfse.class.connection.select_value("SELECT nextval('gestho.prox_nro_rps_nfse')")) if self.fnnfse.fnnfses_sancionada.numero_rps.to_s == "" self.fnnfse.fnnfses_sancionada.numero_lote_rps = self.fnnfse.class.connection.select_value("SELECT nextval('gestho.prox_nro_lote_rps_nfse')") self.fnnfse.fnnfses_sancionada.save return self.fnnfse.fnnfses_sancionada.numero_lote_rps end
persistir_fnnfses_xml(xml, tipo_documento = 17)
click to toggle source
# File lib/inovadora_xml/modules/dados_nfse_service.rb, line 129 def persistir_fnnfses_xml(xml, tipo_documento = 17) xml_tratado = Nokogiri::XML(CGI.unescapeHTML(xml.to_xml.to_s), &:noblanks) xml_tratado = xml_tratado.to_xml(indent: 2).to_s if xml_tratado.blank? xml_tratado = "xml não recebido da prefeitura" end # $b = {fnnfse: self.fnnfse, xml_envio: self.xml_gerado().to_s, xml_retorno: xml_tratado, errors: self.errors, tipo_documento: tipo_documento} retorno_service = InovadoraXml::Modules::XmlRetorno.new(fnnfse: self.fnnfse, xml_envio: self.xml_gerado().to_s, xml_retorno: xml_tratado, errors: self.errors, tipo_documento: tipo_documento) retorno_service.save end