br_nfe 1.1.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +5 -0
- data/.travis.yml +8 -0
- data/Gemfile +16 -0
- data/Gemfile.lock +27 -3
- data/LICENSE +1 -1
- data/README.markdown +10 -12
- data/Rakefile +13 -0
- data/br_nfe.gemspec +18 -21
- data/lib/br_nfe/active_model_base.rb +7 -1
- data/lib/br_nfe/base.rb +175 -37
- data/lib/br_nfe/endereco.rb +7 -1
- data/lib/br_nfe/helper/have_rps.rb +1 -1
- data/lib/br_nfe/helper/values_ts/service_v1.rb +313 -0
- data/lib/br_nfe/response/service/build_response.rb +286 -0
- data/lib/br_nfe/response/service/default.rb +185 -0
- data/lib/br_nfe/{servico/response → response/service}/nota_fiscal.rb +11 -10
- data/lib/br_nfe/response/service/paths/base.rb +93 -0
- data/lib/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta.rb +22 -0
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta.rb +25 -0
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta.rb +25 -0
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta.rb +25 -0
- data/lib/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta.rb +31 -0
- data/lib/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta.rb +36 -0
- data/lib/br_nfe/response/service/paths/v1/tc_nfse.rb +127 -0
- data/lib/br_nfe/service/base.rb +59 -0
- data/lib/br_nfe/service/betha/base.rb +8 -0
- data/lib/br_nfe/service/betha/v1/cancelamento_nfs.rb +39 -0
- data/lib/br_nfe/service/betha/v1/consulta_lote_rps.rb +34 -0
- data/lib/br_nfe/service/betha/v1/consulta_nfs_por_rps.rb +32 -0
- data/lib/br_nfe/service/betha/v1/consulta_nfse.rb +32 -0
- data/lib/br_nfe/service/betha/v1/consulta_situacao_lote_rps.rb +30 -0
- data/lib/br_nfe/service/betha/v1/gateway.rb +21 -0
- data/lib/br_nfe/service/betha/v1/recepcao_lote_rps.rb +37 -0
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta.rb +19 -0
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta.rb +17 -0
- data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +17 -0
- data/lib/br_nfe/service/concerns/rules/cancelamento_nfs.rb +20 -0
- data/lib/br_nfe/service/concerns/rules/consulta_nfs_por_rps.rb +18 -0
- data/lib/br_nfe/service/concerns/rules/consulta_nfse.rb +29 -0
- data/lib/br_nfe/service/concerns/rules/recepcao_lote_rps.rb +50 -0
- data/lib/br_nfe/{servico → service}/intermediario.rb +1 -1
- data/lib/br_nfe/service/item.rb +70 -0
- data/lib/br_nfe/service/rps.rb +231 -0
- data/lib/br_nfe/service/sc/florianopolis/base.rb +25 -0
- data/lib/br_nfe/service/sc/florianopolis/cancellation.rb +30 -0
- data/lib/br_nfe/service/sc/florianopolis/emission_rps.rb +19 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/_address.xml.slim +21 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/_contact.xml.slim +3 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/_service_item.xml.slim +9 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/cancellation.xml.slim +6 -0
- data/lib/br_nfe/service/sc/florianopolis/xml/inf_requisicao.xml.slim +55 -0
- data/lib/br_nfe/service/sc/gaspar/cancela_nfse.rb +13 -0
- data/lib/br_nfe/service/sc/gaspar/consulta_lote_rps.rb +13 -0
- data/lib/br_nfe/service/sc/gaspar/consulta_nfs_por_rps.rb +13 -0
- data/lib/br_nfe/service/sc/gaspar/consulta_nfse.rb +17 -0
- data/lib/br_nfe/service/sc/gaspar/consulta_situacao_lote_rps.rb +13 -0
- data/lib/br_nfe/service/sc/gaspar/recepcao_lote_rps.rb +13 -0
- data/lib/br_nfe/service/sc/gaspar/recepcao_lote_rps_limitado.rb +13 -0
- data/lib/br_nfe/service/thema/v1/base.rb +55 -0
- data/lib/br_nfe/service/thema/v1/cancela_nfse.rb +48 -0
- data/lib/br_nfe/service/thema/v1/consulta_lote_rps.rb +49 -0
- data/lib/br_nfe/service/thema/v1/consulta_nfs_por_rps.rb +48 -0
- data/lib/br_nfe/service/thema/v1/consulta_nfse.rb +47 -0
- data/lib/br_nfe/service/thema/v1/consulta_situacao_lote_rps.rb +46 -0
- data/lib/br_nfe/service/thema/v1/recepcao_lote_rps.rb +51 -0
- data/lib/br_nfe/service/thema/v1/recepcao_lote_rps_limitado.rb +30 -0
- data/lib/br_nfe/service/xml/v1/_tc_contato.xml.slim +7 -0
- data/lib/br_nfe/service/xml/v1/_tc_cpf_cnpj.xml.slim +5 -0
- data/lib/br_nfe/service/xml/v1/_tc_dados_construcao_civil.xml.slim +2 -0
- data/lib/br_nfe/service/xml/v1/_tc_dados_prestador.xml.slim +15 -0
- data/lib/br_nfe/service/xml/v1/_tc_dados_servico.xml.slim +14 -0
- data/lib/br_nfe/service/xml/v1/_tc_dados_tomador.xml.slim +15 -0
- data/lib/br_nfe/service/xml/v1/_tc_endereco.xml.slim +13 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_intermediario_servico.xml.slim +7 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_nfse.xml.slim +7 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_orgao_gerador.xml.slim +8 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_prestador.xml.slim +3 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_rps.xml.slim +16 -0
- data/lib/br_nfe/service/xml/v1/_tc_identificacao_tomador.xml.slim +4 -0
- data/lib/br_nfe/service/xml/v1/_tc_inf_pedido_cancelamento.xml.slim +4 -0
- data/lib/br_nfe/service/xml/v1/_tc_inf_rps.xml.slim +47 -0
- data/lib/br_nfe/service/xml/v1/_tc_lote_rps.xml.slim +9 -0
- data/lib/br_nfe/service/xml/v1/_tc_pedido_cancelamento.xml.slim +4 -0
- data/lib/br_nfe/service/xml/v1/_tc_rps.xml.slim +8 -0
- data/lib/br_nfe/service/xml/v1/_tc_valores.xml.slim +48 -0
- data/lib/br_nfe/service/xml/v1/servico_cancelar_nfse_envio.xml.slim +9 -0
- data/lib/br_nfe/service/xml/v1/servico_consultar_lote_rps_envio.xml.slim +4 -0
- data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_envio.xml.slim +19 -0
- data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_rps_envio.xml.slim +5 -0
- data/lib/br_nfe/service/xml/v1/servico_consultar_situacao_lote_rps_envio.xml.slim +4 -0
- data/lib/br_nfe/service/xml/v1/servico_enviar_lote_rps_envio.xml.slim +9 -0
- data/lib/br_nfe/version.rb +2 -2
- data/lib/br_nfe/xml/_signed_info_sh1.xml.slim +9 -0
- data/lib/br_nfe/xml/signature_sh1.xml.slim +12 -0
- data/lib/br_nfe/xml/soap_env.xml.slim +3 -0
- data/lib/br_nfe.rb +72 -20
- data/test/br_nfe/base_test.rb +257 -108
- data/test/br_nfe/helper/have_intermediario_test.rb +2 -2
- data/test/br_nfe/helper/have_rps_test.rb +4 -4
- data/test/br_nfe/response/service/build_response_test.rb +377 -0
- data/test/br_nfe/response/service/default_test.rb +218 -0
- data/test/br_nfe/{servico/response → response/service}/nota_fiscal_test.rb +2 -2
- data/test/br_nfe/response/service/paths/base_test.rb +199 -0
- data/test/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta_test.rb +25 -0
- data/test/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta_test.rb +30 -0
- data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta_test.rb +30 -0
- data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta_test.rb +30 -0
- data/test/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta_test.rb +30 -0
- data/test/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta_test.rb +34 -0
- data/test/br_nfe/response/service/paths/v1/tc_nfse_test.rb +122 -0
- data/test/br_nfe/service/base_test.rb +138 -0
- data/test/br_nfe/service/betha/base_test.rb +9 -0
- data/test/br_nfe/service/betha/v1/cancelamento_nfs_test.rb +60 -0
- data/test/br_nfe/service/betha/v1/consulta_lote_rps_test.rb +55 -0
- data/test/br_nfe/service/betha/v1/consulta_nfs_por_rps_test.rb +55 -0
- data/test/br_nfe/service/betha/v1/consulta_nfse_test.rb +53 -0
- data/test/br_nfe/service/betha/v1/consulta_situacao_lote_rps_test.rb +49 -0
- data/test/br_nfe/service/betha/v1/gateway_test.rb +35 -0
- data/test/br_nfe/service/betha/v1/recepcao_lote_rps_test.rb +84 -0
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta_test.rb +16 -0
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta_test.rb +16 -0
- data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta_test.rb +16 -0
- data/test/br_nfe/service/betha/v1/xsd/TiposNFe_v01.xsd +583 -0
- data/test/br_nfe/service/betha/v1/xsd/nfse_v01.xsd +652 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_cancelar_nfse_envio_v01.xsd +17 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_consultar_lote_rps_envio_v01.xsd +16 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_consultar_nfse_envio_v01.xsd +28 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_consultar_nfse_rps_envio_v01.xsd +16 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_consultar_situacao_lote_rps_envio_v01.xsd +16 -0
- data/test/br_nfe/service/betha/v1/xsd/servico_enviar_lote_rps_envio_v01.xsd +17 -0
- data/test/br_nfe/service/betha/v1/xsd/xmldsig-core-schema.xsd +308 -0
- data/test/br_nfe/service/betha/v1/xsd/xmldsig-core-schema_v01.xsd +95 -0
- data/test/br_nfe/service/concerns/rules/cancelamento_nfs_test.rb +15 -0
- data/test/br_nfe/service/concerns/rules/consulta_nfs_por_rps_test.rb +36 -0
- data/test/br_nfe/service/concerns/rules/consulta_nfse_test.rb +42 -0
- data/test/br_nfe/{servico/base_test.rb → service/concerns/rules/recepcao_lote_rps_test.rb} +12 -4
- data/test/br_nfe/{servico → service}/intermediario_test.rb +1 -1
- data/test/br_nfe/service/item_test.rb +34 -0
- data/test/br_nfe/{servico → service}/rps_test.rb +191 -43
- data/test/br_nfe/service/sc/florianopolis/XSD/TiposNFSe_v2.0.xsd +863 -0
- data/test/br_nfe/service/sc/florianopolis/XSD/xmldsig-core-schema.xsd +309 -0
- data/test/br_nfe/service/sc/florianopolis/base_test.rb +20 -0
- data/test/br_nfe/service/sc/florianopolis/cancellation_test.rb +36 -0
- data/test/br_nfe/service/sc/florianopolis/emission_rps_test.rb +145 -0
- data/test/br_nfe/service/sc/gaspar/cancela_nfse_test.rb +21 -0
- data/test/br_nfe/service/sc/gaspar/consulta_nfs_por_rps_test.rb +21 -0
- data/test/br_nfe/service/sc/gaspar/consulta_nfse_test.rb +21 -0
- data/test/br_nfe/service/sc/gaspar/consulta_situacao_lote_rps_test.rb +21 -0
- data/test/br_nfe/service/sc/gaspar/recepcao_lote_rps_limitado_test.rb +22 -0
- data/test/br_nfe/service/sc/gaspar/recepcao_lote_rps_test.rb +22 -0
- data/test/br_nfe/service/thema/v1/base_test.rb +65 -0
- data/test/br_nfe/service/thema/v1/cancela_nfse_test.rb +56 -0
- data/test/br_nfe/service/thema/v1/consulta_lote_rps_test.rb +47 -0
- data/test/br_nfe/service/thema/v1/consulta_nfs_por_rps_test.rb +50 -0
- data/test/br_nfe/service/thema/v1/consulta_nfse_test.rb +50 -0
- data/test/br_nfe/service/thema/v1/consulta_situacao_lote_rps_test.rb +47 -0
- data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test.rb +62 -0
- data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test_limitado.rb +50 -0
- data/test/br_nfe/service/thema/v1/xsd/nfse.xsd +656 -0
- data/test/br_nfe/service/thema/v1/xsd/xmldsig-core-schema20020212.xsd +318 -0
- data/test/br_nfe/service/xsd/v1/nfse.xsd +779 -0
- data/test/br_nfe/service/xsd/v1/xmldsig-core-schema20020212.xsd +316 -0
- data/test/cert.pfx +0 -0
- data/test/factories/base.rb +2 -0
- data/test/factories/destinatario.rb +3 -3
- data/test/factories/response/service/build_response.rb +5 -0
- data/test/factories/response/service/default.rb +10 -0
- data/test/factories/{servico/response → response/service}/nota_fiscal.rb +9 -9
- data/test/factories/service/base.rb +6 -0
- data/test/factories/service/betha/base.rb +4 -0
- data/test/factories/service/betha/v1/cancelamento_nfs.rb +9 -0
- data/test/factories/{servico → service}/betha/v1/consulta_lote_rps.rb +2 -2
- data/test/factories/{servico → service}/betha/v1/consulta_nfs_por_rps.rb +1 -1
- data/test/factories/service/betha/v1/consulta_nfse.rb +8 -0
- data/test/factories/{servico → service}/betha/v1/consulta_situacao_lote_rps.rb +2 -2
- data/test/factories/{servico → service}/betha/v1/gateway.rb +1 -1
- data/test/factories/service/betha/v1/recepcao_lote_rps.rb +8 -0
- data/test/factories/{servico → service}/intermediario.rb +2 -2
- data/test/factories/service/item.rb +12 -0
- data/test/factories/service/rps.rb +50 -0
- data/test/factories/service/sc/florianopolis/base.rb +5 -0
- data/test/factories/service/sc/florianopolis/cancellation.rb +7 -0
- data/test/factories/service/sc/florianopolis/emission_rps.rb +7 -0
- data/test/factories/service/sc/gaspar/cancela_nfse.rb +9 -0
- data/test/factories/service/sc/gaspar/consulta_lote_rps.rb +7 -0
- data/test/factories/service/sc/gaspar/consulta_nfs_por_rps.rb +6 -0
- data/test/factories/service/sc/gaspar/consulta_nfse.rb +8 -0
- data/test/factories/service/sc/gaspar/consulta_situacao_lote_rps.rb +6 -0
- data/test/factories/service/sc/gaspar/recepcao_lote_rps.rb +9 -0
- data/test/factories/service/sc/gaspar/recepcao_lote_rps_limitado.rb +9 -0
- data/test/factories/service/thema/v1/base.rb +7 -0
- data/test/factories/service/thema/v1/cancela_nfse.rb +9 -0
- data/test/factories/service/thema/v1/consulta_lote_rps.rb +7 -0
- data/test/factories/service/thema/v1/consulta_nfs_por_rps.rb +6 -0
- data/test/factories/service/thema/v1/consulta_nfse.rb +8 -0
- data/test/factories/service/thema/v1/consulta_situacao_lote_rps.rb +6 -0
- data/test/factories/service/thema/v1/recepcao_lote_rps.rb +9 -0
- data/test/factories/service/thema/v1/recepcao_lote_rps_limitado.rb +8 -0
- data/test/test_helper.rb +42 -0
- metadata +338 -121
- data/lib/br_nfe/servico/base.rb +0 -35
- data/lib/br_nfe/servico/betha/base.rb +0 -85
- data/lib/br_nfe/servico/betha/build_response.rb +0 -141
- data/lib/br_nfe/servico/betha/v1/build_response.rb +0 -121
- data/lib/br_nfe/servico/betha/v1/cancelamento_nfs.rb +0 -52
- data/lib/br_nfe/servico/betha/v1/consulta_lote_rps.rb +0 -33
- data/lib/br_nfe/servico/betha/v1/consulta_nfs_por_rps.rb +0 -37
- data/lib/br_nfe/servico/betha/v1/consulta_nfse.rb +0 -51
- data/lib/br_nfe/servico/betha/v1/consulta_situacao_lote_rps.rb +0 -18
- data/lib/br_nfe/servico/betha/v1/gateway.rb +0 -125
- data/lib/br_nfe/servico/betha/v1/recepcao_lote_rps.rb +0 -97
- data/lib/br_nfe/servico/betha/v2/build_response.rb +0 -159
- data/lib/br_nfe/servico/betha/v2/cancelamento_nfs.rb +0 -30
- data/lib/br_nfe/servico/betha/v2/consulta_lote_rps.rb +0 -30
- data/lib/br_nfe/servico/betha/v2/consulta_nfse_por_rps.rb +0 -27
- data/lib/br_nfe/servico/betha/v2/envio_lote_rps_sincrono.rb +0 -30
- data/lib/br_nfe/servico/betha/v2/gateway.rb +0 -230
- data/lib/br_nfe/servico/betha/v2/gera_nfse.rb +0 -30
- data/lib/br_nfe/servico/betha/v2/recepcao_lote_rps.rb +0 -52
- data/lib/br_nfe/servico/betha/v2/substituicao_nfse.rb +0 -43
- data/lib/br_nfe/servico/response/default.rb +0 -34
- data/lib/br_nfe/servico/rps.rb +0 -108
- data/test/br_nfe/servico/betha/base_test.rb +0 -135
- data/test/br_nfe/servico/betha/v1/build_response_test.rb +0 -557
- data/test/br_nfe/servico/betha/v1/cancelamento_nfs_test.rb +0 -72
- data/test/br_nfe/servico/betha/v1/consulta_lote_rps_test.rb +0 -46
- data/test/br_nfe/servico/betha/v1/consulta_nfs_por_rps_test.rb +0 -68
- data/test/br_nfe/servico/betha/v1/consulta_nfse_test.rb +0 -74
- data/test/br_nfe/servico/betha/v1/consulta_situacao_lote_rps_test.rb +0 -27
- data/test/br_nfe/servico/betha/v1/gateway_test.rb +0 -151
- data/test/br_nfe/servico/betha/v1/recepcao_lote_rps_test.rb +0 -249
- data/test/br_nfe/servico/betha/v2/cancelamento_nfs_test.rb +0 -44
- data/test/br_nfe/servico/betha/v2/consulta_lote_rps_test.rb +0 -38
- data/test/br_nfe/servico/betha/v2/consulta_nfse_por_rps_test.rb +0 -36
- data/test/br_nfe/servico/betha/v2/envio_lote_rps_sincrono_test.rb +0 -51
- data/test/br_nfe/servico/betha/v2/gateway_test.rb +0 -372
- data/test/br_nfe/servico/betha/v2/gera_nfse_test.rb +0 -62
- data/test/br_nfe/servico/betha/v2/recepcao_lote_rps_test.rb +0 -108
- data/test/br_nfe/servico/betha/v2/substituicao_nfse_test.rb +0 -84
- data/test/br_nfe/servico/response/default_test.rb +0 -54
- data/test/factories/servico/base.rb +0 -5
- data/test/factories/servico/betha/base.rb +0 -5
- data/test/factories/servico/betha/v1/build_response.rb +0 -6
- data/test/factories/servico/betha/v1/cancelamento_nfs.rb +0 -7
- data/test/factories/servico/betha/v1/consulta_nfse.rb +0 -8
- data/test/factories/servico/betha/v1/recepcao_lote_rps.rb +0 -6
- data/test/factories/servico/betha/v2/cancelamento_nfs.rb +0 -7
- data/test/factories/servico/betha/v2/consulta_lote_rps.rb +0 -6
- data/test/factories/servico/betha/v2/consulta_nfse_por_rps.rb +0 -6
- data/test/factories/servico/betha/v2/envio_lote_rps_sincrono.rb +0 -5
- data/test/factories/servico/betha/v2/gateway.rb +0 -5
- data/test/factories/servico/betha/v2/gera_nfse.rb +0 -6
- data/test/factories/servico/betha/v2/recepcao_lote_rps.rb +0 -5
- data/test/factories/servico/betha/v2/substituicao_nfse.rb +0 -8
- data/test/factories/servico/response/default.rb +0 -10
- data/test/factories/servico/rps.rb +0 -44
@@ -0,0 +1,25 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module SC
|
4
|
+
module Florianopolis
|
5
|
+
class Base < BrNfe::Service::Base
|
6
|
+
attr_accessor :aedf
|
7
|
+
|
8
|
+
validates :aedf, length: {maximum: 7}, presence: true
|
9
|
+
validates :aedf, numericality: {
|
10
|
+
only_integer: true,
|
11
|
+
greater_than_or_equal_to: 100000,
|
12
|
+
less_than_or_equal_to: 9999999
|
13
|
+
}, allow_blank: true
|
14
|
+
|
15
|
+
def request
|
16
|
+
end
|
17
|
+
|
18
|
+
def content_xml
|
19
|
+
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+xml_builder
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module SC
|
4
|
+
module Florianopolis
|
5
|
+
class Cancellation < BrNfe::Service::SC::Florianopolis::Base
|
6
|
+
|
7
|
+
# Descrição do motivo do cancelmanto <OPCIONAL>
|
8
|
+
#
|
9
|
+
# <b>Type: </b> _Text_
|
10
|
+
#
|
11
|
+
attr_accessor :motive
|
12
|
+
|
13
|
+
# Número de série da nota fiscal <OPCIONAL>
|
14
|
+
#
|
15
|
+
# <b>Type: </b> _Text_
|
16
|
+
#
|
17
|
+
attr_accessor :serie_number
|
18
|
+
|
19
|
+
validates :serie_number, presence: true
|
20
|
+
validates :motive, length: {maximum: 120}, allow_blank: true
|
21
|
+
validates :serie_number, numericality: {only_integer: true, less_than_or_equal_to: 999999}, allow_blank: true
|
22
|
+
|
23
|
+
def xml_builder
|
24
|
+
render_xml 'cancellation', dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module SC
|
4
|
+
module Florianopolis
|
5
|
+
class EmissionRPS < BrNfe::Service::SC::Florianopolis::Base
|
6
|
+
include BrNfe::Service::Concerns::Rules::RecepcaoLoteRps
|
7
|
+
attr_accessor :cfps
|
8
|
+
|
9
|
+
validates :cfps, presence: true
|
10
|
+
|
11
|
+
def xml_builder
|
12
|
+
render_xml 'inf_requisicao', dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Endereco
|
2
|
+
Logradouro = "#{address.logradouro}".max_size(125)
|
3
|
+
- if address.numero.present?
|
4
|
+
NumeroEndereco = "#{address.numero}".max_size(10)
|
5
|
+
- if address.complemento.present?
|
6
|
+
ComplementoEndereco = "#{address.complemento}".max_size(30)
|
7
|
+
Bairro = "#{address.bairro}".max_size(60)
|
8
|
+
- if address.codigo_pais.to_i == 1058
|
9
|
+
Municipio
|
10
|
+
CodigoMunicipio = BrNfe::Helper.only_number(address.codigo_municipio).max_size(7)
|
11
|
+
- else
|
12
|
+
Municipio
|
13
|
+
NomeMunicipio = "#{address.nome_municipio}".max_size(60)
|
14
|
+
|
15
|
+
CodigoPostal
|
16
|
+
CEP = BrNfe::Helper.only_number(address.cep).max_size(8)
|
17
|
+
|
18
|
+
- if address.codigo_pais.to_i == 1058
|
19
|
+
UF = "#{address.uf}".max_size(2)
|
20
|
+
- else
|
21
|
+
Pais = address.codigo_pais
|
@@ -0,0 +1,9 @@
|
|
1
|
+
ItemServico
|
2
|
+
IdCNAE = BrNfe::Helper.only_number(item.cnae_id).max_size(5)
|
3
|
+
CodigoAtividade = BrNfe::Helper.only_number(item.cnae_code).max_size(8)
|
4
|
+
DescricaoServico = "#{item.description}".max_size(1000)
|
5
|
+
CST = BrNfe::Helper.only_number(item.cst).max_size(2)
|
6
|
+
Aliquota = value_monetary(item.iss_tax_rate, 4)
|
7
|
+
ValorUnitario = value_monetary(item.unit_value, 2)
|
8
|
+
Quantidade = item.quantity.to_i
|
9
|
+
ValorTotal = value_monetary(item.total_value, 2)
|
@@ -0,0 +1,6 @@
|
|
1
|
+
InfRequisicaoCancelamento xmlns="http://nfe.pmf.sc.gov.br/nfse/versao?tipo=xsd-2_0" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
|
2
|
+
Versao = '2.0'
|
3
|
+
TipoSistema = 0
|
4
|
+
AEDF = BrNfe::Helper.only_number(aedf).max_size(7)
|
5
|
+
NumeroSerie = BrNfe::Helper.only_number(serie_number).max_size(6)
|
6
|
+
MotivoCancelamento = "#{motive}".max_size(120)
|
@@ -0,0 +1,55 @@
|
|
1
|
+
- if rps = lote_rps.first
|
2
|
+
InfRequisicao xmlns="http://nfe.pmf.sc.gov.br/nfse/versao?tipo=xsd-2_0" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
|
3
|
+
Versao = 2.0
|
4
|
+
TipoSistema = env == :production ? 1 : 0
|
5
|
+
- if rps.numero.present?
|
6
|
+
Identificacao = rps.numero
|
7
|
+
AEDF
|
8
|
+
AEDF = BrNfe::Helper.only_number(aedf).max_size(7)
|
9
|
+
TipoAedf = 'NORMAL'
|
10
|
+
DataEmissao = value_date(rps.data_emissao)
|
11
|
+
NumeroSerieRequisicao = rps.serie.to_i
|
12
|
+
CFPS = BrNfe::Helper.only_number(cfps).max_size(4)
|
13
|
+
DadosServico
|
14
|
+
- rps.items.each do |item|
|
15
|
+
= render_xml '_service_item', item: item, dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
|
16
|
+
|
17
|
+
BaseCalculo = value_monetary(rps.base_calculation, 2)
|
18
|
+
ValorISSQN = value_monetary(rps.total_iss, 2)
|
19
|
+
|
20
|
+
- if rps.total_base_calculation_st.present?
|
21
|
+
BaseCalculoSubstituicao = value_monetary(rps.total_base_calculation_st, 2)
|
22
|
+
|
23
|
+
- if rps.total_issqn_st.present?
|
24
|
+
ValorISSQNSubstituicao = value_monetary(rps.total_issqn_st, 2)
|
25
|
+
|
26
|
+
ValorTotalServicos = value_monetary(rps.total_services, 2)
|
27
|
+
|
28
|
+
- if rps.description.present?
|
29
|
+
DadosAdicionais = "#{rps.description}".max_size(1000)
|
30
|
+
|
31
|
+
Prestador
|
32
|
+
IdentificacaoPrestador
|
33
|
+
CNPJ = BrNfe::Helper::CpfCnpj.new(emitente.cnpj).sem_formatacao
|
34
|
+
- if emitente.inscricao_municipal.present?
|
35
|
+
InscricaoMunicipal = "#{emitente.inscricao_municipal}".max_size(7)
|
36
|
+
RazaoSocial = "#{emitente.razao_social}".max_size(80)
|
37
|
+
|
38
|
+
= render_xml '_address', address: emitente.endereco, dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
|
39
|
+
= render_xml '_contact', contact: emitente, dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
|
40
|
+
Tomador
|
41
|
+
IdentificacaoTomador
|
42
|
+
DocIdTomador
|
43
|
+
CPFCNPJ
|
44
|
+
- cpf_cnpj = BrNfe::Helper::CpfCnpj.new(rps.destinatario.cpf_cnpj)
|
45
|
+
- if cpf_cnpj.cnpj?
|
46
|
+
CNPJ = cpf_cnpj.sem_formatacao
|
47
|
+
- elsif cpf_cnpj.cpf?
|
48
|
+
CPF = cpf_cnpj.sem_formatacao
|
49
|
+
|
50
|
+
- if rps.destinatario.inscricao_municipal.present?
|
51
|
+
InscricaoMunicipal = "#{rps.destinatario.inscricao_municipal}".max_size(7)
|
52
|
+
RazaoSocial = "#{rps.destinatario.razao_social}".max_size(80)
|
53
|
+
|
54
|
+
= render_xml '_address', address: rps.destinatario.endereco, dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
|
55
|
+
= render_xml '_contact', contact: rps.destinatario, dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module SC
|
4
|
+
module Gaspar
|
5
|
+
class CancelaNfse < BrNfe::Service::Thema::V1::CancelaNfse
|
6
|
+
def wsdl
|
7
|
+
"http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEcancelamento?wsdl"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module SC
|
4
|
+
module Gaspar
|
5
|
+
class ConsultaLoteRps < BrNfe::Service::Thema::V1::ConsultaLoteRps
|
6
|
+
def wsdl
|
7
|
+
"http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module SC
|
4
|
+
module Gaspar
|
5
|
+
class ConsultaNfsPorRps < BrNfe::Service::Thema::V1::ConsultaNfsPorRps
|
6
|
+
def wsdl
|
7
|
+
"http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module SC
|
4
|
+
module Gaspar
|
5
|
+
class ConsultaNfse < BrNfe::Service::Thema::V1::ConsultaNfse
|
6
|
+
|
7
|
+
# É sério. Tudo isso é obrigatório. Pfff
|
8
|
+
validates :destinatario, :nfe_number, :start_date, :end_date, presence: true
|
9
|
+
|
10
|
+
def wsdl
|
11
|
+
"http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module SC
|
4
|
+
module Gaspar
|
5
|
+
class ConsultaSituacaoLoteRps < BrNfe::Service::Thema::V1::ConsultaSituacaoLoteRps
|
6
|
+
def wsdl
|
7
|
+
"http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module SC
|
4
|
+
module Gaspar
|
5
|
+
class RecepcaoLoteRps < BrNfe::Service::Thema::V1::RecepcaoLoteRps
|
6
|
+
def wsdl
|
7
|
+
"http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEremessa?wsdl"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module SC
|
4
|
+
module Gaspar
|
5
|
+
class RecepcaoLoteRpsLimitado < BrNfe::Service::Thema::V1::RecepcaoLoteRpsLimitado
|
6
|
+
def wsdl
|
7
|
+
"http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEremessa?wsdl"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module Thema
|
4
|
+
module V1
|
5
|
+
class Base < BrNfe::Service::Base
|
6
|
+
|
7
|
+
def canonicalization_method_algorithm
|
8
|
+
'http://www.w3.org/TR/2001/REC-xml-c14n-20010315'
|
9
|
+
end
|
10
|
+
|
11
|
+
def message_namespaces
|
12
|
+
{"xmlns" => "http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"}
|
13
|
+
end
|
14
|
+
|
15
|
+
def soap_namespaces
|
16
|
+
super.merge({"xmlns:ns1" => "http://server.nfse.thema.inf.br"})
|
17
|
+
end
|
18
|
+
|
19
|
+
# Setado manualmente em content_xml
|
20
|
+
#
|
21
|
+
def namespace_identifier
|
22
|
+
end
|
23
|
+
|
24
|
+
# Método que deve ser sobrescrito em cada subclass.
|
25
|
+
# É utilizado para saber qual a tag root de cada requisição
|
26
|
+
#
|
27
|
+
# <b><Tipo de retorno: /b> _String_
|
28
|
+
#
|
29
|
+
def soap_body_root_tag
|
30
|
+
# 'recepcionarLoteRps' < Exemplo
|
31
|
+
raise "Deve ser sobrescrito nas subclasses"
|
32
|
+
end
|
33
|
+
|
34
|
+
# Método é sobrescrito para atender o padrão do órgão emissor.
|
35
|
+
# Deve ser enviado o XML da requsiução dentro da tag CDATA
|
36
|
+
# seguindo a estrutura requerida.
|
37
|
+
#
|
38
|
+
# <b><Tipo de retorno: /b> _String_ XML
|
39
|
+
#
|
40
|
+
def content_xml
|
41
|
+
dados = "<ns1:#{soap_body_root_tag}>"
|
42
|
+
dados += '<ns1:xml>'
|
43
|
+
dados += '<![CDATA[<?xml version="1.0" encoding="ISO-8859-1"?>'
|
44
|
+
dados += xml_builder.html_safe
|
45
|
+
dados += ']]>'
|
46
|
+
dados += '</ns1:xml>'
|
47
|
+
dados += "</ns1:#{soap_body_root_tag}>"
|
48
|
+
dados
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module Thema
|
4
|
+
module V1
|
5
|
+
class CancelaNfse < BrNfe::Service::Thema::V1::Base
|
6
|
+
include BrNfe::Service::Concerns::Rules::CancelamentoNfs
|
7
|
+
|
8
|
+
def method_wsdl
|
9
|
+
:cancelar_nfse
|
10
|
+
end
|
11
|
+
|
12
|
+
def response_path_module
|
13
|
+
BrNfe::Service::Response::Paths::V1::ServicoCancelarNfseResposta
|
14
|
+
end
|
15
|
+
|
16
|
+
def xml_builder
|
17
|
+
render_xml 'servico_cancelar_nfse_envio'
|
18
|
+
end
|
19
|
+
|
20
|
+
# Não é utilizado o response_root_path pois
|
21
|
+
# esse órgão emissor trata o XML de forma diferente
|
22
|
+
# e para instanciar a resposta adequadamente é utilizado o
|
23
|
+
# body_xml_path.
|
24
|
+
# A resposta contém outro XML dentro do Body.
|
25
|
+
#
|
26
|
+
def response_root_path
|
27
|
+
[]
|
28
|
+
end
|
29
|
+
|
30
|
+
# Caminho de hash através do body da resposta SOAP até encontrar
|
31
|
+
# o XML correspondente na qual contém as informações necessárias
|
32
|
+
# para encontrar os valores para setar na resposta
|
33
|
+
#
|
34
|
+
def body_xml_path
|
35
|
+
[:cancelar_nfse_response, :return]
|
36
|
+
end
|
37
|
+
|
38
|
+
# Tag root da requisição
|
39
|
+
#
|
40
|
+
def soap_body_root_tag
|
41
|
+
'cancelarNfse'
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module BrNfe
|
2
|
+
module Service
|
3
|
+
module Thema
|
4
|
+
module V1
|
5
|
+
class ConsultaLoteRps < BrNfe::Service::Thema::V1::Base
|
6
|
+
|
7
|
+
attr_accessor :protocolo
|
8
|
+
validates :protocolo, presence: true
|
9
|
+
|
10
|
+
def method_wsdl
|
11
|
+
:consultar_lote_rps
|
12
|
+
end
|
13
|
+
|
14
|
+
def xml_builder
|
15
|
+
render_xml 'servico_consultar_lote_rps_envio'
|
16
|
+
end
|
17
|
+
|
18
|
+
def response_path_module
|
19
|
+
BrNfe::Service::Response::Paths::V1::ServicoConsultarLoteRpsResposta
|
20
|
+
end
|
21
|
+
|
22
|
+
# Não é utilizado o response_root_path pois
|
23
|
+
# esse órgão emissor trata o XML de forma diferente
|
24
|
+
# e para instanciar a resposta adequadamente é utilizado o
|
25
|
+
# body_xml_path.
|
26
|
+
# A resposta contém outro XML dentro do Body.
|
27
|
+
#
|
28
|
+
def response_root_path
|
29
|
+
[]
|
30
|
+
end
|
31
|
+
|
32
|
+
# Caminho de hash através do body da resposta SOAP até encontrar
|
33
|
+
# o XML correspondente na qual contém as informações necessárias
|
34
|
+
# para encontrar os valores para setar na resposta
|
35
|
+
#
|
36
|
+
def body_xml_path
|
37
|
+
[:consultar_lote_rps_response, :return]
|
38
|
+
end
|
39
|
+
|
40
|
+
# Tag root da requisição
|
41
|
+
#
|
42
|
+
def soap_body_root_tag
|
43
|
+
'consultarLoteRps'
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|