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,84 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe BrNfe::Service::Betha::V1::RecepcaoLoteRps do
|
4
|
+
subject { FactoryGirl.build(:br_nfe_servico_betha_recepcao_lote_rps, emitente: emitente) }
|
5
|
+
let(:emitente) { FactoryGirl.build(:emitente) }
|
6
|
+
let(:rps_1) { FactoryGirl.build(:br_nfe_rps, valor_pis: '', valor_cofins: nil, valor_inss: nil, valor_ir: nil, valor_csll: nil) }
|
7
|
+
let(:rps_2) { FactoryGirl.build(:br_nfe_rps, :completo) }
|
8
|
+
|
9
|
+
describe "superclass" do
|
10
|
+
it { subject.class.superclass.must_equal BrNfe::Service::Betha::V1::Gateway }
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "validations" do
|
14
|
+
it { must validate_presence_of(:numero_lote_rps) }
|
15
|
+
context "validações do certificado" do
|
16
|
+
before do
|
17
|
+
subject.certificate_pkcs12 = nil
|
18
|
+
subject.certificate_pkcs12_value = nil
|
19
|
+
subject.certificate_pkcs12_password = nil
|
20
|
+
end
|
21
|
+
it { must validate_presence_of(:certificate) }
|
22
|
+
it { must validate_presence_of(:certificate_key) }
|
23
|
+
end
|
24
|
+
|
25
|
+
it "deve chamar o metodo validar_lote_rps" do
|
26
|
+
subject.expects(:validar_lote_rps)
|
27
|
+
subject.valid?
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#wsdl" do
|
32
|
+
context "for env production" do
|
33
|
+
it { subject.wsdl.must_equal 'http://e-gov.betha.com.br/e-nota-contribuinte-ws/recepcionarLoteRps?wsdl' }
|
34
|
+
end
|
35
|
+
context "for env test" do
|
36
|
+
before do
|
37
|
+
subject.env = :test
|
38
|
+
end
|
39
|
+
it { subject.wsdl.must_equal 'http://e-gov.betha.com.br/e-nota-contribuinte-test-ws/recepcionarLoteRps?wsdl' }
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "#method_wsdl" do
|
44
|
+
it { subject.method_wsdl.must_equal :enviar_lote_rps_envio }
|
45
|
+
end
|
46
|
+
|
47
|
+
it "#response_path_module" do
|
48
|
+
subject.response_path_module.must_equal BrNfe::Service::Response::Paths::V1::ServicoEnviarLoteRpsResposta
|
49
|
+
end
|
50
|
+
|
51
|
+
it "#response_root_path" do
|
52
|
+
subject.response_root_path.must_equal [:enviar_lote_rps_envio_response]
|
53
|
+
end
|
54
|
+
|
55
|
+
describe "Validação do XML através do XSD" do
|
56
|
+
let(:rps_basico) { FactoryGirl.build(:br_nfe_rps) }
|
57
|
+
let(:rps_completo) { FactoryGirl.build(:br_nfe_rps, :completo) }
|
58
|
+
|
59
|
+
let(:schemas_dir) { BrNfe.root+'/test/br_nfe/service/betha/v1/xsd' }
|
60
|
+
|
61
|
+
def validate_schema
|
62
|
+
Dir.chdir(schemas_dir) do
|
63
|
+
schema = Nokogiri::XML::Schema(IO.read('servico_enviar_lote_rps_envio_v01.xsd'))
|
64
|
+
document = Nokogiri::XML(subject.content_xml)
|
65
|
+
errors = schema.validate(document)
|
66
|
+
errors.must_be_empty "#{subject.content_xml}"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
it "Deve ser válido com 1 RPS com todas as informações preenchidas" do
|
70
|
+
subject.lote_rps = [rps_completo]
|
71
|
+
validate_schema
|
72
|
+
end
|
73
|
+
it "Deve ser válido com 1 RPS com apenas as informações obrigatórias preenchidas" do
|
74
|
+
subject.lote_rps = [rps_basico]
|
75
|
+
validate_schema
|
76
|
+
end
|
77
|
+
it "Deve ser válido com vários RPS's - 1 rps completo e 1 parcial" do
|
78
|
+
subject.lote_rps = [rps_completo, rps_basico]
|
79
|
+
validate_schema
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
|
84
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarLoteRpsResposta do
|
4
|
+
class ServicoConsultarLoteRpsRespostaTest
|
5
|
+
include BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarLoteRpsResposta
|
6
|
+
end
|
7
|
+
subject { ServicoConsultarLoteRpsRespostaTest.new }
|
8
|
+
|
9
|
+
it "deve estar incluso o module ..Response::Paths::V1::ServicoConsultarLoteRpsResposta" do
|
10
|
+
subject.class.included_modules.must_include BrNfe::Service::Response::Paths::V1::ServicoConsultarLoteRpsResposta
|
11
|
+
end
|
12
|
+
|
13
|
+
it "metodo invoices_path sobrescrito com valor padrão" do
|
14
|
+
subject.invoices_path.must_equal [:consultar_lote_rps_resposta, :lista_nfse, :compl_nfse]
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarNfseResposta do
|
4
|
+
class ServicoConsultarNfseRespostaTest
|
5
|
+
include BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarNfseResposta
|
6
|
+
end
|
7
|
+
subject { ServicoConsultarNfseRespostaTest.new }
|
8
|
+
|
9
|
+
it "deve estar incluso o module ..Response::Paths::V1::ServicoConsultarNfseResposta" do
|
10
|
+
subject.class.included_modules.must_include BrNfe::Service::Response::Paths::V1::ServicoConsultarNfseResposta
|
11
|
+
end
|
12
|
+
|
13
|
+
it "metodo invoices_path sobrescrito com valor padrão" do
|
14
|
+
subject.invoices_path.must_equal [:consultar_nfse_resposta, :lista_nfse, :compl_nfse]
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarNfseRpsResposta do
|
4
|
+
class ServicoConsultarNfseRpsRespostaTest
|
5
|
+
include BrNfe::Service::Betha::V1::ResponsePaths::ServicoConsultarNfseRpsResposta
|
6
|
+
end
|
7
|
+
subject { ServicoConsultarNfseRpsRespostaTest.new }
|
8
|
+
|
9
|
+
it "deve estar incluso o module ..Response::Paths::V1::ServicoConsultarNfseRpsResposta" do
|
10
|
+
subject.class.included_modules.must_include BrNfe::Service::Response::Paths::V1::ServicoConsultarNfseRpsResposta
|
11
|
+
end
|
12
|
+
|
13
|
+
it "metodo invoices_path sobrescrito com valor padrão" do
|
14
|
+
subject.invoices_path.must_equal [:consultar_nfse_rps_resposta, :compl_nfse]
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,583 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<xs:schema targetNamespace="http://www.betha.com.br/e-nota-contribuinte-ws/tipos"
|
3
|
+
xmlns:tipos="http://www.betha.com.br/e-nota-contribuinte-ws/tipos"
|
4
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
5
|
+
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
|
6
|
+
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema_v01.xsd" />
|
7
|
+
|
8
|
+
<!-- Tipos Simples-->
|
9
|
+
<xs:simpleType name="TsNumeroNfse">
|
10
|
+
<xs:annotation>
|
11
|
+
<xs:documentation>Número da NFS-e</xs:documentation>
|
12
|
+
</xs:annotation>
|
13
|
+
<xs:restriction base="xs:long">
|
14
|
+
<xs:pattern value="[0-9]{1,15}" />
|
15
|
+
</xs:restriction>
|
16
|
+
</xs:simpleType>
|
17
|
+
|
18
|
+
<xs:simpleType name="TsCnpj">
|
19
|
+
<xs:annotation>
|
20
|
+
<xs:documentation>Núumero Cnpj</xs:documentation>
|
21
|
+
</xs:annotation>
|
22
|
+
<xs:restriction base="xs:string">
|
23
|
+
<xs:pattern value="[0-9]{14}" />
|
24
|
+
</xs:restriction>
|
25
|
+
</xs:simpleType>
|
26
|
+
|
27
|
+
<xs:simpleType name="TsCpf">
|
28
|
+
<xs:annotation>
|
29
|
+
<xs:documentation>Cpf</xs:documentation>
|
30
|
+
</xs:annotation>
|
31
|
+
<xs:restriction base="xs:string">
|
32
|
+
<xs:pattern value="[0-9]{0}|[0-9]{11}" />
|
33
|
+
</xs:restriction>
|
34
|
+
</xs:simpleType>
|
35
|
+
|
36
|
+
<xs:simpleType name="tsInscricaoMunicipal">
|
37
|
+
<xs:annotation>
|
38
|
+
<xs:documentation>Tipo padrão referente a inscrição municipal.</xs:documentation>
|
39
|
+
</xs:annotation>
|
40
|
+
<xs:restriction base="xs:long">
|
41
|
+
<xs:pattern value="[0-9]{1,20}" />
|
42
|
+
</xs:restriction>
|
43
|
+
</xs:simpleType>
|
44
|
+
|
45
|
+
<xs:simpleType name="tsRazaoSocial">
|
46
|
+
<xs:annotation>
|
47
|
+
<xs:documentation>Razão Social do Contribuinte</xs:documentation>
|
48
|
+
</xs:annotation>
|
49
|
+
<xs:restriction base="xs:string">
|
50
|
+
<xs:minLength value="1" />
|
51
|
+
<xs:maxLength value="115" />
|
52
|
+
<xs:whiteSpace value="collapse" />
|
53
|
+
</xs:restriction>
|
54
|
+
</xs:simpleType>
|
55
|
+
|
56
|
+
<xs:simpleType name="tsNumeroLote">
|
57
|
+
<xs:annotation>
|
58
|
+
<xs:documentation>Número do Lote de RPS</xs:documentation>
|
59
|
+
</xs:annotation>
|
60
|
+
<xs:restriction base="xs:long">
|
61
|
+
<xs:pattern value="[0-9]{1,15}" />
|
62
|
+
</xs:restriction>
|
63
|
+
</xs:simpleType>
|
64
|
+
|
65
|
+
<xs:simpleType name="TsQuantidadeRps">
|
66
|
+
<xs:annotation>
|
67
|
+
<xs:documentation>Quantidade de Rps do lote</xs:documentation>
|
68
|
+
</xs:annotation>
|
69
|
+
<xs:restriction base="xs:int">
|
70
|
+
<xs:pattern value="[0-9]{1,4}" />
|
71
|
+
</xs:restriction>
|
72
|
+
</xs:simpleType>
|
73
|
+
|
74
|
+
<xs:simpleType name="TsNumeroRps">
|
75
|
+
<xs:annotation>
|
76
|
+
<xs:documentation>Número do RPS</xs:documentation>
|
77
|
+
</xs:annotation>
|
78
|
+
<xs:restriction base="xs:long">
|
79
|
+
<xs:pattern value="[0-9]{1,15}" />
|
80
|
+
</xs:restriction>
|
81
|
+
</xs:simpleType>
|
82
|
+
|
83
|
+
<xs:simpleType name="TsSerieRps">
|
84
|
+
<xs:annotation>
|
85
|
+
<xs:documentation>Número de série do RPS</xs:documentation>
|
86
|
+
</xs:annotation>
|
87
|
+
<xs:restriction base="xs:string">
|
88
|
+
<xs:minLength value="0" />
|
89
|
+
<xs:maxLength value="5" />
|
90
|
+
<xs:whiteSpace value="collapse" />
|
91
|
+
</xs:restriction>
|
92
|
+
</xs:simpleType>
|
93
|
+
|
94
|
+
<xs:simpleType name="TsTipoRps">
|
95
|
+
<xs:annotation>
|
96
|
+
<xs:documentation>Código de Tipo de RPS</xs:documentation>
|
97
|
+
</xs:annotation>
|
98
|
+
<xs:restriction base="xs:int">
|
99
|
+
<xs:pattern value="[1-3]{1}" />
|
100
|
+
</xs:restriction>
|
101
|
+
</xs:simpleType>
|
102
|
+
|
103
|
+
<xs:simpleType name="tsNaturezaOperacao">
|
104
|
+
<xs:annotation>
|
105
|
+
<xs:documentation>Código da natureza da operação</xs:documentation>
|
106
|
+
</xs:annotation>
|
107
|
+
<xs:restriction base="xs:int">
|
108
|
+
<xs:pattern value="[1-7]{1}" />
|
109
|
+
</xs:restriction>
|
110
|
+
</xs:simpleType>
|
111
|
+
|
112
|
+
<xs:simpleType name="tsRegimeEspecialTributacao">
|
113
|
+
<xs:annotation>
|
114
|
+
<xs:documentation>Código de identificação do regime especial de tributação</xs:documentation>
|
115
|
+
</xs:annotation>
|
116
|
+
<xs:restriction base="xs:int">
|
117
|
+
<xs:pattern value="[1-6]{1}" />
|
118
|
+
</xs:restriction>
|
119
|
+
</xs:simpleType>
|
120
|
+
|
121
|
+
<xs:simpleType name="TsSimNao">
|
122
|
+
<xs:annotation>
|
123
|
+
<xs:documentation>Identificação de Sim/Não</xs:documentation>
|
124
|
+
</xs:annotation>
|
125
|
+
<xs:restriction base="xs:int">
|
126
|
+
<xs:pattern value="[1-3]{1}" />
|
127
|
+
</xs:restriction>
|
128
|
+
</xs:simpleType>
|
129
|
+
|
130
|
+
<xs:simpleType name="TsStatusRps">
|
131
|
+
<xs:annotation>
|
132
|
+
<xs:documentation>Código do status do RPS</xs:documentation>
|
133
|
+
</xs:annotation>
|
134
|
+
<xs:restriction base="xs:int">
|
135
|
+
<xs:pattern value="[1-2]{1}" />
|
136
|
+
</xs:restriction>
|
137
|
+
</xs:simpleType>
|
138
|
+
|
139
|
+
<xs:simpleType name="TsValor">
|
140
|
+
<xs:annotation>
|
141
|
+
<xs:documentation>Valor monetário - 15 dígitos, sendo 13 de corpo e 2 decimais</xs:documentation>
|
142
|
+
</xs:annotation>
|
143
|
+
<xs:restriction base="xs:decimal">
|
144
|
+
<xs:totalDigits value="15" />
|
145
|
+
<xs:fractionDigits value="2" />
|
146
|
+
<xs:minInclusive value="0" />
|
147
|
+
<xs:pattern value="0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{0,2})?" />
|
148
|
+
</xs:restriction>
|
149
|
+
</xs:simpleType>
|
150
|
+
|
151
|
+
<xs:simpleType name="TsAliquota">
|
152
|
+
<xs:annotation>
|
153
|
+
<xs:documentation>Alíquota. Valor percentual.</xs:documentation>
|
154
|
+
</xs:annotation>
|
155
|
+
<xs:restriction base="xs:decimal">
|
156
|
+
<xs:totalDigits value="5" />
|
157
|
+
<xs:fractionDigits value="4" />
|
158
|
+
<xs:minInclusive value="0" />
|
159
|
+
</xs:restriction>
|
160
|
+
</xs:simpleType>
|
161
|
+
|
162
|
+
<xs:simpleType name="tsItemListaServico">
|
163
|
+
<xs:annotation>
|
164
|
+
<xs:documentation>Código do item da lista de serviço</xs:documentation>
|
165
|
+
</xs:annotation>
|
166
|
+
<xs:restriction base="xs:string">
|
167
|
+
<xs:minLength value="0" />
|
168
|
+
<xs:maxLength value="4" />
|
169
|
+
<xs:whiteSpace value="collapse" />
|
170
|
+
</xs:restriction>
|
171
|
+
</xs:simpleType>
|
172
|
+
|
173
|
+
<xs:simpleType name="TsCodigoCnae">
|
174
|
+
<xs:annotation>
|
175
|
+
<xs:documentation>Código CNAE</xs:documentation>
|
176
|
+
</xs:annotation>
|
177
|
+
<xs:restriction base="xs:long">
|
178
|
+
<xs:pattern value="[0-9]{1,7}" />
|
179
|
+
</xs:restriction>
|
180
|
+
</xs:simpleType>
|
181
|
+
|
182
|
+
<xs:simpleType name="tsCodigoTributacao">
|
183
|
+
<xs:annotation>
|
184
|
+
<xs:documentation>Código de tributação</xs:documentation>
|
185
|
+
</xs:annotation>
|
186
|
+
<xs:restriction base="xs:string">
|
187
|
+
<xs:minLength value="1" />
|
188
|
+
<xs:maxLength value="20" />
|
189
|
+
<xs:whiteSpace value="collapse" />
|
190
|
+
</xs:restriction>
|
191
|
+
</xs:simpleType>
|
192
|
+
|
193
|
+
<xs:simpleType name="tsDiscriminacao">
|
194
|
+
<xs:annotation>
|
195
|
+
<xs:documentation>Discriminação do conteúdo da NFS-e.</xs:documentation>
|
196
|
+
</xs:annotation>
|
197
|
+
<xs:restriction base="xs:string">
|
198
|
+
<xs:minLength value="0" />
|
199
|
+
<xs:maxLength value="2000" />
|
200
|
+
<xs:whiteSpace value="collapse" />
|
201
|
+
</xs:restriction>
|
202
|
+
</xs:simpleType>
|
203
|
+
|
204
|
+
<xs:simpleType name="tsCodigoMunicipioIbge">
|
205
|
+
<xs:annotation>
|
206
|
+
<xs:documentation>Código CNAE</xs:documentation>
|
207
|
+
</xs:annotation>
|
208
|
+
<xs:restriction base="xs:long">
|
209
|
+
<xs:pattern value="[0-9]{1,7}" />
|
210
|
+
</xs:restriction>
|
211
|
+
</xs:simpleType>
|
212
|
+
|
213
|
+
<xs:simpleType name="tsEndereco">
|
214
|
+
<xs:annotation>
|
215
|
+
<xs:documentation>Endereço</xs:documentation>
|
216
|
+
</xs:annotation>
|
217
|
+
<xs:restriction base="xs:string">
|
218
|
+
<xs:minLength value="0" />
|
219
|
+
<xs:maxLength value="100" />
|
220
|
+
<xs:whiteSpace value="collapse" />
|
221
|
+
</xs:restriction>
|
222
|
+
</xs:simpleType>
|
223
|
+
|
224
|
+
<xs:simpleType name="tsNumeroEndereco">
|
225
|
+
<xs:annotation>
|
226
|
+
<xs:documentation>Número do endereço</xs:documentation>
|
227
|
+
</xs:annotation>
|
228
|
+
<xs:restriction base="xs:string">
|
229
|
+
<xs:minLength value="0" />
|
230
|
+
<xs:maxLength value="10" />
|
231
|
+
<xs:whiteSpace value="collapse" />
|
232
|
+
</xs:restriction>
|
233
|
+
</xs:simpleType>
|
234
|
+
|
235
|
+
<xs:simpleType name="tsComplementoEndereco">
|
236
|
+
<xs:annotation>
|
237
|
+
<xs:documentation>Complemento de endereço.</xs:documentation>
|
238
|
+
</xs:annotation>
|
239
|
+
<xs:restriction base="xs:string">
|
240
|
+
<xs:minLength value="0" />
|
241
|
+
<xs:maxLength value="60" />
|
242
|
+
<xs:whiteSpace value="collapse" />
|
243
|
+
</xs:restriction>
|
244
|
+
</xs:simpleType>
|
245
|
+
|
246
|
+
<xs:simpleType name="tsBairro">
|
247
|
+
<xs:annotation>
|
248
|
+
<xs:documentation>Bairro</xs:documentation>
|
249
|
+
</xs:annotation>
|
250
|
+
<xs:restriction base="xs:string">
|
251
|
+
<xs:minLength value="0" />
|
252
|
+
<xs:maxLength value="60" />
|
253
|
+
<xs:whiteSpace value="collapse" />
|
254
|
+
</xs:restriction>
|
255
|
+
</xs:simpleType>
|
256
|
+
|
257
|
+
<xs:simpleType name="tsUf">
|
258
|
+
<xs:annotation>
|
259
|
+
<xs:documentation>Sigla da unidade federativa</xs:documentation>
|
260
|
+
</xs:annotation>
|
261
|
+
<xs:restriction base="xs:string">
|
262
|
+
<xs:minLength value="2" />
|
263
|
+
<xs:maxLength value="2" />
|
264
|
+
<xs:whiteSpace value="collapse" />
|
265
|
+
</xs:restriction>
|
266
|
+
</xs:simpleType>
|
267
|
+
|
268
|
+
<xs:simpleType name="tsCep">
|
269
|
+
<xs:annotation>
|
270
|
+
<xs:documentation>Número do CEP</xs:documentation>
|
271
|
+
</xs:annotation>
|
272
|
+
<xs:restriction base="xs:int">
|
273
|
+
<xs:pattern value="[0-9]{7,8}" />
|
274
|
+
</xs:restriction>
|
275
|
+
</xs:simpleType>
|
276
|
+
|
277
|
+
<xs:simpleType name="tsEmail">
|
278
|
+
<xs:annotation>
|
279
|
+
<xs:documentation>E-mail</xs:documentation>
|
280
|
+
</xs:annotation>
|
281
|
+
<xs:restriction base="xs:string">
|
282
|
+
<xs:minLength value="5" />
|
283
|
+
<xs:maxLength value="80" />
|
284
|
+
<xs:whiteSpace value="collapse" />
|
285
|
+
<xs:pattern value="[A-Za-z0-9\\._-]+@[A-Za-z0-9\\._-]+[.][A-Za-z]+" />
|
286
|
+
</xs:restriction>
|
287
|
+
</xs:simpleType>
|
288
|
+
|
289
|
+
<xs:simpleType name="tsTelefone">
|
290
|
+
<xs:annotation>
|
291
|
+
<xs:documentation>Telefone</xs:documentation>
|
292
|
+
</xs:annotation>
|
293
|
+
<xs:restriction base="xs:string">
|
294
|
+
<xs:minLength value="8" />
|
295
|
+
<xs:maxLength value="11" />
|
296
|
+
<xs:whiteSpace value="collapse" />
|
297
|
+
<xs:pattern value="[0-9]{8,11}" />
|
298
|
+
</xs:restriction>
|
299
|
+
</xs:simpleType>
|
300
|
+
|
301
|
+
<xs:simpleType name="tsCodigoObra">
|
302
|
+
<xs:annotation>
|
303
|
+
<xs:documentation>Código de Obra</xs:documentation>
|
304
|
+
</xs:annotation>
|
305
|
+
<xs:restriction base="xs:string">
|
306
|
+
<xs:minLength value="1" />
|
307
|
+
<xs:maxLength value="15" />
|
308
|
+
<xs:whiteSpace value="collapse" />
|
309
|
+
</xs:restriction>
|
310
|
+
</xs:simpleType>
|
311
|
+
|
312
|
+
<xs:simpleType name="tsArt">
|
313
|
+
<xs:annotation>
|
314
|
+
<xs:documentation>Código ART</xs:documentation>
|
315
|
+
</xs:annotation>
|
316
|
+
<xs:restriction base="xs:string">
|
317
|
+
<xs:minLength value="1" />
|
318
|
+
<xs:maxLength value="15" />
|
319
|
+
<xs:whiteSpace value="collapse" />
|
320
|
+
</xs:restriction>
|
321
|
+
</xs:simpleType>
|
322
|
+
|
323
|
+
<xs:simpleType name="tsNumeroProtocolo">
|
324
|
+
<xs:annotation>
|
325
|
+
<xs:documentation>Número do protocolo de recebimento do RPS</xs:documentation>
|
326
|
+
</xs:annotation>
|
327
|
+
<xs:restriction base="xs:long">
|
328
|
+
<xs:pattern value="[0-9]{1,15}" />
|
329
|
+
</xs:restriction>
|
330
|
+
</xs:simpleType>
|
331
|
+
|
332
|
+
<xs:simpleType name="tsCodigoVerificacao">
|
333
|
+
<xs:annotation>
|
334
|
+
<xs:documentation>Código de verificação da nota fiscal</xs:documentation>
|
335
|
+
</xs:annotation>
|
336
|
+
<xs:restriction base="xs:string">
|
337
|
+
<xs:maxLength value="9"/>
|
338
|
+
<xs:minLength value="1"/>
|
339
|
+
<xs:whiteSpace value="collapse"/>
|
340
|
+
</xs:restriction>
|
341
|
+
</xs:simpleType>
|
342
|
+
|
343
|
+
<xs:simpleType name="tsCodigoCancelamentoNfse">
|
344
|
+
<xs:annotation>
|
345
|
+
<xs:documentation>Código de erro, conforme definido na tabela erros</xs:documentation>
|
346
|
+
</xs:annotation>
|
347
|
+
<xs:restriction base="xs:string">
|
348
|
+
<xs:maxLength value="4"/>
|
349
|
+
<xs:minLength value="1"/>
|
350
|
+
<xs:whiteSpace value="collapse"/>
|
351
|
+
</xs:restriction>
|
352
|
+
</xs:simpleType>
|
353
|
+
|
354
|
+
<!-- Tipos Complexos-->
|
355
|
+
<xs:complexType name="tcIdentificacaoPrestador">
|
356
|
+
<xs:annotation>
|
357
|
+
<xs:documentation>Representa dados para identificação do prestador de serviços</xs:documentation>
|
358
|
+
</xs:annotation>
|
359
|
+
<xs:sequence>
|
360
|
+
<xs:element name="Cnpj" type="tipos:TsCnpj" minOccurs="1" maxOccurs="1" />
|
361
|
+
<xs:element name="InscricaoMunicipal" type="tipos:tsInscricaoMunicipal" minOccurs="0" maxOccurs="1" />
|
362
|
+
</xs:sequence>
|
363
|
+
</xs:complexType>
|
364
|
+
|
365
|
+
<xs:complexType name="tcIdentificacaoTomador">
|
366
|
+
<xs:annotation>
|
367
|
+
<xs:documentation>Representa dados para identificação do tomador de serviços</xs:documentation>
|
368
|
+
</xs:annotation>
|
369
|
+
<xs:sequence>
|
370
|
+
<xs:element name="CpfCnpj" type="tipos:TcCpfCnpj" minOccurs="0" maxOccurs="1" />
|
371
|
+
<xs:element name="InscricaoMunicipal" type="tipos:tsInscricaoMunicipal" minOccurs="0" maxOccurs="1" />
|
372
|
+
</xs:sequence>
|
373
|
+
</xs:complexType>
|
374
|
+
|
375
|
+
<xs:complexType name="TcIdentificacaoIntermediarioServico">
|
376
|
+
<xs:annotation>
|
377
|
+
<xs:documentation>Representa dados para identificação do intermediário de serviços</xs:documentation>
|
378
|
+
</xs:annotation>
|
379
|
+
<xs:sequence>
|
380
|
+
<xs:element name="RazaoSocial" type="tipos:tsRazaoSocial" minOccurs="1" maxOccurs="1" />
|
381
|
+
<xs:element name="CpfCnpj" type="tipos:TcCpfCnpj" minOccurs="1" maxOccurs="1" />
|
382
|
+
<xs:element name="InscricaoMunicipal" type="tipos:tsInscricaoMunicipal" minOccurs="0" maxOccurs="1" />
|
383
|
+
</xs:sequence>
|
384
|
+
</xs:complexType>
|
385
|
+
|
386
|
+
<xs:complexType name="TcCpfCnpj">
|
387
|
+
<xs:annotation>
|
388
|
+
<xs:documentation>Número de Cpf ou Cnpj</xs:documentation>
|
389
|
+
</xs:annotation>
|
390
|
+
<xs:choice>
|
391
|
+
<xs:element name="Cpf" type="tipos:TsCpf" minOccurs="1" maxOccurs="1" />
|
392
|
+
<xs:element name="Cnpj" type="tipos:TsCnpj" minOccurs="1" maxOccurs="1" />
|
393
|
+
</xs:choice>
|
394
|
+
</xs:complexType>
|
395
|
+
|
396
|
+
<xs:complexType name="tcLoteRps">
|
397
|
+
<xs:annotation>
|
398
|
+
<xs:documentation>Lote dp RPS</xs:documentation>
|
399
|
+
</xs:annotation>
|
400
|
+
<xs:sequence>
|
401
|
+
<xs:element name="NumeroLote" type="tipos:tsNumeroLote" minOccurs="1" maxOccurs="1"/>
|
402
|
+
<xs:element name="Cnpj" type="tipos:TsCnpj" minOccurs="1" maxOccurs="1"/>
|
403
|
+
<xs:element name="InscricaoMunicipal" type="tipos:tsInscricaoMunicipal" minOccurs="1" maxOccurs="1"/>
|
404
|
+
<xs:element name="QuantidadeRps" type="tipos:TsQuantidadeRps" minOccurs="1" maxOccurs="1"/>
|
405
|
+
<xs:element name="ListaRps" minOccurs="1" maxOccurs="1">
|
406
|
+
<xs:complexType>
|
407
|
+
<xs:sequence>
|
408
|
+
<xs:element name="Rps" maxOccurs="unbounded" type="tipos:tcRps" minOccurs="1">
|
409
|
+
</xs:element>
|
410
|
+
</xs:sequence>
|
411
|
+
</xs:complexType>
|
412
|
+
</xs:element>
|
413
|
+
</xs:sequence>
|
414
|
+
<xs:attribute name="Id" type="xs:string"/>
|
415
|
+
</xs:complexType>
|
416
|
+
|
417
|
+
<xs:complexType name="tcRps">
|
418
|
+
<xs:annotation>
|
419
|
+
<xs:documentation>Representação do RPS</xs:documentation>
|
420
|
+
</xs:annotation>
|
421
|
+
<xs:sequence>
|
422
|
+
<xs:element name="InfRps" type="tipos:tcInfRps" minOccurs="1" maxOccurs="1"/>
|
423
|
+
<xs:element ref="ds:Signature" minOccurs="0" maxOccurs="1"/>
|
424
|
+
</xs:sequence>
|
425
|
+
</xs:complexType>
|
426
|
+
|
427
|
+
<xs:complexType name="tcInfRps">
|
428
|
+
<xs:annotation>
|
429
|
+
<xs:documentation>Representa a estrutura de recibo provisório de serviços (Rps)</xs:documentation>
|
430
|
+
</xs:annotation>
|
431
|
+
<xs:sequence>
|
432
|
+
<xs:element name="IdentificacaoRps" type="tipos:tcIdentificacaoRps" minOccurs="1" maxOccurs="1" />
|
433
|
+
<xs:element name="DataEmissao" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
|
434
|
+
<xs:element name="NaturezaOperacao" type="tipos:tsNaturezaOperacao" minOccurs="1" maxOccurs="1" />
|
435
|
+
<xs:element name="RegimeEspecialTributacao" type="tipos:tsRegimeEspecialTributacao" minOccurs="0" maxOccurs="1" />
|
436
|
+
<xs:element name="OptanteSimplesNacional" type="tipos:TsSimNao" minOccurs="1" maxOccurs="1" />
|
437
|
+
<xs:element name="IncentivadorCultural" type="tipos:TsSimNao" minOccurs="1" maxOccurs="1" />
|
438
|
+
<xs:element name="Status" type="tipos:TsStatusRps" minOccurs="1" maxOccurs="1" />
|
439
|
+
<xs:element name="RpsSubstituido" type="tipos:tcIdentificacaoRps" minOccurs="0" maxOccurs="1" />
|
440
|
+
<xs:element name="Servico" type="tipos:TcDadosServico" minOccurs="1" maxOccurs="1" />
|
441
|
+
<xs:element name="Prestador" type="tipos:tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1" />
|
442
|
+
<xs:element name="Tomador" type="tipos:tcDadosTomador" minOccurs="1" maxOccurs="1" />
|
443
|
+
<xs:element name="IntermediarioServico" type="tipos:TcIdentificacaoIntermediarioServico" minOccurs="0" maxOccurs="1" />
|
444
|
+
<xs:element name="ConstrucaoCivil" type="tipos:tcDadosConstrucaoCivil" minOccurs="0" maxOccurs="1" />
|
445
|
+
</xs:sequence>
|
446
|
+
<xs:attribute name="Id" type="xs:string"/>
|
447
|
+
</xs:complexType>
|
448
|
+
|
449
|
+
<xs:complexType name="tcIdentificacaoRps">
|
450
|
+
<xs:annotation>
|
451
|
+
<xs:documentation>Dados de identificação do Rps</xs:documentation>
|
452
|
+
</xs:annotation>
|
453
|
+
<xs:sequence>
|
454
|
+
<xs:element name="Numero" type="tipos:TsNumeroRps" minOccurs="1" maxOccurs="1" />
|
455
|
+
<xs:element name="Serie" type="tipos:TsSerieRps" minOccurs="1" maxOccurs="1" />
|
456
|
+
<xs:element name="Tipo" type="tipos:TsTipoRps" minOccurs="1" maxOccurs="1" />
|
457
|
+
</xs:sequence>
|
458
|
+
</xs:complexType>
|
459
|
+
|
460
|
+
<xs:complexType name="TcDadosServico">
|
461
|
+
<xs:annotation>
|
462
|
+
<xs:documentation>Representa dados que compõem o serviço prestado</xs:documentation>
|
463
|
+
</xs:annotation>
|
464
|
+
<xs:sequence>
|
465
|
+
<xs:element name="Valores" type="tipos:TcValores" minOccurs="1" maxOccurs="1" />
|
466
|
+
<xs:element name="ItemListaServico" type="tipos:tsItemListaServico" minOccurs="1" maxOccurs="1" />
|
467
|
+
<xs:element name="CodigoCnae" type="tipos:TsCodigoCnae" minOccurs="0" maxOccurs="1" />
|
468
|
+
<xs:element name="CodigoTributacaoMunicipio" type="tipos:tsCodigoTributacao" minOccurs="0" maxOccurs="1" />
|
469
|
+
<xs:element name="Discriminacao" type="tipos:tsDiscriminacao" minOccurs="1" maxOccurs="1" />
|
470
|
+
<xs:element name="CodigoMunicipio" type="tipos:tsCodigoMunicipioIbge" minOccurs="1" maxOccurs="1" />
|
471
|
+
</xs:sequence>
|
472
|
+
</xs:complexType>
|
473
|
+
|
474
|
+
<xs:complexType name="TcValores">
|
475
|
+
<xs:annotation>
|
476
|
+
<xs:documentation>Representa um conjunto de valores que compõe o documento fiscal</xs:documentation>
|
477
|
+
</xs:annotation>
|
478
|
+
<xs:sequence>
|
479
|
+
<xs:element name="ValorServicos" type="tipos:TsValor" minOccurs="1" maxOccurs="1" />
|
480
|
+
<xs:element name="ValorDeducoes" type="tipos:TsValor" minOccurs="0" maxOccurs="1" />
|
481
|
+
<xs:element name="ValorPis" type="tipos:TsValor" minOccurs="0" maxOccurs="1" />
|
482
|
+
<xs:element name="ValorCofins" type="tipos:TsValor" minOccurs="0" maxOccurs="1" />
|
483
|
+
<xs:element name="ValorInss" type="tipos:TsValor" minOccurs="0" maxOccurs="1" />
|
484
|
+
<xs:element name="ValorIr" type="tipos:TsValor" minOccurs="0" maxOccurs="1" />
|
485
|
+
<xs:element name="ValorCsll" type="tipos:TsValor" minOccurs="0" maxOccurs="1" />
|
486
|
+
<xs:element name="IssRetido" type="tipos:TsSimNao" minOccurs="1" maxOccurs="1" />
|
487
|
+
<xs:element name="ValorIss" type="tipos:TsValor" minOccurs="0" maxOccurs="1" />
|
488
|
+
<xs:element name="ValorIssRetido" type="tipos:TsValor" minOccurs="0" maxOccurs="1" />
|
489
|
+
<xs:element name="OutrasRetencoes" type="tipos:TsValor" minOccurs="0" maxOccurs="1" />
|
490
|
+
<xs:element name="BaseCalculo" type="tipos:TsValor" minOccurs="0" maxOccurs="1" >
|
491
|
+
<xs:annotation>
|
492
|
+
<xs:documentation>Valor dos serviços - valor das deduções - descontos incondicionados</xs:documentation>
|
493
|
+
</xs:annotation>
|
494
|
+
</xs:element>
|
495
|
+
<xs:element name="Aliquota" type="tipos:TsAliquota" minOccurs="0" maxOccurs="1" />
|
496
|
+
<xs:element name="ValorLiquidoNfse" type="tipos:TsValor" minOccurs="0" maxOccurs="1" >
|
497
|
+
<xs:annotation>
|
498
|
+
<xs:documentation>Valor dos serviços - valor do PIS - valor COFINS - valor INSS - valor IR - valor CSLL - outras retenções - valor ISS retido - desconto incondicionado - desconto condicionado</xs:documentation>
|
499
|
+
</xs:annotation>
|
500
|
+
</xs:element>
|
501
|
+
<xs:element name="DescontoIncondicionado" type="tipos:TsValor" minOccurs="0" maxOccurs="1" />
|
502
|
+
<xs:element name="DescontoCondicionado" type="tipos:TsValor" minOccurs="0" maxOccurs="1" />
|
503
|
+
</xs:sequence>
|
504
|
+
</xs:complexType>
|
505
|
+
|
506
|
+
<xs:complexType name="tcDadosTomador">
|
507
|
+
<xs:annotation>
|
508
|
+
<xs:documentation>Representa dados do tomador de serviços</xs:documentation>
|
509
|
+
</xs:annotation>
|
510
|
+
<xs:sequence>
|
511
|
+
<xs:element name="IdentificacaoTomador" type="tipos:tcIdentificacaoTomador" minOccurs="0" maxOccurs="1" />
|
512
|
+
<xs:element name="RazaoSocial" type="tipos:tsRazaoSocial" minOccurs="0" maxOccurs="1" />
|
513
|
+
<xs:element name="Endereco" type="tipos:TcEndereco" minOccurs="0" maxOccurs="1" />
|
514
|
+
<xs:element name="Contato" type="tipos:TcContato" minOccurs="0" maxOccurs="1" />
|
515
|
+
</xs:sequence>
|
516
|
+
</xs:complexType>
|
517
|
+
|
518
|
+
<xs:complexType name="TcEndereco">
|
519
|
+
<xs:annotation>
|
520
|
+
<xs:documentation>Representação completa do endereço</xs:documentation>
|
521
|
+
</xs:annotation>
|
522
|
+
<xs:sequence>
|
523
|
+
<xs:element name="Endereco" type="tipos:tsEndereco" minOccurs="0" maxOccurs="1" />
|
524
|
+
<xs:element name="Numero" type="tipos:tsNumeroEndereco" minOccurs="0" maxOccurs="1" />
|
525
|
+
<xs:element name="Complemento" type="tipos:tsComplementoEndereco" minOccurs="0" maxOccurs="1" />
|
526
|
+
<xs:element name="Bairro" type="tipos:tsBairro" minOccurs="0" maxOccurs="1" />
|
527
|
+
<xs:element name="CodigoMunicipio" type="tipos:tsCodigoMunicipioIbge" minOccurs="0" maxOccurs="1" />
|
528
|
+
<xs:element name="Uf" type="tipos:tsUf" minOccurs="0" maxOccurs="1" />
|
529
|
+
<xs:element name="Cep" type="tipos:tsCep" minOccurs="0" maxOccurs="1" />
|
530
|
+
</xs:sequence>
|
531
|
+
</xs:complexType>
|
532
|
+
|
533
|
+
<xs:complexType name="TcContato">
|
534
|
+
<xs:annotation>
|
535
|
+
<xs:documentation>Representa a forma de contato com a pessoa (física/jurídica)</xs:documentation>
|
536
|
+
</xs:annotation>
|
537
|
+
<xs:sequence>
|
538
|
+
<xs:element name="Telefone" type="tipos:tsTelefone" minOccurs="0" maxOccurs="1" />
|
539
|
+
<xs:element name="Email" type="tipos:tsEmail" minOccurs="0" maxOccurs="1" />
|
540
|
+
</xs:sequence>
|
541
|
+
</xs:complexType>
|
542
|
+
|
543
|
+
<xs:complexType name="tcDadosConstrucaoCivil">
|
544
|
+
<xs:annotation>
|
545
|
+
<xs:documentation>Representa dados para identificação de construção civil</xs:documentation>
|
546
|
+
</xs:annotation>
|
547
|
+
<xs:sequence>
|
548
|
+
<xs:element name="CodigoObra" type="tipos:tsCodigoObra" minOccurs="1" maxOccurs="1" />
|
549
|
+
<xs:element name="Art" type="tipos:tsArt" minOccurs="1" maxOccurs="1" />
|
550
|
+
</xs:sequence>
|
551
|
+
</xs:complexType>
|
552
|
+
|
553
|
+
<xs:complexType name="tcPedidoCancelamento">
|
554
|
+
<xs:annotation>
|
555
|
+
<xs:documentation>Representa dados para o pedido de cancelamento de uma nota fiscal</xs:documentation>
|
556
|
+
</xs:annotation>
|
557
|
+
<xs:sequence>
|
558
|
+
<xs:element name="InfPedidoCancelamento" type="tipos:tcInfPedidoCancelamento" minOccurs="1" maxOccurs="1"/>
|
559
|
+
<xs:element ref="ds:Signature" minOccurs="1" maxOccurs="1"/>
|
560
|
+
</xs:sequence>
|
561
|
+
</xs:complexType>
|
562
|
+
|
563
|
+
<xs:complexType name="tcInfPedidoCancelamento">
|
564
|
+
<xs:sequence>
|
565
|
+
<xs:element name="IdentificacaoNfse" type="tipos:tcIdentificacaoNfse" minOccurs="1" maxOccurs="1"/>
|
566
|
+
<xs:element name="CodigoCancelamento" type="tipos:tsCodigoCancelamentoNfse" minOccurs="1" maxOccurs="1"/>
|
567
|
+
</xs:sequence>
|
568
|
+
<xs:attribute name="Id" type="xs:string"/>
|
569
|
+
</xs:complexType>
|
570
|
+
|
571
|
+
<xs:complexType name="tcIdentificacaoNfse">
|
572
|
+
<xs:annotation>
|
573
|
+
<xs:documentation>Representa dados que identificam uma Nota Fiscal de Serviços Eletrônica</xs:documentation>
|
574
|
+
</xs:annotation>
|
575
|
+
<xs:sequence>
|
576
|
+
<xs:element name="Numero" type="tipos:TsNumeroNfse" minOccurs="1" maxOccurs="1" />
|
577
|
+
<xs:element name="Cnpj" type="tipos:TsCnpj" minOccurs="1" maxOccurs="1"/>
|
578
|
+
<xs:element name="InscricaoMunicipal" type="tipos:tsInscricaoMunicipal" minOccurs="0" maxOccurs="1"/>
|
579
|
+
<xs:element name="CodigoMunicipio" type="tipos:tsCodigoMunicipioIbge" minOccurs="1" maxOccurs="1"/>
|
580
|
+
</xs:sequence>
|
581
|
+
</xs:complexType>
|
582
|
+
|
583
|
+
</xs:schema>
|