br_nfe 2.1.0 → 2.1.1
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 +1 -0
- data/.travis.yml +0 -1
- data/Gemfile.lock +1 -1
- data/README.markdown +264 -106
- data/lib/br_nfe/{helper → association}/have_address.rb +1 -1
- data/lib/br_nfe/{helper → association}/have_condicao_pagamento.rb +1 -1
- data/lib/br_nfe/association/have_destinatario.rb +22 -0
- data/lib/br_nfe/association/have_emitente.rb +24 -0
- data/lib/br_nfe/base.rb +37 -27
- data/lib/br_nfe/condicao_pagamento.rb +2 -0
- data/lib/br_nfe/constants.rb +33 -0
- data/lib/br_nfe/endereco.rb +10 -0
- data/lib/br_nfe/helper/string_methods.rb +4 -0
- data/lib/br_nfe/{emitente.rb → person.rb} +11 -7
- data/lib/br_nfe/product/base.rb +82 -0
- data/lib/br_nfe/product/consulta_status_servico.rb +35 -0
- data/lib/br_nfe/product/emitente.rb +8 -0
- data/lib/br_nfe/product/gateway/base.rb +62 -0
- data/lib/br_nfe/product/gateway/web_service_svrs.rb +39 -0
- data/lib/br_nfe/product/value_nf.rb +9 -0
- data/lib/br_nfe/product/xml/soap_env.xml.slim +8 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/consReciNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/consSitNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/consStatServ_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/enviNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/inutNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/leiauteConsSitNFe_v3.10.xsd +502 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/leiauteConsStatServ_v3.10.xsd +98 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/leiauteInutNFe_v3.10.xsd +193 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/leiauteNFe_v3.10.xsd +6060 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/nfe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/procInutNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/procNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retConsReciNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retConsSitNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retConsStatServ_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retEnviNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/retInutNFe_v3.10.xsd +9 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/tiposBasico_v3.10.xsd +571 -0
- data/lib/br_nfe/product/xml/v3_10/XSD/xmldsig-core-schema_v1.01.xsd +98 -0
- data/lib/br_nfe/product/xml/v3_10/consulta_status_servico.xml.slim +4 -0
- data/lib/br_nfe/service/association/have_intermediario.rb +26 -0
- data/lib/br_nfe/service/association/have_rps.rb +36 -0
- data/lib/br_nfe/service/base.rb +24 -20
- data/lib/br_nfe/service/betha/v1/cancela_nfse.rb +43 -0
- data/lib/br_nfe/service/betha/v1/consulta_lote_rps.rb +20 -6
- data/lib/br_nfe/service/betha/v1/consulta_nfs_por_rps.rb +17 -6
- data/lib/br_nfe/service/betha/v1/consulta_nfse.rb +16 -5
- data/lib/br_nfe/service/betha/v1/consulta_situacao_lote_rps.rb +15 -6
- data/lib/br_nfe/service/betha/v1/gateway.rb +4 -0
- data/lib/br_nfe/service/betha/v1/recepcao_lote_rps.rb +13 -5
- data/lib/br_nfe/service/betha/v1/xml/_tc_identificacao_prestador.xml.slim +3 -0
- data/lib/br_nfe/service/betha/v1/xml/_tc_pedido_cancelamento.xml.slim +4 -0
- data/lib/br_nfe/service/concerns/rules/cancelamento_nfs.rb +8 -0
- data/lib/br_nfe/service/concerns/rules/consulta_nfs_por_rps.rb +1 -1
- data/lib/br_nfe/service/concerns/rules/consulta_nfse.rb +5 -2
- data/lib/br_nfe/service/concerns/values_ts/service_v1.rb +319 -0
- data/lib/br_nfe/service/destinatario.rb +7 -0
- data/lib/br_nfe/service/emitente.rb +8 -0
- data/lib/br_nfe/service/intermediario.rb +1 -12
- data/lib/br_nfe/service/item.rb +7 -7
- data/lib/br_nfe/service/response/build/base.rb +166 -0
- data/lib/br_nfe/service/response/build/cancelamento.rb +62 -0
- data/lib/br_nfe/service/response/build/consulta_lote_rps.rb +25 -0
- data/lib/br_nfe/service/response/build/consulta_nfs_por_rps.rb +25 -0
- data/lib/br_nfe/service/response/build/consulta_nfse.rb +24 -0
- data/lib/br_nfe/service/response/build/consulta_situacao_lote_rps.rb +56 -0
- data/lib/br_nfe/service/response/build/invoice_build.rb +359 -0
- data/lib/br_nfe/service/response/build/recepcao_lote_rps.rb +69 -0
- data/lib/br_nfe/service/response/cancelamento.rb +22 -0
- data/lib/br_nfe/service/response/consulta_lote_rps.rb +18 -0
- data/lib/br_nfe/service/response/consulta_nfs_por_rps.rb +10 -0
- data/lib/br_nfe/service/response/consulta_nfse.rb +10 -0
- data/lib/br_nfe/service/response/consulta_situacao_lote_rps.rb +74 -0
- data/lib/br_nfe/service/response/default.rb +93 -0
- data/lib/br_nfe/{response/service → service/response}/nota_fiscal.rb +19 -12
- data/lib/br_nfe/service/response/paths/v1/tc_nfse.rb +275 -0
- data/lib/br_nfe/service/response/recepcao_lote_rps.rb +35 -0
- data/lib/br_nfe/service/rps.rb +30 -27
- data/lib/br_nfe/service/sc/florianopolis/xml/_service_item.xml.slim +4 -4
- data/lib/br_nfe/service/sc/florianopolis/xml/inf_requisicao.xml.slim +4 -4
- data/lib/br_nfe/service/simpliss/v1/cancela_nfse.rb +16 -6
- data/lib/br_nfe/service/simpliss/v1/consulta_lote_rps.rb +20 -12
- data/lib/br_nfe/service/simpliss/v1/consulta_nfs_por_rps.rb +21 -6
- data/lib/br_nfe/service/simpliss/v1/consulta_nfse.rb +20 -6
- data/lib/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps.rb +17 -6
- data/lib/br_nfe/service/simpliss/v1/recepcao_lote_rps.rb +16 -4
- data/lib/br_nfe/service/simpliss/v1/xml/_tc_item_servico.xml.slim +2 -2
- data/lib/br_nfe/service/thema/v1/cancela_nfse.rb +21 -19
- data/lib/br_nfe/service/thema/v1/consulta_lote_rps.rb +21 -19
- data/lib/br_nfe/service/thema/v1/consulta_nfs_por_rps.rb +25 -18
- data/lib/br_nfe/service/thema/v1/consulta_nfse.rb +20 -20
- data/lib/br_nfe/service/thema/v1/consulta_situacao_lote_rps.rb +14 -20
- data/lib/br_nfe/service/thema/v1/recepcao_lote_rps.rb +11 -16
- data/lib/br_nfe/service/thema/v1/recepcao_lote_rps_limitado.rb +8 -6
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_nfse.xml.slim +1 -1
- data/lib/br_nfe/service/xml/v1/_tc_pedido_cancelamento.xml.slim +1 -1
- data/lib/br_nfe/service/xml/v1/_tc_valores.xml.slim +11 -11
- data/lib/br_nfe/version.rb +1 -1
- data/lib/br_nfe.rb +62 -62
- data/test/br_nfe/association/have_address_test.rb +64 -0
- data/test/br_nfe/association/have_condicao_pagamento_test.rb +75 -0
- data/test/br_nfe/association/have_destinatario_test.rb +76 -0
- data/test/br_nfe/association/have_emitente_test.rb +80 -0
- data/test/br_nfe/base_test.rb +96 -61
- data/test/br_nfe/endereco_test.rb +21 -0
- data/test/br_nfe/person_test.rb +55 -0
- data/test/br_nfe/product/base_test.rb +150 -0
- data/test/br_nfe/product/consulta_status_servico_test.rb +59 -0
- data/test/br_nfe/product/emitente_test.rb +29 -0
- data/test/br_nfe/product/gateway/base_test.rb +16 -0
- data/test/br_nfe/product/gateway/web_service_svrs_test.rb +36 -0
- data/test/br_nfe/service/association/have_intermediario_test.rb +80 -0
- data/test/br_nfe/service/association/have_rps_test.rb +62 -0
- data/test/br_nfe/service/base_test.rb +42 -42
- data/test/br_nfe/service/betha/v1/cancela_nfse_test.rb +90 -0
- data/test/br_nfe/service/betha/v1/consulta_lote_rps_test.rb +105 -5
- data/test/br_nfe/service/betha/v1/consulta_nfs_por_rps_test.rb +103 -5
- data/test/br_nfe/service/betha/v1/consulta_nfse_test.rb +114 -5
- data/test/br_nfe/service/betha/v1/consulta_situacao_lote_rps_test.rb +118 -5
- data/test/br_nfe/service/betha/v1/gateway_test.rb +1 -1
- data/test/br_nfe/service/betha/v1/recepcao_lote_rps_test.rb +51 -5
- data/test/br_nfe/service/concerns/rules/cancelamento_nfs_test.rb +2 -2
- data/test/br_nfe/service/concerns/rules/consulta_nfs_por_rps_test.rb +2 -7
- data/test/br_nfe/service/concerns/rules/consulta_nfse_test.rb +24 -3
- data/test/br_nfe/service/concerns/rules/recepcao_lote_rps_test.rb +1 -1
- data/test/br_nfe/{helper → service/concerns}/values_ts/service_v1_test.rb +2 -2
- data/test/br_nfe/{destinatario_test.rb → service/destinatario_test.rb} +3 -4
- data/test/br_nfe/service/emitente_test.rb +29 -0
- data/test/br_nfe/service/item_test.rb +14 -14
- data/test/br_nfe/service/response/build/base_test.rb +80 -0
- data/test/br_nfe/{response/service → service/response}/default_test.rb +1 -82
- data/test/br_nfe/service/response/nota_fiscal_test.rb +59 -0
- data/test/br_nfe/{response/service → service/response}/paths/v1/tc_nfse_test.rb +10 -10
- data/test/br_nfe/service/rps_test.rb +107 -138
- data/test/br_nfe/service/sc/florianopolis/emission_rps_test.rb +9 -9
- data/test/br_nfe/service/simpliss/v1/base_test.rb +1 -1
- data/test/br_nfe/service/simpliss/v1/cancela_nfse_test.rb +7 -10
- data/test/br_nfe/service/simpliss/v1/consulta_lote_rps_test.rb +11 -18
- data/test/br_nfe/service/simpliss/v1/consulta_nfs_por_rps_test.rb +11 -18
- data/test/br_nfe/service/simpliss/v1/consulta_nfse_test.rb +11 -18
- data/test/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps_test.rb +7 -11
- data/test/br_nfe/service/simpliss/v1/recepcao_lote_rps_test.rb +3 -9
- data/test/br_nfe/service/thema/v1/base_test.rb +1 -1
- data/test/br_nfe/service/thema/v1/cancela_nfse_test.rb +7 -14
- data/test/br_nfe/service/thema/v1/consulta_lote_rps_test.rb +6 -17
- data/test/br_nfe/service/thema/v1/consulta_nfs_por_rps_test.rb +6 -13
- data/test/br_nfe/service/thema/v1/consulta_nfse_test.rb +11 -18
- data/test/br_nfe/service/thema/v1/consulta_situacao_lote_rps_test.rb +7 -11
- data/test/br_nfe/service/thema/v1/recepcao_lote_rps_limitado_test.rb +1 -5
- data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test.rb +3 -9
- data/test/factories/base.rb +0 -1
- data/test/factories/{emitente.rb → person.rb} +1 -1
- data/test/factories/product/base.rb +12 -0
- data/test/factories/product/consulta_status_servico.rb +12 -0
- data/test/factories/product/emitente.rb +15 -0
- data/test/factories/product/gateway/base.rb +5 -0
- data/test/factories/product/gateway/web_service_svrs.rb +5 -0
- data/test/factories/service/betha/v1/{cancelamento_nfs.rb → cancela_nfse.rb} +2 -1
- data/test/factories/service/betha/v1/consulta_lote_rps.rb +1 -1
- data/test/factories/service/betha/v1/consulta_nfs_por_rps.rb +1 -1
- data/test/factories/service/betha/v1/consulta_nfse.rb +1 -1
- data/test/factories/service/betha/v1/consulta_situacao_lote_rps.rb +1 -1
- data/test/factories/{destinatario.rb → service/destinatario.rb} +1 -1
- data/test/factories/service/emitente.rb +15 -0
- data/test/factories/service/item.rb +4 -4
- data/test/factories/service/response/build_response.rb +5 -0
- data/test/factories/service/response/default.rb +6 -0
- data/test/factories/{response/service → service/response}/nota_fiscal.rb +8 -8
- data/test/factories/service/rps.rb +11 -11
- data/test/factories/service/sc/florianopolis/base.rb +1 -1
- data/test/factories/service/sc/florianopolis/cancellation.rb +1 -1
- data/test/factories/service/sc/florianopolis/emission_rps.rb +1 -1
- data/test/factories/service/simpliss/v1/base.rb +1 -1
- data/test/factories/service/simpliss/v1/cancela_nfse.rb +1 -1
- data/test/factories/service/simpliss/v1/consulta_lote_rps.rb +1 -1
- data/test/factories/service/simpliss/v1/consulta_nfs_por_rps.rb +1 -1
- data/test/factories/service/simpliss/v1/consulta_nfse.rb +1 -1
- data/test/factories/service/simpliss/v1/consulta_situacao_lote_rps.rb +1 -1
- data/test/factories/service/simpliss/v1/recepcao_lote_rps.rb +1 -1
- data/test/factories/service/thema/v1/base.rb +1 -1
- data/test/factories/service/thema/v1/cancela_nfse.rb +1 -1
- data/test/factories/service/thema/v1/consulta_lote_rps.rb +1 -1
- data/test/factories/service/thema/v1/consulta_nfs_por_rps.rb +1 -1
- data/test/factories/service/thema/v1/consulta_nfse.rb +1 -1
- data/test/factories/service/thema/v1/consulta_situacao_lote_rps.rb +1 -1
- data/test/factories/service/thema/v1/recepcao_lote_rps.rb +1 -1
- data/test/fixtures/service/response/betha/v1/cancela_nfse/fault.xml +17 -0
- data/test/fixtures/service/response/betha/v1/cancela_nfse/success.xml +48 -0
- data/test/fixtures/service/response/betha/v1/consulta_lote_rps/fault.xml +18 -0
- data/test/fixtures/service/response/betha/v1/consulta_lote_rps/success.xml +108 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse/fault.xml +18 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse/nfs_empty.xml +12 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse/success.xml +115 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse_por_rps/fault.xml +18 -0
- data/test/fixtures/service/response/betha/v1/consulta_nfse_por_rps/success.xml +103 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/error.xml +13 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/fault.xml +17 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/success.xml +13 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unprocessed.xml +13 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unprocessed_by_code_error.xml +17 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unreceived.xml +13 -0
- data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unreceived_by_code_error.xml +17 -0
- data/test/fixtures/service/response/betha/v1/recepcao_lote_rps/error.xml +17 -0
- data/test/fixtures/service/response/betha/v1/recepcao_lote_rps/success.xml +14 -0
- metadata +160 -94
- data/lib/br_nfe/destinatario.rb +0 -26
- data/lib/br_nfe/helper/have_destinatario.rb +0 -18
- data/lib/br_nfe/helper/have_emitente.rb +0 -20
- data/lib/br_nfe/helper/have_intermediario.rb +0 -24
- data/lib/br_nfe/helper/have_rps.rb +0 -34
- data/lib/br_nfe/helper/values_ts/service_v1.rb +0 -317
- data/lib/br_nfe/response/service/build_response.rb +0 -463
- data/lib/br_nfe/response/service/default.rb +0 -185
- data/lib/br_nfe/response/service/paths/base.rb +0 -127
- data/lib/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta.rb +0 -22
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta.rb +0 -25
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta.rb +0 -25
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta.rb +0 -25
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta.rb +0 -31
- data/lib/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta.rb +0 -36
- data/lib/br_nfe/response/service/paths/v1/tc_nfse.rb +0 -271
- data/lib/br_nfe/service/betha/v1/cancelamento_nfs.rb +0 -36
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta.rb +0 -23
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta.rb +0 -21
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +0 -21
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_cancelar_nfse_resposta.rb +0 -22
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_lote_rps_resposta.rb +0 -25
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_nfse_resposta.rb +0 -25
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +0 -25
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_situacao_lote_rps_resposta.rb +0 -31
- data/lib/br_nfe/service/simpliss/v1/response_paths/servico_enviar_lote_rps_resposta.rb +0 -36
- data/lib/br_nfe/service/thema/v1/response_paths/servico_cancelar_nfse_resposta.rb +0 -17
- data/lib/br_nfe/service/thema/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +0 -19
- data/test/br_nfe/emitente_test.rb +0 -46
- data/test/br_nfe/helper/have_address_test.rb +0 -62
- data/test/br_nfe/helper/have_condicao_pagamento_test.rb +0 -71
- data/test/br_nfe/helper/have_destinatario_test.rb +0 -64
- data/test/br_nfe/helper/have_emitente_test.rb +0 -63
- data/test/br_nfe/helper/have_intermediario_test.rb +0 -77
- data/test/br_nfe/helper/have_rps_test.rb +0 -59
- data/test/br_nfe/response/service/build_response_test.rb +0 -205
- data/test/br_nfe/response/service/nota_fiscal_test.rb +0 -41
- data/test/br_nfe/response/service/paths/base_test.rb +0 -196
- data/test/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta_test.rb +0 -25
- data/test/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta_test.rb +0 -30
- data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta_test.rb +0 -30
- data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta_test.rb +0 -30
- data/test/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta_test.rb +0 -30
- data/test/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta_test.rb +0 -34
- data/test/br_nfe/service/betha/v1/cancelamento_nfs_test.rb +0 -54
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta_test.rb +0 -16
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta_test.rb +0 -16
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta_test.rb +0 -16
- data/test/factories/response/service/build_response.rb +0 -5
- data/test/factories/response/service/default.rb +0 -10
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module BrNfe
|
|
2
|
+
module Constants
|
|
3
|
+
CODIGO_IBGE_UF = [
|
|
4
|
+
'11', # Rondônia
|
|
5
|
+
'12', # Acre
|
|
6
|
+
'13', # Amazonas
|
|
7
|
+
'14', # Roraima
|
|
8
|
+
'15', # Pará
|
|
9
|
+
'16', # Amapá
|
|
10
|
+
'17', # Tocantins
|
|
11
|
+
'21', # Maranhão
|
|
12
|
+
'22', # Piauí
|
|
13
|
+
'23', # Ceará
|
|
14
|
+
'24', # Rio Grande do Norte
|
|
15
|
+
'25', # Paraíba
|
|
16
|
+
'26', # Pernambuco
|
|
17
|
+
'27', # Alagoas
|
|
18
|
+
'28', # Sergipe
|
|
19
|
+
'29', # Bahia
|
|
20
|
+
'31', # Minas Gerais
|
|
21
|
+
'32', # Espírito Santo
|
|
22
|
+
'33', # Rio de Janeiro
|
|
23
|
+
'35', # São Paulo
|
|
24
|
+
'41', # Paraná
|
|
25
|
+
'42', # Santa Catarina
|
|
26
|
+
'43', # Rio Grande do Sul
|
|
27
|
+
'50', # Mato Grosso do Sul
|
|
28
|
+
'51', # Mato Grosso
|
|
29
|
+
'52', # Goiás
|
|
30
|
+
'53', # Distrito Federal
|
|
31
|
+
]
|
|
32
|
+
end
|
|
33
|
+
end
|
data/lib/br_nfe/endereco.rb
CHANGED
|
@@ -15,11 +15,21 @@ module BrNfe
|
|
|
15
15
|
attr_accessor :nome_municipio
|
|
16
16
|
attr_accessor :codigo_municipio # IBGE
|
|
17
17
|
attr_accessor :uf
|
|
18
|
+
attr_accessor :codigo_ibge_uf
|
|
18
19
|
attr_accessor :cep
|
|
19
20
|
attr_accessor :codigo_pais # defaul: 1058 (Brasil)
|
|
20
21
|
attr_accessor :nome_pais # defaul: BRASIL
|
|
21
22
|
|
|
23
|
+
# Código IBGE do Estado (UF)
|
|
24
|
+
# Caso não seja setado um valor no atributo, irá pegar os primeiros 2
|
|
25
|
+
# dígitos do código IBGE do município.
|
|
26
|
+
#
|
|
27
|
+
def codigo_ibge_uf
|
|
28
|
+
@codigo_ibge_uf || "#{codigo_municipio}"[0..1]
|
|
29
|
+
end
|
|
30
|
+
|
|
22
31
|
validates :logradouro, :numero, :bairro, :codigo_municipio, :uf, :cep, presence: true
|
|
32
|
+
validates :codigo_ibge_uf, inclusion: {in: BrNfe::Constants::CODIGO_IBGE_UF}, allow_blank: true
|
|
23
33
|
|
|
24
34
|
def is_present?
|
|
25
35
|
logradouro.present? || numero.present? || complemento.present? ||
|
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
module BrNfe
|
|
2
|
-
class
|
|
3
|
-
include BrNfe::
|
|
2
|
+
class Person < BrNfe::ActiveModelBase
|
|
3
|
+
include BrNfe::Association::HaveAddress
|
|
4
4
|
|
|
5
5
|
# Obrigatórios
|
|
6
|
-
attr_accessor :
|
|
7
|
-
|
|
6
|
+
attr_accessor :cpf_cnpj
|
|
7
|
+
alias_attribute :cpf, :cpf_cnpj
|
|
8
|
+
alias_attribute :cnpj, :cpf_cnpj
|
|
8
9
|
attr_accessor :razao_social
|
|
9
|
-
attr_accessor :natureza_operacao
|
|
10
10
|
|
|
11
11
|
#Não obrigatórios
|
|
12
12
|
attr_accessor :nome_fantasia
|
|
13
13
|
attr_accessor :telefone
|
|
14
14
|
attr_accessor :email
|
|
15
|
+
|
|
15
16
|
attr_accessor :regime_especial_tributacao
|
|
17
|
+
attr_accessor :natureza_operacao
|
|
18
|
+
attr_accessor :inscricao_municipal
|
|
19
|
+
attr_accessor :inscricao_estadual
|
|
20
|
+
attr_accessor :inscricao_suframa
|
|
16
21
|
attr_accessor :optante_simples_nacional
|
|
17
22
|
attr_accessor :incentivo_fiscal
|
|
18
23
|
|
|
19
24
|
|
|
20
|
-
validates :
|
|
21
|
-
validate :validar_endereco
|
|
25
|
+
validates :cpf_cnpj, :razao_social, presence: true
|
|
22
26
|
|
|
23
27
|
def razao_social
|
|
24
28
|
"#{@razao_social}".to_valid_format_nf
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
module BrNfe
|
|
2
|
+
module Product
|
|
3
|
+
class Base < BrNfe::Base
|
|
4
|
+
include ValueNf
|
|
5
|
+
|
|
6
|
+
def certificado_obrigatorio?
|
|
7
|
+
true
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Para as Notas fiscais de produto a autenticação via SSL é obrigatória
|
|
11
|
+
def ssl_request?
|
|
12
|
+
true
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# O Gateway é responsável de identificar o Webservice de acordo com o Estado(UF).
|
|
16
|
+
# Irá identificar o webservice através do valor do método `ibge_code_of_issuer_uf`,
|
|
17
|
+
# na qual pode ser setado diretamente ou pego através do endereço do emissor.
|
|
18
|
+
# Para ver a lista de WebService por estado acesse: http://www.nfe.fazenda.gov.br/portal/webServices.aspx
|
|
19
|
+
#
|
|
20
|
+
# <b>Tipo de retorno: </b> _Object (Gateway::Base ou derivados)_
|
|
21
|
+
#
|
|
22
|
+
def gateway
|
|
23
|
+
case ibge_code_of_issuer_uf
|
|
24
|
+
when '12', '27', '16', '53', '32', '25', '33', '24', '43', '11', '14', '42', '28', '17'
|
|
25
|
+
BrNfe::Product::Gateway::WebServiceSVRS.new({env: env})
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Valor utilizado para inserir a url do xmlns nas tags nfeCabecMsg e nfeDadosMsg.
|
|
30
|
+
# Como a url pode variar de acordo com o tipo de serviço e UF, deve ser sobrescrita
|
|
31
|
+
# na subclass de cada serviço.
|
|
32
|
+
#
|
|
33
|
+
# <b>Tipo de retorno: </b> _String_
|
|
34
|
+
#
|
|
35
|
+
def url_xmlns
|
|
36
|
+
raise "O método #url_xmlns deve ser implementar em cada operação"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Irá retornar a versão setada de acordo com o serviço e estado.
|
|
40
|
+
# Deve ser sobrescrito para cada serviço e irá pegar a versão do XML
|
|
41
|
+
# de acordo com o Estado e Serviço, conforme descrito em: http://www.nfe.fazenda.gov.br/portal/webServices.aspx
|
|
42
|
+
#
|
|
43
|
+
# <b>Tipo de retorno: </b> _Symbol_
|
|
44
|
+
#
|
|
45
|
+
def gateway_xml_version
|
|
46
|
+
raise "O método #gateway_xml_version deve ser implementar em cada operação"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Versão do XML utilizado na requisição.
|
|
50
|
+
# Como a versão do XML pode divergir para cada estado/servidor e serviço,
|
|
51
|
+
# é necessário passar a versão do XML na requisição para o servidor saber qual
|
|
52
|
+
# validação aplicar e como pegar os dados.
|
|
53
|
+
# Esse método tem o intuíto de pegar a versão setada no Gateway de cada UF e serviço
|
|
54
|
+
# e transformar em uma String aplicável no XML.
|
|
55
|
+
# Exemplo:
|
|
56
|
+
# Se a versão do xml for :v3_10
|
|
57
|
+
# Esse método irá transformar o valor em '3.10'
|
|
58
|
+
#
|
|
59
|
+
# <b>Tipo de retorno: </b> _String_
|
|
60
|
+
#
|
|
61
|
+
def xml_version
|
|
62
|
+
"#{gateway_xml_version}".gsub('_','.').gsub(/[^\d\.]/,'')
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Declaro que o método `render_xml` irá verificar os arquivos também presentes
|
|
66
|
+
# nos diretórios especificados
|
|
67
|
+
#
|
|
68
|
+
# <b>Tipo de retorno: </b> _Array_
|
|
69
|
+
def xml_current_dir_path
|
|
70
|
+
["#{BrNfe.root}/lib/br_nfe/product/xml/#{gateway_xml_version}", "#{BrNfe.root}/lib/br_nfe/product/xml"]+super
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def request
|
|
74
|
+
client_wsdl.call(method_wsdl, xml: soap_xml)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def emitente_class
|
|
78
|
+
BrNfe.emitente_product_class
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module BrNfe
|
|
2
|
+
module Product
|
|
3
|
+
class ConsultaStatusServico < BrNfe::Product::Base
|
|
4
|
+
# URL que será setada no atribto xmlns do XML;
|
|
5
|
+
# Ex:
|
|
6
|
+
# nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2"
|
|
7
|
+
def url_xmlns
|
|
8
|
+
gateway.url_xmlns_status_servico
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# URL do webservice para enviar as informações.
|
|
12
|
+
# Ex:
|
|
13
|
+
# https://www.sefazvirtual.fazenda.gov.br/NfeInutilizacao2/NfeInutilizacao2.asmx?wsdl
|
|
14
|
+
def wsdl
|
|
15
|
+
gateway.wsdl_status_servico
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Método SOAP que será chamado para enviar o XML
|
|
19
|
+
def method_wsdl
|
|
20
|
+
gateway.operation_status_servico
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Versão utilizada pelo webservice do estado para determinada ação.
|
|
24
|
+
def gateway_xml_version
|
|
25
|
+
gateway.version_xml_status_servico
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# XML que será enviado no body da requisição SOAP contendo as informações
|
|
29
|
+
# específicas de cada operação.
|
|
30
|
+
def xml_builder
|
|
31
|
+
render_xml 'consulta_status_servico'
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
module BrNfe
|
|
2
|
+
module Product
|
|
3
|
+
module Gateway
|
|
4
|
+
class Base < BrNfe::ActiveModelBase
|
|
5
|
+
|
|
6
|
+
attr_accessor :env
|
|
7
|
+
|
|
8
|
+
def env_production?; env == :production end
|
|
9
|
+
|
|
10
|
+
##########################################################################################
|
|
11
|
+
################################ NFE STATUS SERVIÇO ####################################
|
|
12
|
+
# Serviço destinado à consulta do status do serviço prestado pelo
|
|
13
|
+
# Portal da Secretaria de Fazenda Estadual
|
|
14
|
+
# Traduzindo: Utilizado para saber se o SEFAZ do estado está em operação
|
|
15
|
+
#
|
|
16
|
+
# O processamento do pedido de consulta de status de Serviço pode resultar em uma
|
|
17
|
+
# mensagem de erro ou retornar a situação atual do Servidor de Processamento, códigos de
|
|
18
|
+
# situação
|
|
19
|
+
# + 107 - Serviço em Operação
|
|
20
|
+
# + 108 - Serviço Paralisado Temporariamente
|
|
21
|
+
# + 109 - Serviço Paralisado sem Previsão
|
|
22
|
+
# A critério da UF o campo xObs pode ser utilizado para
|
|
23
|
+
# fornecer maiores informações ao contribuinte, como por exemplo: “manutenção programada”,
|
|
24
|
+
# “modificação de versão do aplicativo”, “previsão de retorno”, etc.
|
|
25
|
+
#
|
|
26
|
+
# Processo: síncrono.
|
|
27
|
+
# Método: nfeStatusServico
|
|
28
|
+
def wsdl_status_servico
|
|
29
|
+
raise "O método #wsdl_status_servico deve ser implementado no webservice de cada estado"
|
|
30
|
+
end
|
|
31
|
+
def operation_status_servico
|
|
32
|
+
raise "O método #operation_status_servico deve ser implementado no webservice de cada estado"
|
|
33
|
+
end
|
|
34
|
+
def version_xml_status_servico
|
|
35
|
+
raise "O método #version_xml_status_servico deve ser implementado no webservice de cada estado"
|
|
36
|
+
end
|
|
37
|
+
# URL que é adicionado nas tags Header/nfeCabecMsg e Body/nfeDadosMsg
|
|
38
|
+
def url_xmlns_status_servico
|
|
39
|
+
raise "O método #url_xmlns_status_servico deve ser implementado no webservice de cada estado"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
##########################################################################################
|
|
43
|
+
################################ NFE AUTORIZAÇÃO #######################################
|
|
44
|
+
# Serviço destinado à recepção de mensagens de lote de NF-e.
|
|
45
|
+
# Traduzindo: Serviço destinando a enviar as notas fiscais para o SEFAZ
|
|
46
|
+
#
|
|
47
|
+
# Processo: assíncrono.
|
|
48
|
+
# Método: nfeAutorizacaoLote
|
|
49
|
+
#
|
|
50
|
+
def wsdl_autorizacao
|
|
51
|
+
end
|
|
52
|
+
def operation_autorizacao
|
|
53
|
+
end
|
|
54
|
+
def version_xml_autorizacao
|
|
55
|
+
end
|
|
56
|
+
# URL que é adicionado nas tags Header/nfeCabecMsg e Body/nfeDadosMsg
|
|
57
|
+
def url_xmlns_autorizacao
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module BrNfe
|
|
2
|
+
module Product
|
|
3
|
+
module Gateway
|
|
4
|
+
class WebServiceSVRS < Base
|
|
5
|
+
|
|
6
|
+
##########################################################################################
|
|
7
|
+
################################ NFE STATUS SERVIÇO ####################################
|
|
8
|
+
def wsdl_status_servico
|
|
9
|
+
if env_production?
|
|
10
|
+
'https://nfe.sefazrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx?wsdl'
|
|
11
|
+
else
|
|
12
|
+
'https://nfe-homologacao.svrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx?wsdl'
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
def operation_status_servico
|
|
16
|
+
:nfe_status_servico_nf2
|
|
17
|
+
end
|
|
18
|
+
def version_xml_status_servico
|
|
19
|
+
:v3_10
|
|
20
|
+
end
|
|
21
|
+
def url_xmlns_status_servico
|
|
22
|
+
'http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2'
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
##########################################################################################
|
|
26
|
+
################################ NFE AUTORIZAÇÃO #######################################
|
|
27
|
+
# def wsdl_autorizacao
|
|
28
|
+
# 'https://nfe.svrs.rs.gov.br/ws/NfeAutorizacao/NFeAutorizacao.asmx?wsdl'
|
|
29
|
+
# end
|
|
30
|
+
# def operation_autorizacao
|
|
31
|
+
# :nfe_autorizacao_lote
|
|
32
|
+
# end
|
|
33
|
+
# def version_xml_autorizacao
|
|
34
|
+
# :v3_10
|
|
35
|
+
# end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
2
|
+
soap:Header
|
|
3
|
+
nfeCabecMsg xmlns="#{url_xmlns}"
|
|
4
|
+
cUF = ibge_code_of_issuer_uf
|
|
5
|
+
versaoDados = xml_version
|
|
6
|
+
soap:Body
|
|
7
|
+
nfeDadosMsg xmlns="#{url_xmlns}"
|
|
8
|
+
= content_xml.html_safe
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.portalfiscal.inf.br/nfe" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
|
3
|
+
<xs:include schemaLocation="leiauteNFe_v3.10.xsd"/>
|
|
4
|
+
<xs:element name="consReciNFe" type="TConsReciNFe">
|
|
5
|
+
<xs:annotation>
|
|
6
|
+
<xs:documentation>Schema XML de validação do Pedido de Consulta do Recido do Lote de Notas Fiscais Eletrônicas</xs:documentation>
|
|
7
|
+
</xs:annotation>
|
|
8
|
+
</xs:element>
|
|
9
|
+
</xs:schema>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.portalfiscal.inf.br/nfe" targetNamespace="http://www.portalfiscal.inf.br/nfe" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
|
3
|
+
<xs:include schemaLocation="leiauteConsSitNFe_v3.10.xsd"/>
|
|
4
|
+
<xs:element name="consSitNFe" type="TConsSitNFe">
|
|
5
|
+
<xs:annotation>
|
|
6
|
+
<xs:documentation>Schema de validação XML dp Pedido de Consulta da Situação Atual da Nota Fiscal Eletrônica</xs:documentation>
|
|
7
|
+
</xs:annotation>
|
|
8
|
+
</xs:element>
|
|
9
|
+
</xs:schema>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.portalfiscal.inf.br/nfe" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
|
3
|
+
<xs:include schemaLocation="leiauteConsStatServ_v3.10.xsd"/>
|
|
4
|
+
<xs:element name="consStatServ" type="TConsStatServ">
|
|
5
|
+
<xs:annotation>
|
|
6
|
+
<xs:documentation>Schema XML de validação do Pedido de Consulta do Status do Serviço</xs:documentation>
|
|
7
|
+
</xs:annotation>
|
|
8
|
+
</xs:element>
|
|
9
|
+
</xs:schema>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.portalfiscal.inf.br/nfe" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
|
3
|
+
<xs:include schemaLocation="leiauteNFe_v3.10.xsd"/>
|
|
4
|
+
<xs:element name="enviNFe" type="TEnviNFe">
|
|
5
|
+
<xs:annotation>
|
|
6
|
+
<xs:documentation>Schema XML de validação do Pedido de Concessão de Autorização da Nota Fiscal Eletrônica</xs:documentation>
|
|
7
|
+
</xs:annotation>
|
|
8
|
+
</xs:element>
|
|
9
|
+
</xs:schema>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.portalfiscal.inf.br/nfe" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
|
3
|
+
<xs:include schemaLocation="leiauteInutNFe_v3.10.xsd"/>
|
|
4
|
+
<xs:element name="inutNFe" type="TInutNFe">
|
|
5
|
+
<xs:annotation>
|
|
6
|
+
<xs:documentation>Schema XML de validação do Pedido de Inutilização de Numeração da Nota Fiscal Eletrônica</xs:documentation>
|
|
7
|
+
</xs:annotation>
|
|
8
|
+
</xs:element>
|
|
9
|
+
</xs:schema>
|