br_nfe 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|