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,98 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- ***************************************************-->
|
|
3
|
+
<!-- *** Schema específico para assinaturas XML ***-->
|
|
4
|
+
<!-- *** a partir de certificados do padrão (X509) ***-->
|
|
5
|
+
<!-- *** ICP-Brasil - Projeto Nota Fiscal Eletrônica ***-->
|
|
6
|
+
<!-- ***************************************************-->
|
|
7
|
+
<!-- Schema for XML Signatures-->
|
|
8
|
+
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.1">
|
|
9
|
+
<element name="Signature" type="ds:SignatureType"/>
|
|
10
|
+
<complexType name="SignatureType">
|
|
11
|
+
<sequence>
|
|
12
|
+
<element name="SignedInfo" type="ds:SignedInfoType"/>
|
|
13
|
+
<element name="SignatureValue" type="ds:SignatureValueType"/>
|
|
14
|
+
<element name="KeyInfo" type="ds:KeyInfoType"/>
|
|
15
|
+
</sequence>
|
|
16
|
+
<attribute name="Id" type="ID" use="optional"/>
|
|
17
|
+
</complexType>
|
|
18
|
+
<complexType name="SignatureValueType">
|
|
19
|
+
<simpleContent>
|
|
20
|
+
<extension base="base64Binary">
|
|
21
|
+
<attribute name="Id" type="ID" use="optional"/>
|
|
22
|
+
</extension>
|
|
23
|
+
</simpleContent>
|
|
24
|
+
</complexType>
|
|
25
|
+
<complexType name="SignedInfoType">
|
|
26
|
+
<sequence>
|
|
27
|
+
<element name="CanonicalizationMethod">
|
|
28
|
+
<complexType>
|
|
29
|
+
<attribute name="Algorithm" type="anyURI" use="required" fixed="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
|
|
30
|
+
</complexType>
|
|
31
|
+
</element>
|
|
32
|
+
<element name="SignatureMethod">
|
|
33
|
+
<complexType>
|
|
34
|
+
<attribute name="Algorithm" type="anyURI" use="required" fixed="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
|
|
35
|
+
</complexType>
|
|
36
|
+
</element>
|
|
37
|
+
<element name="Reference" type="ds:ReferenceType"/>
|
|
38
|
+
</sequence>
|
|
39
|
+
<attribute name="Id" type="ID" use="optional"/>
|
|
40
|
+
</complexType>
|
|
41
|
+
<complexType name="ReferenceType">
|
|
42
|
+
<sequence>
|
|
43
|
+
<element name="Transforms" type="ds:TransformsType">
|
|
44
|
+
<!-- Garante a unicidade do atributo -->
|
|
45
|
+
<unique name="unique_Transf_Alg">
|
|
46
|
+
<selector xpath="./*"/>
|
|
47
|
+
<field xpath="@Algorithm"/>
|
|
48
|
+
</unique>
|
|
49
|
+
</element>
|
|
50
|
+
<element name="DigestMethod">
|
|
51
|
+
<complexType>
|
|
52
|
+
<attribute name="Algorithm" type="anyURI" use="required" fixed="http://www.w3.org/2000/09/xmldsig#sha1"/>
|
|
53
|
+
</complexType>
|
|
54
|
+
</element>
|
|
55
|
+
<element name="DigestValue" type="ds:DigestValueType"/>
|
|
56
|
+
</sequence>
|
|
57
|
+
<attribute name="Id" type="ID" use="optional"/>
|
|
58
|
+
<attribute name="URI" use="required">
|
|
59
|
+
<simpleType>
|
|
60
|
+
<restriction base="anyURI">
|
|
61
|
+
<minLength value="2"/>
|
|
62
|
+
</restriction>
|
|
63
|
+
</simpleType>
|
|
64
|
+
</attribute>
|
|
65
|
+
<attribute name="Type" type="anyURI" use="optional"/>
|
|
66
|
+
</complexType>
|
|
67
|
+
<complexType name="TransformsType">
|
|
68
|
+
<sequence>
|
|
69
|
+
<element name="Transform" type="ds:TransformType" minOccurs="2" maxOccurs="2"/>
|
|
70
|
+
</sequence>
|
|
71
|
+
</complexType>
|
|
72
|
+
<complexType name="TransformType">
|
|
73
|
+
<sequence minOccurs="0" maxOccurs="unbounded">
|
|
74
|
+
<element name="XPath" type="string"/>
|
|
75
|
+
</sequence>
|
|
76
|
+
<attribute name="Algorithm" type="ds:TTransformURI" use="required"/>
|
|
77
|
+
</complexType>
|
|
78
|
+
<complexType name="KeyInfoType">
|
|
79
|
+
<sequence>
|
|
80
|
+
<element name="X509Data" type="ds:X509DataType"/>
|
|
81
|
+
</sequence>
|
|
82
|
+
<attribute name="Id" type="ID" use="optional"/>
|
|
83
|
+
</complexType>
|
|
84
|
+
<complexType name="X509DataType">
|
|
85
|
+
<sequence>
|
|
86
|
+
<element name="X509Certificate" type="base64Binary"/>
|
|
87
|
+
</sequence>
|
|
88
|
+
</complexType>
|
|
89
|
+
<simpleType name="DigestValueType">
|
|
90
|
+
<restriction base="base64Binary"/>
|
|
91
|
+
</simpleType>
|
|
92
|
+
<simpleType name="TTransformURI">
|
|
93
|
+
<restriction base="anyURI">
|
|
94
|
+
<enumeration value="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
|
|
95
|
+
<enumeration value="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
|
|
96
|
+
</restriction>
|
|
97
|
+
</simpleType>
|
|
98
|
+
</schema>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module BrNfe
|
|
2
|
+
module Service
|
|
3
|
+
module Association
|
|
4
|
+
module HaveIntermediario
|
|
5
|
+
def intermediario
|
|
6
|
+
yield(intermediario || new_intermediario) if block_given?
|
|
7
|
+
@intermediario.is_a?(BrNfe.intermediario_service_class) ? @intermediario : nil
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def intermediario=(value)
|
|
11
|
+
if value.is_a?(BrNfe.intermediario_service_class) || value.nil?
|
|
12
|
+
@intermediario = value
|
|
13
|
+
elsif value.is_a?(Hash)
|
|
14
|
+
intermediario ? intermediario.assign_attributes(value) : new_intermediario(value)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
protected
|
|
19
|
+
|
|
20
|
+
def new_intermediario(params={})
|
|
21
|
+
@intermediario = BrNfe.intermediario_service_class.new(params)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module BrNfe
|
|
2
|
+
module Service
|
|
3
|
+
module Association
|
|
4
|
+
module HaveRps
|
|
5
|
+
def rps
|
|
6
|
+
yield rps if block_given?
|
|
7
|
+
@rps.is_a?(BrNfe.rps_class) ? @rps : @rps = BrNfe.rps_class.new
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def rps=(value)
|
|
11
|
+
if value.is_a?(BrNfe.rps_class) || value.nil?
|
|
12
|
+
@rps = value
|
|
13
|
+
elsif value.is_a?(Hash)
|
|
14
|
+
rps.assign_attributes(value)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
protected
|
|
19
|
+
|
|
20
|
+
def validate_rps
|
|
21
|
+
if rps.invalid?
|
|
22
|
+
rps.errors.full_messages.map{|msg| errors.add(:rps, msg) }
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def valida_rps_recepcao
|
|
27
|
+
rps.validar_recepcao_rps = true
|
|
28
|
+
if rps.invalid?
|
|
29
|
+
rps.errors.full_messages.map{|msg| errors.add(:base, "RPS: #{msg}") }
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
data/lib/br_nfe/service/base.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module BrNfe
|
|
2
2
|
module Service
|
|
3
3
|
class Base < BrNfe::Base
|
|
4
|
-
include BrNfe::
|
|
4
|
+
include BrNfe::Service::Concerns::ValuesTs::ServiceV1
|
|
5
5
|
|
|
6
6
|
# Alguns orgãos emissores necessitam que seja
|
|
7
7
|
# passado junto ao XML o Usuário e Senha do acesso do sistema
|
|
@@ -10,12 +10,6 @@ module BrNfe
|
|
|
10
10
|
attr_accessor :username
|
|
11
11
|
attr_accessor :password
|
|
12
12
|
|
|
13
|
-
# Código IBGE da cidade emitente
|
|
14
|
-
attr_accessor :ibge_code_of_issuer_city
|
|
15
|
-
def ibge_code_of_issuer_city
|
|
16
|
-
"#{@ibge_code_of_issuer_city ||= emitente.endereco.codigo_municipio}"
|
|
17
|
-
end
|
|
18
|
-
|
|
19
13
|
# Declaro que o método `render_xml` irá verificar os arquivos também presentes
|
|
20
14
|
# no diretório especificado
|
|
21
15
|
#
|
|
@@ -43,19 +37,29 @@ module BrNfe
|
|
|
43
37
|
end
|
|
44
38
|
|
|
45
39
|
def request
|
|
46
|
-
|
|
40
|
+
@original_response = client_wsdl.call(method_wsdl, xml: soap_xml)
|
|
41
|
+
set_response
|
|
47
42
|
rescue Savon::SOAPFault => error
|
|
48
|
-
return @response =
|
|
43
|
+
return @response = response_class.new(status: :soap_error, error_messages: [error.message])
|
|
49
44
|
rescue Savon::HTTPError => error
|
|
50
|
-
return @response =
|
|
45
|
+
return @response = response_class.new(status: :http_error, error_messages: [error.message])
|
|
51
46
|
rescue Exception => error
|
|
52
|
-
return @response =
|
|
47
|
+
return @response = response_class.new(status: :unknown_error, error_messages: [error.message])
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
private
|
|
51
|
+
|
|
52
|
+
def emitente_class
|
|
53
|
+
BrNfe.emitente_service_class
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def response_class
|
|
57
|
+
BrNfe::Service::Response::Default
|
|
53
58
|
end
|
|
54
59
|
|
|
55
|
-
def set_response
|
|
56
|
-
@
|
|
57
|
-
|
|
58
|
-
savon_response: resp, # Rsposta da requisição SOAP
|
|
60
|
+
def set_response
|
|
61
|
+
@response = BrNfe::Service::Response::Build::Base.new(
|
|
62
|
+
savon_response: @original_response, # Rsposta da requisição SOAP
|
|
59
63
|
keys_root_path: response_root_path, # Caminho inicial da resposta / Chave pai principal
|
|
60
64
|
nfe_xml_path: nfse_xml_path, # Caminho para encontrar a NF dentro do XML
|
|
61
65
|
body_xml_path: body_xml_path,
|
|
@@ -93,18 +97,18 @@ module BrNfe
|
|
|
93
97
|
invoice_cnae_code_path: response_invoice_cnae_code_path,
|
|
94
98
|
invoice_description_path: response_invoice_description_path,
|
|
95
99
|
invoice_codigo_municipio_path: response_invoice_codigo_municipio_path,
|
|
96
|
-
|
|
97
|
-
|
|
100
|
+
invoice_valor_total_servicos_path: response_invoice_valor_total_servicos_path,
|
|
101
|
+
invoice_deducoes_path: response_invoice_deducoes_path,
|
|
98
102
|
invoice_valor_pis_path: response_invoice_valor_pis_path,
|
|
99
103
|
invoice_valor_cofins_path: response_invoice_valor_cofins_path,
|
|
100
104
|
invoice_valor_inss_path: response_invoice_valor_inss_path,
|
|
101
105
|
invoice_valor_ir_path: response_invoice_valor_ir_path,
|
|
102
106
|
invoice_valor_csll_path: response_invoice_valor_csll_path,
|
|
103
|
-
|
|
107
|
+
invoice_iss_retido_path: response_invoice_iss_retido_path,
|
|
104
108
|
invoice_outras_retencoes_path: response_invoice_outras_retencoes_path,
|
|
105
109
|
invoice_total_iss_path: response_invoice_total_iss_path,
|
|
106
|
-
|
|
107
|
-
|
|
110
|
+
invoice_base_calculo_path: response_invoice_base_calculo_path,
|
|
111
|
+
invoice_iss_aliquota_path: response_invoice_iss_aliquota_path,
|
|
108
112
|
invoice_valor_liquido_path: response_invoice_valor_liquido_path,
|
|
109
113
|
invoice_desconto_condicionado_path: response_invoice_desconto_condicionado_path,
|
|
110
114
|
invoice_desconto_incondicionado_path: response_invoice_desconto_incondicionado_path,
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
module BrNfe
|
|
2
|
+
module Service
|
|
3
|
+
module Betha
|
|
4
|
+
module V1
|
|
5
|
+
class CancelaNfse < BrNfe::Service::Betha::V1::Gateway
|
|
6
|
+
include BrNfe::Service::Concerns::Rules::CancelamentoNfs
|
|
7
|
+
|
|
8
|
+
def certificado_obrigatorio?
|
|
9
|
+
true
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def wsdl
|
|
13
|
+
"http://e-gov.betha.com.br/e-nota-contribuinte-#{'test-' if env == :test}ws/cancelarNfseV02?wsdl"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def method_wsdl
|
|
17
|
+
:cancelar_nfse_envio
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def xml_builder
|
|
21
|
+
render_xml 'servico_cancelar_nfse_envio'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
|
|
26
|
+
def set_response
|
|
27
|
+
@response = BrNfe::Service::Response::Build::Cancelamento.new(
|
|
28
|
+
savon_response: @original_response, # Rsposta da requisição SOAP
|
|
29
|
+
keys_root_path: [:cancelar_nfse_envio_response], # Caminho inicial da resposta / Chave pai principal
|
|
30
|
+
body_xml_path: nil,
|
|
31
|
+
xml_encode: response_encoding, # Codificação do xml de resposta
|
|
32
|
+
data_hora_cancelamento_path: [:cancelar_nfse_resposta, :cancelamento, :confirmacao, :inf_confirmacao_cancelamento, :data_hora],
|
|
33
|
+
codigo_cancelamento_path: [:cancelar_nfse_resposta, :cancelamento, :confirmacao, :pedido, :inf_pedido_cancelamento, :codigo_cancelamento],
|
|
34
|
+
numero_nfs_path: [:cancelar_nfse_resposta, :cancelamento, :confirmacao, :pedido, :inf_pedido_cancelamento, :identificacao_nfse, :numero],
|
|
35
|
+
message_errors_path: [:cancelar_nfse_resposta, :lista_mensagem_retorno, :mensagem_retorno]
|
|
36
|
+
).response
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -3,8 +3,7 @@ module BrNfe
|
|
|
3
3
|
module Betha
|
|
4
4
|
module V1
|
|
5
5
|
class ConsultaLoteRps < BrNfe::Service::Betha::V1::Gateway
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
|
|
8
7
|
attr_accessor :protocolo
|
|
9
8
|
|
|
10
9
|
validates :protocolo, presence: true
|
|
@@ -17,13 +16,28 @@ module BrNfe
|
|
|
17
16
|
:consultar_lote_rps_envio
|
|
18
17
|
end
|
|
19
18
|
|
|
20
|
-
def response_root_path
|
|
21
|
-
[:consultar_lote_rps_envio_response]
|
|
22
|
-
end
|
|
23
|
-
|
|
24
19
|
def xml_builder
|
|
25
20
|
render_xml 'servico_consultar_lote_rps_envio'
|
|
26
21
|
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
def set_response
|
|
25
|
+
@response = BrNfe::Service::Response::Build::ConsultaLoteRps.new(
|
|
26
|
+
savon_response: @original_response, # Rsposta da requisição SOAP
|
|
27
|
+
keys_root_path: [:consultar_lote_rps_envio_response], # Caminho inicial da resposta / Chave pai principal
|
|
28
|
+
body_xml_path: nil,
|
|
29
|
+
xml_encode: response_encoding, # Codificação do xml de resposta
|
|
30
|
+
|
|
31
|
+
#//Envelope/Body/ConsultarLoteRpsEnvioResponse/ConsultarLoteRpsResposta
|
|
32
|
+
nfe_xml_path: '//*/*/*/*',
|
|
33
|
+
|
|
34
|
+
invoices_path: [:consultar_lote_rps_resposta, :lista_nfse, :compl_nfse],
|
|
35
|
+
invoice_url_nf_path: [:nfse, :inf_nfse, :outras_informacoes]
|
|
36
|
+
).response
|
|
37
|
+
end
|
|
38
|
+
def response_class
|
|
39
|
+
BrNfe::Service::Response::ConsultaLoteRps
|
|
40
|
+
end
|
|
27
41
|
end
|
|
28
42
|
end
|
|
29
43
|
end
|
|
@@ -4,8 +4,7 @@ module BrNfe
|
|
|
4
4
|
module V1
|
|
5
5
|
class ConsultaNfsPorRps < BrNfe::Service::Betha::V1::Gateway
|
|
6
6
|
include BrNfe::Service::Concerns::Rules::ConsultaNfsPorRps
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
|
|
9
8
|
def wsdl
|
|
10
9
|
"http://e-gov.betha.com.br/e-nota-contribuinte-#{'test-' if env == :test}ws/consultarNfsePorRps?wsdl"
|
|
11
10
|
end
|
|
@@ -14,13 +13,25 @@ module BrNfe
|
|
|
14
13
|
:consultar_nfse_por_rps_envio
|
|
15
14
|
end
|
|
16
15
|
|
|
17
|
-
def response_root_path
|
|
18
|
-
[:consultar_nfse_rps_envio_response]
|
|
19
|
-
end
|
|
20
|
-
|
|
21
16
|
def xml_builder
|
|
22
17
|
render_xml 'servico_consultar_nfse_rps_envio'
|
|
23
18
|
end
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
def set_response
|
|
22
|
+
@response = BrNfe::Service::Response::Build::ConsultaNfsPorRps.new(
|
|
23
|
+
savon_response: @original_response, # Rsposta da requisição SOAP
|
|
24
|
+
keys_root_path: [:consultar_nfse_rps_envio_response], # Caminho inicial da resposta / Chave pai principal
|
|
25
|
+
body_xml_path: nil,
|
|
26
|
+
xml_encode: response_encoding, # Codificação do xml de resposta
|
|
27
|
+
#//Envelope/Body/ConsultarLoteRpsEnvioResponse/ConsultarLoteRpsResposta
|
|
28
|
+
nfe_xml_path: '//*/*/*/*',
|
|
29
|
+
invoice_url_nf_path: [:nfse, :inf_nfse, :outras_informacoes]
|
|
30
|
+
).response
|
|
31
|
+
end
|
|
32
|
+
def response_class
|
|
33
|
+
BrNfe::Service::Response::ConsultaNfsPorRps
|
|
34
|
+
end
|
|
24
35
|
|
|
25
36
|
end
|
|
26
37
|
end
|
|
@@ -4,7 +4,6 @@ module BrNfe
|
|
|
4
4
|
module V1
|
|
5
5
|
class ConsultaNfse < BrNfe::Service::Betha::V1::Gateway
|
|
6
6
|
include BrNfe::Service::Concerns::Rules::ConsultaNfse
|
|
7
|
-
include BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarNfseResposta
|
|
8
7
|
|
|
9
8
|
def wsdl
|
|
10
9
|
"http://e-gov.betha.com.br/e-nota-contribuinte-#{'test-' if env == :test}ws/consultarNfse?wsdl"
|
|
@@ -14,14 +13,26 @@ module BrNfe
|
|
|
14
13
|
:consultar_nfse_envio
|
|
15
14
|
end
|
|
16
15
|
|
|
17
|
-
def response_root_path
|
|
18
|
-
[:consultar_nfse_envio_response]
|
|
19
|
-
end
|
|
20
|
-
|
|
21
16
|
def xml_builder
|
|
22
17
|
render_xml 'servico_consultar_nfse_envio'
|
|
23
18
|
end
|
|
19
|
+
private
|
|
24
20
|
|
|
21
|
+
def set_response
|
|
22
|
+
@response = BrNfe::Service::Response::Build::ConsultaNfse.new(
|
|
23
|
+
savon_response: @original_response, # Rsposta da requisição SOAP
|
|
24
|
+
keys_root_path: [:consultar_nfse_envio_response], # Caminho inicial da resposta / Chave pai principal
|
|
25
|
+
body_xml_path: nil,
|
|
26
|
+
xml_encode: response_encoding, # Codificação do xml de resposta
|
|
27
|
+
|
|
28
|
+
#//Envelope/Body/ConsultarLoteRpsEnvioResponse/ConsultarLoteRpsResposta
|
|
29
|
+
nfe_xml_path: '//*/*/*/*',
|
|
30
|
+
invoice_url_nf_path: [:nfse, :inf_nfse, :outras_informacoes]
|
|
31
|
+
).response
|
|
32
|
+
end
|
|
33
|
+
def response_class
|
|
34
|
+
BrNfe::Service::Response::ConsultaNfse
|
|
35
|
+
end
|
|
25
36
|
end
|
|
26
37
|
end
|
|
27
38
|
end
|
|
@@ -3,8 +3,6 @@ module BrNfe
|
|
|
3
3
|
module Betha
|
|
4
4
|
module V1
|
|
5
5
|
class ConsultaSituacaoLoteRps < BrNfe::Service::Betha::V1::ConsultaLoteRps
|
|
6
|
-
include BrNfe::Service::Response::Paths::V1::ServicoConsultarSituacaoLoteRpsResposta
|
|
7
|
-
|
|
8
6
|
def wsdl
|
|
9
7
|
"http://e-gov.betha.com.br/e-nota-contribuinte-#{'test-' if env == :test}ws/consultarSituacaoLoteRps?wsdl"
|
|
10
8
|
end
|
|
@@ -13,14 +11,25 @@ module BrNfe
|
|
|
13
11
|
:consultar_situacao_lote_rps_envio
|
|
14
12
|
end
|
|
15
13
|
|
|
16
|
-
def response_root_path
|
|
17
|
-
[:consultar_situacao_lote_rps_envio_response]
|
|
18
|
-
end
|
|
19
|
-
|
|
20
14
|
def xml_builder
|
|
21
15
|
render_xml 'servico_consultar_situacao_lote_rps_envio'
|
|
22
16
|
end
|
|
23
17
|
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def response_class
|
|
21
|
+
BrNfe::Service::Response::ConsultaSituacaoLoteRps
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def set_response
|
|
25
|
+
@response = BrNfe::Service::Response::Build::ConsultaSituacaoLoteRps.new(
|
|
26
|
+
savon_response: @original_response, # Rsposta da requisição SOAP
|
|
27
|
+
keys_root_path: [:consultar_situacao_lote_rps_envio_response],
|
|
28
|
+
body_xml_path: nil,
|
|
29
|
+
xml_encode: response_encoding, # Codificação do xml de resposta
|
|
30
|
+
).response
|
|
31
|
+
end
|
|
32
|
+
|
|
24
33
|
end
|
|
25
34
|
end
|
|
26
35
|
end
|
|
@@ -4,7 +4,6 @@ module BrNfe
|
|
|
4
4
|
module V1
|
|
5
5
|
class RecepcaoLoteRps < BrNfe::Service::Betha::V1::Gateway
|
|
6
6
|
include BrNfe::Service::Concerns::Rules::RecepcaoLoteRps
|
|
7
|
-
include BrNfe::Service::Response::Paths::V1::ServicoEnviarLoteRpsResposta
|
|
8
7
|
|
|
9
8
|
def certificado_obrigatorio?
|
|
10
9
|
true
|
|
@@ -17,10 +16,6 @@ module BrNfe
|
|
|
17
16
|
:enviar_lote_rps_envio
|
|
18
17
|
end
|
|
19
18
|
|
|
20
|
-
def response_root_path
|
|
21
|
-
[:enviar_lote_rps_envio_response]
|
|
22
|
-
end
|
|
23
|
-
|
|
24
19
|
def id_attribute?
|
|
25
20
|
false
|
|
26
21
|
end
|
|
@@ -28,6 +23,19 @@ module BrNfe
|
|
|
28
23
|
def xml_builder
|
|
29
24
|
render_xml 'servico_enviar_lote_rps_envio'
|
|
30
25
|
end
|
|
26
|
+
private
|
|
27
|
+
def response_class
|
|
28
|
+
BrNfe::Service::Response::RecepcaoLoteRps
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def set_response
|
|
32
|
+
@response = BrNfe::Service::Response::Build::RecepcaoLoteRps.new(
|
|
33
|
+
savon_response: @original_response, # Rsposta da requisição SOAP
|
|
34
|
+
keys_root_path: [:enviar_lote_rps_envio_response],
|
|
35
|
+
body_xml_path: nil,
|
|
36
|
+
xml_encode: response_encoding, # Codificação do xml de resposta
|
|
37
|
+
).response
|
|
38
|
+
end
|
|
31
39
|
end
|
|
32
40
|
end
|
|
33
41
|
end
|
|
@@ -11,11 +11,19 @@ module BrNfe
|
|
|
11
11
|
attr_accessor :codigo_cancelamento
|
|
12
12
|
attr_accessor :id_cancelamento
|
|
13
13
|
|
|
14
|
+
# Código do município na qual o serviço foi prestado
|
|
15
|
+
attr_accessor :codigo_ibge_municipio_prestacao
|
|
16
|
+
|
|
17
|
+
validates :codigo_ibge_municipio_prestacao, presence: true
|
|
14
18
|
validates :nfe_number, :codigo_cancelamento, presence: true
|
|
15
19
|
|
|
16
20
|
def id_cancelamento
|
|
17
21
|
@id_cancelamento ||= Time.now.strftime('%Y%m%d%H%M%S%9N')
|
|
18
22
|
end
|
|
23
|
+
|
|
24
|
+
def response_class
|
|
25
|
+
BrNfe::Service::Response::Cancelamento
|
|
26
|
+
end
|
|
19
27
|
end
|
|
20
28
|
end
|
|
21
29
|
end
|
|
@@ -6,8 +6,8 @@ module BrNfe
|
|
|
6
6
|
extend ActiveSupport::Concern
|
|
7
7
|
|
|
8
8
|
included do
|
|
9
|
-
include BrNfe::
|
|
10
|
-
include BrNfe::
|
|
9
|
+
include BrNfe::Association::HaveDestinatario
|
|
10
|
+
include BrNfe::Service::Association::HaveIntermediario
|
|
11
11
|
|
|
12
12
|
attr_accessor :nfe_number
|
|
13
13
|
attr_accessor :start_date
|
|
@@ -20,6 +20,9 @@ module BrNfe
|
|
|
20
20
|
def end_date
|
|
21
21
|
value_date(@end_date)
|
|
22
22
|
end
|
|
23
|
+
def destinatario_class
|
|
24
|
+
BrNfe.destinatario_service_class
|
|
25
|
+
end
|
|
23
26
|
end
|
|
24
27
|
|
|
25
28
|
end
|