br_nfe 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/br_nfe/active_model_base.rb +0 -5
  4. data/lib/br_nfe/base.rb +116 -7
  5. data/lib/br_nfe/helper/values_ts/service_v1.rb +15 -11
  6. data/lib/br_nfe/response/service/build_response.rb +230 -53
  7. data/lib/br_nfe/response/service/nota_fiscal.rb +9 -0
  8. data/lib/br_nfe/response/service/paths/base.rb +93 -59
  9. data/lib/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta.rb +2 -2
  10. data/lib/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta.rb +2 -2
  11. data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta.rb +2 -2
  12. data/lib/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta.rb +2 -2
  13. data/lib/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta.rb +4 -4
  14. data/lib/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta.rb +8 -8
  15. data/lib/br_nfe/response/service/paths/v1/tc_nfse.rb +201 -57
  16. data/lib/br_nfe/service/base.rb +104 -5
  17. data/lib/br_nfe/service/betha/base.rb +5 -0
  18. data/lib/br_nfe/service/betha/v1/cancelamento_nfs.rb +1 -4
  19. data/lib/br_nfe/service/betha/v1/consulta_lote_rps.rb +1 -4
  20. data/lib/br_nfe/service/betha/v1/consulta_nfs_por_rps.rb +1 -4
  21. data/lib/br_nfe/service/betha/v1/consulta_nfse.rb +1 -4
  22. data/lib/br_nfe/service/betha/v1/consulta_situacao_lote_rps.rb +1 -3
  23. data/lib/br_nfe/service/betha/v1/gateway.rb +1 -1
  24. data/lib/br_nfe/service/betha/v1/recepcao_lote_rps.rb +1 -3
  25. data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta.rb +5 -1
  26. data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta.rb +5 -1
  27. data/lib/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +5 -1
  28. data/lib/br_nfe/service/concerns/rules/cancelamento_nfs.rb +5 -0
  29. data/lib/br_nfe/service/rps.rb +13 -4
  30. data/lib/br_nfe/service/simpliss/v1/base.rb +79 -0
  31. data/lib/br_nfe/service/simpliss/v1/cancela_nfse.rb +30 -0
  32. data/lib/br_nfe/service/simpliss/v1/consulta_lote_rps.rb +38 -0
  33. data/lib/br_nfe/service/simpliss/v1/consulta_nfs_por_rps.rb +31 -0
  34. data/lib/br_nfe/service/simpliss/v1/consulta_nfse.rb +30 -0
  35. data/lib/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps.rb +29 -0
  36. data/lib/br_nfe/service/simpliss/v1/recepcao_lote_rps.rb +35 -0
  37. data/lib/br_nfe/service/simpliss/v1/response_paths/servico_cancelar_nfse_resposta.rb +22 -0
  38. data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_lote_rps_resposta.rb +25 -0
  39. data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_nfse_resposta.rb +25 -0
  40. data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +25 -0
  41. data/lib/br_nfe/service/simpliss/v1/response_paths/servico_consultar_situacao_lote_rps_resposta.rb +31 -0
  42. data/lib/br_nfe/service/simpliss/v1/response_paths/servico_enviar_lote_rps_resposta.rb +36 -0
  43. data/lib/br_nfe/service/simpliss/v1/xml/_login.xml.slim +3 -0
  44. data/lib/br_nfe/service/simpliss/v1/xml/_tc_dados_servico.xml.slim +18 -0
  45. data/lib/br_nfe/service/simpliss/v1/xml/_tc_item_servico.xml.slim +3 -0
  46. data/lib/br_nfe/service/simpliss/v1/xml/servico_cancelar_nfse_envio.xml.slim +11 -0
  47. data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_lote_rps_envio.xml.slim +7 -0
  48. data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_nfse_envio.xml.slim +22 -0
  49. data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_nfse_rps_envio.xml.slim +8 -0
  50. data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_situacao_lote_rps_envio.xml.slim +7 -0
  51. data/lib/br_nfe/service/simpliss/v1/xml/servico_enviar_lote_rps_envio.xml.slim +11 -0
  52. data/lib/br_nfe/service/thema/v1/base.rb +48 -2
  53. data/lib/br_nfe/service/thema/v1/cancela_nfse.rb +14 -5
  54. data/lib/br_nfe/service/thema/v1/consulta_lote_rps.rb +5 -4
  55. data/lib/br_nfe/service/thema/v1/consulta_nfs_por_rps.rb +5 -4
  56. data/lib/br_nfe/service/thema/v1/consulta_nfse.rb +5 -4
  57. data/lib/br_nfe/service/thema/v1/consulta_situacao_lote_rps.rb +1 -4
  58. data/lib/br_nfe/service/thema/v1/recepcao_lote_rps.rb +19 -5
  59. data/lib/br_nfe/service/thema/v1/recepcao_lote_rps_limitado.rb +1 -1
  60. data/lib/br_nfe/service/thema/v1/response_paths/servico_cancelar_nfse_resposta.rb +17 -0
  61. data/lib/br_nfe/service/thema/v1/response_paths/servico_consultar_nfse_rps_resposta.rb +19 -0
  62. data/lib/br_nfe/service/xml/v1/_tc_contato.xml.slim +2 -2
  63. data/lib/br_nfe/service/xml/v1/_tc_cpf_cnpj.xml.slim +2 -2
  64. data/lib/br_nfe/service/xml/v1/_tc_dados_construcao_civil.xml.slim +2 -2
  65. data/lib/br_nfe/service/xml/v1/_tc_dados_prestador.xml.slim +5 -5
  66. data/lib/br_nfe/service/xml/v1/_tc_dados_servico.xml.slim +6 -6
  67. data/lib/br_nfe/service/xml/v1/_tc_dados_tomador.xml.slim +4 -4
  68. data/lib/br_nfe/service/xml/v1/_tc_endereco.xml.slim +7 -7
  69. data/lib/br_nfe/service/xml/v1/_tc_identificacao_intermediario_servico.xml.slim +3 -3
  70. data/lib/br_nfe/service/xml/v1/_tc_identificacao_nfse.xml.slim +4 -4
  71. data/lib/br_nfe/service/xml/v1/_tc_identificacao_orgao_gerador.xml.slim +2 -2
  72. data/lib/br_nfe/service/xml/v1/_tc_identificacao_prestador.xml.slim +2 -2
  73. data/lib/br_nfe/service/xml/v1/_tc_identificacao_rps.xml.slim +3 -3
  74. data/lib/br_nfe/service/xml/v1/_tc_identificacao_tomador.xml.slim +2 -2
  75. data/lib/br_nfe/service/xml/v1/_tc_inf_pedido_cancelamento.xml.slim +2 -2
  76. data/lib/br_nfe/service/xml/v1/_tc_inf_rps.xml.slim +13 -13
  77. data/lib/br_nfe/service/xml/v1/_tc_lote_rps.xml.slim +6 -6
  78. data/lib/br_nfe/service/xml/v1/_tc_pedido_cancelamento.xml.slim +1 -1
  79. data/lib/br_nfe/service/xml/v1/_tc_rps.xml.slim +2 -2
  80. data/lib/br_nfe/service/xml/v1/_tc_valores.xml.slim +16 -17
  81. data/lib/br_nfe/service/xml/v1/servico_cancelar_nfse_envio.xml.slim +3 -4
  82. data/lib/br_nfe/service/xml/v1/servico_consultar_lote_rps_envio.xml.slim +3 -3
  83. data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_envio.xml.slim +8 -8
  84. data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_rps_envio.xml.slim +3 -3
  85. data/lib/br_nfe/service/xml/v1/servico_consultar_situacao_lote_rps_envio.xml.slim +3 -3
  86. data/lib/br_nfe/service/xml/v1/servico_enviar_lote_rps_envio.xml.slim +3 -3
  87. data/lib/br_nfe/version.rb +1 -1
  88. data/lib/br_nfe/xml/_signed_info_sh1.xml.slim +9 -9
  89. data/lib/br_nfe/xml/signature_sh1.xml.slim +5 -5
  90. data/lib/br_nfe.rb +26 -10
  91. data/test/br_nfe/base_test.rb +5 -5
  92. data/test/br_nfe/helper/values_ts/service_v1_test.rb +376 -0
  93. data/test/br_nfe/response/service/build_response_test.rb +1 -173
  94. data/test/br_nfe/response/service/paths/base_test.rb +61 -64
  95. data/test/br_nfe/response/service/paths/v1/servico_cancelar_nfse_resposta_test.rb +2 -2
  96. data/test/br_nfe/response/service/paths/v1/servico_consultar_lote_rps_resposta_test.rb +2 -2
  97. data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_resposta_test.rb +2 -2
  98. data/test/br_nfe/response/service/paths/v1/servico_consultar_nfse_rps_resposta_test.rb +2 -2
  99. data/test/br_nfe/response/service/paths/v1/servico_consultar_situacao_lote_rps_resposta_test.rb +3 -3
  100. data/test/br_nfe/response/service/paths/v1/servico_enviar_lote_rps_resposta_test.rb +4 -4
  101. data/test/br_nfe/response/service/paths/v1/tc_nfse_test.rb +27 -31
  102. data/test/br_nfe/service/base_test.rb +206 -11
  103. data/test/br_nfe/service/betha/base_test.rb +9 -0
  104. data/test/br_nfe/service/betha/v1/cancelamento_nfs_test.rb +0 -6
  105. data/test/br_nfe/service/betha/v1/consulta_lote_rps_test.rb +0 -6
  106. data/test/br_nfe/service/betha/v1/consulta_nfs_por_rps_test.rb +0 -4
  107. data/test/br_nfe/service/betha/v1/consulta_nfse_test.rb +0 -4
  108. data/test/br_nfe/service/betha/v1/consulta_situacao_lote_rps_test.rb +1 -5
  109. data/test/br_nfe/service/betha/v1/gateway_test.rb +4 -2
  110. data/test/br_nfe/service/betha/v1/recepcao_lote_rps_test.rb +0 -4
  111. data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_lote_rps_resposta_test.rb +1 -1
  112. data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_resposta_test.rb +1 -1
  113. data/test/br_nfe/service/betha/v1/response_paths/servico_consultar_nfse_rps_resposta_test.rb +1 -1
  114. data/test/br_nfe/service/rps_test.rb +39 -6
  115. data/test/br_nfe/service/simpliss/v1/base_test.rb +102 -0
  116. data/test/br_nfe/service/simpliss/v1/cancela_nfse_test.rb +97 -0
  117. data/test/br_nfe/service/simpliss/v1/consulta_lote_rps_test.rb +241 -0
  118. data/test/br_nfe/service/simpliss/v1/consulta_nfs_por_rps_test.rb +239 -0
  119. data/test/br_nfe/service/simpliss/v1/consulta_nfse_test.rb +226 -0
  120. data/test/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps_test.rb +122 -0
  121. data/test/br_nfe/service/simpliss/v1/recepcao_lote_rps_test.rb +105 -0
  122. data/test/br_nfe/service/simpliss/v1/xsd/nfse_3.xsd +735 -0
  123. data/test/br_nfe/service/simpliss/v1/xsd/xmldsig-core-schema20020212.xsd +318 -0
  124. data/test/br_nfe/service/thema/v1/base_test.rb +23 -2
  125. data/test/br_nfe/service/thema/v1/cancela_nfse_test.rb +69 -3
  126. data/test/br_nfe/service/thema/v1/consulta_lote_rps_test.rb +134 -4
  127. data/test/br_nfe/service/thema/v1/consulta_nfs_por_rps_test.rb +131 -4
  128. data/test/br_nfe/service/thema/v1/consulta_nfse_test.rb +214 -4
  129. data/test/br_nfe/service/thema/v1/consulta_situacao_lote_rps_test.rb +97 -4
  130. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_limitado_test.rb +109 -0
  131. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test.rb +72 -4
  132. data/test/factories/service/rps.rb +17 -16
  133. data/test/factories/service/{sc/gaspar/recepcao_lote_rps_limitado.rb → simpliss/v1/base.rb} +1 -3
  134. data/test/factories/service/{sc/gaspar → simpliss/v1}/cancela_nfse.rb +2 -2
  135. data/test/factories/service/simpliss/v1/consulta_lote_rps.rb +7 -0
  136. data/test/factories/service/{sc/gaspar → simpliss/v1}/consulta_nfs_por_rps.rb +1 -1
  137. data/test/factories/service/{sc/gaspar → simpliss/v1}/consulta_nfse.rb +1 -1
  138. data/test/factories/service/simpliss/v1/consulta_situacao_lote_rps.rb +6 -0
  139. data/test/factories/service/{sc/gaspar → simpliss/v1}/recepcao_lote_rps.rb +1 -1
  140. data/test/fixtures/service/response/simpliss/v1/cancela_nfse/fault.xml +21 -0
  141. data/test/fixtures/service/response/simpliss/v1/cancela_nfse/success.xml +26 -0
  142. data/test/fixtures/service/response/simpliss/v1/consulta_lote_rps/fault.xml +21 -0
  143. data/test/fixtures/service/response/simpliss/v1/consulta_lote_rps/nfse_complete.xml +134 -0
  144. data/test/fixtures/service/response/simpliss/v1/consulta_lote_rps/nfse_simple.xml +100 -0
  145. data/test/fixtures/service/response/simpliss/v1/consulta_nfse/fault.xml +16 -0
  146. data/test/fixtures/service/response/simpliss/v1/consulta_nfse/nfs_empty.xml +10 -0
  147. data/test/fixtures/service/response/simpliss/v1/consulta_nfse/nfse_complete.xml +134 -0
  148. data/test/fixtures/service/response/simpliss/v1/consulta_nfse/nfse_simple.xml +100 -0
  149. data/test/fixtures/service/response/simpliss/v1/consulta_nfse_por_rps/fault.xml +16 -0
  150. data/test/fixtures/service/response/simpliss/v1/consulta_nfse_por_rps/nfse_complete.xml +132 -0
  151. data/test/fixtures/service/response/simpliss/v1/consulta_nfse_por_rps/nfse_simple.xml +98 -0
  152. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/error.xml +11 -0
  153. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/fault.xml +16 -0
  154. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/success.xml +11 -0
  155. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/unprocessed.xml +11 -0
  156. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/unreceived.xml +11 -0
  157. data/test/fixtures/service/response/simpliss/v1/recepcao_lote_rps/error.xml +16 -0
  158. data/test/fixtures/service/response/simpliss/v1/recepcao_lote_rps/success.xml +12 -0
  159. data/test/fixtures/service/response/thema/v1/cancela_nfse/fault.xml +33 -0
  160. data/test/fixtures/service/response/thema/v1/cancela_nfse/success.xml +30 -0
  161. data/test/fixtures/service/response/thema/v1/consulta_lote_rps/fault.xml +19 -0
  162. data/test/fixtures/service/response/thema/v1/consulta_lote_rps/nfse_complete.xml +109 -0
  163. data/test/fixtures/service/response/thema/v1/consulta_nfse/fault.xml +20 -0
  164. data/test/fixtures/service/response/thema/v1/consulta_nfse/nfs_empty.xml +14 -0
  165. data/test/fixtures/service/response/thema/v1/consulta_nfse/nfse_complete.xml +111 -0
  166. data/test/fixtures/service/response/thema/v1/consulta_nfse/nfse_simple.xml +111 -0
  167. data/test/fixtures/service/response/thema/v1/consulta_nfse_por_rps/fault.xml +23 -0
  168. data/test/fixtures/service/response/thema/v1/consulta_nfse_por_rps/nfse_complete.xml +110 -0
  169. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/error.xml +14 -0
  170. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/fault.xml +15 -0
  171. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/success.xml +14 -0
  172. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/unprocessed.xml +14 -0
  173. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/unreceived.xml +19 -0
  174. data/test/fixtures/service/response/thema/v1/recepcao_lote_rps/error.xml +17 -0
  175. data/test/fixtures/service/response/thema/v1/recepcao_lote_rps/success.xml +15 -0
  176. data/test/fixtures/service/response/thema/v1/recepcao_lote_rps_limitado/error.xml +19 -0
  177. data/test/fixtures/service/response/thema/v1/recepcao_lote_rps_limitado/success.xml +15 -0
  178. data/test/fixtures/service/thema/v1/cancelar_nfse_envio.xml +1 -0
  179. data/test/fixtures/service/thema/v1/cancelar_nfse_envio_signed.xml +2 -0
  180. data/test/fixtures/service/thema/v1/enviar_lote_rps.xml +1 -0
  181. data/test/fixtures/service/thema/v1/enviar_lote_rps_signed.xml +2 -0
  182. data/test/test_helper.rb +5 -0
  183. metadata +146 -37
  184. data/lib/br_nfe/service/sc/gaspar/cancela_nfse.rb +0 -13
  185. data/lib/br_nfe/service/sc/gaspar/consulta_lote_rps.rb +0 -13
  186. data/lib/br_nfe/service/sc/gaspar/consulta_nfs_por_rps.rb +0 -13
  187. data/lib/br_nfe/service/sc/gaspar/consulta_nfse.rb +0 -17
  188. data/lib/br_nfe/service/sc/gaspar/consulta_situacao_lote_rps.rb +0 -13
  189. data/lib/br_nfe/service/sc/gaspar/recepcao_lote_rps.rb +0 -13
  190. data/lib/br_nfe/service/sc/gaspar/recepcao_lote_rps_limitado.rb +0 -13
  191. data/test/br_nfe/service/sc/gaspar/cancela_nfse_test.rb +0 -21
  192. data/test/br_nfe/service/sc/gaspar/consulta_nfs_por_rps_test.rb +0 -21
  193. data/test/br_nfe/service/sc/gaspar/consulta_nfse_test.rb +0 -21
  194. data/test/br_nfe/service/sc/gaspar/consulta_situacao_lote_rps_test.rb +0 -21
  195. data/test/br_nfe/service/sc/gaspar/recepcao_lote_rps_limitado_test.rb +0 -22
  196. data/test/br_nfe/service/sc/gaspar/recepcao_lote_rps_test.rb +0 -22
  197. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test_limitado.rb +0 -50
  198. data/test/factories/service/sc/gaspar/consulta_lote_rps.rb +0 -7
  199. data/test/factories/service/sc/gaspar/consulta_situacao_lote_rps.rb +0 -6
@@ -1,7 +1,7 @@
1
- RazaoSocial = ts_razao_social(intermediario.razao_social)
1
+ *{tag: "#{namespace_for_tags}RazaoSocial"} = ts_razao_social(intermediario.razao_social)
2
2
 
3
- CpfCnpj
3
+ *{tag: "#{namespace_for_tags}CpfCnpj"}
4
4
  = render_xml '_tc_cpf_cnpj', cpf_cnpj: intermediario.cpf_cnpj
5
5
 
6
6
  - if intermediario.inscricao_municipal.present?
7
- InscricaoMunicipal = ts_inscricao_municipal(intermediario.inscricao_municipal)
7
+ *{tag: "#{namespace_for_tags}InscricaoMunicipal"} = ts_inscricao_municipal(intermediario.inscricao_municipal)
@@ -1,7 +1,7 @@
1
- Numero = ts_numero_nfse(nfe_number)
2
- Cnpj = ts_cnpj(emitente.cnpj)
1
+ *{tag: "#{namespace_for_tags}Numero"} = ts_numero_nfse(nfe_number)
2
+ *{tag: "#{namespace_for_tags}Cnpj"} = ts_cnpj(emitente.cnpj)
3
3
 
4
4
  - if emitente.inscricao_municipal.present?
5
- InscricaoMunicipal = ts_inscricao_municipal(emitente.inscricao_municipal)
5
+ *{tag: "#{namespace_for_tags}InscricaoMunicipal"} = ts_inscricao_municipal(emitente.inscricao_municipal)
6
6
 
7
- CodigoMunicipio = ts_codigo_municipio_ibge(emitente.endereco.codigo_municipio)
7
+ *{tag: "#{namespace_for_tags}CodigoMunicipio"} = ts_codigo_municipio_ibge(emitente.endereco.codigo_municipio)
@@ -4,5 +4,5 @@
4
4
  - uf ||= false
5
5
  - raise "Deve ser passado uma variável local chamda uf" unless uf
6
6
 
7
- CodigoMunicipio = ts_codigo_municipio_ibge(ibge_code)
8
- Uf = ts_uf(uf)
7
+ *{tag: "#{namespace_for_tags}CodigoMunicipio"} = ts_codigo_municipio_ibge(ibge_code)
8
+ *{tag: "#{namespace_for_tags}Uf"} = ts_uf(uf)
@@ -1,3 +1,3 @@
1
- Cnpj = ts_cnpj(emitente.cnpj)
1
+ *{tag: "#{namespace_for_tags}Cnpj"} = ts_cnpj(emitente.cnpj)
2
2
  - if emitente.inscricao_municipal.present?
3
- InscricaoMunicipal = ts_inscricao_municipal(emitente.inscricao_municipal)
3
+ *{tag: "#{namespace_for_tags}InscricaoMunicipal"} = ts_inscricao_municipal(emitente.inscricao_municipal)
@@ -11,6 +11,6 @@
11
11
  - type_size ||= 1
12
12
 
13
13
 
14
- Numero = ts_numero_rps(current_numero)
15
- Serie = ts_serie_rps(current_serie)
16
- Tipo = ts_tipo_rps(current_tipo)
14
+ *{tag: "#{namespace_for_tags}Numero"} = ts_numero_rps(current_numero)
15
+ *{tag: "#{namespace_for_tags}Serie"} = ts_serie_rps(current_serie)
16
+ *{tag: "#{namespace_for_tags}Tipo"} = ts_tipo_rps(current_tipo)
@@ -1,4 +1,4 @@
1
- CpfCnpj
1
+ *{tag: "#{namespace_for_tags}CpfCnpj"}
2
2
  = render_xml '_tc_cpf_cnpj', cpf_cnpj: destinatario.cpf_cnpj
3
3
  - if destinatario.inscricao_municipal.present?
4
- InscricaoMunicipal = ts_inscricao_municipal(destinatario.inscricao_municipal)
4
+ *{tag: "#{namespace_for_tags}InscricaoMunicipal"} = ts_inscricao_municipal(destinatario.inscricao_municipal)
@@ -1,4 +1,4 @@
1
- IdentificacaoNfse
1
+ *{tag: "#{namespace_for_tags}IdentificacaoNfse"}
2
2
  = render_xml '_tc_identificacao_nfse'
3
3
 
4
- CodigoCancelamento = ts_codigo_cancelamento_nfse(codigo_cancelamento)
4
+ *{tag: "#{namespace_for_tags}CodigoCancelamento"} = ts_codigo_cancelamento_nfse(codigo_cancelamento)
@@ -1,11 +1,11 @@
1
1
  - rps ||= false
2
2
  - raise "É obrigatório passar um RPS por parâmetro" unless rps
3
3
 
4
- IdentificacaoRps
4
+ *{tag: "#{namespace_for_tags}IdentificacaoRps"}
5
5
  = render_xml '_tc_identificacao_rps', rps: rps
6
6
 
7
- DataEmissao = ts_datetime(rps.data_emissao)
8
- NaturezaOperacao = ts_natureza_operacao(emitente.natureza_operacao)
7
+ *{tag: "#{namespace_for_tags}DataEmissao"} = ts_datetime(rps.data_emissao)
8
+ *{tag: "#{namespace_for_tags}NaturezaOperacao"} = ts_natureza_operacao(emitente.natureza_operacao)
9
9
 
10
10
  - if emitente.regime_especial_tributacao.present?
11
11
  / Código de identificação do regime especial de tributação:
@@ -15,33 +15,33 @@ NaturezaOperacao = ts_natureza_operacao(emitente.natureza_operacao)
15
15
  / - (4)Cooperativa,
16
16
  / - (5)Microempresário Individual (MEI)
17
17
  / - (6)Microempresário e Empresa de Pequeno Porte (ME EPP)
18
- RegimeEspecialTributacao = ts_regime_especial_tributacao(emitente.regime_especial_tributacao)
18
+ *{tag: "#{namespace_for_tags}RegimeEspecialTributacao"} = ts_regime_especial_tributacao(emitente.regime_especial_tributacao)
19
19
 
20
20
  / (1)sim ----- (2)não -----
21
- OptanteSimplesNacional = ts_sim_nao(emitente.optante_simples_nacional?)
21
+ *{tag: "#{namespace_for_tags}OptanteSimplesNacional"} = ts_sim_nao(emitente.optante_simples_nacional?)
22
22
 
23
23
  / (1)sim ----- (2)não -----
24
- IncentivadorCultural = ts_sim_nao(emitente.incentivo_fiscal?)
24
+ *{tag: "#{namespace_for_tags}IncentivadorCultural"} = ts_sim_nao(emitente.incentivo_fiscal?)
25
25
 
26
- Status = ts_status_rps(rps.status)
26
+ *{tag: "#{namespace_for_tags}Status"} = ts_status_rps(rps.status)
27
27
 
28
28
  - if rps.replace_invoice?
29
- RpsSubstituido
29
+ *{tag: "#{namespace_for_tags}RpsSubstituido"}
30
30
  = render_xml '_tc_identificacao_rps', rps: rps, substituicao: true
31
31
 
32
- Servico
32
+ *{tag: "#{namespace_for_tags}Servico"}
33
33
  = render_xml '_tc_dados_servico', rps: rps
34
34
 
35
- Prestador
35
+ *{tag: "#{namespace_for_tags}Prestador"}
36
36
  = render_xml '_tc_identificacao_prestador', emitente: emitente
37
37
 
38
- Tomador
38
+ *{tag: "#{namespace_for_tags}Tomador"}
39
39
  = render_xml '_tc_dados_tomador', destinatario: rps.destinatario
40
40
 
41
41
  - if rps.intermediario
42
- IntermediarioServico
42
+ *{tag: "#{namespace_for_tags}IntermediarioServico"}
43
43
  = render_xml '_tc_identificacao_intermediario_servico', intermediario: rps.intermediario
44
44
 
45
45
  - if rps.codigo_obra.present? || rps.codigo_art.present?
46
- ConstrucaoCivil
46
+ *{tag: "#{namespace_for_tags}ConstrucaoCivil"}
47
47
  = render_xml '_tc_dados_construcao_civil', rps: rps
@@ -1,9 +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
1
+ *{tag: "#{namespace_for_tags}NumeroLote"} = ts_numero_lote(numero_lote_rps)
2
+ *{tag: "#{namespace_for_tags}Cnpj"} = ts_cnpj(emitente.cnpj)
3
+ *{tag: "#{namespace_for_tags}InscricaoMunicipal"} = ts_inscricao_municipal(emitente.inscricao_municipal)
4
+ *{tag: "#{namespace_for_tags}QuantidadeRps"} = ts_quantidade_rps(lote_rps.size)
5
+ *{tag: "#{namespace_for_tags}ListaRps"}
6
6
  - lote_rps.each do |rps|
7
- Rps
7
+ *{tag: "#{namespace_for_tags}Rps"}
8
8
  / tc_rps já está assinado (se tiver um certificado)
9
9
  = render_xml '_tc_rps', rps: rps
@@ -1,4 +1,4 @@
1
1
  / Alguns órgãos emissores não aceitam o atributo ID na tag (Como a betha)
2
2
  - attributes = id_attribute? ? {id: "#{id_cancelamento}"} : {}
3
- InfPedidoCancelamento *attributes
3
+ *{tag: "#{namespace_for_tags}InfPedidoCancelamento"} *attributes
4
4
  = render_xml '_tc_inf_pedido_cancelamento'
@@ -1,8 +1,8 @@
1
1
  - xml_rps = render_xml '_tc_inf_rps', rps: rps
2
2
  / Alguns órgãos emissores não aceitam o atributo ID na tag (Como a betha)
3
3
  - attributes_inf_rps = id_attribute? ? {id: "R#{rps.numero}"} : {}
4
- InfRps *attributes_inf_rps
4
+ *{tag: "#{namespace_for_tags}InfRps"} *attributes_inf_rps
5
5
  = xml_rps.html_safe
6
6
 
7
- - if certificate
7
+ - if signature_type?(:default) && certificate
8
8
  = render_xml('signature_sh1', data_xml: xml_rps.html_safe, uri: "#R#{rps.numero}").html_safe
@@ -1,48 +1,47 @@
1
1
  - rps ||= false
2
2
  - raise "É obrigatório passar um RPS por parâmetro" unless rps
3
3
 
4
- ValorServicos = ts_valor(rps.total_services)
4
+ *{tag: "#{namespace_for_tags}ValorServicos"} = ts_valor(rps.total_services)
5
5
 
6
6
  - if rps.deductions.present? && rps.deductions.to_f > 0.0
7
- ValorDeducoes = ts_valor(rps.deductions)
7
+ *{tag: "#{namespace_for_tags}ValorDeducoes"} = ts_valor(rps.deductions)
8
8
 
9
9
  - if rps.valor_pis.present? && rps.valor_pis.to_f > 0.0
10
- ValorPis = ts_valor(rps.valor_pis)
10
+ *{tag: "#{namespace_for_tags}ValorPis"} = ts_valor(rps.valor_pis)
11
11
 
12
12
  - if rps.valor_cofins.present? && rps.valor_cofins.to_f > 0.0
13
- ValorCofins = ts_valor(rps.valor_cofins)
13
+ *{tag: "#{namespace_for_tags}ValorCofins"} = ts_valor(rps.valor_cofins)
14
14
 
15
15
  - if rps.valor_inss.present? && rps.valor_inss.to_f > 0.0
16
- ValorInss = ts_valor(rps.valor_inss)
16
+ *{tag: "#{namespace_for_tags}ValorInss"} = ts_valor(rps.valor_inss)
17
17
 
18
18
  - if rps.valor_ir.present? && rps.valor_ir.to_f > 0.0
19
- ValorIr = ts_valor(rps.valor_ir)
19
+ *{tag: "#{namespace_for_tags}ValorIr"} = ts_valor(rps.valor_ir)
20
20
 
21
21
  - if rps.valor_csll.present? && rps.valor_csll.to_f > 0.0
22
- ValorCsll = ts_valor(rps.valor_csll)
22
+ *{tag: "#{namespace_for_tags}ValorCsll"} = ts_valor(rps.valor_csll)
23
23
 
24
- IssRetido = ts_sim_nao(rps.iss_retained?)
24
+ *{tag: "#{namespace_for_tags}IssRetido"} = ts_sim_nao(rps.iss_retained?)
25
25
 
26
26
  - if rps.total_iss.present? && rps.total_iss.to_f > 0.0
27
- ValorIss = ts_valor(rps.total_iss)
27
+ *{tag: "#{namespace_for_tags}ValorIss"} = ts_valor(rps.total_iss)
28
28
 
29
29
  - if rps.total_iss_retained.present? && rps.total_iss_retained.to_f > 0.0
30
- ValorIssRetido = ts_valor(rps.total_iss_retained)
30
+ *{tag: "#{namespace_for_tags}ValorIssRetido"} = ts_valor(rps.total_iss_retained)
31
31
 
32
32
  - if rps.outras_retencoes.present? && rps.outras_retencoes.to_f > 0.0
33
- OutrasRetencoes = ts_valor(rps.outras_retencoes)
33
+ *{tag: "#{namespace_for_tags}OutrasRetencoes"} = ts_valor(rps.outras_retencoes)
34
34
 
35
35
  - if rps.base_calculation.present? && rps.base_calculation.to_f > 0.0
36
- BaseCalculo = ts_valor(rps.base_calculation)
36
+ *{tag: "#{namespace_for_tags}BaseCalculo"} = ts_valor(rps.base_calculation)
37
37
 
38
38
  - if rps.iss_tax_rate.present? && rps.iss_tax_rate.to_f > 0.0
39
- Aliquota = ts_aliquota(rps.iss_tax_rate)
39
+ *{tag: "#{namespace_for_tags}Aliquota"} = ts_aliquota(rps.iss_tax_rate)
40
40
 
41
- - if rps.net_value.present? && rps.net_value.to_f > 0.0
42
- ValorLiquidoNfse = ts_valor(rps.net_value)
41
+ *{tag: "#{namespace_for_tags}ValorLiquidoNfse"} = ts_valor(rps.net_value)
43
42
 
44
43
  - if rps.desconto_incondicionado.present? && rps.desconto_incondicionado.to_f > 0.0
45
- DescontoIncondicionado = ts_valor(rps.desconto_incondicionado)
44
+ *{tag: "#{namespace_for_tags}DescontoIncondicionado"} = ts_valor(rps.desconto_incondicionado)
46
45
 
47
46
  - if rps.desconto_condicionado.present? && rps.desconto_condicionado.to_f > 0.0
48
- DescontoCondicionado = ts_valor(rps.desconto_condicionado)
47
+ *{tag: "#{namespace_for_tags}DescontoCondicionado"} = ts_valor(rps.desconto_condicionado)
@@ -1,9 +1,8 @@
1
- *{tag: "#{namespace_identifier.to_s+':' if namespace_identifier}CancelarNfseEnvio"} *message_namespaces
2
- Pedido
3
- - id_cancelamento = Time.now.nsec
1
+ *{tag: "#{namespace_identifier}CancelarNfseEnvio"} *message_namespaces
2
+ *{tag: "#{namespace_for_tags}Pedido"}
4
3
  - xml_pedido_cancel = render_xml '_tc_pedido_cancelamento', id_cancelamento: "C#{id_cancelamento}"
5
4
 
6
5
  = xml_pedido_cancel.html_safe
7
6
 
8
- - if certificate
7
+ - if signature_type?(:default) && certificate
9
8
  = render_xml('signature_sh1', data_xml: xml_pedido_cancel.html_safe, uri: "#C#{id_cancelamento}").html_safe
@@ -1,4 +1,4 @@
1
- *{tag: "#{namespace_identifier.to_s+':' if namespace_identifier}ConsultarLoteRpsEnvio"} *message_namespaces
2
- Prestador
1
+ *{tag: "#{namespace_identifier}ConsultarLoteRpsEnvio"} *message_namespaces
2
+ *{tag: "#{namespace_for_tags}Prestador"}
3
3
  = render_xml '_tc_identificacao_prestador'
4
- Protocolo = ts_numero_protocolo(protocolo)
4
+ *{tag: "#{namespace_for_tags}Protocolo"} = ts_numero_protocolo(protocolo)
@@ -1,19 +1,19 @@
1
- *{tag: "#{namespace_identifier.to_s+':' if namespace_identifier}ConsultarNfseEnvio"} *message_namespaces
2
- Prestador
1
+ *{tag: "#{namespace_identifier}ConsultarNfseEnvio"} *message_namespaces
2
+ *{tag: "#{namespace_for_tags}Prestador"}
3
3
  = render_xml '_tc_identificacao_prestador'
4
4
 
5
5
  - if nfe_number.present?
6
- NumeroNfse = ts_numero_nfse(nfe_number)
6
+ *{tag: "#{namespace_for_tags}NumeroNfse"} = ts_numero_nfse(nfe_number)
7
7
 
8
8
  - if start_date.present? && end_date.present?
9
- PeriodoEmissao
10
- DataInicial = ts_date(start_date)
11
- DataFinal = ts_date(end_date)
9
+ *{tag: "#{namespace_for_tags}PeriodoEmissao"}
10
+ *{tag: "#{namespace_for_tags}DataInicial"} = ts_date(start_date)
11
+ *{tag: "#{namespace_for_tags}DataFinal"} = ts_date(end_date)
12
12
 
13
13
  - if destinatario.present? && destinatario.cpf_cnpj.present?
14
- Tomador
14
+ *{tag: "#{namespace_for_tags}Tomador"}
15
15
  = render_xml '_tc_identificacao_tomador', destinatario: destinatario
16
16
 
17
17
  - if intermediario.present? && intermediario.cpf_cnpj.present?
18
- IntermediarioServico
18
+ *{tag: "#{namespace_for_tags}IntermediarioServico"}
19
19
  = render_xml '_tc_identificacao_intermediario_servico', intermediario: intermediario
@@ -1,5 +1,5 @@
1
- *{tag: "#{namespace_identifier.to_s+':' if namespace_identifier}ConsultarNfseRpsEnvio"} *message_namespaces
2
- IdentificacaoRps
1
+ *{tag: "#{namespace_identifier}ConsultarNfseRpsEnvio"} *message_namespaces
2
+ *{tag: "#{namespace_for_tags}IdentificacaoRps"}
3
3
  = render_xml '_tc_identificacao_rps'
4
- Prestador
4
+ *{tag: "#{namespace_for_tags}Prestador"}
5
5
  = render_xml '_tc_identificacao_prestador'
@@ -1,4 +1,4 @@
1
- *{tag: "#{namespace_identifier.to_s+':' if namespace_identifier}ConsultarSituacaoLoteRpsEnvio"} *message_namespaces
2
- Prestador
1
+ *{tag: "#{namespace_identifier}ConsultarSituacaoLoteRpsEnvio"} *message_namespaces
2
+ *{tag: "#{namespace_for_tags}Prestador"}
3
3
  = render_xml '_tc_identificacao_prestador'
4
- Protocolo = ts_numero_protocolo(protocolo)
4
+ *{tag: "#{namespace_for_tags}Protocolo"} = ts_numero_protocolo(protocolo)
@@ -1,9 +1,9 @@
1
- *{tag: "#{namespace_identifier.to_s+':' if namespace_identifier}EnviarLoteRpsEnvio"} *message_namespaces
1
+ *{tag: "#{namespace_identifier}EnviarLoteRpsEnvio"} *message_namespaces
2
2
  - xml_lote_rps = render_xml('_tc_lote_rps')
3
3
  / Alguns órgãos emissores não aceitam o atributo ID na tag (Como a betha)
4
4
  - attributes_lote_rps = id_attribute? ? {id: "L#{numero_lote_rps}"} : {}
5
- LoteRps *attributes_lote_rps
5
+ *{tag: "#{namespace_for_tags}LoteRps"} *attributes_lote_rps
6
6
  = xml_lote_rps.html_safe
7
7
 
8
- - if certificate
8
+ - if signature_type?(:default) && certificate
9
9
  = render_xml('signature_sh1', data_xml: xml_lote_rps.html_safe, uri: "#L#{numero_lote_rps}").html_safe
@@ -1,7 +1,7 @@
1
1
  module BrNfe
2
2
  module Version
3
3
  MAJOR = 2 #inclui alterações de API e pode quebrar compatibilidade com versões anteriores
4
- MINOR = 0 #inclui novas funcionalidades, sem quebrar APIs existentes
4
+ MINOR = 1 #inclui novas funcionalidades, sem quebrar APIs existentes
5
5
  PATCH = 0 #corrige bugs ou traz melhorias em implementações já existentes
6
6
  CURRENT = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
  end
@@ -1,9 +1,9 @@
1
- SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"
2
- CanonicalizationMethod Algorithm="#{canonicalization_method_algorithm}"
3
- SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"
4
- Reference URI="#{uri}"
5
- Transforms
6
- Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"
7
- Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"
8
- DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"
9
- DigestValue = remove_quebras Base64.encode64(OpenSSL::Digest::SHA1.digest(data_xml.html_safe))
1
+ *{tag: "#{namespace_for_signature}SignedInfo"} xmlns="http://www.w3.org/2000/09/xmldsig#"
2
+ *{tag: "#{namespace_for_signature}CanonicalizationMethod"} Algorithm="#{canonicalization_method_algorithm}"
3
+ *{tag: "#{namespace_for_signature}SignatureMethod"} Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"
4
+ *{tag: "#{namespace_for_signature}Reference"} URI="#{uri}"
5
+ *{tag: "#{namespace_for_signature}Transforms"}
6
+ *{tag: "#{namespace_for_signature}Transform"} Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"
7
+ *{tag: "#{namespace_for_signature}Transform"} Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"
8
+ *{tag: "#{namespace_for_signature}DigestMethod"} Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"
9
+ *{tag: "#{namespace_for_signature}DigestValue"} = remove_quebras Base64.encode64(OpenSSL::Digest::SHA1.digest(data_xml.html_safe))
@@ -1,12 +1,12 @@
1
1
  / Alguns órgãos emissores não aceitam o atributo ID na tag (Como a betha)
2
2
  - uri_value = id_attribute? ? uri : nil
3
- Signature xmlns="http://www.w3.org/2000/09/xmldsig#"
3
+ *{tag: "#{namespace_for_signature}Signature"} xmlns="http://www.w3.org/2000/09/xmldsig#"
4
4
  - info_xml = render_xml('_signed_info_sh1', data_xml: data_xml, uri: uri_value)
5
5
  = info_xml.html_safe
6
6
 
7
7
  - signature_hash = certificate_key.sign(OpenSSL::Digest::SHA1.new, info_xml.html_safe)
8
- SignatureValue = remove_quebras( Base64.encode64( signature_hash ) )
8
+ *{tag: "#{namespace_for_signature}SignatureValue"} = remove_quebras( Base64.encode64( signature_hash ) )
9
9
 
10
- KeyInfo
11
- X509Data
12
- X509Certificate = certificate.to_s.gsub(/\-\-\-\-\-[A-Z]+ CERTIFICATE\-\-\-\-\-/, "").gsub(/\n/,"")
10
+ *{tag: "#{namespace_for_signature}KeyInfo"}
11
+ *{tag: "#{namespace_for_signature}X509Data"}
12
+ *{tag: "#{namespace_for_signature}X509Certificate"} = certificate.to_s.gsub(/\-\-\-\-\-[A-Z]+ CERTIFICATE\-\-\-\-\-/, "").gsub(/\n/,"")
data/lib/br_nfe.rb CHANGED
@@ -101,6 +101,11 @@ module BrNfe
101
101
  end
102
102
  module Thema
103
103
  module V1
104
+ module ResponsePaths
105
+ extend ActiveSupport::Autoload
106
+ autoload :ServicoCancelarNfseResposta
107
+ autoload :ServicoConsultarNfseRpsResposta
108
+ end
104
109
  extend ActiveSupport::Autoload
105
110
  autoload :Base
106
111
  autoload :CancelaNfse
@@ -112,25 +117,36 @@ module BrNfe
112
117
  autoload :ConsultaLoteRps
113
118
  end
114
119
  end
115
- module SC
116
- module Florianopolis
117
- extend ActiveSupport::Autoload
118
- autoload :Base
119
- autoload :EmissionRPS
120
- autoload :Cancellation
121
- end
122
- module Gaspar
120
+ module Simpliss
121
+ module V1
122
+ module ResponsePaths
123
+ extend ActiveSupport::Autoload
124
+ autoload :ServicoCancelarNfseResposta
125
+ autoload :ServicoConsultarLoteRpsResposta
126
+ autoload :ServicoConsultarNfseRpsResposta
127
+ autoload :ServicoConsultarNfseResposta
128
+ autoload :ServicoConsultarSituacaoLoteRpsResposta
129
+ autoload :ServicoEnviarLoteRpsResposta
130
+ end
123
131
  extend ActiveSupport::Autoload
124
132
  autoload :Base
125
133
  autoload :CancelaNfse
126
- autoload :RecepcaoLoteRps
127
- autoload :ConsultaNfsPorRps
128
134
  autoload :ConsultaSituacaoLoteRps
135
+ autoload :ConsultaNfsPorRps
136
+ autoload :RecepcaoLoteRps
129
137
  autoload :RecepcaoLoteRpsLimitado
130
138
  autoload :ConsultaNfse
131
139
  autoload :ConsultaLoteRps
132
140
  end
133
141
  end
142
+ module SC
143
+ module Florianopolis
144
+ extend ActiveSupport::Autoload
145
+ autoload :Base
146
+ autoload :EmissionRPS
147
+ autoload :Cancellation
148
+ end
149
+ end
134
150
  end
135
151
 
136
152
  module Helper
@@ -117,12 +117,12 @@ describe BrNfe::Base do
117
117
  end
118
118
  end
119
119
 
120
- describe "#namespace_identifier" do
121
- it "por padrão deve ser nil" do
122
- subject.namespace_identifier.must_be_nil
123
- end
120
+ describe "#namespaces" do
121
+ it '-> namespace_identifier' do subject.namespace_identifier.must_be_nil end
122
+ it '-> namespace_for_tags' do subject.namespace_for_tags.must_be_nil end
123
+ it '-> namespace_for_signature' do subject.namespace_for_signature.must_be_nil end
124
124
  end
125
-
125
+
126
126
  describe "#message_namespaces" do
127
127
  it "valor padrão deve ser um hash vazio" do
128
128
  subject.message_namespaces.must_equal({})