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,25 @@
1
+ module BrNfe
2
+ module Service
3
+ module SC
4
+ module Florianopolis
5
+ class Base < BrNfe::Service::Base
6
+ attr_accessor :aedf
7
+
8
+ validates :aedf, length: {maximum: 7}, presence: true
9
+ validates :aedf, numericality: {
10
+ only_integer: true,
11
+ greater_than_or_equal_to: 100000,
12
+ less_than_or_equal_to: 9999999
13
+ }, allow_blank: true
14
+
15
+ def request
16
+ end
17
+
18
+ def content_xml
19
+ '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+xml_builder
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,30 @@
1
+ module BrNfe
2
+ module Service
3
+ module SC
4
+ module Florianopolis
5
+ class Cancellation < BrNfe::Service::SC::Florianopolis::Base
6
+
7
+ # Descrição do motivo do cancelmanto <OPCIONAL>
8
+ #
9
+ # <b>Type: </b> _Text_
10
+ #
11
+ attr_accessor :motive
12
+
13
+ # Número de série da nota fiscal <OPCIONAL>
14
+ #
15
+ # <b>Type: </b> _Text_
16
+ #
17
+ attr_accessor :serie_number
18
+
19
+ validates :serie_number, presence: true
20
+ validates :motive, length: {maximum: 120}, allow_blank: true
21
+ validates :serie_number, numericality: {only_integer: true, less_than_or_equal_to: 999999}, allow_blank: true
22
+
23
+ def xml_builder
24
+ render_xml 'cancellation', dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,19 @@
1
+ module BrNfe
2
+ module Service
3
+ module SC
4
+ module Florianopolis
5
+ class EmissionRPS < BrNfe::Service::SC::Florianopolis::Base
6
+ include BrNfe::Service::Concerns::Rules::RecepcaoLoteRps
7
+ attr_accessor :cfps
8
+
9
+ validates :cfps, presence: true
10
+
11
+ def xml_builder
12
+ render_xml 'inf_requisicao', dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ Endereco
2
+ Logradouro = "#{address.logradouro}".max_size(125)
3
+ - if address.numero.present?
4
+ NumeroEndereco = "#{address.numero}".max_size(10)
5
+ - if address.complemento.present?
6
+ ComplementoEndereco = "#{address.complemento}".max_size(30)
7
+ Bairro = "#{address.bairro}".max_size(60)
8
+ - if address.codigo_pais.to_i == 1058
9
+ Municipio
10
+ CodigoMunicipio = BrNfe::Helper.only_number(address.codigo_municipio).max_size(7)
11
+ - else
12
+ Municipio
13
+ NomeMunicipio = "#{address.nome_municipio}".max_size(60)
14
+
15
+ CodigoPostal
16
+ CEP = BrNfe::Helper.only_number(address.cep).max_size(8)
17
+
18
+ - if address.codigo_pais.to_i == 1058
19
+ UF = "#{address.uf}".max_size(2)
20
+ - else
21
+ Pais = address.codigo_pais
@@ -0,0 +1,3 @@
1
+ Contato
2
+ Email = "#{contact.email}".max_size(500)
3
+ Telefone = "#{contact.telefone}".max_size(14)
@@ -0,0 +1,9 @@
1
+ ItemServico
2
+ IdCNAE = BrNfe::Helper.only_number(item.cnae_id).max_size(5)
3
+ CodigoAtividade = BrNfe::Helper.only_number(item.cnae_code).max_size(8)
4
+ DescricaoServico = "#{item.description}".max_size(1000)
5
+ CST = BrNfe::Helper.only_number(item.cst).max_size(2)
6
+ Aliquota = value_monetary(item.iss_tax_rate, 4)
7
+ ValorUnitario = value_monetary(item.unit_value, 2)
8
+ Quantidade = item.quantity.to_i
9
+ ValorTotal = value_monetary(item.total_value, 2)
@@ -0,0 +1,6 @@
1
+ InfRequisicaoCancelamento xmlns="http://nfe.pmf.sc.gov.br/nfse/versao?tipo=xsd-2_0" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
2
+ Versao = '2.0'
3
+ TipoSistema = 0
4
+ AEDF = BrNfe::Helper.only_number(aedf).max_size(7)
5
+ NumeroSerie = BrNfe::Helper.only_number(serie_number).max_size(6)
6
+ MotivoCancelamento = "#{motive}".max_size(120)
@@ -0,0 +1,55 @@
1
+ - if rps = lote_rps.first
2
+ InfRequisicao xmlns="http://nfe.pmf.sc.gov.br/nfse/versao?tipo=xsd-2_0" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
3
+ Versao = 2.0
4
+ TipoSistema = env == :production ? 1 : 0
5
+ - if rps.numero.present?
6
+ Identificacao = rps.numero
7
+ AEDF
8
+ AEDF = BrNfe::Helper.only_number(aedf).max_size(7)
9
+ TipoAedf = 'NORMAL'
10
+ DataEmissao = value_date(rps.data_emissao)
11
+ NumeroSerieRequisicao = rps.serie.to_i
12
+ CFPS = BrNfe::Helper.only_number(cfps).max_size(4)
13
+ DadosServico
14
+ - rps.items.each do |item|
15
+ = render_xml '_service_item', item: item, dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
16
+
17
+ BaseCalculo = value_monetary(rps.base_calculation, 2)
18
+ ValorISSQN = value_monetary(rps.total_iss, 2)
19
+
20
+ - if rps.total_base_calculation_st.present?
21
+ BaseCalculoSubstituicao = value_monetary(rps.total_base_calculation_st, 2)
22
+
23
+ - if rps.total_issqn_st.present?
24
+ ValorISSQNSubstituicao = value_monetary(rps.total_issqn_st, 2)
25
+
26
+ ValorTotalServicos = value_monetary(rps.total_services, 2)
27
+
28
+ - if rps.description.present?
29
+ DadosAdicionais = "#{rps.description}".max_size(1000)
30
+
31
+ Prestador
32
+ IdentificacaoPrestador
33
+ CNPJ = BrNfe::Helper::CpfCnpj.new(emitente.cnpj).sem_formatacao
34
+ - if emitente.inscricao_municipal.present?
35
+ InscricaoMunicipal = "#{emitente.inscricao_municipal}".max_size(7)
36
+ RazaoSocial = "#{emitente.razao_social}".max_size(80)
37
+
38
+ = render_xml '_address', address: emitente.endereco, dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
39
+ = render_xml '_contact', contact: emitente, dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
40
+ Tomador
41
+ IdentificacaoTomador
42
+ DocIdTomador
43
+ CPFCNPJ
44
+ - cpf_cnpj = BrNfe::Helper::CpfCnpj.new(rps.destinatario.cpf_cnpj)
45
+ - if cpf_cnpj.cnpj?
46
+ CNPJ = cpf_cnpj.sem_formatacao
47
+ - elsif cpf_cnpj.cpf?
48
+ CPF = cpf_cnpj.sem_formatacao
49
+
50
+ - if rps.destinatario.inscricao_municipal.present?
51
+ InscricaoMunicipal = "#{rps.destinatario.inscricao_municipal}".max_size(7)
52
+ RazaoSocial = "#{rps.destinatario.razao_social}".max_size(80)
53
+
54
+ = render_xml '_address', address: rps.destinatario.endereco, dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
55
+ = render_xml '_contact', contact: rps.destinatario, dir_path: "#{BrNfe.root}/lib/br_nfe/service/sc/florianopolis/xml"
@@ -0,0 +1,13 @@
1
+ module BrNfe
2
+ module Service
3
+ module SC
4
+ module Gaspar
5
+ class CancelaNfse < BrNfe::Service::Thema::V1::CancelaNfse
6
+ def wsdl
7
+ "http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEcancelamento?wsdl"
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module BrNfe
2
+ module Service
3
+ module SC
4
+ module Gaspar
5
+ class ConsultaLoteRps < BrNfe::Service::Thema::V1::ConsultaLoteRps
6
+ def wsdl
7
+ "http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl"
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module BrNfe
2
+ module Service
3
+ module SC
4
+ module Gaspar
5
+ class ConsultaNfsPorRps < BrNfe::Service::Thema::V1::ConsultaNfsPorRps
6
+ def wsdl
7
+ "http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl"
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ module BrNfe
2
+ module Service
3
+ module SC
4
+ module Gaspar
5
+ class ConsultaNfse < BrNfe::Service::Thema::V1::ConsultaNfse
6
+
7
+ # É sério. Tudo isso é obrigatório. Pfff
8
+ validates :destinatario, :nfe_number, :start_date, :end_date, presence: true
9
+
10
+ def wsdl
11
+ "http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl"
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ module BrNfe
2
+ module Service
3
+ module SC
4
+ module Gaspar
5
+ class ConsultaSituacaoLoteRps < BrNfe::Service::Thema::V1::ConsultaSituacaoLoteRps
6
+ def wsdl
7
+ "http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEconsulta?wsdl"
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module BrNfe
2
+ module Service
3
+ module SC
4
+ module Gaspar
5
+ class RecepcaoLoteRps < BrNfe::Service::Thema::V1::RecepcaoLoteRps
6
+ def wsdl
7
+ "http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEremessa?wsdl"
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module BrNfe
2
+ module Service
3
+ module SC
4
+ module Gaspar
5
+ class RecepcaoLoteRpsLimitado < BrNfe::Service::Thema::V1::RecepcaoLoteRpsLimitado
6
+ def wsdl
7
+ "http://nfse#{'hml' if env == :test}.gaspar.sc.gov.br/nfse/services/NFSEremessa?wsdl"
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,55 @@
1
+ module BrNfe
2
+ module Service
3
+ module Thema
4
+ module V1
5
+ class Base < BrNfe::Service::Base
6
+
7
+ def canonicalization_method_algorithm
8
+ 'http://www.w3.org/TR/2001/REC-xml-c14n-20010315'
9
+ end
10
+
11
+ def message_namespaces
12
+ {"xmlns" => "http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"}
13
+ end
14
+
15
+ def soap_namespaces
16
+ super.merge({"xmlns:ns1" => "http://server.nfse.thema.inf.br"})
17
+ end
18
+
19
+ # Setado manualmente em content_xml
20
+ #
21
+ def namespace_identifier
22
+ end
23
+
24
+ # Método que deve ser sobrescrito em cada subclass.
25
+ # É utilizado para saber qual a tag root de cada requisição
26
+ #
27
+ # <b><Tipo de retorno: /b> _String_
28
+ #
29
+ def soap_body_root_tag
30
+ # 'recepcionarLoteRps' < Exemplo
31
+ raise "Deve ser sobrescrito nas subclasses"
32
+ end
33
+
34
+ # Método é sobrescrito para atender o padrão do órgão emissor.
35
+ # Deve ser enviado o XML da requsiução dentro da tag CDATA
36
+ # seguindo a estrutura requerida.
37
+ #
38
+ # <b><Tipo de retorno: /b> _String_ XML
39
+ #
40
+ def content_xml
41
+ dados = "<ns1:#{soap_body_root_tag}>"
42
+ dados += '<ns1:xml>'
43
+ dados += '<![CDATA[<?xml version="1.0" encoding="ISO-8859-1"?>'
44
+ dados += xml_builder.html_safe
45
+ dados += ']]>'
46
+ dados += '</ns1:xml>'
47
+ dados += "</ns1:#{soap_body_root_tag}>"
48
+ dados
49
+ end
50
+
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,48 @@
1
+ module BrNfe
2
+ module Service
3
+ module Thema
4
+ module V1
5
+ class CancelaNfse < BrNfe::Service::Thema::V1::Base
6
+ include BrNfe::Service::Concerns::Rules::CancelamentoNfs
7
+
8
+ def method_wsdl
9
+ :cancelar_nfse
10
+ end
11
+
12
+ def response_path_module
13
+ BrNfe::Service::Response::Paths::V1::ServicoCancelarNfseResposta
14
+ end
15
+
16
+ def xml_builder
17
+ render_xml 'servico_cancelar_nfse_envio'
18
+ end
19
+
20
+ # Não é utilizado o response_root_path pois
21
+ # esse órgão emissor trata o XML de forma diferente
22
+ # e para instanciar a resposta adequadamente é utilizado o
23
+ # body_xml_path.
24
+ # A resposta contém outro XML dentro do Body.
25
+ #
26
+ def response_root_path
27
+ []
28
+ end
29
+
30
+ # Caminho de hash através do body da resposta SOAP até encontrar
31
+ # o XML correspondente na qual contém as informações necessárias
32
+ # para encontrar os valores para setar na resposta
33
+ #
34
+ def body_xml_path
35
+ [:cancelar_nfse_response, :return]
36
+ end
37
+
38
+ # Tag root da requisição
39
+ #
40
+ def soap_body_root_tag
41
+ 'cancelarNfse'
42
+ end
43
+
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,49 @@
1
+ module BrNfe
2
+ module Service
3
+ module Thema
4
+ module V1
5
+ class ConsultaLoteRps < BrNfe::Service::Thema::V1::Base
6
+
7
+ attr_accessor :protocolo
8
+ validates :protocolo, presence: true
9
+
10
+ def method_wsdl
11
+ :consultar_lote_rps
12
+ end
13
+
14
+ def xml_builder
15
+ render_xml 'servico_consultar_lote_rps_envio'
16
+ end
17
+
18
+ def response_path_module
19
+ BrNfe::Service::Response::Paths::V1::ServicoConsultarLoteRpsResposta
20
+ end
21
+
22
+ # Não é utilizado o response_root_path pois
23
+ # esse órgão emissor trata o XML de forma diferente
24
+ # e para instanciar a resposta adequadamente é utilizado o
25
+ # body_xml_path.
26
+ # A resposta contém outro XML dentro do Body.
27
+ #
28
+ def response_root_path
29
+ []
30
+ end
31
+
32
+ # Caminho de hash através do body da resposta SOAP até encontrar
33
+ # o XML correspondente na qual contém as informações necessárias
34
+ # para encontrar os valores para setar na resposta
35
+ #
36
+ def body_xml_path
37
+ [:consultar_lote_rps_response, :return]
38
+ end
39
+
40
+ # Tag root da requisição
41
+ #
42
+ def soap_body_root_tag
43
+ 'consultarLoteRps'
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end