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.
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>