br_nfe 1.1.0 → 2.0.0

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.
Files changed (257) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/.travis.yml +8 -0
  4. data/Gemfile +16 -0
  5. data/Gemfile.lock +27 -3
  6. data/LICENSE +1 -1
  7. data/README.markdown +10 -12
  8. data/Rakefile +13 -0
  9. data/br_nfe.gemspec +18 -21
  10. data/lib/br_nfe/active_model_base.rb +7 -1
  11. data/lib/br_nfe/base.rb +175 -37
  12. data/lib/br_nfe/endereco.rb +7 -1
  13. data/lib/br_nfe/helper/have_rps.rb +1 -1
  14. data/lib/br_nfe/helper/values_ts/service_v1.rb +313 -0
  15. data/lib/br_nfe/response/service/build_response.rb +286 -0
  16. data/lib/br_nfe/response/service/default.rb +185 -0
  17. data/lib/br_nfe/{servico/response → response/service}/nota_fiscal.rb +11 -10
  18. data/lib/br_nfe/response/service/paths/base.rb +93 -0
  19. data/lib/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta.rb +22 -0
  20. data/lib/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta.rb +25 -0
  21. data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta.rb +25 -0
  22. data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta.rb +25 -0
  23. data/lib/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta.rb +31 -0
  24. data/lib/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta.rb +36 -0
  25. data/lib/br_nfe/response/service/paths/v1/tc_nfse.rb +127 -0
  26. data/lib/br_nfe/service/base.rb +59 -0
  27. data/lib/br_nfe/service/betha/base.rb +8 -0
  28. data/lib/br_nfe/service/betha/v1/cancelamento_nfs.rb +39 -0
  29. data/lib/br_nfe/service/betha/v1/consulta_lote_rps.rb +34 -0
  30. data/lib/br_nfe/service/betha/v1/consulta_nfs_por_rps.rb +32 -0
  31. data/lib/br_nfe/service/betha/v1/consulta_nfse.rb +32 -0
  32. data/lib/br_nfe/service/betha/v1/consulta_situacao_lote_rps.rb +30 -0
  33. data/lib/br_nfe/service/betha/v1/gateway.rb +21 -0
  34. data/lib/br_nfe/service/betha/v1/recepcao_lote_rps.rb +37 -0
  35. data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta.rb +19 -0
  36. data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta.rb +17 -0
  37. data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +17 -0
  38. data/lib/br_nfe/service/concerns/rules/cancelamento_nfs.rb +20 -0
  39. data/lib/br_nfe/service/concerns/rules/consulta_nfs_por_rps.rb +18 -0
  40. data/lib/br_nfe/service/concerns/rules/consulta_nfse.rb +29 -0
  41. data/lib/br_nfe/service/concerns/rules/recepcao_lote_rps.rb +50 -0
  42. data/lib/br_nfe/{servico → service}/intermediario.rb +1 -1
  43. data/lib/br_nfe/service/item.rb +70 -0
  44. data/lib/br_nfe/service/rps.rb +231 -0
  45. data/lib/br_nfe/service/sc/florianopolis/base.rb +25 -0
  46. data/lib/br_nfe/service/sc/florianopolis/cancellation.rb +30 -0
  47. data/lib/br_nfe/service/sc/florianopolis/emission_rps.rb +19 -0
  48. data/lib/br_nfe/service/sc/florianopolis/xml/_address.xml.slim +21 -0
  49. data/lib/br_nfe/service/sc/florianopolis/xml/_contact.xml.slim +3 -0
  50. data/lib/br_nfe/service/sc/florianopolis/xml/_service_item.xml.slim +9 -0
  51. data/lib/br_nfe/service/sc/florianopolis/xml/cancellation.xml.slim +6 -0
  52. data/lib/br_nfe/service/sc/florianopolis/xml/inf_requisicao.xml.slim +55 -0
  53. data/lib/br_nfe/service/sc/gaspar/cancela_nfse.rb +13 -0
  54. data/lib/br_nfe/service/sc/gaspar/consulta_lote_rps.rb +13 -0
  55. data/lib/br_nfe/service/sc/gaspar/consulta_nfs_por_rps.rb +13 -0
  56. data/lib/br_nfe/service/sc/gaspar/consulta_nfse.rb +17 -0
  57. data/lib/br_nfe/service/sc/gaspar/consulta_situacao_lote_rps.rb +13 -0
  58. data/lib/br_nfe/service/sc/gaspar/recepcao_lote_rps.rb +13 -0
  59. data/lib/br_nfe/service/sc/gaspar/recepcao_lote_rps_limitado.rb +13 -0
  60. data/lib/br_nfe/service/thema/v1/base.rb +55 -0
  61. data/lib/br_nfe/service/thema/v1/cancela_nfse.rb +48 -0
  62. data/lib/br_nfe/service/thema/v1/consulta_lote_rps.rb +49 -0
  63. data/lib/br_nfe/service/thema/v1/consulta_nfs_por_rps.rb +48 -0
  64. data/lib/br_nfe/service/thema/v1/consulta_nfse.rb +47 -0
  65. data/lib/br_nfe/service/thema/v1/consulta_situacao_lote_rps.rb +46 -0
  66. data/lib/br_nfe/service/thema/v1/recepcao_lote_rps.rb +51 -0
  67. data/lib/br_nfe/service/thema/v1/recepcao_lote_rps_limitado.rb +30 -0
  68. data/lib/br_nfe/service/xml/v1/_tc_contato.xml.slim +7 -0
  69. data/lib/br_nfe/service/xml/v1/_tc_cpf_cnpj.xml.slim +5 -0
  70. data/lib/br_nfe/service/xml/v1/_tc_dados_construcao_civil.xml.slim +2 -0
  71. data/lib/br_nfe/service/xml/v1/_tc_dados_prestador.xml.slim +15 -0
  72. data/lib/br_nfe/service/xml/v1/_tc_dados_servico.xml.slim +14 -0
  73. data/lib/br_nfe/service/xml/v1/_tc_dados_tomador.xml.slim +15 -0
  74. data/lib/br_nfe/service/xml/v1/_tc_endereco.xml.slim +13 -0
  75. data/lib/br_nfe/service/xml/v1/_tc_identificacao_intermediario_servico.xml.slim +7 -0
  76. data/lib/br_nfe/service/xml/v1/_tc_identificacao_nfse.xml.slim +7 -0
  77. data/lib/br_nfe/service/xml/v1/_tc_identificacao_orgao_gerador.xml.slim +8 -0
  78. data/lib/br_nfe/service/xml/v1/_tc_identificacao_prestador.xml.slim +3 -0
  79. data/lib/br_nfe/service/xml/v1/_tc_identificacao_rps.xml.slim +16 -0
  80. data/lib/br_nfe/service/xml/v1/_tc_identificacao_tomador.xml.slim +4 -0
  81. data/lib/br_nfe/service/xml/v1/_tc_inf_pedido_cancelamento.xml.slim +4 -0
  82. data/lib/br_nfe/service/xml/v1/_tc_inf_rps.xml.slim +47 -0
  83. data/lib/br_nfe/service/xml/v1/_tc_lote_rps.xml.slim +9 -0
  84. data/lib/br_nfe/service/xml/v1/_tc_pedido_cancelamento.xml.slim +4 -0
  85. data/lib/br_nfe/service/xml/v1/_tc_rps.xml.slim +8 -0
  86. data/lib/br_nfe/service/xml/v1/_tc_valores.xml.slim +48 -0
  87. data/lib/br_nfe/service/xml/v1/servico_cancelar_nfse_envio.xml.slim +9 -0
  88. data/lib/br_nfe/service/xml/v1/servico_consultar_lote_rps_envio.xml.slim +4 -0
  89. data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_envio.xml.slim +19 -0
  90. data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_rps_envio.xml.slim +5 -0
  91. data/lib/br_nfe/service/xml/v1/servico_consultar_situacao_lote_rps_envio.xml.slim +4 -0
  92. data/lib/br_nfe/service/xml/v1/servico_enviar_lote_rps_envio.xml.slim +9 -0
  93. data/lib/br_nfe/version.rb +2 -2
  94. data/lib/br_nfe/xml/_signed_info_sh1.xml.slim +9 -0
  95. data/lib/br_nfe/xml/signature_sh1.xml.slim +12 -0
  96. data/lib/br_nfe/xml/soap_env.xml.slim +3 -0
  97. data/lib/br_nfe.rb +72 -20
  98. data/test/br_nfe/base_test.rb +257 -108
  99. data/test/br_nfe/helper/have_intermediario_test.rb +2 -2
  100. data/test/br_nfe/helper/have_rps_test.rb +4 -4
  101. data/test/br_nfe/response/service/build_response_test.rb +377 -0
  102. data/test/br_nfe/response/service/default_test.rb +218 -0
  103. data/test/br_nfe/{servico/response → response/service}/nota_fiscal_test.rb +2 -2
  104. data/test/br_nfe/response/service/paths/base_test.rb +199 -0
  105. data/test/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta_test.rb +25 -0
  106. data/test/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta_test.rb +30 -0
  107. data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta_test.rb +30 -0
  108. data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta_test.rb +30 -0
  109. data/test/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta_test.rb +30 -0
  110. data/test/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta_test.rb +34 -0
  111. data/test/br_nfe/response/service/paths/v1/tc_nfse_test.rb +122 -0
  112. data/test/br_nfe/service/base_test.rb +138 -0
  113. data/test/br_nfe/service/betha/base_test.rb +9 -0
  114. data/test/br_nfe/service/betha/v1/cancelamento_nfs_test.rb +60 -0
  115. data/test/br_nfe/service/betha/v1/consulta_lote_rps_test.rb +55 -0
  116. data/test/br_nfe/service/betha/v1/consulta_nfs_por_rps_test.rb +55 -0
  117. data/test/br_nfe/service/betha/v1/consulta_nfse_test.rb +53 -0
  118. data/test/br_nfe/service/betha/v1/consulta_situacao_lote_rps_test.rb +49 -0
  119. data/test/br_nfe/service/betha/v1/gateway_test.rb +35 -0
  120. data/test/br_nfe/service/betha/v1/recepcao_lote_rps_test.rb +84 -0
  121. data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta_test.rb +16 -0
  122. data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta_test.rb +16 -0
  123. data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta_test.rb +16 -0
  124. data/test/br_nfe/service/betha/v1/xsd/TiposNFe_v01.xsd +583 -0
  125. data/test/br_nfe/service/betha/v1/xsd/nfse_v01.xsd +652 -0
  126. data/test/br_nfe/service/betha/v1/xsd/servico_cancelar_nfse_envio_v01.xsd +17 -0
  127. data/test/br_nfe/service/betha/v1/xsd/servico_consultar_lote_rps_envio_v01.xsd +16 -0
  128. data/test/br_nfe/service/betha/v1/xsd/servico_consultar_nfse_envio_v01.xsd +28 -0
  129. data/test/br_nfe/service/betha/v1/xsd/servico_consultar_nfse_rps_envio_v01.xsd +16 -0
  130. data/test/br_nfe/service/betha/v1/xsd/servico_consultar_situacao_lote_rps_envio_v01.xsd +16 -0
  131. data/test/br_nfe/service/betha/v1/xsd/servico_enviar_lote_rps_envio_v01.xsd +17 -0
  132. data/test/br_nfe/service/betha/v1/xsd/xmldsig-core-schema.xsd +308 -0
  133. data/test/br_nfe/service/betha/v1/xsd/xmldsig-core-schema_v01.xsd +95 -0
  134. data/test/br_nfe/service/concerns/rules/cancelamento_nfs_test.rb +15 -0
  135. data/test/br_nfe/service/concerns/rules/consulta_nfs_por_rps_test.rb +36 -0
  136. data/test/br_nfe/service/concerns/rules/consulta_nfse_test.rb +42 -0
  137. data/test/br_nfe/{servico/base_test.rb → service/concerns/rules/recepcao_lote_rps_test.rb} +12 -4
  138. data/test/br_nfe/{servico → service}/intermediario_test.rb +1 -1
  139. data/test/br_nfe/service/item_test.rb +34 -0
  140. data/test/br_nfe/{servico → service}/rps_test.rb +191 -43
  141. data/test/br_nfe/service/sc/florianopolis/XSD/TiposNFSe_v2.0.xsd +863 -0
  142. data/test/br_nfe/service/sc/florianopolis/XSD/xmldsig-core-schema.xsd +309 -0
  143. data/test/br_nfe/service/sc/florianopolis/base_test.rb +20 -0
  144. data/test/br_nfe/service/sc/florianopolis/cancellation_test.rb +36 -0
  145. data/test/br_nfe/service/sc/florianopolis/emission_rps_test.rb +145 -0
  146. data/test/br_nfe/service/sc/gaspar/cancela_nfse_test.rb +21 -0
  147. data/test/br_nfe/service/sc/gaspar/consulta_nfs_por_rps_test.rb +21 -0
  148. data/test/br_nfe/service/sc/gaspar/consulta_nfse_test.rb +21 -0
  149. data/test/br_nfe/service/sc/gaspar/consulta_situacao_lote_rps_test.rb +21 -0
  150. data/test/br_nfe/service/sc/gaspar/recepcao_lote_rps_limitado_test.rb +22 -0
  151. data/test/br_nfe/service/sc/gaspar/recepcao_lote_rps_test.rb +22 -0
  152. data/test/br_nfe/service/thema/v1/base_test.rb +65 -0
  153. data/test/br_nfe/service/thema/v1/cancela_nfse_test.rb +56 -0
  154. data/test/br_nfe/service/thema/v1/consulta_lote_rps_test.rb +47 -0
  155. data/test/br_nfe/service/thema/v1/consulta_nfs_por_rps_test.rb +50 -0
  156. data/test/br_nfe/service/thema/v1/consulta_nfse_test.rb +50 -0
  157. data/test/br_nfe/service/thema/v1/consulta_situacao_lote_rps_test.rb +47 -0
  158. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test.rb +62 -0
  159. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test_limitado.rb +50 -0
  160. data/test/br_nfe/service/thema/v1/xsd/nfse.xsd +656 -0
  161. data/test/br_nfe/service/thema/v1/xsd/xmldsig-core-schema20020212.xsd +318 -0
  162. data/test/br_nfe/service/xsd/v1/nfse.xsd +779 -0
  163. data/test/br_nfe/service/xsd/v1/xmldsig-core-schema20020212.xsd +316 -0
  164. data/test/cert.pfx +0 -0
  165. data/test/factories/base.rb +2 -0
  166. data/test/factories/destinatario.rb +3 -3
  167. data/test/factories/response/service/build_response.rb +5 -0
  168. data/test/factories/response/service/default.rb +10 -0
  169. data/test/factories/{servico/response → response/service}/nota_fiscal.rb +9 -9
  170. data/test/factories/service/base.rb +6 -0
  171. data/test/factories/service/betha/base.rb +4 -0
  172. data/test/factories/service/betha/v1/cancelamento_nfs.rb +9 -0
  173. data/test/factories/{servico → service}/betha/v1/consulta_lote_rps.rb +2 -2
  174. data/test/factories/{servico → service}/betha/v1/consulta_nfs_por_rps.rb +1 -1
  175. data/test/factories/service/betha/v1/consulta_nfse.rb +8 -0
  176. data/test/factories/{servico → service}/betha/v1/consulta_situacao_lote_rps.rb +2 -2
  177. data/test/factories/{servico → service}/betha/v1/gateway.rb +1 -1
  178. data/test/factories/service/betha/v1/recepcao_lote_rps.rb +8 -0
  179. data/test/factories/{servico → service}/intermediario.rb +2 -2
  180. data/test/factories/service/item.rb +12 -0
  181. data/test/factories/service/rps.rb +50 -0
  182. data/test/factories/service/sc/florianopolis/base.rb +5 -0
  183. data/test/factories/service/sc/florianopolis/cancellation.rb +7 -0
  184. data/test/factories/service/sc/florianopolis/emission_rps.rb +7 -0
  185. data/test/factories/service/sc/gaspar/cancela_nfse.rb +9 -0
  186. data/test/factories/service/sc/gaspar/consulta_lote_rps.rb +7 -0
  187. data/test/factories/service/sc/gaspar/consulta_nfs_por_rps.rb +6 -0
  188. data/test/factories/service/sc/gaspar/consulta_nfse.rb +8 -0
  189. data/test/factories/service/sc/gaspar/consulta_situacao_lote_rps.rb +6 -0
  190. data/test/factories/service/sc/gaspar/recepcao_lote_rps.rb +9 -0
  191. data/test/factories/service/sc/gaspar/recepcao_lote_rps_limitado.rb +9 -0
  192. data/test/factories/service/thema/v1/base.rb +7 -0
  193. data/test/factories/service/thema/v1/cancela_nfse.rb +9 -0
  194. data/test/factories/service/thema/v1/consulta_lote_rps.rb +7 -0
  195. data/test/factories/service/thema/v1/consulta_nfs_por_rps.rb +6 -0
  196. data/test/factories/service/thema/v1/consulta_nfse.rb +8 -0
  197. data/test/factories/service/thema/v1/consulta_situacao_lote_rps.rb +6 -0
  198. data/test/factories/service/thema/v1/recepcao_lote_rps.rb +9 -0
  199. data/test/factories/service/thema/v1/recepcao_lote_rps_limitado.rb +8 -0
  200. data/test/test_helper.rb +42 -0
  201. metadata +338 -121
  202. data/lib/br_nfe/servico/base.rb +0 -35
  203. data/lib/br_nfe/servico/betha/base.rb +0 -85
  204. data/lib/br_nfe/servico/betha/build_response.rb +0 -141
  205. data/lib/br_nfe/servico/betha/v1/build_response.rb +0 -121
  206. data/lib/br_nfe/servico/betha/v1/cancelamento_nfs.rb +0 -52
  207. data/lib/br_nfe/servico/betha/v1/consulta_lote_rps.rb +0 -33
  208. data/lib/br_nfe/servico/betha/v1/consulta_nfs_por_rps.rb +0 -37
  209. data/lib/br_nfe/servico/betha/v1/consulta_nfse.rb +0 -51
  210. data/lib/br_nfe/servico/betha/v1/consulta_situacao_lote_rps.rb +0 -18
  211. data/lib/br_nfe/servico/betha/v1/gateway.rb +0 -125
  212. data/lib/br_nfe/servico/betha/v1/recepcao_lote_rps.rb +0 -97
  213. data/lib/br_nfe/servico/betha/v2/build_response.rb +0 -159
  214. data/lib/br_nfe/servico/betha/v2/cancelamento_nfs.rb +0 -30
  215. data/lib/br_nfe/servico/betha/v2/consulta_lote_rps.rb +0 -30
  216. data/lib/br_nfe/servico/betha/v2/consulta_nfse_por_rps.rb +0 -27
  217. data/lib/br_nfe/servico/betha/v2/envio_lote_rps_sincrono.rb +0 -30
  218. data/lib/br_nfe/servico/betha/v2/gateway.rb +0 -230
  219. data/lib/br_nfe/servico/betha/v2/gera_nfse.rb +0 -30
  220. data/lib/br_nfe/servico/betha/v2/recepcao_lote_rps.rb +0 -52
  221. data/lib/br_nfe/servico/betha/v2/substituicao_nfse.rb +0 -43
  222. data/lib/br_nfe/servico/response/default.rb +0 -34
  223. data/lib/br_nfe/servico/rps.rb +0 -108
  224. data/test/br_nfe/servico/betha/base_test.rb +0 -135
  225. data/test/br_nfe/servico/betha/v1/build_response_test.rb +0 -557
  226. data/test/br_nfe/servico/betha/v1/cancelamento_nfs_test.rb +0 -72
  227. data/test/br_nfe/servico/betha/v1/consulta_lote_rps_test.rb +0 -46
  228. data/test/br_nfe/servico/betha/v1/consulta_nfs_por_rps_test.rb +0 -68
  229. data/test/br_nfe/servico/betha/v1/consulta_nfse_test.rb +0 -74
  230. data/test/br_nfe/servico/betha/v1/consulta_situacao_lote_rps_test.rb +0 -27
  231. data/test/br_nfe/servico/betha/v1/gateway_test.rb +0 -151
  232. data/test/br_nfe/servico/betha/v1/recepcao_lote_rps_test.rb +0 -249
  233. data/test/br_nfe/servico/betha/v2/cancelamento_nfs_test.rb +0 -44
  234. data/test/br_nfe/servico/betha/v2/consulta_lote_rps_test.rb +0 -38
  235. data/test/br_nfe/servico/betha/v2/consulta_nfse_por_rps_test.rb +0 -36
  236. data/test/br_nfe/servico/betha/v2/envio_lote_rps_sincrono_test.rb +0 -51
  237. data/test/br_nfe/servico/betha/v2/gateway_test.rb +0 -372
  238. data/test/br_nfe/servico/betha/v2/gera_nfse_test.rb +0 -62
  239. data/test/br_nfe/servico/betha/v2/recepcao_lote_rps_test.rb +0 -108
  240. data/test/br_nfe/servico/betha/v2/substituicao_nfse_test.rb +0 -84
  241. data/test/br_nfe/servico/response/default_test.rb +0 -54
  242. data/test/factories/servico/base.rb +0 -5
  243. data/test/factories/servico/betha/base.rb +0 -5
  244. data/test/factories/servico/betha/v1/build_response.rb +0 -6
  245. data/test/factories/servico/betha/v1/cancelamento_nfs.rb +0 -7
  246. data/test/factories/servico/betha/v1/consulta_nfse.rb +0 -8
  247. data/test/factories/servico/betha/v1/recepcao_lote_rps.rb +0 -6
  248. data/test/factories/servico/betha/v2/cancelamento_nfs.rb +0 -7
  249. data/test/factories/servico/betha/v2/consulta_lote_rps.rb +0 -6
  250. data/test/factories/servico/betha/v2/consulta_nfse_por_rps.rb +0 -6
  251. data/test/factories/servico/betha/v2/envio_lote_rps_sincrono.rb +0 -5
  252. data/test/factories/servico/betha/v2/gateway.rb +0 -5
  253. data/test/factories/servico/betha/v2/gera_nfse.rb +0 -6
  254. data/test/factories/servico/betha/v2/recepcao_lote_rps.rb +0 -5
  255. data/test/factories/servico/betha/v2/substituicao_nfse.rb +0 -8
  256. data/test/factories/servico/response/default.rb +0 -10
  257. data/test/factories/servico/rps.rb +0 -44
@@ -0,0 +1,62 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::Thema::V1::RecepcaoLoteRps do
4
+ subject { FactoryGirl.build(:service_thema_v1_recepcao_lote_rps, emitente: emitente) }
5
+ let(:emitente) { FactoryGirl.build(:emitente, natureza_operacao: '50') }
6
+
7
+ describe "superclass" do
8
+ it { subject.class.superclass.must_equal BrNfe::Service::Thema::V1::Base }
9
+ end
10
+
11
+ it "deve conter as regras de BrNfe::Service::Concerns::Rules::ConsultaNfsPorRps inclusas" do
12
+ subject.class.included_modules.must_include BrNfe::Service::Concerns::Rules::RecepcaoLoteRps
13
+ end
14
+
15
+ describe "#method_wsdl" do
16
+ it { subject.method_wsdl.must_equal :recepcionar_lote_rps }
17
+ end
18
+
19
+ it "#response_path_module" do
20
+ subject.response_path_module.must_equal BrNfe::Service::Response::Paths::V1::ServicoEnviarLoteRpsResposta
21
+ end
22
+
23
+ it "#response_root_path" do
24
+ subject.response_root_path.must_equal []
25
+ end
26
+
27
+ it "#body_xml_path" do
28
+ subject.body_xml_path.must_equal [:recepcionar_lote_rps_response, :return]
29
+ end
30
+
31
+ it "#soap_body_root_tag" do
32
+ subject.soap_body_root_tag.must_equal 'recepcionarLoteRps'
33
+ end
34
+
35
+ describe "Validação do XML através do XSD" do
36
+ let(:rps_basico) { FactoryGirl.build(:br_nfe_rps) }
37
+ let(:rps_completo) { FactoryGirl.build(:br_nfe_rps, :completo) }
38
+
39
+ let(:schemas_dir) { BrNfe.root+'/test/br_nfe/service/thema/v1/xsd' }
40
+
41
+ def validate_schema
42
+ Dir.chdir(schemas_dir) do
43
+ schema = Nokogiri::XML::Schema(IO.read('nfse.xsd'))
44
+ document = Nokogiri::XML(subject.xml_builder)
45
+ errors = schema.validate(document)
46
+ errors.must_be_empty
47
+ end
48
+ end
49
+ it "Deve ser válido com 1 RPS com todas as informações preenchidas" do
50
+ subject.lote_rps = [rps_completo]
51
+ validate_schema
52
+ end
53
+ it "Deve ser válido com 1 RPS com apenas as informações obrigatórias preenchidas" do
54
+ subject.lote_rps = [rps_basico]
55
+ validate_schema
56
+ end
57
+ it "Deve ser válido com vários RPS's - 1 rps completo e 1 parcial" do
58
+ subject.lote_rps = [rps_completo, rps_basico]
59
+ validate_schema
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,50 @@
1
+ require 'test_helper'
2
+
3
+ describe BrNfe::Service::Thema::V1::RecepcaoLoteRpsLimitado do
4
+ subject { FactoryGirl.build(:service_thema_v1_recepcao_lote_rps_limitado, emitente: emitente) }
5
+ let(:emitente) { FactoryGirl.build(:emitente, natureza_operacao: '50') }
6
+
7
+ describe "superclass" do
8
+ it { subject.class.superclass.must_equal BrNfe::Service::Thema::V1::RecepcaoLoteRps }
9
+ end
10
+
11
+ describe "#method_wsdl" do
12
+ it { subject.method_wsdl.must_equal :recepcionar_lote_rps_limitado }
13
+ end
14
+
15
+ it "#body_xml_path" do
16
+ subject.body_xml_path.must_equal [:recepcionar_lote_rps_limitado_response, :return]
17
+ end
18
+
19
+ it "#soap_body_root_tag" do
20
+ subject.soap_body_root_tag.must_equal 'recepcionarLoteRpsLimitado'
21
+ end
22
+
23
+ describe "Validação do XML através do XSD" do
24
+ let(:rps_basico) { FactoryGirl.build(:br_nfe_rps) }
25
+ let(:rps_completo) { FactoryGirl.build(:br_nfe_rps, :completo) }
26
+
27
+ let(:schemas_dir) { BrNfe.root+'/test/br_nfe/service/thema/v1/xsd' }
28
+
29
+ def validate_schema
30
+ Dir.chdir(schemas_dir) do
31
+ schema = Nokogiri::XML::Schema(IO.read('nfse.xsd'))
32
+ document = Nokogiri::XML(subject.xml_builder)
33
+ errors = schema.validate(document)
34
+ errors.must_be_empty
35
+ end
36
+ end
37
+ it "Deve ser válido com 1 RPS com todas as informações preenchidas" do
38
+ subject.lote_rps = [rps_completo]
39
+ validate_schema
40
+ end
41
+ it "Deve ser válido com 1 RPS com apenas as informações obrigatórias preenchidas" do
42
+ subject.lote_rps = [rps_basico]
43
+ validate_schema
44
+ end
45
+ it "Deve ser válido com vários RPS's - 1 rps completo e 1 parcial" do
46
+ subject.lote_rps = [rps_completo, rps_basico]
47
+ validate_schema
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,656 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd" xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" attributeFormDefault="unqualified" elementFormDefault="qualified">
3
+ <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema20020212.xsd"/>
4
+
5
+ <!-- definition of simple elements -->
6
+ <xsd:simpleType name="tsNumeroNfse">
7
+ <xsd:restriction base="xsd:nonNegativeInteger">
8
+ <xsd:totalDigits value="15"/>
9
+ </xsd:restriction>
10
+ </xsd:simpleType>
11
+ <xsd:simpleType name="tsCodigoVerificacao">
12
+ <xsd:restriction base="xsd:string">
13
+ <xsd:maxLength value="9"/>
14
+ <xsd:minLength value="1"/>
15
+ <xsd:whiteSpace value="collapse"/>
16
+ </xsd:restriction>
17
+ </xsd:simpleType>
18
+ <xsd:simpleType name="tsStatusRps">
19
+ <xsd:restriction base="xsd:byte">
20
+ <xsd:pattern value="1|2"/>
21
+ </xsd:restriction>
22
+ </xsd:simpleType>
23
+ <xsd:simpleType name="tsStatusNfse">
24
+ <xsd:restriction base="xsd:byte">
25
+ <xsd:pattern value="1|2"/>
26
+ </xsd:restriction>
27
+ </xsd:simpleType>
28
+ <xsd:simpleType name="tsNaturezaOperacao">
29
+ <xsd:restriction base="xsd:byte">
30
+ <xsd:pattern value="50|51|52|57|58|59|60|61|62|63|64|68|69|70|78|79"/>
31
+ </xsd:restriction>
32
+ </xsd:simpleType>
33
+ <xsd:simpleType name="tsRegimeEspecialTributacao">
34
+ <xsd:restriction base="xsd:byte">
35
+ <xsd:pattern value="1|2|3|4|5|6"/>
36
+ </xsd:restriction>
37
+ </xsd:simpleType>
38
+ <xsd:simpleType name="tsSimNao">
39
+ <xsd:restriction base="xsd:byte">
40
+ <xsd:pattern value="1|2"/>
41
+ </xsd:restriction>
42
+ </xsd:simpleType>
43
+ <xsd:simpleType name="tsNumeroRps">
44
+ <xsd:restriction base="xsd:nonNegativeInteger">
45
+ <xsd:totalDigits value="15"/>
46
+ </xsd:restriction>
47
+ </xsd:simpleType>
48
+ <xsd:simpleType name="tsSerieRps">
49
+ <xsd:restriction base="xsd:string">
50
+ <xsd:maxLength value="5"/>
51
+ <xsd:minLength value="1"/>
52
+ <xsd:whiteSpace value="collapse"/>
53
+ </xsd:restriction>
54
+ </xsd:simpleType>
55
+ <xsd:simpleType name="tsTipoRps">
56
+ <xsd:restriction base="xsd:byte">
57
+ <xsd:pattern value="1|2|3"/>
58
+ </xsd:restriction>
59
+ </xsd:simpleType>
60
+ <xsd:simpleType name="tsOutrasInformacoes">
61
+ <xsd:restriction base="xsd:string">
62
+ <xsd:maxLength value="255"/>
63
+ <xsd:minLength value="1"/>
64
+ <xsd:whiteSpace value="collapse"/>
65
+ </xsd:restriction>
66
+ </xsd:simpleType>
67
+ <xsd:simpleType name="tsValor">
68
+ <xsd:restriction base="xsd:decimal">
69
+ <xsd:totalDigits value="15"/>
70
+ <xsd:fractionDigits value="2" fixed="true"/>
71
+ <xsd:minInclusive value="0"/>
72
+ </xsd:restriction>
73
+ </xsd:simpleType>
74
+ <xsd:simpleType name="tsItemListaServico">
75
+ <xsd:restriction base="xsd:string">
76
+ <xsd:maxLength value="5"/>
77
+ <xsd:minLength value="1"/>
78
+ <xsd:whiteSpace value="collapse"/>
79
+ </xsd:restriction>
80
+ </xsd:simpleType>
81
+ <xsd:simpleType name="tsCodigoCnae">
82
+ <xsd:restriction base="xsd:int">
83
+ <xsd:totalDigits value="7"/>
84
+ </xsd:restriction>
85
+ </xsd:simpleType>
86
+ <xsd:simpleType name="tsCodigoTributacao">
87
+ <xsd:restriction base="xsd:string">
88
+ <xsd:maxLength value="20"/>
89
+ <xsd:minLength value="1"/>
90
+ <xsd:whiteSpace value="collapse"/>
91
+ </xsd:restriction>
92
+ </xsd:simpleType>
93
+ <xsd:simpleType name="tsAliquota">
94
+ <xsd:restriction base="xsd:decimal">
95
+ <xsd:totalDigits value="5"/>
96
+ <xsd:fractionDigits value="4"/>
97
+ <xsd:minInclusive value="0"/>
98
+ </xsd:restriction>
99
+ </xsd:simpleType>
100
+ <xsd:simpleType name="tsDiscriminacao">
101
+ <xsd:restriction base="xsd:string">
102
+ <xsd:maxLength value="2000"/>
103
+ <xsd:minLength value="1"/>
104
+ <xsd:whiteSpace value="collapse"/>
105
+ </xsd:restriction>
106
+ </xsd:simpleType>
107
+ <xsd:simpleType name="tsCodigoMunicipioIbge">
108
+ <xsd:restriction base="xsd:int">
109
+ <xsd:totalDigits value="7"/>
110
+ </xsd:restriction>
111
+ </xsd:simpleType>
112
+ <xsd:simpleType name="tsInscricaoMunicipal">
113
+ <xsd:restriction base="xsd:string">
114
+ <xsd:maxLength value="15"/>
115
+ <xsd:minLength value="1"/>
116
+ <xsd:whiteSpace value="collapse"/>
117
+ </xsd:restriction>
118
+ </xsd:simpleType>
119
+ <xsd:simpleType name="tsRazaoSocial">
120
+ <xsd:restriction base="xsd:string">
121
+ <xsd:maxLength value="115"/>
122
+ <xsd:minLength value="1"/>
123
+ <xsd:whiteSpace value="collapse"/>
124
+ </xsd:restriction>
125
+ </xsd:simpleType>
126
+ <xsd:simpleType name="tsNomeFantasia">
127
+ <xsd:restriction base="xsd:string">
128
+ <xsd:maxLength value="60"/>
129
+ <xsd:minLength value="1"/>
130
+ <xsd:whiteSpace value="collapse"/>
131
+ </xsd:restriction>
132
+ </xsd:simpleType>
133
+ <xsd:simpleType name="tsCnpj">
134
+ <xsd:restriction base="xsd:string">
135
+ <xsd:length value="14" fixed="true"/>
136
+ <xsd:whiteSpace value="collapse"/>
137
+ </xsd:restriction>
138
+ </xsd:simpleType>
139
+ <xsd:simpleType name="tsEndereco">
140
+ <xsd:restriction base="xsd:string">
141
+ <xsd:maxLength value="125"/>
142
+ <xsd:minLength value="1"/>
143
+ <xsd:whiteSpace value="collapse"/>
144
+ </xsd:restriction>
145
+ </xsd:simpleType>
146
+ <xsd:simpleType name="tsNumeroEndereco">
147
+ <xsd:restriction base="xsd:string">
148
+ <xsd:maxLength value="10"/>
149
+ <xsd:minLength value="1"/>
150
+ <xsd:whiteSpace value="collapse"/>
151
+ </xsd:restriction>
152
+ </xsd:simpleType>
153
+ <xsd:simpleType name="tsComplementoEndereco">
154
+ <xsd:restriction base="xsd:string">
155
+ <xsd:maxLength value="60"/>
156
+ <xsd:minLength value="1"/>
157
+ <xsd:whiteSpace value="collapse"/>
158
+ </xsd:restriction>
159
+ </xsd:simpleType>
160
+ <xsd:simpleType name="tsBairro">
161
+ <xsd:restriction base="xsd:string">
162
+ <xsd:maxLength value="60"/>
163
+ <xsd:minLength value="1"/>
164
+ <xsd:whiteSpace value="collapse"/>
165
+ </xsd:restriction>
166
+ </xsd:simpleType>
167
+ <xsd:simpleType name="tsUf">
168
+ <xsd:restriction base="xsd:string">
169
+ <xsd:length value="2" fixed="true"/>
170
+ </xsd:restriction>
171
+ </xsd:simpleType>
172
+ <xsd:simpleType name="tsCep">
173
+ <xsd:restriction base="xsd:int">
174
+ <xsd:totalDigits value="8" fixed="true"/>
175
+ </xsd:restriction>
176
+ </xsd:simpleType>
177
+ <xsd:simpleType name="tsEmail">
178
+ <xsd:restriction base="xsd:string">
179
+ <xsd:maxLength value="80"/>
180
+ <xsd:minLength value="1"/>
181
+ <xsd:whiteSpace value="collapse"/>
182
+ </xsd:restriction>
183
+ </xsd:simpleType>
184
+ <xsd:simpleType name="tsTelefone">
185
+ <xsd:restriction base="xsd:string">
186
+ <xsd:maxLength value="11"/>
187
+ <xsd:minLength value="1"/>
188
+ <xsd:whiteSpace value="collapse"/>
189
+ </xsd:restriction>
190
+ </xsd:simpleType>
191
+ <xsd:simpleType name="tsCpf">
192
+ <xsd:restriction base="xsd:string">
193
+ <xsd:length value="11" fixed="true"/>
194
+ </xsd:restriction>
195
+ </xsd:simpleType>
196
+ <xsd:simpleType name="tsIndicacaoCpfCnpj">
197
+ <xsd:restriction base="xsd:byte">
198
+ <xsd:pattern value="1|2|3"/>
199
+ </xsd:restriction>
200
+ </xsd:simpleType>
201
+ <xsd:simpleType name="tsCodigoObra">
202
+ <xsd:restriction base="xsd:string">
203
+ <xsd:maxLength value="15"/>
204
+ <xsd:minLength value="1"/>
205
+ <xsd:whiteSpace value="collapse"/>
206
+ </xsd:restriction>
207
+ </xsd:simpleType>
208
+ <xsd:simpleType name="tsArt">
209
+ <xsd:restriction base="xsd:string">
210
+ <xsd:maxLength value="15"/>
211
+ <xsd:minLength value="1"/>
212
+ <xsd:whiteSpace value="collapse"/>
213
+ </xsd:restriction>
214
+ </xsd:simpleType>
215
+ <xsd:simpleType name="tsNumeroLote">
216
+ <xsd:restriction base="xsd:nonNegativeInteger">
217
+ <xsd:totalDigits value="15"/>
218
+ </xsd:restriction>
219
+ </xsd:simpleType>
220
+ <xsd:simpleType name="tsNumeroProtocolo">
221
+ <xsd:restriction base="xsd:string">
222
+ <xsd:maxLength value="50"/>
223
+ </xsd:restriction>
224
+ </xsd:simpleType>
225
+ <xsd:simpleType name="tsSituacaoLoteRps">
226
+ <xsd:restriction base="xsd:byte">
227
+ <xsd:pattern value="1|2|3|4"/>
228
+ </xsd:restriction>
229
+ </xsd:simpleType>
230
+ <xsd:simpleType name="tsQuantidadeRps">
231
+ <xsd:restriction base="xsd:int">
232
+ </xsd:restriction>
233
+ </xsd:simpleType>
234
+ <xsd:simpleType name="tsCodigoMensagemAlerta">
235
+ <xsd:restriction base="xsd:string">
236
+ <xsd:maxLength value="4"/>
237
+ <xsd:minLength value="1"/>
238
+ <xsd:whiteSpace value="collapse"/>
239
+ </xsd:restriction>
240
+ </xsd:simpleType>
241
+ <xsd:simpleType name="tsDescricaoMensagemAlerta">
242
+ <xsd:restriction base="xsd:string">
243
+ <xsd:maxLength value="200"/>
244
+ <xsd:minLength value="1"/>
245
+ <xsd:whiteSpace value="collapse"/>
246
+ </xsd:restriction>
247
+ </xsd:simpleType>
248
+ <xsd:simpleType name="tsCodigoCancelamentoNfse">
249
+ <xsd:restriction base="xsd:string">
250
+ <xsd:maxLength value="4"/>
251
+ <xsd:minLength value="1"/>
252
+ <xsd:whiteSpace value="collapse"/>
253
+ </xsd:restriction>
254
+ </xsd:simpleType>
255
+ <xsd:simpleType name="tsIdTag">
256
+ <xsd:restriction base="xsd:string">
257
+ <xsd:maxLength value="255"/>
258
+ </xsd:restriction>
259
+ </xsd:simpleType>
260
+
261
+ <!-- definition of complex elements -->
262
+
263
+ <xsd:complexType name="tcCpfCnpj">
264
+ <xsd:choice>
265
+ <xsd:element name="Cpf" type="tsCpf" minOccurs="1" maxOccurs="1"/>
266
+ <xsd:element name="Cnpj" type="tsCnpj" minOccurs="1" maxOccurs="1"/>
267
+ </xsd:choice>
268
+ </xsd:complexType>
269
+ <xsd:complexType name="tcEndereco">
270
+ <xsd:sequence>
271
+ <xsd:element name="Endereco" type="tsEndereco" minOccurs="0" maxOccurs="1"/>
272
+ <xsd:element name="Numero" type="tsNumeroEndereco" minOccurs="0" maxOccurs="1"/>
273
+ <xsd:element name="Complemento" type="tsComplementoEndereco" minOccurs="0" maxOccurs="1"/>
274
+ <xsd:element name="Bairro" type="tsBairro" minOccurs="0" maxOccurs="1"/>
275
+ <xsd:element name="CodigoMunicipio" type="tsCodigoMunicipioIbge" minOccurs="0" maxOccurs="1"/>
276
+ <xsd:element name="Uf" type="tsUf" minOccurs="0" maxOccurs="1"/>
277
+ <xsd:element name="Cep" type="tsCep" minOccurs="0" maxOccurs="1"/>
278
+ </xsd:sequence>
279
+ </xsd:complexType>
280
+ <xsd:complexType name="tcContato">
281
+ <xsd:sequence>
282
+ <xsd:element name="Telefone" type="tsTelefone" minOccurs="0" maxOccurs="1"/>
283
+ <xsd:element name="Email" type="tsEmail" minOccurs="0" maxOccurs="1"/>
284
+ </xsd:sequence>
285
+ </xsd:complexType>
286
+ <xsd:complexType name="tcIdentificacaoOrgaoGerador">
287
+ <xsd:sequence>
288
+ <xsd:element name="CodigoMunicipio" type="tsCodigoMunicipioIbge" minOccurs="1" maxOccurs="1"/>
289
+ <xsd:element name="Uf" type="tsUf" minOccurs="1" maxOccurs="1"/>
290
+ </xsd:sequence>
291
+ </xsd:complexType>
292
+ <xsd:complexType name="tcIdentificacaoRps">
293
+ <xsd:sequence>
294
+ <xsd:element name="Numero" type="tsNumeroRps" minOccurs="1" maxOccurs="1"/>
295
+ <xsd:element name="Serie" type="tsSerieRps" minOccurs="1" maxOccurs="1"/>
296
+ <xsd:element name="Tipo" type="tsTipoRps" minOccurs="1" maxOccurs="1"/>
297
+ </xsd:sequence>
298
+ </xsd:complexType>
299
+ <xsd:complexType name="tcIdentificacaoPrestador">
300
+ <xsd:sequence>
301
+ <xsd:element name="Cnpj" type="tsCnpj" minOccurs="1" maxOccurs="1"/>
302
+ <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal" minOccurs="0" maxOccurs="1"/>
303
+ </xsd:sequence>
304
+ </xsd:complexType>
305
+ <xsd:complexType name="tcIdentificacaoTomador">
306
+ <xsd:sequence>
307
+ <xsd:element name="CpfCnpj" type="tcCpfCnpj" minOccurs="0" maxOccurs="1"/>
308
+ <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal" minOccurs="0" maxOccurs="1"/>
309
+ </xsd:sequence>
310
+ </xsd:complexType>
311
+ <xsd:complexType name="tcDadosTomador">
312
+ <xsd:sequence>
313
+ <xsd:element name="IdentificacaoTomador" type="tcIdentificacaoTomador" minOccurs="0" maxOccurs="1"/>
314
+ <xsd:element name="RazaoSocial" type="tsRazaoSocial" minOccurs="0" maxOccurs="1"/>
315
+ <xsd:element name="Endereco" type="tcEndereco" minOccurs="0" maxOccurs="1"/>
316
+ <xsd:element name="Contato" type="tcContato" minOccurs="0" maxOccurs="1"/>
317
+ </xsd:sequence>
318
+ </xsd:complexType>
319
+ <xsd:complexType name="tcIdentificacaoIntermediarioServico">
320
+ <xsd:sequence>
321
+ <xsd:element name="RazaoSocial" type="tsRazaoSocial" minOccurs="1" maxOccurs="1"/>
322
+ <xsd:element name="CpfCnpj" type="tcCpfCnpj" minOccurs="1" maxOccurs="1"/>
323
+ <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal" minOccurs="0" maxOccurs="1"/>
324
+ </xsd:sequence>
325
+ </xsd:complexType>
326
+ <xsd:complexType name="tcValores">
327
+ <xsd:sequence>
328
+ <xsd:element name="ValorServicos" type="tsValor" minOccurs="1" maxOccurs="1"/>
329
+ <xsd:element name="ValorDeducoes" type="tsValor" minOccurs="0" maxOccurs="1"/>
330
+ <xsd:element name="ValorPis" type="tsValor" minOccurs="0" maxOccurs="1"/>
331
+ <xsd:element name="ValorCofins" type="tsValor" minOccurs="0" maxOccurs="1"/>
332
+ <xsd:element name="ValorInss" type="tsValor" minOccurs="0" maxOccurs="1"/>
333
+ <xsd:element name="ValorIr" type="tsValor" minOccurs="0" maxOccurs="1"/>
334
+ <xsd:element name="ValorCsll" type="tsValor" minOccurs="0" maxOccurs="1"/>
335
+ <xsd:element name="IssRetido" type="tsSimNao" minOccurs="1" maxOccurs="1"/>
336
+ <xsd:element name="ValorIss" type="tsValor" minOccurs="0" maxOccurs="1"/>
337
+ <xsd:element name="ValorIssRetido" type="tsValor" minOccurs="0" maxOccurs="1"/>
338
+ <xsd:element name="OutrasRetencoes" type="tsValor" minOccurs="0" maxOccurs="1"/>
339
+ <xsd:element name="BaseCalculo" type="tsValor" minOccurs="0" maxOccurs="1"/>
340
+ <xsd:element name="Aliquota" type="tsAliquota" minOccurs="0" maxOccurs="1"/>
341
+ <xsd:element name="ValorLiquidoNfse" type="tsValor" minOccurs="0" maxOccurs="1"/>
342
+ <xsd:element name="DescontoIncondicionado" type="tsValor" minOccurs="0" maxOccurs="1"/>
343
+ <xsd:element name="DescontoCondicionado" type="tsValor" minOccurs="0" maxOccurs="1"/>
344
+ </xsd:sequence>
345
+ </xsd:complexType>
346
+ <xsd:complexType name="tcDadosServico">
347
+ <xsd:sequence>
348
+ <xsd:element name="Valores" type="tcValores" minOccurs="1" maxOccurs="1"/>
349
+ <xsd:element name="ItemListaServico" type="tsItemListaServico" minOccurs="1" maxOccurs="1"/>
350
+ <xsd:element name="CodigoCnae" type="tsCodigoCnae" minOccurs="0" maxOccurs="1"/>
351
+ <xsd:element name="CodigoTributacaoMunicipio" type="tsCodigoTributacao" minOccurs="0" maxOccurs="1"/>
352
+ <xsd:element name="Discriminacao" type="tsDiscriminacao" minOccurs="1" maxOccurs="1"/>
353
+ <xsd:element name="CodigoMunicipio" type="tsCodigoMunicipioIbge" minOccurs="1" maxOccurs="1"/>
354
+ </xsd:sequence>
355
+ </xsd:complexType>
356
+ <xsd:complexType name="tcDadosConstrucaoCivil">
357
+ <xsd:sequence>
358
+ <xsd:element name="CodigoObra" type="tsCodigoObra" minOccurs="1" maxOccurs="1"/>
359
+ <xsd:element name="Art" type="tsArt" minOccurs="1" maxOccurs="1"/>
360
+ </xsd:sequence>
361
+ </xsd:complexType>
362
+ <xsd:complexType name="tcDadosPrestador">
363
+ <xsd:sequence>
364
+ <xsd:element name="IdentificacaoPrestador" type="tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1"/>
365
+ <xsd:element name="RazaoSocial" type="tsRazaoSocial" minOccurs="1" maxOccurs="1"/>
366
+ <xsd:element name="NomeFantasia" type="tsNomeFantasia" minOccurs="0" maxOccurs="1"/>
367
+ <xsd:element name="Endereco" type="tcEndereco" minOccurs="1" maxOccurs="1"/>
368
+ <xsd:element name="Contato" type="tcContato" minOccurs="0" maxOccurs="1"/>
369
+ </xsd:sequence>
370
+ </xsd:complexType>
371
+ <xsd:complexType name="tcInfRps">
372
+ <xsd:sequence>
373
+ <xsd:element name="IdentificacaoRps" type="tcIdentificacaoRps" minOccurs="1" maxOccurs="1"/>
374
+ <xsd:element name="DataEmissao" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
375
+ <xsd:element name="NaturezaOperacao" type="tsNaturezaOperacao" minOccurs="1" maxOccurs="1"/>
376
+ <xsd:element name="RegimeEspecialTributacao" type="tsRegimeEspecialTributacao" minOccurs="0" maxOccurs="1"/>
377
+ <xsd:element name="OptanteSimplesNacional" type="tsSimNao" minOccurs="1" maxOccurs="1"/>
378
+ <xsd:element name="IncentivadorCultural" type="tsSimNao" minOccurs="1" maxOccurs="1"/>
379
+ <xsd:element name="Status" type="tsStatusRps" minOccurs="1" maxOccurs="1"/>
380
+ <xsd:element name="RpsSubstituido" type="tcIdentificacaoRps" minOccurs="0" maxOccurs="1"/>
381
+ <xsd:element name="Servico" type="tcDadosServico" minOccurs="1" maxOccurs="1"/>
382
+ <xsd:element name="Prestador" type="tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1"/>
383
+ <xsd:element name="Tomador" type="tcDadosTomador" minOccurs="0" maxOccurs="1"/>
384
+ <xsd:element name="IntermediarioServico" type="tcIdentificacaoIntermediarioServico" minOccurs="0" maxOccurs="1"/>
385
+ <xsd:element name="ConstrucaoCivil" type="tcDadosConstrucaoCivil" minOccurs="0" maxOccurs="1"/>
386
+ </xsd:sequence>
387
+ <xsd:attribute name="id" type="tsIdTag"/>
388
+ </xsd:complexType>
389
+ <xsd:complexType name="tcRps">
390
+ <xsd:sequence>
391
+ <xsd:element name="InfRps" type="tcInfRps" minOccurs="1" maxOccurs="1"/>
392
+ <xsd:element ref="dsig:Signature" minOccurs="0" maxOccurs="1"/>
393
+ </xsd:sequence>
394
+ </xsd:complexType>
395
+ <xsd:complexType name="tcIdentificacaoNfse">
396
+ <xsd:sequence>
397
+ <xsd:element name="Numero" type="tsNumeroNfse" minOccurs="1" maxOccurs="1"/>
398
+ <xsd:element name="Cnpj" type="tsCnpj" minOccurs="1" maxOccurs="1"/>
399
+ <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal" minOccurs="0" maxOccurs="1"/>
400
+ <xsd:element name="CodigoMunicipio" type="tsCodigoMunicipioIbge" minOccurs="1" maxOccurs="1"/>
401
+ </xsd:sequence>
402
+ </xsd:complexType>
403
+ <xsd:complexType name="tcInfNfse">
404
+ <xsd:sequence>
405
+ <xsd:element name="Numero" type="tsNumeroNfse" minOccurs="1" maxOccurs="1"/>
406
+ <xsd:element name="CodigoVerificacao" type="tsCodigoVerificacao" minOccurs="1" maxOccurs="1"/>
407
+ <xsd:element name="DataEmissao" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
408
+ <xsd:element name="IdentificacaoRps" minOccurs="0" type="tcIdentificacaoRps" maxOccurs="1"/>
409
+ <xsd:element name="DataEmissaoRps" type="xsd:date" minOccurs="0" maxOccurs="1"/>
410
+ <xsd:element name="NaturezaOperacao" type="tsNaturezaOperacao" minOccurs="1" maxOccurs="1"/>
411
+ <xsd:element name="RegimeEspecialTributacao" type="tsRegimeEspecialTributacao" minOccurs="0" maxOccurs="1"/>
412
+ <xsd:element name="OptanteSimplesNacional" type="tsSimNao" minOccurs="1" maxOccurs="1"/>
413
+ <xsd:element name="IncentivadorCultural" type="tsSimNao" minOccurs="1" maxOccurs="1"/>
414
+ <xsd:element name="Competencia" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
415
+ <xsd:element name="NfseSubstituida" type="tsNumeroNfse" minOccurs="0" maxOccurs="1"/>
416
+ <xsd:element name="OutrasInformacoes" type="tsOutrasInformacoes" minOccurs="0" maxOccurs="1"/>
417
+ <xsd:element name="Servico" type="tcDadosServico" minOccurs="1" maxOccurs="1"/>
418
+ <xsd:element name="ValorCredito" type="tsValor" minOccurs="0" maxOccurs="1"/>
419
+ <xsd:element name="PrestadorServico" type="tcDadosPrestador" minOccurs="1" maxOccurs="1"/>
420
+ <xsd:element name="TomadorServico" type="tcDadosTomador" minOccurs="0" maxOccurs="1"/>
421
+ <xsd:element name="IntermediarioServico" type="tcIdentificacaoIntermediarioServico" minOccurs="0" maxOccurs="1"/>
422
+ <xsd:element name="OrgaoGerador" type="tcIdentificacaoOrgaoGerador" minOccurs="1" maxOccurs="1"/>
423
+ <xsd:element name="ConstrucaoCivil" type="tcDadosConstrucaoCivil" minOccurs="0" maxOccurs="1"/>
424
+ </xsd:sequence>
425
+ <xsd:attribute name="id" type="tsIdTag"/>
426
+ </xsd:complexType>
427
+ <xsd:complexType name="tcNfse">
428
+ <xsd:sequence>
429
+ <xsd:element name="InfNfse" type="tcInfNfse" minOccurs="1" maxOccurs="1"/>
430
+ <xsd:element ref="dsig:Signature" minOccurs="1" maxOccurs="2"/>
431
+ </xsd:sequence>
432
+ </xsd:complexType>
433
+
434
+ <xsd:complexType name="tcInfPedidoCancelamento">
435
+ <xsd:sequence>
436
+ <xsd:element name="IdentificacaoNfse" type="tcIdentificacaoNfse" minOccurs="1" maxOccurs="1"/>
437
+ <xsd:element name="CodigoCancelamento" type="tsCodigoCancelamentoNfse" minOccurs="1" maxOccurs="1"/>
438
+ </xsd:sequence>
439
+ <xsd:attribute name="id" type="tsIdTag"/>
440
+ </xsd:complexType>
441
+ <xsd:complexType name="tcPedidoCancelamento">
442
+ <xsd:sequence>
443
+ <xsd:element name="InfPedidoCancelamento" type="tcInfPedidoCancelamento" minOccurs="1" maxOccurs="1"/>
444
+ </xsd:sequence>
445
+ </xsd:complexType>
446
+ <xsd:complexType name="tcConfirmacaoCancelamento">
447
+ <xsd:sequence>
448
+ <xsd:element name="Pedido" type="tcPedidoCancelamento" minOccurs="1" maxOccurs="1"/>
449
+ <xsd:element name="DataHoraCancelamento" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
450
+ </xsd:sequence>
451
+ <xsd:attribute name="id" type="tsIdTag"/>
452
+ </xsd:complexType>
453
+
454
+ <xsd:complexType name="tcCancelamentoNfse">
455
+ <xsd:sequence>
456
+ <xsd:element name="Confirmacao" type="tcConfirmacaoCancelamento" minOccurs="1" maxOccurs="1"/>
457
+ <xsd:element ref="dsig:Signature" minOccurs="1" maxOccurs="1"/>
458
+ </xsd:sequence>
459
+ </xsd:complexType>
460
+
461
+ <xsd:complexType name="tcInfSubstituicaoNfse">
462
+ <xsd:sequence>
463
+ <xsd:element name="NfseSubstituidora" type="tsNumeroNfse" minOccurs="1" maxOccurs="1"/>
464
+ </xsd:sequence>
465
+ <xsd:attribute name="id" type="tsIdTag"/>
466
+ </xsd:complexType>
467
+ <xsd:complexType name="tcSubstituicaoNfse">
468
+ <xsd:sequence>
469
+ <xsd:element name="SubstituicaoNfse" type="tcInfSubstituicaoNfse" minOccurs="1" maxOccurs="1"/>
470
+ <xsd:element ref="dsig:Signature" minOccurs="1" maxOccurs="2"/>
471
+ </xsd:sequence>
472
+ </xsd:complexType>
473
+ <xsd:complexType name="tcCompNfse">
474
+ <xsd:sequence>
475
+ <xsd:element name="Nfse" type="tcNfse" minOccurs="1" maxOccurs="1"/>
476
+ <xsd:element name="NfseCancelamento" type="tcCancelamentoNfse" minOccurs="0" maxOccurs="1"/>
477
+ <xsd:element name="NfseSubstituicao" type="tcSubstituicaoNfse" minOccurs="0" maxOccurs="1"/>
478
+ </xsd:sequence>
479
+ </xsd:complexType>
480
+ <xsd:element name="CompNfse" type="tcCompNfse"/>
481
+ <xsd:element name="ListaMensagemRetorno">
482
+ <xsd:complexType>
483
+ <xsd:sequence>
484
+ <xsd:element name="MensagemRetorno" type="tcMensagemRetorno" minOccurs="1" maxOccurs="unbounded"/>
485
+ </xsd:sequence>
486
+ </xsd:complexType>
487
+ </xsd:element>
488
+ <xsd:complexType name="tcMensagemRetorno">
489
+ <xsd:sequence>
490
+ <xsd:element name="Codigo" type="tsCodigoMensagemAlerta" minOccurs="1" maxOccurs="1"/>
491
+ <xsd:element name="Mensagem" type="tsDescricaoMensagemAlerta" minOccurs="1" maxOccurs="1"/>
492
+ <xsd:element name="Correcao" type="tsDescricaoMensagemAlerta" minOccurs="0"/>
493
+ </xsd:sequence>
494
+ </xsd:complexType>
495
+ <xsd:complexType name="tcMensagemRetornoLote">
496
+ <xsd:sequence>
497
+ <xsd:element name="IdentificacaoRps" type="tcIdentificacaoRps" minOccurs="1" maxOccurs="1"/>
498
+ <xsd:element name="Codigo" type="tsCodigoMensagemAlerta" minOccurs="1" maxOccurs="1"/>
499
+ <xsd:element name="Mensagem" type="tsDescricaoMensagemAlerta" minOccurs="1" maxOccurs="1"/>
500
+ </xsd:sequence>
501
+ </xsd:complexType>
502
+ <xsd:complexType name="tcLoteRps">
503
+ <xsd:sequence>
504
+ <xsd:element name="NumeroLote" type="tsNumeroLote" minOccurs="1" maxOccurs="1"/>
505
+ <xsd:element name="Cnpj" type="tsCnpj" minOccurs="1" maxOccurs="1"/>
506
+ <xsd:element name="InscricaoMunicipal" type="tsInscricaoMunicipal" minOccurs="1" maxOccurs="1"/>
507
+ <xsd:element name="QuantidadeRps" type="tsQuantidadeRps" minOccurs="1" maxOccurs="1"/>
508
+ <xsd:element name="ListaRps" minOccurs="1" maxOccurs="1">
509
+ <xsd:complexType>
510
+ <xsd:sequence>
511
+ <xsd:element name="Rps" maxOccurs="unbounded" type="tcRps" minOccurs="1">
512
+ </xsd:element>
513
+ </xsd:sequence>
514
+ </xsd:complexType>
515
+ </xsd:element>
516
+ </xsd:sequence>
517
+ <xsd:attribute name="id" type="tsIdTag"/>
518
+ </xsd:complexType>
519
+
520
+ <xsd:element name="EnviarLoteRpsResposta">
521
+ <xsd:complexType>
522
+ <xsd:choice>
523
+ <xsd:sequence>
524
+ <xsd:element name="NumeroLote" type="tsNumeroLote" minOccurs="1" maxOccurs="1"/>
525
+ <xsd:element name="DataRecebimento" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
526
+ <xsd:element name="Protocolo" type="tsNumeroProtocolo" minOccurs="1" maxOccurs="1"/>
527
+ </xsd:sequence>
528
+ <xsd:element ref="ListaMensagemRetorno" minOccurs="1" maxOccurs="1"/>
529
+ </xsd:choice>
530
+ </xsd:complexType>
531
+ </xsd:element>
532
+
533
+ <xsd:element name="EnviarLoteRpsEnvio">
534
+ <xsd:complexType>
535
+ <xsd:sequence>
536
+ <xsd:element name="LoteRps" type="tcLoteRps"/>
537
+ <xsd:element ref="dsig:Signature" minOccurs="0" maxOccurs="1"/>
538
+ </xsd:sequence>
539
+ </xsd:complexType>
540
+ </xsd:element>
541
+
542
+ <xsd:element name="ConsultarSituacaoLoteRpsResposta">
543
+ <xsd:complexType>
544
+ <xsd:choice>
545
+ <xsd:sequence>
546
+ <xsd:element name="NumeroLote" type="tsNumeroLote" minOccurs="1" maxOccurs="1"/>
547
+ <xsd:element name="Situacao" type="tsSituacaoLoteRps" minOccurs="1" maxOccurs="1"/>
548
+ </xsd:sequence>
549
+ <xsd:element ref="ListaMensagemRetorno" minOccurs="1" maxOccurs="1"/>
550
+ </xsd:choice>
551
+ </xsd:complexType>
552
+ </xsd:element>
553
+
554
+ <xsd:element name="ConsultarSituacaoLoteRpsEnvio">
555
+ <xsd:complexType>
556
+ <xsd:sequence>
557
+ <xsd:element name="Prestador" type="tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1"/>
558
+ <xsd:element name="Protocolo" type="tsNumeroProtocolo" minOccurs="1" maxOccurs="1"/>
559
+ </xsd:sequence>
560
+ </xsd:complexType>
561
+ </xsd:element>
562
+
563
+ <xsd:element name="ConsultarNfseRpsResposta">
564
+ <xsd:complexType>
565
+ <xsd:choice>
566
+ <xsd:element name="CompNfse" type="tcCompNfse" minOccurs="1" maxOccurs="1"/>
567
+ <xsd:element ref="ListaMensagemRetorno" minOccurs="1" maxOccurs="1"/>
568
+ </xsd:choice>
569
+ </xsd:complexType>
570
+ </xsd:element>
571
+
572
+ <xsd:element name="ConsultarNfseRpsEnvio">
573
+ <xsd:complexType>
574
+ <xsd:sequence>
575
+ <xsd:element name="IdentificacaoRps" type="tcIdentificacaoRps" minOccurs="1" maxOccurs="1"/>
576
+ <xsd:element name="Prestador" type="tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1"/>
577
+ </xsd:sequence>
578
+ </xsd:complexType>
579
+ </xsd:element>
580
+
581
+ <xsd:element name="ConsultarNfseResposta">
582
+ <xsd:complexType>
583
+ <xsd:choice>
584
+ <xsd:element name="ListaNfse" minOccurs="1" maxOccurs="1">
585
+ <xsd:complexType>
586
+ <xsd:sequence>
587
+ <xsd:element name="CompNfse" maxOccurs="unbounded" type="tcCompNfse" minOccurs="0"/>
588
+ </xsd:sequence>
589
+ </xsd:complexType>
590
+ </xsd:element>
591
+ <xsd:element ref="ListaMensagemRetorno" minOccurs="1" maxOccurs="1"/>
592
+ </xsd:choice>
593
+ </xsd:complexType>
594
+ </xsd:element>
595
+
596
+ <xsd:element name="ConsultarNfseEnvio">
597
+ <xsd:complexType>
598
+ <xsd:sequence>
599
+ <xsd:element name="Prestador" type="tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1"/>
600
+ <xsd:element name="NumeroNfse" type="tsNumeroNfse" minOccurs="0" maxOccurs="1"/>
601
+ <xsd:element name="PeriodoEmissao" minOccurs="0" maxOccurs="1">
602
+ <xsd:complexType>
603
+ <xsd:sequence>
604
+ <xsd:element name="DataInicial" type="xsd:date" minOccurs="1" maxOccurs="1"/>
605
+ <xsd:element name="DataFinal" type="xsd:date" minOccurs="1" maxOccurs="1"/>
606
+ </xsd:sequence>
607
+ </xsd:complexType>
608
+ </xsd:element>
609
+ <xsd:element name="Tomador" type="tcIdentificacaoTomador" minOccurs="0" maxOccurs="1"/>
610
+ <xsd:element name="IntermediarioServico" type="tcIdentificacaoIntermediarioServico" minOccurs="0" maxOccurs="1"/>
611
+ </xsd:sequence>
612
+ </xsd:complexType>
613
+ </xsd:element>
614
+
615
+ <xsd:element name="ConsultarLoteRpsResposta">
616
+ <xsd:complexType>
617
+ <xsd:choice>
618
+ <xsd:element name="ListaNfse" minOccurs="1" maxOccurs="1">
619
+ <xsd:complexType>
620
+ <xsd:sequence>
621
+ <xsd:element name="CompNfse" maxOccurs="unbounded" type="tcCompNfse" minOccurs="1"/>
622
+ </xsd:sequence>
623
+ </xsd:complexType>
624
+ </xsd:element>
625
+ <xsd:element ref="ListaMensagemRetorno" minOccurs="1" maxOccurs="1"/>
626
+ </xsd:choice>
627
+ </xsd:complexType>
628
+ </xsd:element>
629
+
630
+ <xsd:element name="ConsultarLoteRpsEnvio">
631
+ <xsd:complexType>
632
+ <xsd:sequence>
633
+ <xsd:element name="Prestador" type="tcIdentificacaoPrestador" minOccurs="1" maxOccurs="1"/>
634
+ <xsd:element name="Protocolo" type="tsNumeroProtocolo" minOccurs="1" maxOccurs="1"/>
635
+ </xsd:sequence>
636
+ </xsd:complexType>
637
+ </xsd:element>
638
+
639
+ <xsd:element name="CancelarNfseResposta">
640
+ <xsd:complexType>
641
+ <xsd:choice>
642
+ <xsd:element name="Cancelamento" type="tcCancelamentoNfse"/>
643
+ <xsd:element ref="ListaMensagemRetorno" minOccurs="1" maxOccurs="1"/>
644
+ </xsd:choice>
645
+ </xsd:complexType>
646
+ </xsd:element>
647
+
648
+ <xsd:element name="CancelarNfseEnvio">
649
+ <xsd:complexType>
650
+ <xsd:sequence>
651
+ <xsd:element name="Pedido" type="tcPedidoCancelamento"/>
652
+ <xsd:element ref="dsig:Signature" minOccurs="0" maxOccurs="1"/>
653
+ </xsd:sequence>
654
+ </xsd:complexType>
655
+ </xsd:element>
656
+ </xsd:schema>