br_nfe 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +0 -0
- data/.travis.yml +0 -0
- data/Gemfile +0 -0
- data/Gemfile.lock +4 -4
- data/LICENSE +0 -0
- data/README.markdown +0 -0
- data/Rakefile +0 -0
- data/br_nfe.gemspec +2 -2
- data/lib/br_nfe.rb +22 -20
- data/lib/br_nfe/active_model/associations.rb +0 -0
- data/lib/br_nfe/active_model/has_many.rb +0 -0
- data/lib/br_nfe/active_model/has_one.rb +0 -0
- data/lib/br_nfe/active_model_base.rb +0 -0
- data/lib/br_nfe/association/have_address.rb +0 -0
- data/lib/br_nfe/association/have_condicao_pagamento.rb +0 -0
- data/lib/br_nfe/association/have_destinatario.rb +0 -0
- data/lib/br_nfe/association/have_emitente.rb +0 -0
- data/lib/br_nfe/base.rb +10 -22
- data/lib/br_nfe/calculos/fatores_de_multiplicacao.rb +0 -0
- data/lib/br_nfe/calculos/modulo11.rb +0 -0
- data/lib/br_nfe/calculos/modulo11_fator_de2a9.rb +0 -0
- data/lib/br_nfe/calculos/modulo11_fator_de2a9_resto_zero.rb +0 -0
- data/lib/br_nfe/condicao_pagamento.rb +0 -0
- data/lib/br_nfe/constants.rb +0 -2
- data/lib/br_nfe/endereco.rb +4 -0
- data/lib/br_nfe/helper/cpf_cnpj.rb +0 -0
- data/lib/br_nfe/helper/string_methods.rb +0 -0
- data/lib/br_nfe/person.rb +1 -0
- data/lib/br_nfe/product/destinatario.rb +3 -0
- data/lib/br_nfe/product/emitente.rb +0 -0
- data/lib/br_nfe/product/evento/base.rb +0 -0
- data/lib/br_nfe/product/evento/cancelamento.rb +0 -0
- data/lib/br_nfe/product/nf_xml_value.rb +1 -1
- data/lib/br_nfe/product/nfe/adicao_importacao.rb +0 -0
- data/lib/br_nfe/product/nfe/cobranca/duplicata.rb +0 -0
- data/lib/br_nfe/product/nfe/cobranca/fatura.rb +0 -0
- data/lib/br_nfe/product/nfe/cobranca/pagamento.rb +13 -0
- data/lib/br_nfe/product/nfe/declaracao_importacao.rb +0 -0
- data/lib/br_nfe/product/nfe/detalhe_exportacao.rb +0 -0
- data/lib/br_nfe/product/nfe/item.rb +0 -0
- data/lib/br_nfe/product/nfe/item_tax/cofins.rb +0 -0
- data/lib/br_nfe/product/nfe/item_tax/cofins_st.rb +0 -0
- data/lib/br_nfe/product/nfe/item_tax/icms.rb +0 -0
- data/lib/br_nfe/product/nfe/item_tax/icms_uf_destino.rb +0 -0
- data/lib/br_nfe/product/nfe/item_tax/importacao.rb +0 -0
- data/lib/br_nfe/product/nfe/item_tax/ipi.rb +0 -0
- data/lib/br_nfe/product/nfe/item_tax/issqn.rb +0 -0
- data/lib/br_nfe/product/nfe/item_tax/pis.rb +0 -0
- data/lib/br_nfe/product/nfe/item_tax/pis_st.rb +0 -0
- data/lib/br_nfe/product/nfe/processo_referencia.rb +0 -0
- data/lib/br_nfe/product/nfe/transporte/base.rb +0 -0
- data/lib/br_nfe/product/nfe/transporte/transportador.rb +0 -0
- data/lib/br_nfe/product/nfe/transporte/veiculo.rb +0 -0
- data/lib/br_nfe/product/nfe/transporte/volume.rb +0 -0
- data/lib/br_nfe/product/nota_fiscal.rb +5 -0
- data/lib/br_nfe/product/operation/base.rb +118 -44
- data/lib/br_nfe/product/operation/nfe_autorizacao.rb +3 -29
- data/lib/br_nfe/product/operation/nfe_consulta_protocolo.rb +2 -27
- data/lib/br_nfe/product/operation/nfe_download_nf.rb +6 -28
- data/lib/br_nfe/product/operation/nfe_inutilizacao.rb +2 -27
- data/lib/br_nfe/product/operation/nfe_recepcao_evento.rb +6 -27
- data/lib/br_nfe/product/operation/nfe_ret_autorizacao.rb +2 -27
- data/lib/br_nfe/product/operation/nfe_status_servico.rb +2 -27
- data/lib/br_nfe/product/reader/destinatario.rb +39 -0
- data/lib/br_nfe/product/reader/emitente.rb +39 -0
- data/lib/br_nfe/product/reader/endereco_retirada_entrega.rb +27 -0
- data/lib/br_nfe/product/reader/fatura.rb +41 -0
- data/lib/br_nfe/product/reader/item.rb +236 -0
- data/lib/br_nfe/product/reader/nfe.rb +200 -0
- data/lib/br_nfe/product/reader/transporte.rb +79 -0
- data/lib/br_nfe/product/response/base.rb +1 -1
- data/lib/br_nfe/product/response/build/base.rb +19 -9
- data/lib/br_nfe/product/response/build/nfe_autorizacao.rb +27 -15
- data/lib/br_nfe/product/response/build/nfe_consulta_protocolo.rb +35 -38
- data/lib/br_nfe/product/response/build/nfe_inutilizacao.rb +18 -16
- data/lib/br_nfe/product/response/build/nfe_recepcao_evento.rb +96 -0
- data/lib/br_nfe/product/response/build/nfe_ret_autorizacao.rb +11 -8
- data/lib/br_nfe/product/response/build/nfe_status_servico.rb +13 -10
- data/lib/br_nfe/product/response/event.rb +24 -3
- data/lib/br_nfe/product/response/nfe_autorizacao.rb +3 -2
- data/lib/br_nfe/product/response/nfe_consulta_protocolo.rb +1 -0
- data/lib/br_nfe/product/response/nfe_inutilizacao.rb +0 -0
- data/lib/br_nfe/product/response/nfe_recepcao_evento.rb +20 -0
- data/lib/br_nfe/product/response/nfe_ret_autorizacao.rb +0 -0
- data/lib/br_nfe/product/response/nfe_status_servico.rb +0 -0
- data/lib/br_nfe/product/xml/_signed_info_sh1.xml.slim +0 -0
- data/lib/br_nfe/product/xml/_tc_cpf_cnpj.xml.slim +0 -0
- data/lib/br_nfe/product/xml/signature_sh1.xml.slim +0 -0
- data/lib/br_nfe/product/xml/soap_env.xml.slim +1 -1
- data/lib/br_nfe/product/xml/v1_00/evento/infEventoCancelamento.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v1_00/root/NfeDownloadNf.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v1_00/root/NfeRecepcaoEvento.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/_tc_endereco.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/_tc_infNFe.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infInut.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/NFe.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_cobr.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_dest.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_det.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_emit.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_entrega.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_exporta.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_ide.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_infAdic.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_retirada.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_total.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_transp.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/_tc_imposto.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/_tc_prod.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS00.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS10.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS101.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS102.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS20.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS201.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS202.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS30.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS40.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS500.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS51.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS60.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS70.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS90.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS900.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_COFINS.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_COFINS_ST.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_ICMS.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_II.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_IPI.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_PIS.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_PIS_ST.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/det/prod/_tc_di.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/transp/_tc_retTransp.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/transp/_tc_transporta.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/infNFe/transp/_tc_vol.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/root/NfeAutorizacao.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/root/NfeInutilizacao.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/root/NfeRetAutorizacao.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_00/root/NfeStatusServico.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v2_01/root/NfeConsultaProtocolo.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/_tc_infNFe.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_dest.xml.slim +1 -1
- data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_det.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_exporta.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_ide.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_pag.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_total.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/_tc_imposto.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/_tc_prod.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS20.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS30.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS40.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS51.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS70.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS90.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/_tc_ICMSUFDest.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/_tc_ISSQN.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/prod/_tc_det_export.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/prod/_tc_di.xml.slim +0 -0
- data/lib/br_nfe/product/xml/v3_10/root/NfeAutorizacao.xml.slim +0 -0
- data/lib/br_nfe/service/association/have_intermediario.rb +0 -0
- data/lib/br_nfe/service/association/have_rps.rb +0 -0
- data/lib/br_nfe/service/base.rb +0 -0
- data/lib/br_nfe/service/betha/base.rb +0 -0
- data/lib/br_nfe/service/betha/v1/cancela_nfse.rb +1 -1
- data/lib/br_nfe/service/betha/v1/consulta_lote_rps.rb +1 -1
- data/lib/br_nfe/service/betha/v1/consulta_nfs_por_rps.rb +1 -1
- data/lib/br_nfe/service/betha/v1/consulta_nfse.rb +1 -1
- data/lib/br_nfe/service/betha/v1/consulta_situacao_lote_rps.rb +1 -1
- data/lib/br_nfe/service/betha/v1/gateway.rb +0 -0
- data/lib/br_nfe/service/betha/v1/recepcao_lote_rps.rb +1 -1
- data/lib/br_nfe/service/betha/v1/xml/_tc_identificacao_prestador.xml.slim +0 -0
- data/lib/br_nfe/service/betha/v1/xml/_tc_pedido_cancelamento.xml.slim +0 -0
- data/lib/br_nfe/service/concerns/rules/cancelamento_nfs.rb +0 -0
- data/lib/br_nfe/service/concerns/rules/consulta_nfs_por_rps.rb +0 -0
- data/lib/br_nfe/service/concerns/rules/consulta_nfse.rb +0 -0
- data/lib/br_nfe/service/concerns/rules/recepcao_lote_rps.rb +0 -0
- data/lib/br_nfe/service/concerns/values_ts/service_v1.rb +0 -0
- data/lib/br_nfe/service/destinatario.rb +0 -0
- data/lib/br_nfe/service/emitente.rb +0 -0
- data/lib/br_nfe/service/intermediario.rb +0 -0
- data/lib/br_nfe/service/item.rb +0 -0
- data/lib/br_nfe/service/response/build/base.rb +0 -0
- data/lib/br_nfe/service/response/build/cancelamento.rb +0 -0
- data/lib/br_nfe/service/response/build/consulta_lote_rps.rb +0 -0
- data/lib/br_nfe/service/response/build/consulta_nfs_por_rps.rb +0 -0
- data/lib/br_nfe/service/response/build/consulta_nfse.rb +0 -0
- data/lib/br_nfe/service/response/build/consulta_situacao_lote_rps.rb +0 -0
- data/lib/br_nfe/service/response/build/invoice_build.rb +0 -0
- data/lib/br_nfe/service/response/build/recepcao_lote_rps.rb +0 -0
- data/lib/br_nfe/service/response/cancelamento.rb +0 -0
- data/lib/br_nfe/service/response/consulta_lote_rps.rb +0 -0
- data/lib/br_nfe/service/response/consulta_nfs_por_rps.rb +0 -0
- data/lib/br_nfe/service/response/consulta_nfse.rb +0 -0
- data/lib/br_nfe/service/response/consulta_situacao_lote_rps.rb +0 -0
- data/lib/br_nfe/service/response/default.rb +0 -0
- data/lib/br_nfe/service/response/nota_fiscal.rb +0 -0
- data/lib/br_nfe/service/response/paths/v1/tc_nfse.rb +0 -0
- data/lib/br_nfe/service/response/recepcao_lote_rps.rb +0 -0
- data/lib/br_nfe/service/rps.rb +0 -0
- data/lib/br_nfe/service/sc/florianopolis/base.rb +0 -0
- data/lib/br_nfe/service/sc/florianopolis/cancellation.rb +0 -0
- data/lib/br_nfe/service/sc/florianopolis/emission_rps.rb +0 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/_address.xml.slim +0 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/_contact.xml.slim +0 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/_service_item.xml.slim +0 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/cancellation.xml.slim +0 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/inf_requisicao.xml.slim +0 -0
- data/lib/br_nfe/service/simpliss/v1/base.rb +1 -1
- data/lib/br_nfe/service/simpliss/v1/cancela_nfse.rb +0 -0
- data/lib/br_nfe/service/simpliss/v1/consulta_lote_rps.rb +0 -0
- data/lib/br_nfe/service/simpliss/v1/consulta_nfs_por_rps.rb +0 -0
- data/lib/br_nfe/service/simpliss/v1/consulta_nfse.rb +0 -0
- data/lib/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps.rb +0 -0
- data/lib/br_nfe/service/simpliss/v1/recepcao_lote_rps.rb +0 -0
- data/lib/br_nfe/service/simpliss/v1/xml/_login.xml.slim +0 -0
- data/lib/br_nfe/service/simpliss/v1/xml/_tc_dados_servico.xml.slim +0 -0
- data/lib/br_nfe/service/simpliss/v1/xml/_tc_item_servico.xml.slim +0 -0
- data/lib/br_nfe/service/simpliss/v1/xml/servico_cancelar_nfse_envio.xml.slim +0 -0
- data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_lote_rps_envio.xml.slim +0 -0
- data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_nfse_envio.xml.slim +0 -0
- data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_nfse_rps_envio.xml.slim +0 -0
- data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_situacao_lote_rps_envio.xml.slim +0 -0
- data/lib/br_nfe/service/simpliss/v1/xml/servico_enviar_lote_rps_envio.xml.slim +0 -0
- data/lib/br_nfe/service/thema/v1/base.rb +0 -0
- data/lib/br_nfe/service/thema/v1/cancela_nfse.rb +1 -1
- data/lib/br_nfe/service/thema/v1/consulta_lote_rps.rb +1 -1
- data/lib/br_nfe/service/thema/v1/consulta_nfs_por_rps.rb +1 -1
- data/lib/br_nfe/service/thema/v1/consulta_nfse.rb +1 -1
- data/lib/br_nfe/service/thema/v1/consulta_situacao_lote_rps.rb +0 -0
- data/lib/br_nfe/service/thema/v1/recepcao_lote_rps.rb +1 -1
- data/lib/br_nfe/service/thema/v1/recepcao_lote_rps_limitado.rb +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_contato.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_cpf_cnpj.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_dados_construcao_civil.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_dados_prestador.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_dados_servico.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_dados_tomador.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_endereco.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_intermediario_servico.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_nfse.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_orgao_gerador.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_prestador.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_rps.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_tomador.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_inf_pedido_cancelamento.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_inf_rps.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_lote_rps.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_pedido_cancelamento.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_rps.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/_tc_valores.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/servico_cancelar_nfse_envio.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/servico_consultar_lote_rps_envio.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_envio.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_rps_envio.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/servico_consultar_situacao_lote_rps_envio.xml.slim +0 -0
- data/lib/br_nfe/service/xml/v1/servico_enviar_lote_rps_envio.xml.slim +0 -0
- data/lib/br_nfe/version.rb +1 -1
- data/lib/br_nfe/xml/_signed_info_sh1.xml.slim +0 -0
- data/lib/br_nfe/xml/signature_sh1.xml.slim +0 -0
- data/lib/br_nfe/xml/soap_env.xml.slim +0 -0
- data/lib/config/locales/br_nfe/en/product/nfe/cobranca/fatura.yml +0 -0
- data/lib/config/locales/br_nfe/en/product/nfe/declaracao_importacao.yml +0 -0
- data/lib/config/locales/br_nfe/en/product/nfe/item.yml +0 -0
- data/lib/config/locales/br_nfe/en/product/nfe/item_tax/icms_uf_destino.yml +0 -0
- data/lib/config/locales/br_nfe/en/product/nfe/transporte/base.yml +0 -0
- data/lib/config/locales/br_nfe/en/product/nota_fiscal.yml +0 -0
- data/lib/config/locales/br_nfe/en/product/operation/nfe_autorizacao.yml +0 -0
- data/lib/config/locales/br_nfe/en/product/operation/nfe_recepcao_evento.yml +0 -0
- data/lib/config/locales/br_nfe/pt-BR/product/nfe/cobranca/fatura.yml +0 -0
- data/lib/config/locales/br_nfe/pt-BR/product/nfe/declaracao_importacao.yml +0 -0
- data/lib/config/locales/br_nfe/pt-BR/product/nfe/item.yml +0 -0
- data/lib/config/locales/br_nfe/pt-BR/product/nfe/item_tax/icms_uf_destino.yml +0 -0
- data/lib/config/locales/br_nfe/pt-BR/product/nfe/transporte/base.yml +0 -0
- data/lib/config/locales/br_nfe/pt-BR/product/nota_fiscal.yml +0 -0
- data/lib/config/locales/br_nfe/pt-BR/product/operation/nfe_autorizacao.yml +0 -0
- data/lib/config/locales/br_nfe/pt-BR/product/operation/nfe_recepcao_evento.yml +0 -0
- data/lib/config/settings/nfe/reader_xml_paths.yml +372 -0
- data/lib/config/settings/nfe/v3_10/operation.yml +843 -0
- data/lib/config/settings/nfe/v3_10/soap_client.yml +804 -0
- data/lib/config/settings/nfe/v3_10/xml_paths.yml +577 -0
- data/lib/config/settings/nfse.yml +3 -0
- data/test/br_nfe/association/have_address_test.rb +0 -0
- data/test/br_nfe/association/have_condicao_pagamento_test.rb +0 -0
- data/test/br_nfe/association/have_destinatario_test.rb +0 -0
- data/test/br_nfe/association/have_emitente_test.rb +0 -0
- data/test/br_nfe/base_test.rb +26 -65
- data/test/br_nfe/condicao_pagamento_test.rb +0 -0
- data/test/br_nfe/endereco_test.rb +0 -0
- data/test/br_nfe/helper/cpf_cnpj_test.rb +0 -0
- data/test/br_nfe/person_test.rb +0 -0
- data/test/br_nfe/product/destinatario_test.rb +0 -0
- data/test/br_nfe/product/emitente_test.rb +0 -0
- data/test/br_nfe/product/evento/base_test.rb +0 -0
- data/test/br_nfe/product/evento/cancelamento_test.rb +0 -0
- data/test/br_nfe/product/nfe/adicao_importacao_test.rb +0 -0
- data/test/br_nfe/product/nfe/cobranca/duplicata_test.rb +0 -0
- data/test/br_nfe/product/nfe/cobranca/fatura_test.rb +0 -0
- data/test/br_nfe/product/nfe/cobranca/pagamento_test.rb +0 -0
- data/test/br_nfe/product/nfe/declaracao_importacao_test.rb +0 -0
- data/test/br_nfe/product/nfe/detalhe_exportacao_test.rb +0 -0
- data/test/br_nfe/product/nfe/item_tax/cofins_st_test.rb +0 -0
- data/test/br_nfe/product/nfe/item_tax/cofins_test.rb +0 -0
- data/test/br_nfe/product/nfe/item_tax/icms_test.rb +0 -0
- data/test/br_nfe/product/nfe/item_tax/icms_uf_destino_test.rb +0 -0
- data/test/br_nfe/product/nfe/item_tax/importacao_test.rb +0 -0
- data/test/br_nfe/product/nfe/item_tax/ipi_test.rb +0 -0
- data/test/br_nfe/product/nfe/item_tax/issqn_test.rb +0 -0
- data/test/br_nfe/product/nfe/item_tax/pis_st_test.rb +0 -0
- data/test/br_nfe/product/nfe/item_tax/pis_test.rb +0 -0
- data/test/br_nfe/product/nfe/item_test.rb +0 -0
- data/test/br_nfe/product/nfe/processo_referencia_test.rb +0 -0
- data/test/br_nfe/product/nfe/transporte/base_test.rb +0 -0
- data/test/br_nfe/product/nfe/transporte/transportador_test.rb +0 -0
- data/test/br_nfe/product/nfe/transporte/veiculo_test.rb +0 -0
- data/test/br_nfe/product/nfe/transporte/volume_test.rb +0 -0
- data/test/br_nfe/product/nota_fiscal_test.rb +0 -0
- data/test/br_nfe/product/operation/base_test.rb +197 -175
- data/test/br_nfe/product/operation/nfe_autorizacao_test.rb +719 -282
- data/test/br_nfe/product/operation/nfe_consulta_protocolo_test.rb +745 -305
- data/test/br_nfe/product/operation/nfe_download_nf_test.rb +0 -51
- data/test/br_nfe/product/operation/nfe_inutilizacao_test.rb +505 -88
- data/test/br_nfe/product/operation/nfe_recepcao_evento_test.rb +83 -36
- data/test/br_nfe/product/operation/nfe_ret_autorizacao_test.rb +683 -244
- data/test/br_nfe/product/operation/nfe_status_servico_test.rb +515 -74
- data/test/br_nfe/product/reader/nfe_test.rb +2535 -0
- data/test/br_nfe/product/response/base_test.rb +0 -0
- data/test/br_nfe/product/response/build/base_test.rb +0 -0
- data/test/br_nfe/product/response/nfe_ret_autorizacao_test.rb +0 -0
- data/test/br_nfe/service/association/have_intermediario_test.rb +0 -0
- data/test/br_nfe/service/association/have_rps_test.rb +0 -0
- data/test/br_nfe/service/base_test.rb +1 -1
- data/test/br_nfe/service/betha/base_test.rb +0 -0
- data/test/br_nfe/service/betha/v1/cancela_nfse_test.rb +4 -4
- data/test/br_nfe/service/betha/v1/consulta_lote_rps_test.rb +4 -4
- data/test/br_nfe/service/betha/v1/consulta_nfs_por_rps_test.rb +4 -4
- data/test/br_nfe/service/betha/v1/consulta_nfse_test.rb +4 -4
- data/test/br_nfe/service/betha/v1/consulta_situacao_lote_rps_test.rb +4 -4
- data/test/br_nfe/service/betha/v1/gateway_test.rb +0 -0
- data/test/br_nfe/service/betha/v1/recepcao_lote_rps_test.rb +4 -4
- data/test/br_nfe/service/betha/v1/xsd/TiposNFe_v01.xsd +0 -0
- data/test/br_nfe/service/betha/v1/xsd/nfse_v01.xsd +0 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_cancelar_nfse_envio_v01.xsd +0 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_consultar_lote_rps_envio_v01.xsd +0 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_consultar_nfse_envio_v01.xsd +0 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_consultar_nfse_rps_envio_v01.xsd +0 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_consultar_situacao_lote_rps_envio_v01.xsd +0 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_enviar_lote_rps_envio_v01.xsd +0 -0
- data/test/br_nfe/service/betha/v1/xsd/xmldsig-core-schema.xsd +0 -0
- data/test/br_nfe/service/betha/v1/xsd/xmldsig-core-schema_v01.xsd +0 -0
- data/test/br_nfe/service/concerns/rules/cancelamento_nfs_test.rb +0 -0
- data/test/br_nfe/service/concerns/rules/consulta_nfs_por_rps_test.rb +0 -0
- data/test/br_nfe/service/concerns/rules/consulta_nfse_test.rb +0 -0
- data/test/br_nfe/service/concerns/rules/recepcao_lote_rps_test.rb +0 -0
- data/test/br_nfe/service/concerns/values_ts/service_v1_test.rb +0 -0
- data/test/br_nfe/service/destinatario_test.rb +0 -0
- data/test/br_nfe/service/emitente_test.rb +0 -0
- data/test/br_nfe/service/intermediario_test.rb +0 -0
- data/test/br_nfe/service/item_test.rb +0 -0
- data/test/br_nfe/service/response/build/base_test.rb +0 -0
- data/test/br_nfe/service/response/default_test.rb +0 -0
- data/test/br_nfe/service/response/nota_fiscal_test.rb +0 -0
- data/test/br_nfe/service/response/paths/v1/tc_nfse_test.rb +0 -0
- data/test/br_nfe/service/rps_test.rb +0 -0
- data/test/br_nfe/service/sc/florianopolis/XSD/TiposNFSe_v2.0.xsd +0 -0
- data/test/br_nfe/service/sc/florianopolis/XSD/xmldsig-core-schema.xsd +0 -0
- data/test/br_nfe/service/sc/florianopolis/base_test.rb +0 -0
- data/test/br_nfe/service/sc/florianopolis/cancellation_test.rb +0 -0
- data/test/br_nfe/service/sc/florianopolis/emission_rps_test.rb +0 -0
- data/test/br_nfe/service/simpliss/v1/base_test.rb +3 -3
- data/test/br_nfe/service/simpliss/v1/cancela_nfse_test.rb +1 -1
- data/test/br_nfe/service/simpliss/v1/consulta_lote_rps_test.rb +1 -1
- data/test/br_nfe/service/simpliss/v1/consulta_nfs_por_rps_test.rb +1 -1
- data/test/br_nfe/service/simpliss/v1/consulta_nfse_test.rb +1 -1
- data/test/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps_test.rb +1 -1
- data/test/br_nfe/service/simpliss/v1/recepcao_lote_rps_test.rb +1 -1
- data/test/br_nfe/service/simpliss/v1/xsd/nfse_3.xsd +0 -0
- data/test/br_nfe/service/simpliss/v1/xsd/xmldsig-core-schema20020212.xsd +0 -0
- data/test/br_nfe/service/thema/v1/base_test.rb +0 -0
- data/test/br_nfe/service/thema/v1/cancela_nfse_test.rb +6 -6
- data/test/br_nfe/service/thema/v1/consulta_lote_rps_test.rb +6 -6
- data/test/br_nfe/service/thema/v1/consulta_nfs_por_rps_test.rb +6 -6
- data/test/br_nfe/service/thema/v1/consulta_nfse_test.rb +6 -6
- data/test/br_nfe/service/thema/v1/consulta_situacao_lote_rps_test.rb +6 -6
- data/test/br_nfe/service/thema/v1/recepcao_lote_rps_limitado_test.rb +6 -6
- data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test.rb +6 -6
- data/test/br_nfe/service/thema/v1/xsd/nfse.xsd +0 -0
- data/test/br_nfe/service/thema/v1/xsd/xmldsig-core-schema20020212.xsd +0 -0
- data/test/br_nfe/service/xsd/v1/nfse.xsd +0 -0
- data/test/br_nfe/service/xsd/v1/xmldsig-core-schema20020212.xsd +0 -0
- data/test/cert.pfx +0 -0
- data/test/factories/base.rb +0 -0
- data/test/factories/condicao_pagamento.rb +0 -0
- data/test/factories/endereco.rb +0 -0
- data/test/factories/person.rb +0 -0
- data/test/factories/product/destinatario.rb +0 -0
- data/test/factories/product/emitente.rb +0 -0
- data/test/factories/product/evento/base.rb +0 -0
- data/test/factories/product/evento/cancelamento.rb +0 -0
- data/test/factories/product/nfe/adicao_importacao.rb +0 -0
- data/test/factories/product/nfe/cobranca/duplicata.rb +0 -0
- data/test/factories/product/nfe/cobranca/fatura.rb +0 -0
- data/test/factories/product/nfe/cobranca/pagamento.rb +0 -0
- data/test/factories/product/nfe/declaracao_importacao.rb +0 -0
- data/test/factories/product/nfe/detalhe_exportacao.rb +0 -0
- data/test/factories/product/nfe/item.rb +0 -0
- data/test/factories/product/nfe/item_tax/cofins.rb +0 -0
- data/test/factories/product/nfe/item_tax/cofins_st.rb +0 -0
- data/test/factories/product/nfe/item_tax/icms.rb +0 -0
- data/test/factories/product/nfe/item_tax/icms_uf_destino.rb +0 -0
- data/test/factories/product/nfe/item_tax/importacao.rb +0 -0
- data/test/factories/product/nfe/item_tax/ipi.rb +0 -0
- data/test/factories/product/nfe/item_tax/issqn.rb +0 -0
- data/test/factories/product/nfe/item_tax/pis.rb +0 -0
- data/test/factories/product/nfe/item_tax/pis_st.rb +0 -0
- data/test/factories/product/nfe/processo_referencia.rb +0 -0
- data/test/factories/product/nfe/transporte/base.rb +0 -0
- data/test/factories/product/nfe/transporte/transportador.rb +0 -0
- data/test/factories/product/nfe/transporte/veiculo.rb +0 -0
- data/test/factories/product/nfe/transporte/volume.rb +0 -0
- data/test/factories/product/nota_fiscal.rb +0 -0
- data/test/factories/product/operation/base.rb +0 -0
- data/test/factories/product/operation/nfe_autorizacao.rb +0 -0
- data/test/factories/product/operation/nfe_consulta_protocolo.rb +0 -0
- data/test/factories/product/operation/nfe_download_nf.rb +0 -0
- data/test/factories/product/operation/nfe_inutilizacao.rb +0 -0
- data/test/factories/product/operation/nfe_recepcao_evento.rb +0 -0
- data/test/factories/product/operation/nfe_ret_autorizacao.rb +0 -0
- data/test/factories/product/operation/nfe_status_servico.rb +0 -0
- data/test/factories/product/response/base.rb +0 -0
- data/test/factories/product/response/build/base.rb +0 -0
- data/test/factories/product/response/nfe_ret_autorizacao.rb +0 -0
- data/test/factories/service/base.rb +0 -0
- data/test/factories/service/betha/base.rb +0 -0
- data/test/factories/service/betha/v1/cancela_nfse.rb +0 -0
- data/test/factories/service/betha/v1/consulta_lote_rps.rb +0 -0
- data/test/factories/service/betha/v1/consulta_nfs_por_rps.rb +0 -0
- data/test/factories/service/betha/v1/consulta_nfse.rb +0 -0
- data/test/factories/service/betha/v1/consulta_situacao_lote_rps.rb +0 -0
- data/test/factories/service/betha/v1/gateway.rb +0 -0
- data/test/factories/service/betha/v1/recepcao_lote_rps.rb +0 -0
- data/test/factories/service/destinatario.rb +0 -0
- data/test/factories/service/emitente.rb +0 -0
- data/test/factories/service/intermediario.rb +0 -0
- data/test/factories/service/item.rb +0 -0
- data/test/factories/service/response/build_response.rb +0 -0
- data/test/factories/service/response/default.rb +0 -0
- data/test/factories/service/response/nota_fiscal.rb +0 -0
- data/test/factories/service/rps.rb +0 -0
- data/test/factories/service/sc/florianopolis/base.rb +0 -0
- data/test/factories/service/sc/florianopolis/cancellation.rb +0 -0
- data/test/factories/service/sc/florianopolis/emission_rps.rb +0 -0
- data/test/factories/service/simpliss/v1/base.rb +0 -0
- data/test/factories/service/simpliss/v1/cancela_nfse.rb +0 -0
- data/test/factories/service/simpliss/v1/consulta_lote_rps.rb +0 -0
- data/test/factories/service/simpliss/v1/consulta_nfs_por_rps.rb +0 -0
- data/test/factories/service/simpliss/v1/consulta_nfse.rb +0 -0
- data/test/factories/service/simpliss/v1/consulta_situacao_lote_rps.rb +0 -0
- data/test/factories/service/simpliss/v1/recepcao_lote_rps.rb +0 -0
- data/test/factories/service/thema/v1/base.rb +0 -0
- data/test/factories/service/thema/v1/cancela_nfse.rb +0 -0
- data/test/factories/service/thema/v1/consulta_lote_rps.rb +0 -0
- data/test/factories/service/thema/v1/consulta_nfs_por_rps.rb +0 -0
- data/test/factories/service/thema/v1/consulta_nfse.rb +0 -0
- data/test/factories/service/thema/v1/consulta_situacao_lote_rps.rb +0 -0
- data/test/factories/service/thema/v1/recepcao_lote_rps.rb +0 -0
- data/test/factories/service/thema/v1/recepcao_lote_rps_limitado.rb +0 -0
- data/test/fixtures/product/nfe/v3_10/cancelada.xml +246 -0
- data/test/fixtures/product/nfe/v3_10/completa.xml +1650 -0
- data/test/fixtures/product/nfe/v3_10/without_proc.xml +264 -0
- data/test/fixtures/product/operation/nfe_autorizacao/nfe_signed.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_autorizacao/async_fail.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_autorizacao/async_success.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_autorizacao/nfe/with_proc.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_autorizacao/nfe/without_proc.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_autorizacao/original_xml.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_autorizacao/sync_fail.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_autorizacao/sync_success.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/event_1.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/event_2.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/event_3.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/event_cancel.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/one_event.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/fail.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/nfe_original/with_proc.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/nfe_original/without_proc.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/success_many_with_cancel.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/success_many_without_cancel.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/success_one.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/success_without.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_inutilizacao/fail.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_inutilizacao/success.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_recepcao_evento/cancelamento/fail.xml +2 -2
- data/test/fixtures/product/response/v3.10/nfe_recepcao_evento/cancelamento/success.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_recepcao_evento/cancelamento/xml_result_fail_formatted.xml +1 -0
- data/test/fixtures/product/response/v3.10/nfe_recepcao_evento/cancelamento/xml_result_success_formatted.xml +1 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_fail.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_one_invoice_fail.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_one_invoice_fail_and_one_ok.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_one_invoice_ok.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_two_invoice_fail.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_two_invoice_ok.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/nfe/nf_2_with_protocol.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/nfe/nf_2_without_protocol.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/nfe/nf_3_with_protocol.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/nfe/nf_3_without_protocol.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/original_xml/lot.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/original_xml/nfe.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/original_xml/nfeProc.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_status_servico/fail.xml +0 -0
- data/test/fixtures/product/response/v3.10/nfe_status_servico/success.xml +0 -0
- data/test/fixtures/product/schemas/CCe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/EPEC_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/LeiauteCadastroEmissorDFe_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/SuframaInternaliza_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/SuframaVistoria_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/atuCadEmiDFe_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/cabecMsg_v1.02.xsd +0 -0
- data/test/fixtures/product/schemas/cadEmiDFe_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/cancNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/confRecebto_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/consCad_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/consDPEC_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/consNFeDest_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/consReciNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/consReciNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/consSitNFe_v2.01.xsd +0 -0
- data/test/fixtures/product/schemas/consSitNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/consStatServ_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/consStatServ_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/distDFeInt_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/downloadNFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e110110_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e110111_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e110140_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e111500_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e111501_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e111502_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e111503_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e210200_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e210210_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e210220_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e210240_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e411500_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e411501_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e411502_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e411503_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e990900_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/e990910_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/envCCe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/envCancelPProrrogNFe_v1.0.xsd +0 -0
- data/test/fixtures/product/schemas/envConfRecebto_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/envDPEC_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/envEPEC_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/envEventoCancNFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/envEvento_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/envFiscoNfe_v1.0.xsd +0 -0
- data/test/fixtures/product/schemas/envPProrrogNFe_v1.0.xsd +0 -0
- data/test/fixtures/product/schemas/envRemIndus_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/envSuframaInternaliza_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/envSuframaVistoria_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/enviNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/enviNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/eventoCancNFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/eventoEPEC_v0.01.xsd +0 -0
- data/test/fixtures/product/schemas/eventoEPEC_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/eventoRemIndus_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/inutNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/inutNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteCCe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteCancNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteConfRecebto_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteConsNFeDest_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteConsSitNFe_v2.01.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteConsSitNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteConsStatServ_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteConsStatServ_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteConsultaCadastro_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteConsultaCadastro_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteDPEC_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteDownloadNFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteEPEC_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteEventoCancNFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteEvento_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteInutNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteInutNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteRemIndus_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteSRE_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteSuframaInternaliza_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/leiauteSuframaVistoria_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/nfe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/nfe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/procCCeNFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/procCancNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/procConfRecebtoNFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/procEPEC_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/procEventoCancNFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/procEventoNFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/procEventoNFe_v99.99.xsd +0 -0
- data/test/fixtures/product/schemas/procInutNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/procInutNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/procNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/procNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/procRemIndus_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/resEvento_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/resNFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/retAtuCadEmiDFe_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/retCancNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/retConsCad_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/retConsDPEC_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/retConsReciNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/retConsReciNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/retConsSitNFe_v2.01.xsd +0 -0
- data/test/fixtures/product/schemas/retConsSitNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/retConsStatServ_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/retConsStatServ_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/retDPEC_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/retDistDFeInt_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/retDownloadNFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/retEnvCCe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/retEnvCancelPProrrogNFe_v1.0.xsd +0 -0
- data/test/fixtures/product/schemas/retEnvConfRecebto_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/retEnvEPEC_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/retEnvEventoCancNFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/retEnvEvento_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/retEnvFiscoNFe_v1.0.xsd +0 -0
- data/test/fixtures/product/schemas/retEnvRemIndus_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/retEnvSuframaInternaliza_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/retEnvSuframaVistoria_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/retEnviNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/retEnviNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/retEventoEPEC_v0.01.xsd +0 -0
- data/test/fixtures/product/schemas/retInutNFe_v2.00.xsd +0 -0
- data/test/fixtures/product/schemas/retInutNFe_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/retPProrrogNFe_v1.0.xsd +0 -0
- data/test/fixtures/product/schemas/retconsNFeDest_v1.01.xsd +0 -0
- data/test/fixtures/product/schemas/tiposBasico_v1.03.xsd +0 -0
- data/test/fixtures/product/schemas/tiposBasico_v1.03_OPENSSL.xsd +0 -0
- data/test/fixtures/product/schemas/tiposBasico_v3.10.xsd +0 -0
- data/test/fixtures/product/schemas/tiposBasico_v3.10_OPENSSL.xsd +0 -0
- data/test/fixtures/product/schemas/tiposDistDFe_v1.00.xsd +0 -0
- data/test/fixtures/product/schemas/xmldsig-core-schema_v1.01.xsd +0 -0
- data/test/fixtures/product/wsdl/NFeRetAutorizacao.xml +0 -0
- data/test/fixtures/product/wsdl/NfeAutorizacao.xml +0 -0
- data/test/fixtures/product/wsdl/NfeConsulta2.xml +0 -0
- data/test/fixtures/product/wsdl/NfeStatusServico2.xml +0 -0
- data/test/fixtures/product/wsdl/RecepcaoEvento.xml +78 -0
- data/test/fixtures/product/wsdl/nfeinutilizacao2.xml +0 -0
- data/test/fixtures/service/response/betha/v1/cancela_nfse/fault.xml +0 -0
- data/test/fixtures/service/response/betha/v1/cancela_nfse/success.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_lote_rps/fault.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_lote_rps/success.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse/fault.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse/nfs_empty.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse/success.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse_por_rps/fault.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse_por_rps/success.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/error.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/fault.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/success.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unprocessed.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unprocessed_by_code_error.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unreceived.xml +0 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unreceived_by_code_error.xml +0 -0
- data/test/fixtures/service/response/betha/v1/recepcao_lote_rps/error.xml +0 -0
- data/test/fixtures/service/response/betha/v1/recepcao_lote_rps/success.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/cancela_nfse/fault.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/cancela_nfse/success.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_lote_rps/fault.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_lote_rps/nfse_complete.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_lote_rps/nfse_simple.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_nfse/fault.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_nfse/nfs_empty.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_nfse/nfse_complete.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_nfse/nfse_simple.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_nfse_por_rps/fault.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_nfse_por_rps/nfse_complete.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_nfse_por_rps/nfse_simple.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/error.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/fault.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/success.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/unprocessed.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/unreceived.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/recepcao_lote_rps/error.xml +0 -0
- data/test/fixtures/service/response/simpliss/v1/recepcao_lote_rps/success.xml +0 -0
- data/test/fixtures/service/response/thema/v1/cancela_nfse/fault.xml +0 -0
- data/test/fixtures/service/response/thema/v1/cancela_nfse/success.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_lote_rps/fault.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_lote_rps/nfse_complete.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_nfse/fault.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_nfse/nfs_empty.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_nfse/nfse_complete.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_nfse/nfse_simple.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_nfse_por_rps/fault.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_nfse_por_rps/nfse_complete.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/error.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/fault.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/success.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/unprocessed.xml +0 -0
- data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/unreceived.xml +0 -0
- data/test/fixtures/service/response/thema/v1/recepcao_lote_rps/error.xml +0 -0
- data/test/fixtures/service/response/thema/v1/recepcao_lote_rps/success.xml +0 -0
- data/test/fixtures/service/response/thema/v1/recepcao_lote_rps_limitado/error.xml +0 -0
- data/test/fixtures/service/response/thema/v1/recepcao_lote_rps_limitado/success.xml +0 -0
- data/test/fixtures/service/thema/v1/cancelar_nfse_envio.xml +0 -0
- data/test/fixtures/service/thema/v1/cancelar_nfse_envio_signed.xml +0 -0
- data/test/fixtures/service/thema/v1/enviar_lote_rps.xml +0 -0
- data/test/fixtures/service/thema/v1/enviar_lote_rps_signed.xml +0 -0
- data/test/fixtures/service/wsdl/betha/v1/cancelar_nfse.xml +0 -0
- data/test/fixtures/service/wsdl/betha/v1/consultar_lote_rps.xml +0 -0
- data/test/fixtures/service/wsdl/betha/v1/consultar_nfse.xml +0 -0
- data/test/fixtures/service/wsdl/betha/v1/consultar_nfse_por_rps.xml +0 -0
- data/test/fixtures/service/wsdl/betha/v1/consultar_situacao_lote_rps.xml +0 -0
- data/test/fixtures/service/wsdl/betha/v1/recepcionar_lote_rps.xml +0 -0
- data/test/fixtures/service/wsdl/simpliss/v1/nfseservice.xml +0 -0
- data/test/fixtures/service/wsdl/thema/v1/nfse_cancelamento.xml +0 -0
- data/test/fixtures/service/wsdl/thema/v1/nfse_consulta.xml +0 -0
- data/test/fixtures/service/wsdl/thema/v1/nfse_remessa.xml +0 -0
- data/test/test_helper.rb +0 -0
- metadata +35 -63
- data/lib/br_nfe/product/gateway/base.rb +0 -35
- data/lib/br_nfe/product/gateway/web_service_am.rb +0 -140
- data/lib/br_nfe/product/gateway/web_service_ba.rb +0 -140
- data/lib/br_nfe/product/gateway/web_service_ce.rb +0 -162
- data/lib/br_nfe/product/gateway/web_service_go.rb +0 -140
- data/lib/br_nfe/product/gateway/web_service_mg.rb +0 -140
- data/lib/br_nfe/product/gateway/web_service_ms.rb +0 -140
- data/lib/br_nfe/product/gateway/web_service_mt.rb +0 -140
- data/lib/br_nfe/product/gateway/web_service_pe.rb +0 -140
- data/lib/br_nfe/product/gateway/web_service_pr.rb +0 -140
- data/lib/br_nfe/product/gateway/web_service_rs.rb +0 -140
- data/lib/br_nfe/product/gateway/web_service_sp.rb +0 -140
- data/lib/br_nfe/product/gateway/web_service_svan.rb +0 -162
- data/lib/br_nfe/product/gateway/web_service_svc_an.rb +0 -131
- data/lib/br_nfe/product/gateway/web_service_svc_rs.rb +0 -20
- data/lib/br_nfe/product/gateway/web_service_svrs.rb +0 -140
- data/test/br_nfe/product/gateway/base_test.rb +0 -16
- data/test/br_nfe/product/gateway/web_service_am_test.rb +0 -242
- data/test/br_nfe/product/gateway/web_service_ba_test.rb +0 -242
- data/test/br_nfe/product/gateway/web_service_ce_test.rb +0 -242
- data/test/br_nfe/product/gateway/web_service_go_test.rb +0 -242
- data/test/br_nfe/product/gateway/web_service_mg_test.rb +0 -242
- data/test/br_nfe/product/gateway/web_service_ms_test.rb +0 -242
- data/test/br_nfe/product/gateway/web_service_mt_test.rb +0 -408
- data/test/br_nfe/product/gateway/web_service_pe_test.rb +0 -408
- data/test/br_nfe/product/gateway/web_service_pr_test.rb +0 -408
- data/test/br_nfe/product/gateway/web_service_rs_test.rb +0 -407
- data/test/br_nfe/product/gateway/web_service_sp_test.rb +0 -408
- data/test/br_nfe/product/gateway/web_service_svan_test.rb +0 -242
- data/test/br_nfe/product/gateway/web_service_svc_an_test.rb +0 -185
- data/test/br_nfe/product/gateway/web_service_svc_rs_test.rb +0 -185
- data/test/br_nfe/product/gateway/web_service_svrs_test.rb +0 -242
- data/test/factories/product/gateway/base.rb +0 -5
- data/test/factories/product/gateway/web_service_am.rb +0 -5
- data/test/factories/product/gateway/web_service_ba.rb +0 -5
- data/test/factories/product/gateway/web_service_svrs.rb +0 -5
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
module BrNfe
|
|
2
|
+
module Product
|
|
3
|
+
module Reader
|
|
4
|
+
class Item
|
|
5
|
+
class << self
|
|
6
|
+
def new xml, path
|
|
7
|
+
@xml = xml
|
|
8
|
+
@path = path
|
|
9
|
+
@item = BrNfe::Product::Nfe::Item.new
|
|
10
|
+
populate!
|
|
11
|
+
@item
|
|
12
|
+
end
|
|
13
|
+
private
|
|
14
|
+
def safe_parse_date value
|
|
15
|
+
Date.parse value
|
|
16
|
+
rescue
|
|
17
|
+
nil
|
|
18
|
+
end
|
|
19
|
+
def safe_parse_datetime value
|
|
20
|
+
Time.parse value
|
|
21
|
+
rescue
|
|
22
|
+
nil
|
|
23
|
+
end
|
|
24
|
+
def populate!
|
|
25
|
+
set_product_details
|
|
26
|
+
set_icms if @xml.css( @path[:icms][:root] ).present?
|
|
27
|
+
set_ipi if @xml.css( @path[:ipi][:root] ).present?
|
|
28
|
+
set_pis if @xml.css( @path[:pis][:root] ).present?
|
|
29
|
+
set_cofins if @xml.css( @path[:cofins][:root] ).present?
|
|
30
|
+
set_icms_uf_destino if @xml.css( @path[:icms_uf_destino][:root] ).present?
|
|
31
|
+
set_declaracoes_importacao if @xml.css( @path[:declaracoes_importacao][:root] ).present?
|
|
32
|
+
set_detalhes_exportacao if @xml.css( @path[:detalhes_exportacao][:root] ).present?
|
|
33
|
+
set_pis_st if @xml.css( @path[:pis_st][:root] ).present?
|
|
34
|
+
set_cofins_st if @xml.css( @path[:cofins_st][:root] ).present?
|
|
35
|
+
set_importacao_tax if @xml.css( @path[:importacao][:root] ).present?
|
|
36
|
+
set_issqn if @xml.css( @path[:issqn][:root] ).present?
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def set_product_details
|
|
40
|
+
@item.tipo_produto = @xml.css( @path[:issqn][:root] ).present? ? :service : :product
|
|
41
|
+
@item.codigo_produto = @xml.css( @path[:codigo_produto] ).text
|
|
42
|
+
@item.codigo_ean = @xml.css( @path[:codigo_ean] ).text
|
|
43
|
+
@item.descricao_produto = @xml.css( @path[:descricao_produto] ).text
|
|
44
|
+
@item.codigo_ncm = @xml.css( @path[:codigo_ncm] ).text
|
|
45
|
+
@item.codigos_nve = @xml.css( @path[:codigos_nve] ).map(&:text)
|
|
46
|
+
@item.codigo_extipi = @xml.css( @path[:codigo_extipi] ).text
|
|
47
|
+
@item.cfop = @xml.css( @path[:cfop] ).text
|
|
48
|
+
@item.unidade_comercial = @xml.css( @path[:unidade_comercial] ).text
|
|
49
|
+
@item.quantidade_comercial = @xml.css( @path[:quantidade_comercial] ).text.to_f
|
|
50
|
+
@item.valor_unitario_comercial = @xml.css( @path[:valor_unitario_comercial] ).text.to_f
|
|
51
|
+
@item.valor_total_produto = @xml.css( @path[:valor_total_produto] ).text.to_f
|
|
52
|
+
@item.codigo_ean_tributavel = @xml.css( @path[:codigo_ean_tributavel] ).text
|
|
53
|
+
@item.unidade_tributavel = @xml.css( @path[:unidade_tributavel] ).text
|
|
54
|
+
@item.quantidade_tributavel = @xml.css( @path[:quantidade_tributavel] ).text.to_f
|
|
55
|
+
@item.valor_unitario_tributavel = @xml.css( @path[:valor_unitario_tributavel] ).text.to_f
|
|
56
|
+
@item.total_frete = @xml.css( @path[:total_frete] ).text.to_f
|
|
57
|
+
@item.total_seguro = @xml.css( @path[:total_seguro] ).text.to_f
|
|
58
|
+
@item.total_desconto = @xml.css( @path[:total_desconto] ).text.to_f
|
|
59
|
+
@item.total_outros = @xml.css( @path[:total_outros] ).text.to_f
|
|
60
|
+
@item.soma_total_nfe = @xml.css( @path[:soma_total_nfe] ).text == '1' ? true : false
|
|
61
|
+
@item.codigo_cest = @xml.css( @path[:codigo_cest] ).text
|
|
62
|
+
@item.numero_pedido_compra = @xml.css( @path[:numero_pedido_compra] ).text
|
|
63
|
+
@item.item_pedido_compra = @xml.css( @path[:item_pedido_compra] ).text
|
|
64
|
+
@item.numero_fci = @xml.css( @path[:numero_fci] ).text
|
|
65
|
+
@item.percentual_devolucao = @xml.css( @path[:percentual_devolucao] ).text.to_f
|
|
66
|
+
@item.total_ipi_devolucao = @xml.css( @path[:total_ipi_devolucao] ).text.to_f
|
|
67
|
+
@item.informacoes_adicionais = @xml.css( @path[:informacoes_adicionais] ).text
|
|
68
|
+
@item.total_tributos = @xml.css( @path[:total_tributos] ).text.to_f
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def set_icms
|
|
72
|
+
codigo_cst = @xml.css( @path[:icms][:cst] ).text
|
|
73
|
+
codigo_cst = @xml.css( @path[:icms][:csosn] ).text if codigo_cst.blank?
|
|
74
|
+
@item.icms = {
|
|
75
|
+
origem: @xml.css( @path[:icms][:origem] ).text,
|
|
76
|
+
codigo_cst: codigo_cst,
|
|
77
|
+
modalidade_base_calculo: @xml.css( @path[:icms][:modalidade_base_calculo] ).text,
|
|
78
|
+
reducao_base_calculo: @xml.css( @path[:icms][:reducao_base_calculo] ).text.to_f,
|
|
79
|
+
total_base_calculo: @xml.css( @path[:icms][:total_base_calculo] ).text.to_f,
|
|
80
|
+
aliquota: @xml.css( @path[:icms][:aliquota] ).text.to_f,
|
|
81
|
+
total: @xml.css( @path[:icms][:total] ).text.to_f,
|
|
82
|
+
modalidade_base_calculo_st: @xml.css( @path[:icms][:modalidade_base_calculo_st] ).text,
|
|
83
|
+
mva_st: @xml.css( @path[:icms][:mva_st] ).text.to_f,
|
|
84
|
+
reducao_base_calculo_st: @xml.css( @path[:icms][:reducao_base_calculo_st] ).text.to_f,
|
|
85
|
+
total_base_calculo_st: @xml.css( @path[:icms][:total_base_calculo_st] ).text.to_f,
|
|
86
|
+
aliquota_st: @xml.css( @path[:icms][:aliquota_st] ).text.to_f,
|
|
87
|
+
total_st: @xml.css( @path[:icms][:total_st] ).text.to_f,
|
|
88
|
+
total_desoneracao: @xml.css( @path[:icms][:total_desoneracao] ).text.to_f,
|
|
89
|
+
motivo_desoneracao: @xml.css( @path[:icms][:motivo_desoneracao] ).text,
|
|
90
|
+
total_icms_operacao: @xml.css( @path[:icms][:total_icms_operacao] ).text.to_f,
|
|
91
|
+
percentual_diferimento: @xml.css( @path[:icms][:percentual_diferimento] ).text.to_f,
|
|
92
|
+
total_icms_diferido: @xml.css( @path[:icms][:total_icms_diferido] ).text.to_f,
|
|
93
|
+
total_base_calculo_st_retido: @xml.css( @path[:icms][:total_base_calculo_st_retido]).text.to_f,
|
|
94
|
+
total_st_retido: @xml.css( @path[:icms][:total_st_retido] ).text.to_f,
|
|
95
|
+
aliquota_credito_sn: @xml.css( @path[:icms][:aliquota_credito_sn] ).text.to_f,
|
|
96
|
+
total_credito_sn: @xml.css( @path[:icms][:total_credito_sn] ).text.to_f
|
|
97
|
+
}
|
|
98
|
+
end
|
|
99
|
+
def set_ipi
|
|
100
|
+
@item.ipi do |ipi|
|
|
101
|
+
ipi.codigo_cst = @xml.css( @path[:ipi][:codigo_cst] ).text
|
|
102
|
+
ipi.classe_enquadramento = @xml.css( @path[:ipi][:classe_enquadramento]).text
|
|
103
|
+
ipi.cnpj_produtor = @xml.css( @path[:ipi][:cnpj_produtor] ).text
|
|
104
|
+
ipi.codigo_selo = @xml.css( @path[:ipi][:codigo_selo] ).text
|
|
105
|
+
ipi.quantidade_selo = @xml.css( @path[:ipi][:quantidade_selo] ).text
|
|
106
|
+
ipi.codigo_enquadramento = @xml.css( @path[:ipi][:codigo_enquadramento]).text
|
|
107
|
+
ipi.base_calculo = @xml.css( @path[:ipi][:base_calculo] ).text.to_f
|
|
108
|
+
ipi.aliquota = @xml.css( @path[:ipi][:aliquota] ).text.to_f
|
|
109
|
+
ipi.quantidade_unidade = @xml.css( @path[:ipi][:quantidade_unidade] ).text.to_f
|
|
110
|
+
ipi.total_unidade = @xml.css( @path[:ipi][:total_unidade] ).text.to_f
|
|
111
|
+
ipi.total = @xml.css( @path[:ipi][:total] ).text.to_f
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
def set_pis
|
|
115
|
+
@item.pis do |pis|
|
|
116
|
+
pis.codigo_cst = @xml.css( @path[:pis][:codigo_cst] ).text
|
|
117
|
+
pis.total_base_calculo = @xml.css( @path[:pis][:total_base_calculo]).text.to_f
|
|
118
|
+
pis.aliquota = @xml.css( @path[:pis][:aliquota] ).text.to_f
|
|
119
|
+
pis.total = @xml.css( @path[:pis][:total] ).text.to_f
|
|
120
|
+
pis.quantidade_vendida = @xml.css( @path[:pis][:quantidade_vendida]).text.to_f
|
|
121
|
+
pis.total_aliquota = @xml.css( @path[:pis][:total_aliquota] ).text.to_f
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
def set_cofins
|
|
125
|
+
@item.cofins do |cofins|
|
|
126
|
+
cofins.codigo_cst = @xml.css( @path[:cofins][:codigo_cst] ).text
|
|
127
|
+
cofins.total_base_calculo = @xml.css( @path[:cofins][:total_base_calculo]).text.to_f
|
|
128
|
+
cofins.aliquota = @xml.css( @path[:cofins][:aliquota] ).text.to_f
|
|
129
|
+
cofins.total = @xml.css( @path[:cofins][:total] ).text.to_f
|
|
130
|
+
cofins.quantidade_vendida = @xml.css( @path[:cofins][:quantidade_vendida]).text.to_f
|
|
131
|
+
cofins.total_aliquota = @xml.css( @path[:cofins][:total_aliquota] ).text.to_f
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
def set_icms_uf_destino
|
|
135
|
+
@item.icms_uf_destino do |icms_uf_destino|
|
|
136
|
+
icms_uf_destino.total_base_calculo = @xml.css( @path[:icms_uf_destino][:total_base_calculo] ).text.to_f
|
|
137
|
+
icms_uf_destino.percentual_fcp = @xml.css( @path[:icms_uf_destino][:percentual_fcp] ).text.to_f
|
|
138
|
+
icms_uf_destino.aliquota_interna_uf_destino = @xml.css( @path[:icms_uf_destino][:aliquota_interna_uf_destino]).text.to_f
|
|
139
|
+
icms_uf_destino.aliquota_interestadual = @xml.css( @path[:icms_uf_destino][:aliquota_interestadual] ).text.to_f
|
|
140
|
+
icms_uf_destino.percentual_partilha_destino = @xml.css( @path[:icms_uf_destino][:percentual_partilha_destino]).text.to_f
|
|
141
|
+
icms_uf_destino.total_fcp_destino = @xml.css( @path[:icms_uf_destino][:total_fcp_destino] ).text.to_f
|
|
142
|
+
icms_uf_destino.total_destino = @xml.css( @path[:icms_uf_destino][:total_destino] ).text.to_f
|
|
143
|
+
icms_uf_destino.total_origem = @xml.css( @path[:icms_uf_destino][:total_origem] ).text.to_f
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
def set_declaracoes_importacao
|
|
147
|
+
@xml.css( @path[:declaracoes_importacao][:root] ).each do |xml_declaracao|
|
|
148
|
+
@item.declaracoes_importacao << BrNfe.declaracao_importacao_product_class.new do |declaracao|
|
|
149
|
+
declaracao.numero_documento = xml_declaracao.css( @path[:declaracoes_importacao][:numero_documento] ).text
|
|
150
|
+
declaracao.data_registro = safe_parse_date xml_declaracao.css( @path[:declaracoes_importacao][:data_registro] ).text
|
|
151
|
+
declaracao.local_desembaraco = xml_declaracao.css( @path[:declaracoes_importacao][:local_desembaraco] ).text
|
|
152
|
+
declaracao.uf_desembaraco = xml_declaracao.css( @path[:declaracoes_importacao][:uf_desembaraco] ).text
|
|
153
|
+
declaracao.data_desembaraco = safe_parse_date xml_declaracao.css( @path[:declaracoes_importacao][:data_desembaraco] ).text
|
|
154
|
+
declaracao.via_transporte = xml_declaracao.css( @path[:declaracoes_importacao][:via_transporte] ).text
|
|
155
|
+
declaracao.valor_afrmm = xml_declaracao.css( @path[:declaracoes_importacao][:valor_afrmm] ).text.to_f
|
|
156
|
+
declaracao.tipo_intermediacao = xml_declaracao.css( @path[:declaracoes_importacao][:tipo_intermediacao]).text
|
|
157
|
+
declaracao.cnpj_adquirente = xml_declaracao.css( @path[:declaracoes_importacao][:cnpj_adquirente] ).text
|
|
158
|
+
declaracao.uf_terceiro = xml_declaracao.css( @path[:declaracoes_importacao][:uf_terceiro] ).text
|
|
159
|
+
declaracao.codigo_exportador = xml_declaracao.css( @path[:declaracoes_importacao][:codigo_exportador] ).text
|
|
160
|
+
xml_declaracao.css( @path[:declaracoes_importacao][:adicoes][:root] ).each do |xml_adi|
|
|
161
|
+
declaracao.adicoes << {
|
|
162
|
+
numero_adicao: xml_adi.css( @path[:declaracoes_importacao][:adicoes][:numero_adicao] ).text,
|
|
163
|
+
sequencial: xml_adi.css( @path[:declaracoes_importacao][:adicoes][:sequencial] ).text.to_i,
|
|
164
|
+
codigo_fabricante: xml_adi.css( @path[:declaracoes_importacao][:adicoes][:codigo_fabricante]).text,
|
|
165
|
+
valor_desconto: xml_adi.css( @path[:declaracoes_importacao][:adicoes][:valor_desconto] ).text.to_f,
|
|
166
|
+
numero_drawback: xml_adi.css( @path[:declaracoes_importacao][:adicoes][:numero_drawback] ).text,
|
|
167
|
+
}
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
def set_detalhes_exportacao
|
|
173
|
+
@xml.css( @path[:detalhes_exportacao][:root] ).each do |xml_exportacao|
|
|
174
|
+
@item.detalhes_exportacao << BrNfe.detalhe_exportacao_product_class.new do |declaracao|
|
|
175
|
+
declaracao.numero_drawback = xml_exportacao.css( @path[:detalhes_exportacao][:numero_drawback] ).text
|
|
176
|
+
declaracao.numero_registro = xml_exportacao.css( @path[:detalhes_exportacao][:numero_registro] ).text
|
|
177
|
+
declaracao.chave_nfe_recebida = xml_exportacao.css( @path[:detalhes_exportacao][:chave_nfe_recebida]).text
|
|
178
|
+
declaracao.quantidade = xml_exportacao.css( @path[:detalhes_exportacao][:quantidade] ).text.to_f
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def set_importacao_tax
|
|
184
|
+
@item.importacao do |importacao|
|
|
185
|
+
importacao.total_base_calculo = @xml.css( @path[:importacao][:total_base_calculo] ).text.to_f
|
|
186
|
+
importacao.total_despesas_aduaneiras = @xml.css( @path[:importacao][:total_despesas_aduaneiras]).text.to_f
|
|
187
|
+
importacao.total_imposto = @xml.css( @path[:importacao][:total_imposto] ).text.to_f
|
|
188
|
+
importacao.total_iof = @xml.css( @path[:importacao][:total_iof] ).text.to_f
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
def set_pis_st
|
|
193
|
+
@item.pis_st do |pis|
|
|
194
|
+
pis.total_base_calculo = @xml.css( @path[:pis_st][:total_base_calculo]).text.to_f
|
|
195
|
+
pis.aliquota = @xml.css( @path[:pis_st][:aliquota] ).text.to_f
|
|
196
|
+
pis.total = @xml.css( @path[:pis_st][:total] ).text.to_f
|
|
197
|
+
pis.quantidade_vendida = @xml.css( @path[:pis_st][:quantidade_vendida]).text.to_f
|
|
198
|
+
pis.total_aliquota = @xml.css( @path[:pis_st][:total_aliquota] ).text.to_f
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
def set_cofins_st
|
|
203
|
+
@item.cofins_st do |pis|
|
|
204
|
+
pis.total_base_calculo = @xml.css( @path[:cofins_st][:total_base_calculo]).text.to_f
|
|
205
|
+
pis.aliquota = @xml.css( @path[:cofins_st][:aliquota] ).text.to_f
|
|
206
|
+
pis.total = @xml.css( @path[:cofins_st][:total] ).text.to_f
|
|
207
|
+
pis.quantidade_vendida = @xml.css( @path[:cofins_st][:quantidade_vendida]).text.to_f
|
|
208
|
+
pis.total_aliquota = @xml.css( @path[:cofins_st][:total_aliquota] ).text.to_f
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
def set_issqn
|
|
213
|
+
@item.issqn do |issqn|
|
|
214
|
+
issqn.total_base_calculo = @xml.css( @path[:issqn][:total_base_calculo] ).text.to_f
|
|
215
|
+
issqn.aliquota = @xml.css( @path[:issqn][:aliquota] ).text.to_f
|
|
216
|
+
issqn.total = @xml.css( @path[:issqn][:total] ).text.to_f
|
|
217
|
+
issqn.municipio_ocorrencia = @xml.css( @path[:issqn][:municipio_ocorrencia] ).text
|
|
218
|
+
issqn.codigo_servico = @xml.css( @path[:issqn][:codigo_servico] ).text
|
|
219
|
+
issqn.total_deducao_bc = @xml.css( @path[:issqn][:total_deducao_bc] ).text.to_f
|
|
220
|
+
issqn.total_outras_retencoes = @xml.css( @path[:issqn][:total_outras_retencoes] ).text.to_f
|
|
221
|
+
issqn.total_desconto_incondicionado = @xml.css( @path[:issqn][:total_desconto_incondicionado]).text.to_f
|
|
222
|
+
issqn.total_desconto_condicionado = @xml.css( @path[:issqn][:total_desconto_condicionado] ).text.to_f
|
|
223
|
+
issqn.total_iss_retido = @xml.css( @path[:issqn][:total_iss_retido] ).text.to_f
|
|
224
|
+
issqn.indicador_iss = @xml.css( @path[:issqn][:indicador_iss] ).text
|
|
225
|
+
issqn.codigo_servico_municipio = @xml.css( @path[:issqn][:codigo_servico_municipio] ).text
|
|
226
|
+
issqn.municipio_incidencia = @xml.css( @path[:issqn][:municipio_incidencia] ).text
|
|
227
|
+
issqn.codigo_pais = @xml.css( @path[:issqn][:codigo_pais] ).text
|
|
228
|
+
issqn.numero_processo = @xml.css( @path[:issqn][:numero_processo] ).text
|
|
229
|
+
issqn.incentivo_fiscal = @xml.css( @path[:issqn][:incentivo_fiscal] ).text == '1'
|
|
230
|
+
end
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
end
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
module BrNfe
|
|
2
|
+
module Product
|
|
3
|
+
module Reader
|
|
4
|
+
class Nfe < BrNfe::ActiveModelBase
|
|
5
|
+
def initialize xml
|
|
6
|
+
@xml = Nokogiri::XML xml
|
|
7
|
+
@xml_version = find_xml_version
|
|
8
|
+
@xml_nfe = @xml.css("NFe")
|
|
9
|
+
@invoice = BrNfe::Product::NotaFiscal.new
|
|
10
|
+
populate_invoice!
|
|
11
|
+
@invoice
|
|
12
|
+
end
|
|
13
|
+
def invoice
|
|
14
|
+
@invoice
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def xml_version
|
|
18
|
+
@xml_version
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
def path
|
|
24
|
+
BrNfe.settings[:nfe][@xml_version][:reader_xml_paths]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def proc_is_present?
|
|
28
|
+
@xml.css("nfeProc").present?
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def find_xml_version
|
|
32
|
+
"v#{@xml.css("infNFe").attr("versao")}".gsub('.','_').to_sym
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def populate_invoice!
|
|
36
|
+
build_associations
|
|
37
|
+
|
|
38
|
+
# Totais
|
|
39
|
+
build_product_total_values! if @xml_nfe.css(path[:total_icms][:root]).present?
|
|
40
|
+
build_service_total_values! if @xml_nfe.css(path[:total_issqn][:root]).present?
|
|
41
|
+
build_total_retencao! if @xml_nfe.css(path[:total_retencao][:root]).present?
|
|
42
|
+
build_state_protocol_nfe! if proc_is_present?
|
|
43
|
+
|
|
44
|
+
@invoice.codigo_tipo_emissao = @xml_nfe.css(path[:codigo_tipo_emissao]).text
|
|
45
|
+
@invoice.codigo_nf = @xml_nfe.css(path[:codigo_nf]).text
|
|
46
|
+
@invoice.natureza_operacao = @xml_nfe.css(path[:natureza_operacao]).text
|
|
47
|
+
@invoice.forma_pagamento = @xml_nfe.css(path[:forma_pagamento]).text
|
|
48
|
+
@invoice.modelo_nf = @xml_nfe.css(path[:modelo_nf]).text
|
|
49
|
+
@invoice.serie = @xml_nfe.css(path[:serie]).text
|
|
50
|
+
@invoice.numero_nf = @xml_nfe.css(path[:numero_nf]).text.to_i
|
|
51
|
+
@invoice.data_hora_emissao = parse_time @xml_nfe.css(path[:data_hora_emissao]).text
|
|
52
|
+
@invoice.data_hora_expedicao = parse_time @xml_nfe.css(path[:data_hora_expedicao]).text
|
|
53
|
+
@invoice.tipo_operacao = @xml_nfe.css(path[:tipo_operacao]).text
|
|
54
|
+
@invoice.tipo_impressao = @xml_nfe.css(path[:tipo_impressao]).text
|
|
55
|
+
@invoice.tipo_ambiente = @xml_nfe.css(path[:tipo_ambiente]).text
|
|
56
|
+
@invoice.finalidade_emissao = @xml_nfe.css(path[:finalidade_emissao]).text
|
|
57
|
+
@invoice.consumidor_final = @xml_nfe.css(path[:consumidor_final]).text
|
|
58
|
+
@invoice.presenca_comprador = @xml_nfe.css(path[:presenca_comprador]).text
|
|
59
|
+
@invoice.processo_emissao = @xml_nfe.css(path[:processo_emissao]).text
|
|
60
|
+
@invoice.versao_aplicativo = @xml_nfe.css(path[:versao_aplicativo]).text
|
|
61
|
+
@invoice.informacoes_fisco = @xml_nfe.css(path[:informacoes_fisco]).text
|
|
62
|
+
@invoice.informacoes_contribuinte = @xml_nfe.css(path[:informacoes_contribuinte]).text
|
|
63
|
+
@invoice.exportacao_uf_saida = @xml_nfe.css(path[:exportacao_uf_saida]).text
|
|
64
|
+
@invoice.exportacao_local_embarque = @xml_nfe.css(path[:exportacao_local_embarque]).text
|
|
65
|
+
@invoice.exportacao_local_despacho = @xml_nfe.css(path[:exportacao_local_despacho]).text
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def build_associations
|
|
69
|
+
@invoice.emitente = Emitente.new(@xml_nfe, path)
|
|
70
|
+
@invoice.destinatario = Destinatario.new(@xml_nfe, path)
|
|
71
|
+
@invoice.transporte = Transporte.new(@xml_nfe, path)
|
|
72
|
+
build_endereco_retirada!
|
|
73
|
+
build_endereco_entrega!
|
|
74
|
+
build_fatura!
|
|
75
|
+
build_pagamentos!
|
|
76
|
+
build_items!
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def build_product_total_values!
|
|
80
|
+
@invoice.total_icms_base_calculo = @xml_nfe.css(path[:total_icms][:total_icms_base_calculo]).text.to_f
|
|
81
|
+
@invoice.total_icms = @xml_nfe.css(path[:total_icms][:total_icms]).text.to_f
|
|
82
|
+
@invoice.total_icms_desonerado = @xml_nfe.css(path[:total_icms][:total_icms_desonerado]).text.to_f
|
|
83
|
+
@invoice.total_icms_fcp_uf_destino = @xml_nfe.css(path[:total_icms][:total_icms_fcp_uf_destino]).text.to_f
|
|
84
|
+
@invoice.total_icms_uf_destino = @xml_nfe.css(path[:total_icms][:total_icms_uf_destino]).text.to_f
|
|
85
|
+
@invoice.total_icms_uf_origem = @xml_nfe.css(path[:total_icms][:total_icms_uf_origem]).text.to_f
|
|
86
|
+
@invoice.total_icms_base_calculo_st = @xml_nfe.css(path[:total_icms][:total_icms_base_calculo_st]).text.to_f
|
|
87
|
+
@invoice.total_icms_st = @xml_nfe.css(path[:total_icms][:total_icms_st]).text.to_f
|
|
88
|
+
@invoice.total_produtos = @xml_nfe.css(path[:total_icms][:total_produtos]).text.to_f
|
|
89
|
+
@invoice.total_frete = @xml_nfe.css(path[:total_icms][:total_frete]).text.to_f
|
|
90
|
+
@invoice.total_seguro = @xml_nfe.css(path[:total_icms][:total_seguro]).text.to_f
|
|
91
|
+
@invoice.total_desconto = @xml_nfe.css(path[:total_icms][:total_desconto]).text.to_f
|
|
92
|
+
@invoice.total_imposto_importacao = @xml_nfe.css(path[:total_icms][:total_imposto_importacao]).text.to_f
|
|
93
|
+
@invoice.total_ipi = @xml_nfe.css(path[:total_icms][:total_ipi]).text.to_f
|
|
94
|
+
@invoice.total_pis = @xml_nfe.css(path[:total_icms][:total_pis]).text.to_f
|
|
95
|
+
@invoice.total_cofins = @xml_nfe.css(path[:total_icms][:total_cofins]).text.to_f
|
|
96
|
+
@invoice.total_outras_despesas = @xml_nfe.css(path[:total_icms][:total_outras_despesas]).text.to_f
|
|
97
|
+
@invoice.total_nf = @xml_nfe.css(path[:total_icms][:total_nf]).text.to_f
|
|
98
|
+
@invoice.total_tributos = @xml_nfe.css(path[:total_icms][:total_tributos]).text.to_f
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def build_service_total_values!
|
|
102
|
+
@invoice.total_servicos = @xml_nfe.css(path[:total_issqn][:total_servicos]).text.to_f
|
|
103
|
+
@invoice.total_servicos_base_calculo = @xml_nfe.css(path[:total_issqn][:total_servicos_base_calculo]).text.to_f
|
|
104
|
+
@invoice.total_servicos_iss = @xml_nfe.css(path[:total_issqn][:total_servicos_iss]).text.to_f
|
|
105
|
+
@invoice.total_servicos_pis = @xml_nfe.css(path[:total_issqn][:total_servicos_pis]).text.to_f
|
|
106
|
+
@invoice.total_servicos_cofins = @xml_nfe.css(path[:total_issqn][:total_servicos_cofins]).text.to_f
|
|
107
|
+
@invoice.servicos_data_prestacao = parse_date( @xml_nfe.css(path[:total_issqn][:servicos_data_prestacao]).text )
|
|
108
|
+
@invoice.total_servicos_deducao = @xml_nfe.css(path[:total_issqn][:total_servicos_deducao]).text.to_f
|
|
109
|
+
@invoice.total_servicos_outras_retencoes = @xml_nfe.css(path[:total_issqn][:total_servicos_outras_retencoes]).text.to_f
|
|
110
|
+
@invoice.total_servicos_desconto_incondicionado = @xml_nfe.css(path[:total_issqn][:total_servicos_desconto_incondicionado]).text.to_f
|
|
111
|
+
@invoice.total_servicos_desconto_condicionado = @xml_nfe.css(path[:total_issqn][:total_servicos_desconto_condicionado]).text.to_f
|
|
112
|
+
@invoice.total_servicos_iss_retido = @xml_nfe.css(path[:total_issqn][:total_servicos_iss_retido]).text.to_f
|
|
113
|
+
@invoice.regime_tributario_servico = @xml_nfe.css(path[:total_issqn][:regime_tributario_servico]).text
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def build_total_retencao!
|
|
117
|
+
@invoice.total_retencao_pis = @xml_nfe.css(path[:total_retencao][:total_retencao_pis]).text.to_f
|
|
118
|
+
@invoice.total_retencao_cofins = @xml_nfe.css(path[:total_retencao][:total_retencao_cofins]).text.to_f
|
|
119
|
+
@invoice.total_retencao_csll = @xml_nfe.css(path[:total_retencao][:total_retencao_csll]).text.to_f
|
|
120
|
+
@invoice.total_retencao_base_calculo_irrf = @xml_nfe.css(path[:total_retencao][:total_retencao_base_calculo_irrf]).text.to_f
|
|
121
|
+
@invoice.total_retencao_irrf = @xml_nfe.css(path[:total_retencao][:total_retencao_irrf]).text.to_f
|
|
122
|
+
@invoice.total_retencao_base_calculo_previdencia = @xml_nfe.css(path[:total_retencao][:total_retencao_base_calculo_previdencia]).text.to_f
|
|
123
|
+
@invoice.total_retencao_previdencia = @xml_nfe.css(path[:total_retencao][:total_retencao_previdencia]).text.to_f
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
def build_endereco_retirada!
|
|
128
|
+
if @xml_nfe.css(path[:endereco_retirada][:root]).present?
|
|
129
|
+
@invoice.endereco_retirada_cpf_cnpj = @xml_nfe.css(path[:endereco_retirada][:cnpj]).text
|
|
130
|
+
@invoice.endereco_retirada_cpf_cnpj = @xml_nfe.css(path[:endereco_retirada][:cpf]).text unless @invoice.endereco_retirada_cpf_cnpj.present?
|
|
131
|
+
@invoice.endereco_retirada = EnderecoRetiradaEntrega.new(@xml_nfe, path[:endereco_retirada])
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def build_endereco_entrega!
|
|
136
|
+
if @xml_nfe.css(path[:endereco_entrega][:root]).present?
|
|
137
|
+
@invoice.endereco_entrega_cpf_cnpj = @xml_nfe.css(path[:endereco_entrega][:cnpj]).text
|
|
138
|
+
@invoice.endereco_entrega_cpf_cnpj = @xml_nfe.css(path[:endereco_entrega][:cpf]).text unless @invoice.endereco_entrega_cpf_cnpj.present?
|
|
139
|
+
@invoice.endereco_entrega = EnderecoRetiradaEntrega.new(@xml_nfe, path[:endereco_entrega])
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
def build_fatura!
|
|
144
|
+
if @xml_nfe.css(path[:fatura][:root]).present? || @xml_nfe.css(path[:fatura][:duplicatas][:root]).present?
|
|
145
|
+
@invoice.fatura = Fatura.new(@xml_nfe, path)
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def build_pagamentos!
|
|
150
|
+
@xml_nfe.css(path[:pagamentos][:root]).each do |xml_pag|
|
|
151
|
+
@invoice.pagamentos << {
|
|
152
|
+
forma_pagamento: xml_pag.css(path[:pagamentos][:forma_pagamento]).text,
|
|
153
|
+
total: xml_pag.css(path[:pagamentos][:total]).text.to_f,
|
|
154
|
+
tipo_integracao: xml_pag.css(path[:pagamentos][:tipo_integracao]).text,
|
|
155
|
+
cartao_cnpj: xml_pag.css(path[:pagamentos][:cartao_cnpj]).text,
|
|
156
|
+
cartao_bandeira: xml_pag.css(path[:pagamentos][:cartao_bandeira]).text,
|
|
157
|
+
cartao_autorizacao: xml_pag.css(path[:pagamentos][:cartao_autorizacao]).text
|
|
158
|
+
}
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def build_items!
|
|
163
|
+
@xml_nfe.css(path[:items][:root]).each do |xml_item|
|
|
164
|
+
@invoice.itens << Item.new(xml_item, path[:items])
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def build_state_protocol_nfe!
|
|
169
|
+
@invoice.protocol = @xml.css( path[:protocol][:protocol] ).text
|
|
170
|
+
@invoice.digest_value = @xml.css( path[:protocol][:digest_value]).text
|
|
171
|
+
@invoice.processed_at = parse_time @xml.css( path[:protocol][:processed_at]).text
|
|
172
|
+
@invoice.status_code = @xml.css( path[:protocol][:status_code] ).text
|
|
173
|
+
@xml.css( path[:info_events][:root] ).each do |info_xml|
|
|
174
|
+
tipo_evento = info_xml.css( path[:info_events][:tipo_evento] ).text
|
|
175
|
+
if tipo_evento == '110111' # Cancelada
|
|
176
|
+
@invoice.situation = :canceled
|
|
177
|
+
|
|
178
|
+
@invoice.protocol = info_xml.css( path[:info_events][:protocol] ).text
|
|
179
|
+
@invoice.processed_at = parse_time info_xml.css( path[:info_events][:processed_at]).text
|
|
180
|
+
@invoice.status_code = info_xml.css( path[:info_events][:status_code] ).text
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
def parse_date value
|
|
186
|
+
Date.parse value
|
|
187
|
+
rescue
|
|
188
|
+
nil
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
def parse_time value
|
|
192
|
+
Time.parse(value)
|
|
193
|
+
rescue
|
|
194
|
+
nil
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
module BrNfe
|
|
2
|
+
module Product
|
|
3
|
+
module Reader
|
|
4
|
+
class Transporte
|
|
5
|
+
class << self
|
|
6
|
+
def new xml, path
|
|
7
|
+
@xml = xml
|
|
8
|
+
@path = path
|
|
9
|
+
@transporte = BrNfe::Product::Nfe::Transporte::Base.new
|
|
10
|
+
populate!
|
|
11
|
+
@transporte
|
|
12
|
+
end
|
|
13
|
+
private
|
|
14
|
+
def populate!
|
|
15
|
+
@transporte.modalidade_frete = @xml.css(@path[:transporte][:modalidade_frete]).text
|
|
16
|
+
return if @transporte.modalidade_frete == '9'
|
|
17
|
+
@transporte.retencao_valor_sevico = @xml.css(@path[:transporte][:retencao_valor_sevico]).text.to_f
|
|
18
|
+
@transporte.retencao_base_calculo_icms = @xml.css(@path[:transporte][:retencao_base_calculo_icms]).text.to_f
|
|
19
|
+
@transporte.retencao_aliquota = @xml.css(@path[:transporte][:retencao_aliquota]).text.to_f
|
|
20
|
+
@transporte.retencao_valor_icms = @xml.css(@path[:transporte][:retencao_valor_icms]).text.to_f
|
|
21
|
+
@transporte.retencao_cfop = @xml.css(@path[:transporte][:retencao_cfop]).text
|
|
22
|
+
@transporte.retencao_codigo_municipio = @xml.css(@path[:transporte][:retencao_codigo_municipio]).text
|
|
23
|
+
build_transportadora! if @xml.css(@path[:transporte][:transportadora][:root]).present?
|
|
24
|
+
build_veiculo! if @xml.css(@path[:transporte][:veiculo][:root]).present?
|
|
25
|
+
build_reboques! if @xml.css(@path[:transporte][:reboques][:root]).present?
|
|
26
|
+
build_volumes! if @xml.css(@path[:transporte][:volumes][:root]).present?
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def build_transportadora!
|
|
30
|
+
@transporte.transportador = {
|
|
31
|
+
cpf_cnpj: @xml.css(@path[:transporte][:transportadora][:cpf_cnpj]).text,
|
|
32
|
+
razao_social: @xml.css(@path[:transporte][:transportadora][:razao_social]).text,
|
|
33
|
+
inscricao_estadual: @xml.css(@path[:transporte][:transportadora][:inscricao_estadual]).text,
|
|
34
|
+
endereco_descricao: @xml.css(@path[:transporte][:transportadora][:endereco_descricao]).text,
|
|
35
|
+
endereco_uf: @xml.css(@path[:transporte][:transportadora][:endereco_uf]).text,
|
|
36
|
+
endereco_nome_municipio: @xml.css(@path[:transporte][:transportadora][:endereco_nome_municipio]).text
|
|
37
|
+
}
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def build_veiculo!
|
|
41
|
+
@transporte.veiculo = {
|
|
42
|
+
placa: @xml.css(@path[:transporte][:veiculo][:placa]).text,
|
|
43
|
+
uf: @xml.css(@path[:transporte][:veiculo][:uf]).text,
|
|
44
|
+
rntc: @xml.css(@path[:transporte][:veiculo][:rntc]).text
|
|
45
|
+
}
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def build_reboques!
|
|
49
|
+
reboques = []
|
|
50
|
+
@xml.css(@path[:transporte][:reboques][:root]).each do |reboque_path|
|
|
51
|
+
reboques << {
|
|
52
|
+
placa: reboque_path.css(@path[:transporte][:reboques][:placa]).text,
|
|
53
|
+
uf: reboque_path.css(@path[:transporte][:reboques][:uf]).text,
|
|
54
|
+
rntc: reboque_path.css(@path[:transporte][:reboques][:rntc]).text
|
|
55
|
+
}
|
|
56
|
+
end
|
|
57
|
+
@transporte.reboques = reboques
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def build_volumes!
|
|
61
|
+
volumes = []
|
|
62
|
+
@xml.css(@path[:transporte][:volumes][:root]).each do |vol_path|
|
|
63
|
+
volumes << {
|
|
64
|
+
quantidade: vol_path.css(@path[:transporte][:volumes][:quantidade]).text,
|
|
65
|
+
especie: vol_path.css(@path[:transporte][:volumes][:especie]).text,
|
|
66
|
+
marca: vol_path.css(@path[:transporte][:volumes][:marca]).text,
|
|
67
|
+
numercao: vol_path.css(@path[:transporte][:volumes][:numercao]).text,
|
|
68
|
+
peso_liquido: vol_path.css(@path[:transporte][:volumes][:peso_liquido]).text.to_f,
|
|
69
|
+
peso_bruto: vol_path.css(@path[:transporte][:volumes][:peso_bruto]).text.to_f,
|
|
70
|
+
lacres: vol_path.css(@path[:transporte][:volumes][:lacres]).map{|e| e.text},
|
|
71
|
+
}
|
|
72
|
+
end
|
|
73
|
+
@transporte.volumes = volumes
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|