class NfseCarioca::GerarNfseXML
Public Class Methods
new(invoice_info)
click to toggle source
# File lib/nfse_carioca/gerar_nfse_xml.rb, line 3 def initialize(invoice_info) @invoice = invoice_info end
Public Instance Methods
clear(value)
click to toggle source
# File lib/nfse_carioca/gerar_nfse_xml.rb, line 59 def clear(value) NfseCarioca::Sanitizer.new(value).clear end
complement()
click to toggle source
# File lib/nfse_carioca/gerar_nfse_xml.rb, line 84 def complement end
document_number()
click to toggle source
# File lib/nfse_carioca/gerar_nfse_xml.rb, line 92 def document_number @invoice[:customer][:document_number] end
document_type()
click to toggle source
# File lib/nfse_carioca/gerar_nfse_xml.rb, line 88 def document_type @invoice[:customer][:document_type] end
phone_number()
click to toggle source
# File lib/nfse_carioca/gerar_nfse_xml.rb, line 73 def phone_number number = @invoice[:customer][:phone_number].to_s.scan(/\d/).join.to_i.to_s if number.size > 11 limit = number.size - 10 number[limit..11] else number end end
to_xml()
click to toggle source
# File lib/nfse_carioca/gerar_nfse_xml.rb, line 7 def to_xml Gyoku.xml( "GerarNfseEnvio" => { "@xmlns" => "http://notacarioca.rio.gov.br/WSNacional/XSD/1/nfse_pcrj_v01.xsd", "Rps" => { "InfRps" => { "@xmlns" => "http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd", "@Id" => @invoice[:identification_number], "IdentificacaoRps" => { "Numero" => @invoice[:identification_number], "Serie" => NfseCarioca.configuration.rps_serie, "Tipo" => NfseCarioca.configuration.rps_tipo }, "DataEmissao" => Time.now.strftime("%Y-%m-%dT%H:%M:%S"), "NaturezaOperacao" => NfseCarioca.configuration.rps_natureza_operacao, "OptanteSimplesNacional" => NfseCarioca.configuration.rps_optante_simples_nacional, "IncentivadorCultural" => NfseCarioca.configuration.rps_incentivador_cultural, "Status" => 1, "Servico" => { "Valores" => { "ValorServicos" => @invoice[:total], "ValorPis" => NfseCarioca.configuration.valor_pis, "ValorCofins" => NfseCarioca.configuration.valor_cofins, "ValorInss" => NfseCarioca.configuration.valor_inss, "ValorIr" => NfseCarioca.configuration.valor_ir, "ValorCsll" => NfseCarioca.configuration.valor_csll, "IssRetido" => NfseCarioca.configuration.iss_retido, "ValorIss" => NfseCarioca.configuration.valor_iss, "Aliquota" => NfseCarioca.configuration.valor_aliquota }, "ItemListaServico" => NfseCarioca.configuration.item_lista_servico, "CodigoTributacaoMunicipio" => tributacao, "Discriminacao" => @invoice[:description], "CodigoMunicipio" => NfseCarioca.configuration.codigo_municipio }, "Prestador" => { "Cnpj" => NfseCarioca.configuration.cnpj, "InscricaoMunicipal" => NfseCarioca.configuration.inscricao_municipal }, "Tomador" => tomador } } } ) end
tomador()
click to toggle source
# File lib/nfse_carioca/gerar_nfse_xml.rb, line 96 def tomador xml = {} if document_type.present? xml["IdentificacaoTomador"] = { "CpfCnpj" => { document_type => document_number } } end if @invoice[:customer][:name].present? xml["RazaoSocial"] = clear(@invoice[:customer][:name]) end if @invoice[:customer][:address].present? xml["Endereco"] = { "Endereco" => clear(@invoice[:customer][:address][:street]), "Numero" => clear(@invoice[:customer][:address][:number]) } if @invoice[:customer][:address][:complement].present? xml["Endereco"]["Complemento"] = clear(@invoice[:customer][:address][:complement]) end xml["Endereco"]["Bairro"] = clear(@invoice[:customer][:address][:neighborhood]) xml["Endereco"]["CodigoMunicipio"] = @invoice[:customer][:address][:city_ibge_code] xml["Endereco"]["Uf"] = @invoice[:customer][:address][:state_code] xml["Endereco"]["Cep"] = @invoice[:customer][:address][:zipcode].scan(/\d/).join end if phone_number.present? xml["Contato"] = { "Telefone" => phone_number, "Email" => @invoice[:customer][:email] } else xml["Contato"] = { "Email" => @invoice[:customer][:email] } end xml end
tributacao()
click to toggle source
# File lib/nfse_carioca/gerar_nfse_xml.rb, line 63 def tributacao tributacao = NfseCarioca.configuration.codigo_tributacao_municipio if @invoice[:tax_benefit] "#{@invoice[:tax_benefit]}#{tributacao}" else tributacao end end