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,48 @@
1
+ module BrNfe
2
+ module Service
3
+ module Thema
4
+ module V1
5
+ class ConsultaNfsPorRps < BrNfe::Service::Thema::V1::Base
6
+ include BrNfe::Service::Concerns::Rules::ConsultaNfsPorRps
7
+
8
+ def method_wsdl
9
+ :consultar_nfse_por_rps
10
+ end
11
+
12
+ def response_path_module
13
+ BrNfe::Service::Response::Paths::V1::ServicoConsultarNfseRpsResposta
14
+ end
15
+
16
+ def xml_builder
17
+ render_xml 'servico_consultar_nfse_rps_envio'
18
+ end
19
+
20
+ # Não é utilizado o response_root_path pois
21
+ # esse órgão emissor trata o XML de forma diferente
22
+ # e para instanciar a resposta adequadamente é utilizado o
23
+ # body_xml_path.
24
+ # A resposta contém outro XML dentro do Body.
25
+ #
26
+ def response_root_path
27
+ []
28
+ end
29
+
30
+ # Caminho de hash através do body da resposta SOAP até encontrar
31
+ # o XML correspondente na qual contém as informações necessárias
32
+ # para encontrar os valores para setar na resposta
33
+ #
34
+ def body_xml_path
35
+ [:consultar_nfse_por_rps_response, :return]
36
+ end
37
+
38
+ # Tag root da requisição
39
+ #
40
+ def soap_body_root_tag
41
+ 'consultarNfsePorRps'
42
+ end
43
+
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,47 @@
1
+ module BrNfe
2
+ module Service
3
+ module Thema
4
+ module V1
5
+ class ConsultaNfse < BrNfe::Service::Thema::V1::Base
6
+ include BrNfe::Service::Concerns::Rules::ConsultaNfse
7
+
8
+ def method_wsdl
9
+ :consultar_nfse
10
+ end
11
+
12
+ def xml_builder
13
+ render_xml 'servico_consultar_nfse_envio'
14
+ end
15
+
16
+ def response_path_module
17
+ BrNfe::Service::Response::Paths::V1::ServicoConsultarNfseResposta
18
+ end
19
+
20
+ # Não é utilizado o response_root_path pois
21
+ # esse órgão emissor trata o XML de forma diferente
22
+ # e para instanciar a resposta adequadamente é utilizado o
23
+ # body_xml_path.
24
+ # A resposta contém outro XML dentro do Body.
25
+ #
26
+ def response_root_path
27
+ []
28
+ end
29
+
30
+ # Caminho de hash através do body da resposta SOAP até encontrar
31
+ # o XML correspondente na qual contém as informações necessárias
32
+ # para encontrar os valores para setar na resposta
33
+ #
34
+ def body_xml_path
35
+ [:consultar_nfse_response, :return]
36
+ end
37
+
38
+ # Tag root da requisição
39
+ #
40
+ def soap_body_root_tag
41
+ 'consultarNfse'
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,46 @@
1
+ module BrNfe
2
+ module Service
3
+ module Thema
4
+ module V1
5
+ class ConsultaSituacaoLoteRps < BrNfe::Service::Thema::V1::ConsultaLoteRps
6
+
7
+ def method_wsdl
8
+ :consultar_situacao_lote_rps
9
+ end
10
+
11
+ def xml_builder
12
+ render_xml 'servico_consultar_situacao_lote_rps_envio'
13
+ end
14
+
15
+ def response_path_module
16
+ BrNfe::Service::Response::Paths::V1::ServicoConsultarSituacaoLoteRpsResposta
17
+ end
18
+
19
+ # Não é utilizado o response_root_path pois
20
+ # esse órgão emissor trata o XML de forma diferente
21
+ # e para instanciar a resposta adequadamente é utilizado o
22
+ # body_xml_path.
23
+ # A resposta contém outro XML dentro do Body.
24
+ #
25
+ def response_root_path
26
+ []
27
+ end
28
+
29
+ # Caminho de hash através do body da resposta SOAP até encontrar
30
+ # o XML correspondente na qual contém as informações necessárias
31
+ # para encontrar os valores para setar na resposta
32
+ #
33
+ def body_xml_path
34
+ [:consultar_situacao_lote_rps_response, :return]
35
+ end
36
+
37
+ # Tag root da requisição
38
+ #
39
+ def soap_body_root_tag
40
+ 'consultarSituacaoLoteRps'
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,51 @@
1
+ module BrNfe
2
+ module Service
3
+ module Thema
4
+ module V1
5
+ class RecepcaoLoteRps < BrNfe::Service::Thema::V1::Base
6
+ include BrNfe::Service::Concerns::Rules::RecepcaoLoteRps
7
+
8
+ def certificado_obrigatorio?
9
+ true
10
+ end
11
+
12
+ def method_wsdl
13
+ :recepcionar_lote_rps
14
+ end
15
+
16
+ # Tag root da requisição
17
+ #
18
+ def soap_body_root_tag
19
+ 'recepcionarLoteRps'
20
+ end
21
+
22
+ def xml_builder
23
+ render_xml 'servico_enviar_lote_rps_envio'
24
+ end
25
+
26
+ def response_path_module
27
+ BrNfe::Service::Response::Paths::V1::ServicoEnviarLoteRpsResposta
28
+ end
29
+
30
+ # Não é utilizado o response_root_path pois
31
+ # esse órgão emissor trata o XML de forma diferente
32
+ # e para instanciar a resposta adequadamente é utilizado o
33
+ # body_xml_path.
34
+ # A resposta contém outro XML dentro do Body.
35
+ #
36
+ def response_root_path
37
+ []
38
+ end
39
+
40
+ # Caminho de hash através do body da resposta SOAP até encontrar
41
+ # o XML correspondente na qual contém as informações necessárias
42
+ # para encontrar os valores para setar na resposta
43
+ #
44
+ def body_xml_path
45
+ [:recepcionar_lote_rps_response, :return]
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,30 @@
1
+ module BrNfe
2
+ module Service
3
+ module Thema
4
+ module V1
5
+ class RecepcaoLoteRpsLimitado < BrNfe::Service::Thema::V1::RecepcaoLoteRps
6
+
7
+ validates :lote_rps, length: { maximum: 3 }
8
+
9
+ def method_wsdl
10
+ :recepcionar_lote_rps_limitado
11
+ end
12
+
13
+ # Tag root da requisição
14
+ #
15
+ def soap_body_root_tag
16
+ 'recepcionarLoteRpsLimitado'
17
+ end
18
+
19
+ # Caminho de hash através do body da resposta SOAP até encontrar
20
+ # o XML correspondente na qual contém as informações necessárias
21
+ # para encontrar os valores para setar na resposta
22
+ #
23
+ def body_xml_path
24
+ [:recepcionar_lote_rps_limitado_response, :return]
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,7 @@
1
+ - contact ||= false
2
+ - raise "Deve ser passado uma variável local chamda contact" unless contact
3
+
4
+ - if contact.telefone.present?
5
+ Telefone = ts_telefone(contact.telefone)
6
+ - if contact.email.present?
7
+ Email = ts_email(contact.email)
@@ -0,0 +1,5 @@
1
+ - cpf_cnpj = BrNfe::Helper::CpfCnpj.new(cpf_cnpj)
2
+ - if cpf_cnpj.cnpj?
3
+ Cnpj = ts_cnpj(cpf_cnpj.sem_formatacao)
4
+ - elsif cpf_cnpj.cpf?
5
+ Cpf = ts_cpf(cpf_cnpj.sem_formatacao)
@@ -0,0 +1,2 @@
1
+ CodigoObra = ts_codigo_obra(rps.codigo_obra)
2
+ Art = ts_art(rps.codigo_art)
@@ -0,0 +1,15 @@
1
+ IdentificacaoPrestador
2
+ = render_xml '_tc_identificacao_prestador'
3
+
4
+ RazaoSocial = ts_razao_social(emitente.razao_social)
5
+
6
+ - if emitente.nome_fantasia.present?
7
+ NomeFantasia = ts_nome_fantasia(emitente.nome_fantasia)
8
+
9
+ - if emitente.endereco.is_present?
10
+ Endereco
11
+ = render_xml '_tc_endereco', address: emitente.endereco
12
+
13
+ - if emitente.telefone.present? || emitente.email.present?
14
+ Contato
15
+ = render_xml '_tc_contato', contact: emitente
@@ -0,0 +1,14 @@
1
+ - rps ||= false
2
+ - raise "Deve ser passado uma vsariavel local chamada rps" unless rps
3
+
4
+ Valores
5
+ = render_xml '_tc_valores', rps: rps
6
+
7
+ ItemListaServico = ts_item_lista_servico(rps.item_lista_servico)
8
+ - if rps.cnae_code.present?
9
+ CodigoCnae = ts_codigo_cnae(rps.cnae_code)
10
+ - if rps.codigo_tributacao_municipio.present?
11
+ CodigoTributacaoMunicipio = ts_codigo_tributacao(rps.codigo_tributacao_municipio)
12
+
13
+ Discriminacao = ts_discriminacao(rps.description)
14
+ CodigoMunicipio = ts_codigo_municipio_ibge(rps.codigo_municipio)
@@ -0,0 +1,15 @@
1
+ - destinatario ||= false
2
+ - raise "Deve ser passado uma vsariavel local chamada destinatario" unless destinatario
3
+ IdentificacaoTomador
4
+ = render_xml '_tc_identificacao_tomador', destinatario: destinatario
5
+
6
+ - if destinatario.razao_social.present?
7
+ RazaoSocial = ts_razao_social(destinatario.razao_social)
8
+
9
+ - if destinatario.endereco.is_present?
10
+ Endereco
11
+ = render_xml '_tc_endereco', address: destinatario.endereco
12
+
13
+ - if destinatario.telefone.present? || destinatario.email.present?
14
+ Contato
15
+ = render_xml '_tc_contato', contact: destinatario
@@ -0,0 +1,13 @@
1
+ - address ||= false
2
+ - raise "Deve ser passado uma variável local chamda address" unless address
3
+
4
+ Endereco = ts_endereco("#{address.logradouro}")
5
+ Numero = ts_numero_endereco("#{address.numero}")
6
+
7
+ - address.complemento.present?
8
+ Complemento = ts_complemento_endereco("#{address.complemento}")
9
+
10
+ Bairro = ts_bairro("#{address.bairro}")
11
+ CodigoMunicipio = ts_codigo_municipio_ibge(address.codigo_municipio)
12
+ Uf = ts_uf("#{address.uf}")
13
+ Cep = ts_cep(address.cep)
@@ -0,0 +1,7 @@
1
+ RazaoSocial = ts_razao_social(intermediario.razao_social)
2
+
3
+ CpfCnpj
4
+ = render_xml '_tc_cpf_cnpj', cpf_cnpj: intermediario.cpf_cnpj
5
+
6
+ - if intermediario.inscricao_municipal.present?
7
+ InscricaoMunicipal = ts_inscricao_municipal(intermediario.inscricao_municipal)
@@ -0,0 +1,7 @@
1
+ Numero = ts_numero_nfse(nfe_number)
2
+ Cnpj = ts_cnpj(emitente.cnpj)
3
+
4
+ - if emitente.inscricao_municipal.present?
5
+ InscricaoMunicipal = ts_inscricao_municipal(emitente.inscricao_municipal)
6
+
7
+ CodigoMunicipio = ts_codigo_municipio_ibge(emitente.endereco.codigo_municipio)
@@ -0,0 +1,8 @@
1
+ - ibge_code ||= false
2
+ - raise "Deve ser passado uma variável local chamda ibge_code" unless ibge_code
3
+
4
+ - uf ||= false
5
+ - raise "Deve ser passado uma variável local chamda uf" unless uf
6
+
7
+ CodigoMunicipio = ts_codigo_municipio_ibge(ibge_code)
8
+ Uf = ts_uf(uf)
@@ -0,0 +1,3 @@
1
+ Cnpj = ts_cnpj(emitente.cnpj)
2
+ - if emitente.inscricao_municipal.present?
3
+ InscricaoMunicipal = ts_inscricao_municipal(emitente.inscricao_municipal)
@@ -0,0 +1,16 @@
1
+ / A mesma estrutura é utilizada para o RPS e o RPS Substituido
2
+ / então se passar o parâmetro substituicao então irá setar os valores
3
+ / referentes a substituição
4
+ - substituicao ||= false
5
+ - current_numero = if substituicao then rps.numero_substituicao else rps.numero end
6
+ - current_serie = if substituicao then rps.serie_substituicao else rps.serie end
7
+ - current_tipo = if substituicao then rps.tipo_substituicao else rps.tipo end
8
+
9
+ - number_size ||= 15
10
+ - serie_size ||= 5
11
+ - type_size ||= 1
12
+
13
+
14
+ Numero = ts_numero_rps(current_numero)
15
+ Serie = ts_serie_rps(current_serie)
16
+ Tipo = ts_tipo_rps(current_tipo)
@@ -0,0 +1,4 @@
1
+ CpfCnpj
2
+ = render_xml '_tc_cpf_cnpj', cpf_cnpj: destinatario.cpf_cnpj
3
+ - if destinatario.inscricao_municipal.present?
4
+ InscricaoMunicipal = ts_inscricao_municipal(destinatario.inscricao_municipal)
@@ -0,0 +1,4 @@
1
+ IdentificacaoNfse
2
+ = render_xml '_tc_identificacao_nfse'
3
+
4
+ CodigoCancelamento = ts_codigo_cancelamento_nfse(codigo_cancelamento)
@@ -0,0 +1,47 @@
1
+ - rps ||= false
2
+ - raise "É obrigatório passar um RPS por parâmetro" unless rps
3
+
4
+ IdentificacaoRps
5
+ = render_xml '_tc_identificacao_rps', rps: rps
6
+
7
+ DataEmissao = ts_datetime(rps.data_emissao)
8
+ NaturezaOperacao = ts_natureza_operacao(emitente.natureza_operacao)
9
+
10
+ - if emitente.regime_especial_tributacao.present?
11
+ / Código de identificação do regime especial de tributação:
12
+ / - (1)Microempresa municipal
13
+ / - (2)Estimativa
14
+ / - (3)Sociedade de profissionais
15
+ / - (4)Cooperativa,
16
+ / - (5)Microempresário Individual (MEI)
17
+ / - (6)Microempresário e Empresa de Pequeno Porte (ME EPP)
18
+ RegimeEspecialTributacao = ts_regime_especial_tributacao(emitente.regime_especial_tributacao)
19
+
20
+ / (1)sim ----- (2)não -----
21
+ OptanteSimplesNacional = ts_sim_nao(emitente.optante_simples_nacional?)
22
+
23
+ / (1)sim ----- (2)não -----
24
+ IncentivadorCultural = ts_sim_nao(emitente.incentivo_fiscal?)
25
+
26
+ Status = ts_status_rps(rps.status)
27
+
28
+ - if rps.replace_invoice?
29
+ RpsSubstituido
30
+ = render_xml '_tc_identificacao_rps', rps: rps, substituicao: true
31
+
32
+ Servico
33
+ = render_xml '_tc_dados_servico', rps: rps
34
+
35
+ Prestador
36
+ = render_xml '_tc_identificacao_prestador', emitente: emitente
37
+
38
+ Tomador
39
+ = render_xml '_tc_dados_tomador', destinatario: rps.destinatario
40
+
41
+ - if rps.intermediario
42
+ IntermediarioServico
43
+ = render_xml '_tc_identificacao_intermediario_servico', intermediario: rps.intermediario
44
+
45
+ - if rps.codigo_obra.present? || rps.codigo_art.present?
46
+ ConstrucaoCivil
47
+ = render_xml '_tc_dados_construcao_civil', rps: rps
@@ -0,0 +1,9 @@
1
+ NumeroLote = ts_numero_lote(numero_lote_rps)
2
+ Cnpj = ts_cnpj(emitente.cnpj)
3
+ InscricaoMunicipal = ts_inscricao_municipal(emitente.inscricao_municipal)
4
+ QuantidadeRps = ts_quantidade_rps(lote_rps.size)
5
+ ListaRps
6
+ - lote_rps.each do |rps|
7
+ Rps
8
+ / tc_rps já está assinado (se tiver um certificado)
9
+ = render_xml '_tc_rps', rps: rps
@@ -0,0 +1,4 @@
1
+ / Alguns órgãos emissores não aceitam o atributo ID na tag (Como a betha)
2
+ - attributes = id_attribute? ? {id: "#{id_cancelamento}"} : {}
3
+ InfPedidoCancelamento *attributes
4
+ = render_xml '_tc_inf_pedido_cancelamento'