br_nfe 2.2.0 → 2.3.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 (760) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -0
  3. data/.travis.yml +0 -0
  4. data/Gemfile +0 -0
  5. data/Gemfile.lock +4 -4
  6. data/LICENSE +0 -0
  7. data/README.markdown +0 -0
  8. data/Rakefile +0 -0
  9. data/br_nfe.gemspec +2 -2
  10. data/lib/br_nfe.rb +22 -20
  11. data/lib/br_nfe/active_model/associations.rb +0 -0
  12. data/lib/br_nfe/active_model/has_many.rb +0 -0
  13. data/lib/br_nfe/active_model/has_one.rb +0 -0
  14. data/lib/br_nfe/active_model_base.rb +0 -0
  15. data/lib/br_nfe/association/have_address.rb +0 -0
  16. data/lib/br_nfe/association/have_condicao_pagamento.rb +0 -0
  17. data/lib/br_nfe/association/have_destinatario.rb +0 -0
  18. data/lib/br_nfe/association/have_emitente.rb +0 -0
  19. data/lib/br_nfe/base.rb +10 -22
  20. data/lib/br_nfe/calculos/fatores_de_multiplicacao.rb +0 -0
  21. data/lib/br_nfe/calculos/modulo11.rb +0 -0
  22. data/lib/br_nfe/calculos/modulo11_fator_de2a9.rb +0 -0
  23. data/lib/br_nfe/calculos/modulo11_fator_de2a9_resto_zero.rb +0 -0
  24. data/lib/br_nfe/condicao_pagamento.rb +0 -0
  25. data/lib/br_nfe/constants.rb +0 -2
  26. data/lib/br_nfe/endereco.rb +4 -0
  27. data/lib/br_nfe/helper/cpf_cnpj.rb +0 -0
  28. data/lib/br_nfe/helper/string_methods.rb +0 -0
  29. data/lib/br_nfe/person.rb +1 -0
  30. data/lib/br_nfe/product/destinatario.rb +3 -0
  31. data/lib/br_nfe/product/emitente.rb +0 -0
  32. data/lib/br_nfe/product/evento/base.rb +0 -0
  33. data/lib/br_nfe/product/evento/cancelamento.rb +0 -0
  34. data/lib/br_nfe/product/nf_xml_value.rb +1 -1
  35. data/lib/br_nfe/product/nfe/adicao_importacao.rb +0 -0
  36. data/lib/br_nfe/product/nfe/cobranca/duplicata.rb +0 -0
  37. data/lib/br_nfe/product/nfe/cobranca/fatura.rb +0 -0
  38. data/lib/br_nfe/product/nfe/cobranca/pagamento.rb +13 -0
  39. data/lib/br_nfe/product/nfe/declaracao_importacao.rb +0 -0
  40. data/lib/br_nfe/product/nfe/detalhe_exportacao.rb +0 -0
  41. data/lib/br_nfe/product/nfe/item.rb +0 -0
  42. data/lib/br_nfe/product/nfe/item_tax/cofins.rb +0 -0
  43. data/lib/br_nfe/product/nfe/item_tax/cofins_st.rb +0 -0
  44. data/lib/br_nfe/product/nfe/item_tax/icms.rb +0 -0
  45. data/lib/br_nfe/product/nfe/item_tax/icms_uf_destino.rb +0 -0
  46. data/lib/br_nfe/product/nfe/item_tax/importacao.rb +0 -0
  47. data/lib/br_nfe/product/nfe/item_tax/ipi.rb +0 -0
  48. data/lib/br_nfe/product/nfe/item_tax/issqn.rb +0 -0
  49. data/lib/br_nfe/product/nfe/item_tax/pis.rb +0 -0
  50. data/lib/br_nfe/product/nfe/item_tax/pis_st.rb +0 -0
  51. data/lib/br_nfe/product/nfe/processo_referencia.rb +0 -0
  52. data/lib/br_nfe/product/nfe/transporte/base.rb +0 -0
  53. data/lib/br_nfe/product/nfe/transporte/transportador.rb +0 -0
  54. data/lib/br_nfe/product/nfe/transporte/veiculo.rb +0 -0
  55. data/lib/br_nfe/product/nfe/transporte/volume.rb +0 -0
  56. data/lib/br_nfe/product/nota_fiscal.rb +5 -0
  57. data/lib/br_nfe/product/operation/base.rb +118 -44
  58. data/lib/br_nfe/product/operation/nfe_autorizacao.rb +3 -29
  59. data/lib/br_nfe/product/operation/nfe_consulta_protocolo.rb +2 -27
  60. data/lib/br_nfe/product/operation/nfe_download_nf.rb +6 -28
  61. data/lib/br_nfe/product/operation/nfe_inutilizacao.rb +2 -27
  62. data/lib/br_nfe/product/operation/nfe_recepcao_evento.rb +6 -27
  63. data/lib/br_nfe/product/operation/nfe_ret_autorizacao.rb +2 -27
  64. data/lib/br_nfe/product/operation/nfe_status_servico.rb +2 -27
  65. data/lib/br_nfe/product/reader/destinatario.rb +39 -0
  66. data/lib/br_nfe/product/reader/emitente.rb +39 -0
  67. data/lib/br_nfe/product/reader/endereco_retirada_entrega.rb +27 -0
  68. data/lib/br_nfe/product/reader/fatura.rb +41 -0
  69. data/lib/br_nfe/product/reader/item.rb +236 -0
  70. data/lib/br_nfe/product/reader/nfe.rb +200 -0
  71. data/lib/br_nfe/product/reader/transporte.rb +79 -0
  72. data/lib/br_nfe/product/response/base.rb +1 -1
  73. data/lib/br_nfe/product/response/build/base.rb +19 -9
  74. data/lib/br_nfe/product/response/build/nfe_autorizacao.rb +27 -15
  75. data/lib/br_nfe/product/response/build/nfe_consulta_protocolo.rb +35 -38
  76. data/lib/br_nfe/product/response/build/nfe_inutilizacao.rb +18 -16
  77. data/lib/br_nfe/product/response/build/nfe_recepcao_evento.rb +96 -0
  78. data/lib/br_nfe/product/response/build/nfe_ret_autorizacao.rb +11 -8
  79. data/lib/br_nfe/product/response/build/nfe_status_servico.rb +13 -10
  80. data/lib/br_nfe/product/response/event.rb +24 -3
  81. data/lib/br_nfe/product/response/nfe_autorizacao.rb +3 -2
  82. data/lib/br_nfe/product/response/nfe_consulta_protocolo.rb +1 -0
  83. data/lib/br_nfe/product/response/nfe_inutilizacao.rb +0 -0
  84. data/lib/br_nfe/product/response/nfe_recepcao_evento.rb +20 -0
  85. data/lib/br_nfe/product/response/nfe_ret_autorizacao.rb +0 -0
  86. data/lib/br_nfe/product/response/nfe_status_servico.rb +0 -0
  87. data/lib/br_nfe/product/xml/_signed_info_sh1.xml.slim +0 -0
  88. data/lib/br_nfe/product/xml/_tc_cpf_cnpj.xml.slim +0 -0
  89. data/lib/br_nfe/product/xml/signature_sh1.xml.slim +0 -0
  90. data/lib/br_nfe/product/xml/soap_env.xml.slim +1 -1
  91. data/lib/br_nfe/product/xml/v1_00/evento/infEventoCancelamento.xml.slim +0 -0
  92. data/lib/br_nfe/product/xml/v1_00/root/NfeDownloadNf.xml.slim +0 -0
  93. data/lib/br_nfe/product/xml/v1_00/root/NfeRecepcaoEvento.xml.slim +0 -0
  94. data/lib/br_nfe/product/xml/v2_00/_tc_endereco.xml.slim +0 -0
  95. data/lib/br_nfe/product/xml/v2_00/_tc_infNFe.xml.slim +0 -0
  96. data/lib/br_nfe/product/xml/v2_00/infInut.xml.slim +0 -0
  97. data/lib/br_nfe/product/xml/v2_00/infNFe.xml.slim +0 -0
  98. data/lib/br_nfe/product/xml/v2_00/infNFe/NFe.xml.slim +0 -0
  99. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_cobr.xml.slim +0 -0
  100. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_dest.xml.slim +0 -0
  101. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_det.xml.slim +0 -0
  102. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_emit.xml.slim +0 -0
  103. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_entrega.xml.slim +0 -0
  104. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_exporta.xml.slim +0 -0
  105. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_ide.xml.slim +0 -0
  106. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_infAdic.xml.slim +0 -0
  107. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_retirada.xml.slim +0 -0
  108. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_total.xml.slim +0 -0
  109. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_transp.xml.slim +0 -0
  110. data/lib/br_nfe/product/xml/v2_00/infNFe/det/_tc_imposto.xml.slim +0 -0
  111. data/lib/br_nfe/product/xml/v2_00/infNFe/det/_tc_prod.xml.slim +0 -0
  112. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS00.xml.slim +0 -0
  113. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS10.xml.slim +0 -0
  114. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS101.xml.slim +0 -0
  115. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS102.xml.slim +0 -0
  116. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS20.xml.slim +0 -0
  117. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS201.xml.slim +0 -0
  118. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS202.xml.slim +0 -0
  119. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS30.xml.slim +0 -0
  120. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS40.xml.slim +0 -0
  121. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS500.xml.slim +0 -0
  122. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS51.xml.slim +0 -0
  123. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS60.xml.slim +0 -0
  124. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS70.xml.slim +0 -0
  125. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS90.xml.slim +0 -0
  126. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS900.xml.slim +0 -0
  127. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_COFINS.xml.slim +0 -0
  128. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_COFINS_ST.xml.slim +0 -0
  129. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_ICMS.xml.slim +0 -0
  130. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_II.xml.slim +0 -0
  131. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_IPI.xml.slim +0 -0
  132. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_PIS.xml.slim +0 -0
  133. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_PIS_ST.xml.slim +0 -0
  134. data/lib/br_nfe/product/xml/v2_00/infNFe/det/prod/_tc_di.xml.slim +0 -0
  135. data/lib/br_nfe/product/xml/v2_00/infNFe/transp/_tc_retTransp.xml.slim +0 -0
  136. data/lib/br_nfe/product/xml/v2_00/infNFe/transp/_tc_transporta.xml.slim +0 -0
  137. data/lib/br_nfe/product/xml/v2_00/infNFe/transp/_tc_vol.xml.slim +0 -0
  138. data/lib/br_nfe/product/xml/v2_00/root/NfeAutorizacao.xml.slim +0 -0
  139. data/lib/br_nfe/product/xml/v2_00/root/NfeInutilizacao.xml.slim +0 -0
  140. data/lib/br_nfe/product/xml/v2_00/root/NfeRetAutorizacao.xml.slim +0 -0
  141. data/lib/br_nfe/product/xml/v2_00/root/NfeStatusServico.xml.slim +0 -0
  142. data/lib/br_nfe/product/xml/v2_01/root/NfeConsultaProtocolo.xml.slim +0 -0
  143. data/lib/br_nfe/product/xml/v3_10/_tc_infNFe.xml.slim +0 -0
  144. data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_dest.xml.slim +1 -1
  145. data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_det.xml.slim +0 -0
  146. data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_exporta.xml.slim +0 -0
  147. data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_ide.xml.slim +0 -0
  148. data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_pag.xml.slim +0 -0
  149. data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_total.xml.slim +0 -0
  150. data/lib/br_nfe/product/xml/v3_10/infNFe/det/_tc_imposto.xml.slim +0 -0
  151. data/lib/br_nfe/product/xml/v3_10/infNFe/det/_tc_prod.xml.slim +0 -0
  152. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS20.xml.slim +0 -0
  153. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS30.xml.slim +0 -0
  154. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS40.xml.slim +0 -0
  155. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS51.xml.slim +0 -0
  156. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS70.xml.slim +0 -0
  157. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS90.xml.slim +0 -0
  158. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/_tc_ICMSUFDest.xml.slim +0 -0
  159. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/_tc_ISSQN.xml.slim +0 -0
  160. data/lib/br_nfe/product/xml/v3_10/infNFe/det/prod/_tc_det_export.xml.slim +0 -0
  161. data/lib/br_nfe/product/xml/v3_10/infNFe/det/prod/_tc_di.xml.slim +0 -0
  162. data/lib/br_nfe/product/xml/v3_10/root/NfeAutorizacao.xml.slim +0 -0
  163. data/lib/br_nfe/service/association/have_intermediario.rb +0 -0
  164. data/lib/br_nfe/service/association/have_rps.rb +0 -0
  165. data/lib/br_nfe/service/base.rb +0 -0
  166. data/lib/br_nfe/service/betha/base.rb +0 -0
  167. data/lib/br_nfe/service/betha/v1/cancela_nfse.rb +1 -1
  168. data/lib/br_nfe/service/betha/v1/consulta_lote_rps.rb +1 -1
  169. data/lib/br_nfe/service/betha/v1/consulta_nfs_por_rps.rb +1 -1
  170. data/lib/br_nfe/service/betha/v1/consulta_nfse.rb +1 -1
  171. data/lib/br_nfe/service/betha/v1/consulta_situacao_lote_rps.rb +1 -1
  172. data/lib/br_nfe/service/betha/v1/gateway.rb +0 -0
  173. data/lib/br_nfe/service/betha/v1/recepcao_lote_rps.rb +1 -1
  174. data/lib/br_nfe/service/betha/v1/xml/_tc_identificacao_prestador.xml.slim +0 -0
  175. data/lib/br_nfe/service/betha/v1/xml/_tc_pedido_cancelamento.xml.slim +0 -0
  176. data/lib/br_nfe/service/concerns/rules/cancelamento_nfs.rb +0 -0
  177. data/lib/br_nfe/service/concerns/rules/consulta_nfs_por_rps.rb +0 -0
  178. data/lib/br_nfe/service/concerns/rules/consulta_nfse.rb +0 -0
  179. data/lib/br_nfe/service/concerns/rules/recepcao_lote_rps.rb +0 -0
  180. data/lib/br_nfe/service/concerns/values_ts/service_v1.rb +0 -0
  181. data/lib/br_nfe/service/destinatario.rb +0 -0
  182. data/lib/br_nfe/service/emitente.rb +0 -0
  183. data/lib/br_nfe/service/intermediario.rb +0 -0
  184. data/lib/br_nfe/service/item.rb +0 -0
  185. data/lib/br_nfe/service/response/build/base.rb +0 -0
  186. data/lib/br_nfe/service/response/build/cancelamento.rb +0 -0
  187. data/lib/br_nfe/service/response/build/consulta_lote_rps.rb +0 -0
  188. data/lib/br_nfe/service/response/build/consulta_nfs_por_rps.rb +0 -0
  189. data/lib/br_nfe/service/response/build/consulta_nfse.rb +0 -0
  190. data/lib/br_nfe/service/response/build/consulta_situacao_lote_rps.rb +0 -0
  191. data/lib/br_nfe/service/response/build/invoice_build.rb +0 -0
  192. data/lib/br_nfe/service/response/build/recepcao_lote_rps.rb +0 -0
  193. data/lib/br_nfe/service/response/cancelamento.rb +0 -0
  194. data/lib/br_nfe/service/response/consulta_lote_rps.rb +0 -0
  195. data/lib/br_nfe/service/response/consulta_nfs_por_rps.rb +0 -0
  196. data/lib/br_nfe/service/response/consulta_nfse.rb +0 -0
  197. data/lib/br_nfe/service/response/consulta_situacao_lote_rps.rb +0 -0
  198. data/lib/br_nfe/service/response/default.rb +0 -0
  199. data/lib/br_nfe/service/response/nota_fiscal.rb +0 -0
  200. data/lib/br_nfe/service/response/paths/v1/tc_nfse.rb +0 -0
  201. data/lib/br_nfe/service/response/recepcao_lote_rps.rb +0 -0
  202. data/lib/br_nfe/service/rps.rb +0 -0
  203. data/lib/br_nfe/service/sc/florianopolis/base.rb +0 -0
  204. data/lib/br_nfe/service/sc/florianopolis/cancellation.rb +0 -0
  205. data/lib/br_nfe/service/sc/florianopolis/emission_rps.rb +0 -0
  206. data/lib/br_nfe/service/sc/florianopolis/xml/_address.xml.slim +0 -0
  207. data/lib/br_nfe/service/sc/florianopolis/xml/_contact.xml.slim +0 -0
  208. data/lib/br_nfe/service/sc/florianopolis/xml/_service_item.xml.slim +0 -0
  209. data/lib/br_nfe/service/sc/florianopolis/xml/cancellation.xml.slim +0 -0
  210. data/lib/br_nfe/service/sc/florianopolis/xml/inf_requisicao.xml.slim +0 -0
  211. data/lib/br_nfe/service/simpliss/v1/base.rb +1 -1
  212. data/lib/br_nfe/service/simpliss/v1/cancela_nfse.rb +0 -0
  213. data/lib/br_nfe/service/simpliss/v1/consulta_lote_rps.rb +0 -0
  214. data/lib/br_nfe/service/simpliss/v1/consulta_nfs_por_rps.rb +0 -0
  215. data/lib/br_nfe/service/simpliss/v1/consulta_nfse.rb +0 -0
  216. data/lib/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps.rb +0 -0
  217. data/lib/br_nfe/service/simpliss/v1/recepcao_lote_rps.rb +0 -0
  218. data/lib/br_nfe/service/simpliss/v1/xml/_login.xml.slim +0 -0
  219. data/lib/br_nfe/service/simpliss/v1/xml/_tc_dados_servico.xml.slim +0 -0
  220. data/lib/br_nfe/service/simpliss/v1/xml/_tc_item_servico.xml.slim +0 -0
  221. data/lib/br_nfe/service/simpliss/v1/xml/servico_cancelar_nfse_envio.xml.slim +0 -0
  222. data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_lote_rps_envio.xml.slim +0 -0
  223. data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_nfse_envio.xml.slim +0 -0
  224. data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_nfse_rps_envio.xml.slim +0 -0
  225. data/lib/br_nfe/service/simpliss/v1/xml/servico_consultar_situacao_lote_rps_envio.xml.slim +0 -0
  226. data/lib/br_nfe/service/simpliss/v1/xml/servico_enviar_lote_rps_envio.xml.slim +0 -0
  227. data/lib/br_nfe/service/thema/v1/base.rb +0 -0
  228. data/lib/br_nfe/service/thema/v1/cancela_nfse.rb +1 -1
  229. data/lib/br_nfe/service/thema/v1/consulta_lote_rps.rb +1 -1
  230. data/lib/br_nfe/service/thema/v1/consulta_nfs_por_rps.rb +1 -1
  231. data/lib/br_nfe/service/thema/v1/consulta_nfse.rb +1 -1
  232. data/lib/br_nfe/service/thema/v1/consulta_situacao_lote_rps.rb +0 -0
  233. data/lib/br_nfe/service/thema/v1/recepcao_lote_rps.rb +1 -1
  234. data/lib/br_nfe/service/thema/v1/recepcao_lote_rps_limitado.rb +0 -0
  235. data/lib/br_nfe/service/xml/v1/_tc_contato.xml.slim +0 -0
  236. data/lib/br_nfe/service/xml/v1/_tc_cpf_cnpj.xml.slim +0 -0
  237. data/lib/br_nfe/service/xml/v1/_tc_dados_construcao_civil.xml.slim +0 -0
  238. data/lib/br_nfe/service/xml/v1/_tc_dados_prestador.xml.slim +0 -0
  239. data/lib/br_nfe/service/xml/v1/_tc_dados_servico.xml.slim +0 -0
  240. data/lib/br_nfe/service/xml/v1/_tc_dados_tomador.xml.slim +0 -0
  241. data/lib/br_nfe/service/xml/v1/_tc_endereco.xml.slim +0 -0
  242. data/lib/br_nfe/service/xml/v1/_tc_identificacao_intermediario_servico.xml.slim +0 -0
  243. data/lib/br_nfe/service/xml/v1/_tc_identificacao_nfse.xml.slim +0 -0
  244. data/lib/br_nfe/service/xml/v1/_tc_identificacao_orgao_gerador.xml.slim +0 -0
  245. data/lib/br_nfe/service/xml/v1/_tc_identificacao_prestador.xml.slim +0 -0
  246. data/lib/br_nfe/service/xml/v1/_tc_identificacao_rps.xml.slim +0 -0
  247. data/lib/br_nfe/service/xml/v1/_tc_identificacao_tomador.xml.slim +0 -0
  248. data/lib/br_nfe/service/xml/v1/_tc_inf_pedido_cancelamento.xml.slim +0 -0
  249. data/lib/br_nfe/service/xml/v1/_tc_inf_rps.xml.slim +0 -0
  250. data/lib/br_nfe/service/xml/v1/_tc_lote_rps.xml.slim +0 -0
  251. data/lib/br_nfe/service/xml/v1/_tc_pedido_cancelamento.xml.slim +0 -0
  252. data/lib/br_nfe/service/xml/v1/_tc_rps.xml.slim +0 -0
  253. data/lib/br_nfe/service/xml/v1/_tc_valores.xml.slim +0 -0
  254. data/lib/br_nfe/service/xml/v1/servico_cancelar_nfse_envio.xml.slim +0 -0
  255. data/lib/br_nfe/service/xml/v1/servico_consultar_lote_rps_envio.xml.slim +0 -0
  256. data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_envio.xml.slim +0 -0
  257. data/lib/br_nfe/service/xml/v1/servico_consultar_nfse_rps_envio.xml.slim +0 -0
  258. data/lib/br_nfe/service/xml/v1/servico_consultar_situacao_lote_rps_envio.xml.slim +0 -0
  259. data/lib/br_nfe/service/xml/v1/servico_enviar_lote_rps_envio.xml.slim +0 -0
  260. data/lib/br_nfe/version.rb +1 -1
  261. data/lib/br_nfe/xml/_signed_info_sh1.xml.slim +0 -0
  262. data/lib/br_nfe/xml/signature_sh1.xml.slim +0 -0
  263. data/lib/br_nfe/xml/soap_env.xml.slim +0 -0
  264. data/lib/config/locales/br_nfe/en/product/nfe/cobranca/fatura.yml +0 -0
  265. data/lib/config/locales/br_nfe/en/product/nfe/declaracao_importacao.yml +0 -0
  266. data/lib/config/locales/br_nfe/en/product/nfe/item.yml +0 -0
  267. data/lib/config/locales/br_nfe/en/product/nfe/item_tax/icms_uf_destino.yml +0 -0
  268. data/lib/config/locales/br_nfe/en/product/nfe/transporte/base.yml +0 -0
  269. data/lib/config/locales/br_nfe/en/product/nota_fiscal.yml +0 -0
  270. data/lib/config/locales/br_nfe/en/product/operation/nfe_autorizacao.yml +0 -0
  271. data/lib/config/locales/br_nfe/en/product/operation/nfe_recepcao_evento.yml +0 -0
  272. data/lib/config/locales/br_nfe/pt-BR/product/nfe/cobranca/fatura.yml +0 -0
  273. data/lib/config/locales/br_nfe/pt-BR/product/nfe/declaracao_importacao.yml +0 -0
  274. data/lib/config/locales/br_nfe/pt-BR/product/nfe/item.yml +0 -0
  275. data/lib/config/locales/br_nfe/pt-BR/product/nfe/item_tax/icms_uf_destino.yml +0 -0
  276. data/lib/config/locales/br_nfe/pt-BR/product/nfe/transporte/base.yml +0 -0
  277. data/lib/config/locales/br_nfe/pt-BR/product/nota_fiscal.yml +0 -0
  278. data/lib/config/locales/br_nfe/pt-BR/product/operation/nfe_autorizacao.yml +0 -0
  279. data/lib/config/locales/br_nfe/pt-BR/product/operation/nfe_recepcao_evento.yml +0 -0
  280. data/lib/config/settings/nfe/reader_xml_paths.yml +372 -0
  281. data/lib/config/settings/nfe/v3_10/operation.yml +843 -0
  282. data/lib/config/settings/nfe/v3_10/soap_client.yml +804 -0
  283. data/lib/config/settings/nfe/v3_10/xml_paths.yml +577 -0
  284. data/lib/config/settings/nfse.yml +3 -0
  285. data/test/br_nfe/association/have_address_test.rb +0 -0
  286. data/test/br_nfe/association/have_condicao_pagamento_test.rb +0 -0
  287. data/test/br_nfe/association/have_destinatario_test.rb +0 -0
  288. data/test/br_nfe/association/have_emitente_test.rb +0 -0
  289. data/test/br_nfe/base_test.rb +26 -65
  290. data/test/br_nfe/condicao_pagamento_test.rb +0 -0
  291. data/test/br_nfe/endereco_test.rb +0 -0
  292. data/test/br_nfe/helper/cpf_cnpj_test.rb +0 -0
  293. data/test/br_nfe/person_test.rb +0 -0
  294. data/test/br_nfe/product/destinatario_test.rb +0 -0
  295. data/test/br_nfe/product/emitente_test.rb +0 -0
  296. data/test/br_nfe/product/evento/base_test.rb +0 -0
  297. data/test/br_nfe/product/evento/cancelamento_test.rb +0 -0
  298. data/test/br_nfe/product/nfe/adicao_importacao_test.rb +0 -0
  299. data/test/br_nfe/product/nfe/cobranca/duplicata_test.rb +0 -0
  300. data/test/br_nfe/product/nfe/cobranca/fatura_test.rb +0 -0
  301. data/test/br_nfe/product/nfe/cobranca/pagamento_test.rb +0 -0
  302. data/test/br_nfe/product/nfe/declaracao_importacao_test.rb +0 -0
  303. data/test/br_nfe/product/nfe/detalhe_exportacao_test.rb +0 -0
  304. data/test/br_nfe/product/nfe/item_tax/cofins_st_test.rb +0 -0
  305. data/test/br_nfe/product/nfe/item_tax/cofins_test.rb +0 -0
  306. data/test/br_nfe/product/nfe/item_tax/icms_test.rb +0 -0
  307. data/test/br_nfe/product/nfe/item_tax/icms_uf_destino_test.rb +0 -0
  308. data/test/br_nfe/product/nfe/item_tax/importacao_test.rb +0 -0
  309. data/test/br_nfe/product/nfe/item_tax/ipi_test.rb +0 -0
  310. data/test/br_nfe/product/nfe/item_tax/issqn_test.rb +0 -0
  311. data/test/br_nfe/product/nfe/item_tax/pis_st_test.rb +0 -0
  312. data/test/br_nfe/product/nfe/item_tax/pis_test.rb +0 -0
  313. data/test/br_nfe/product/nfe/item_test.rb +0 -0
  314. data/test/br_nfe/product/nfe/processo_referencia_test.rb +0 -0
  315. data/test/br_nfe/product/nfe/transporte/base_test.rb +0 -0
  316. data/test/br_nfe/product/nfe/transporte/transportador_test.rb +0 -0
  317. data/test/br_nfe/product/nfe/transporte/veiculo_test.rb +0 -0
  318. data/test/br_nfe/product/nfe/transporte/volume_test.rb +0 -0
  319. data/test/br_nfe/product/nota_fiscal_test.rb +0 -0
  320. data/test/br_nfe/product/operation/base_test.rb +197 -175
  321. data/test/br_nfe/product/operation/nfe_autorizacao_test.rb +719 -282
  322. data/test/br_nfe/product/operation/nfe_consulta_protocolo_test.rb +745 -305
  323. data/test/br_nfe/product/operation/nfe_download_nf_test.rb +0 -51
  324. data/test/br_nfe/product/operation/nfe_inutilizacao_test.rb +505 -88
  325. data/test/br_nfe/product/operation/nfe_recepcao_evento_test.rb +83 -36
  326. data/test/br_nfe/product/operation/nfe_ret_autorizacao_test.rb +683 -244
  327. data/test/br_nfe/product/operation/nfe_status_servico_test.rb +515 -74
  328. data/test/br_nfe/product/reader/nfe_test.rb +2535 -0
  329. data/test/br_nfe/product/response/base_test.rb +0 -0
  330. data/test/br_nfe/product/response/build/base_test.rb +0 -0
  331. data/test/br_nfe/product/response/nfe_ret_autorizacao_test.rb +0 -0
  332. data/test/br_nfe/service/association/have_intermediario_test.rb +0 -0
  333. data/test/br_nfe/service/association/have_rps_test.rb +0 -0
  334. data/test/br_nfe/service/base_test.rb +1 -1
  335. data/test/br_nfe/service/betha/base_test.rb +0 -0
  336. data/test/br_nfe/service/betha/v1/cancela_nfse_test.rb +4 -4
  337. data/test/br_nfe/service/betha/v1/consulta_lote_rps_test.rb +4 -4
  338. data/test/br_nfe/service/betha/v1/consulta_nfs_por_rps_test.rb +4 -4
  339. data/test/br_nfe/service/betha/v1/consulta_nfse_test.rb +4 -4
  340. data/test/br_nfe/service/betha/v1/consulta_situacao_lote_rps_test.rb +4 -4
  341. data/test/br_nfe/service/betha/v1/gateway_test.rb +0 -0
  342. data/test/br_nfe/service/betha/v1/recepcao_lote_rps_test.rb +4 -4
  343. data/test/br_nfe/service/betha/v1/xsd/TiposNFe_v01.xsd +0 -0
  344. data/test/br_nfe/service/betha/v1/xsd/nfse_v01.xsd +0 -0
  345. data/test/br_nfe/service/betha/v1/xsd/servico_cancelar_nfse_envio_v01.xsd +0 -0
  346. data/test/br_nfe/service/betha/v1/xsd/servico_consultar_lote_rps_envio_v01.xsd +0 -0
  347. data/test/br_nfe/service/betha/v1/xsd/servico_consultar_nfse_envio_v01.xsd +0 -0
  348. data/test/br_nfe/service/betha/v1/xsd/servico_consultar_nfse_rps_envio_v01.xsd +0 -0
  349. data/test/br_nfe/service/betha/v1/xsd/servico_consultar_situacao_lote_rps_envio_v01.xsd +0 -0
  350. data/test/br_nfe/service/betha/v1/xsd/servico_enviar_lote_rps_envio_v01.xsd +0 -0
  351. data/test/br_nfe/service/betha/v1/xsd/xmldsig-core-schema.xsd +0 -0
  352. data/test/br_nfe/service/betha/v1/xsd/xmldsig-core-schema_v01.xsd +0 -0
  353. data/test/br_nfe/service/concerns/rules/cancelamento_nfs_test.rb +0 -0
  354. data/test/br_nfe/service/concerns/rules/consulta_nfs_por_rps_test.rb +0 -0
  355. data/test/br_nfe/service/concerns/rules/consulta_nfse_test.rb +0 -0
  356. data/test/br_nfe/service/concerns/rules/recepcao_lote_rps_test.rb +0 -0
  357. data/test/br_nfe/service/concerns/values_ts/service_v1_test.rb +0 -0
  358. data/test/br_nfe/service/destinatario_test.rb +0 -0
  359. data/test/br_nfe/service/emitente_test.rb +0 -0
  360. data/test/br_nfe/service/intermediario_test.rb +0 -0
  361. data/test/br_nfe/service/item_test.rb +0 -0
  362. data/test/br_nfe/service/response/build/base_test.rb +0 -0
  363. data/test/br_nfe/service/response/default_test.rb +0 -0
  364. data/test/br_nfe/service/response/nota_fiscal_test.rb +0 -0
  365. data/test/br_nfe/service/response/paths/v1/tc_nfse_test.rb +0 -0
  366. data/test/br_nfe/service/rps_test.rb +0 -0
  367. data/test/br_nfe/service/sc/florianopolis/XSD/TiposNFSe_v2.0.xsd +0 -0
  368. data/test/br_nfe/service/sc/florianopolis/XSD/xmldsig-core-schema.xsd +0 -0
  369. data/test/br_nfe/service/sc/florianopolis/base_test.rb +0 -0
  370. data/test/br_nfe/service/sc/florianopolis/cancellation_test.rb +0 -0
  371. data/test/br_nfe/service/sc/florianopolis/emission_rps_test.rb +0 -0
  372. data/test/br_nfe/service/simpliss/v1/base_test.rb +3 -3
  373. data/test/br_nfe/service/simpliss/v1/cancela_nfse_test.rb +1 -1
  374. data/test/br_nfe/service/simpliss/v1/consulta_lote_rps_test.rb +1 -1
  375. data/test/br_nfe/service/simpliss/v1/consulta_nfs_por_rps_test.rb +1 -1
  376. data/test/br_nfe/service/simpliss/v1/consulta_nfse_test.rb +1 -1
  377. data/test/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps_test.rb +1 -1
  378. data/test/br_nfe/service/simpliss/v1/recepcao_lote_rps_test.rb +1 -1
  379. data/test/br_nfe/service/simpliss/v1/xsd/nfse_3.xsd +0 -0
  380. data/test/br_nfe/service/simpliss/v1/xsd/xmldsig-core-schema20020212.xsd +0 -0
  381. data/test/br_nfe/service/thema/v1/base_test.rb +0 -0
  382. data/test/br_nfe/service/thema/v1/cancela_nfse_test.rb +6 -6
  383. data/test/br_nfe/service/thema/v1/consulta_lote_rps_test.rb +6 -6
  384. data/test/br_nfe/service/thema/v1/consulta_nfs_por_rps_test.rb +6 -6
  385. data/test/br_nfe/service/thema/v1/consulta_nfse_test.rb +6 -6
  386. data/test/br_nfe/service/thema/v1/consulta_situacao_lote_rps_test.rb +6 -6
  387. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_limitado_test.rb +6 -6
  388. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test.rb +6 -6
  389. data/test/br_nfe/service/thema/v1/xsd/nfse.xsd +0 -0
  390. data/test/br_nfe/service/thema/v1/xsd/xmldsig-core-schema20020212.xsd +0 -0
  391. data/test/br_nfe/service/xsd/v1/nfse.xsd +0 -0
  392. data/test/br_nfe/service/xsd/v1/xmldsig-core-schema20020212.xsd +0 -0
  393. data/test/cert.pfx +0 -0
  394. data/test/factories/base.rb +0 -0
  395. data/test/factories/condicao_pagamento.rb +0 -0
  396. data/test/factories/endereco.rb +0 -0
  397. data/test/factories/person.rb +0 -0
  398. data/test/factories/product/destinatario.rb +0 -0
  399. data/test/factories/product/emitente.rb +0 -0
  400. data/test/factories/product/evento/base.rb +0 -0
  401. data/test/factories/product/evento/cancelamento.rb +0 -0
  402. data/test/factories/product/nfe/adicao_importacao.rb +0 -0
  403. data/test/factories/product/nfe/cobranca/duplicata.rb +0 -0
  404. data/test/factories/product/nfe/cobranca/fatura.rb +0 -0
  405. data/test/factories/product/nfe/cobranca/pagamento.rb +0 -0
  406. data/test/factories/product/nfe/declaracao_importacao.rb +0 -0
  407. data/test/factories/product/nfe/detalhe_exportacao.rb +0 -0
  408. data/test/factories/product/nfe/item.rb +0 -0
  409. data/test/factories/product/nfe/item_tax/cofins.rb +0 -0
  410. data/test/factories/product/nfe/item_tax/cofins_st.rb +0 -0
  411. data/test/factories/product/nfe/item_tax/icms.rb +0 -0
  412. data/test/factories/product/nfe/item_tax/icms_uf_destino.rb +0 -0
  413. data/test/factories/product/nfe/item_tax/importacao.rb +0 -0
  414. data/test/factories/product/nfe/item_tax/ipi.rb +0 -0
  415. data/test/factories/product/nfe/item_tax/issqn.rb +0 -0
  416. data/test/factories/product/nfe/item_tax/pis.rb +0 -0
  417. data/test/factories/product/nfe/item_tax/pis_st.rb +0 -0
  418. data/test/factories/product/nfe/processo_referencia.rb +0 -0
  419. data/test/factories/product/nfe/transporte/base.rb +0 -0
  420. data/test/factories/product/nfe/transporte/transportador.rb +0 -0
  421. data/test/factories/product/nfe/transporte/veiculo.rb +0 -0
  422. data/test/factories/product/nfe/transporte/volume.rb +0 -0
  423. data/test/factories/product/nota_fiscal.rb +0 -0
  424. data/test/factories/product/operation/base.rb +0 -0
  425. data/test/factories/product/operation/nfe_autorizacao.rb +0 -0
  426. data/test/factories/product/operation/nfe_consulta_protocolo.rb +0 -0
  427. data/test/factories/product/operation/nfe_download_nf.rb +0 -0
  428. data/test/factories/product/operation/nfe_inutilizacao.rb +0 -0
  429. data/test/factories/product/operation/nfe_recepcao_evento.rb +0 -0
  430. data/test/factories/product/operation/nfe_ret_autorizacao.rb +0 -0
  431. data/test/factories/product/operation/nfe_status_servico.rb +0 -0
  432. data/test/factories/product/response/base.rb +0 -0
  433. data/test/factories/product/response/build/base.rb +0 -0
  434. data/test/factories/product/response/nfe_ret_autorizacao.rb +0 -0
  435. data/test/factories/service/base.rb +0 -0
  436. data/test/factories/service/betha/base.rb +0 -0
  437. data/test/factories/service/betha/v1/cancela_nfse.rb +0 -0
  438. data/test/factories/service/betha/v1/consulta_lote_rps.rb +0 -0
  439. data/test/factories/service/betha/v1/consulta_nfs_por_rps.rb +0 -0
  440. data/test/factories/service/betha/v1/consulta_nfse.rb +0 -0
  441. data/test/factories/service/betha/v1/consulta_situacao_lote_rps.rb +0 -0
  442. data/test/factories/service/betha/v1/gateway.rb +0 -0
  443. data/test/factories/service/betha/v1/recepcao_lote_rps.rb +0 -0
  444. data/test/factories/service/destinatario.rb +0 -0
  445. data/test/factories/service/emitente.rb +0 -0
  446. data/test/factories/service/intermediario.rb +0 -0
  447. data/test/factories/service/item.rb +0 -0
  448. data/test/factories/service/response/build_response.rb +0 -0
  449. data/test/factories/service/response/default.rb +0 -0
  450. data/test/factories/service/response/nota_fiscal.rb +0 -0
  451. data/test/factories/service/rps.rb +0 -0
  452. data/test/factories/service/sc/florianopolis/base.rb +0 -0
  453. data/test/factories/service/sc/florianopolis/cancellation.rb +0 -0
  454. data/test/factories/service/sc/florianopolis/emission_rps.rb +0 -0
  455. data/test/factories/service/simpliss/v1/base.rb +0 -0
  456. data/test/factories/service/simpliss/v1/cancela_nfse.rb +0 -0
  457. data/test/factories/service/simpliss/v1/consulta_lote_rps.rb +0 -0
  458. data/test/factories/service/simpliss/v1/consulta_nfs_por_rps.rb +0 -0
  459. data/test/factories/service/simpliss/v1/consulta_nfse.rb +0 -0
  460. data/test/factories/service/simpliss/v1/consulta_situacao_lote_rps.rb +0 -0
  461. data/test/factories/service/simpliss/v1/recepcao_lote_rps.rb +0 -0
  462. data/test/factories/service/thema/v1/base.rb +0 -0
  463. data/test/factories/service/thema/v1/cancela_nfse.rb +0 -0
  464. data/test/factories/service/thema/v1/consulta_lote_rps.rb +0 -0
  465. data/test/factories/service/thema/v1/consulta_nfs_por_rps.rb +0 -0
  466. data/test/factories/service/thema/v1/consulta_nfse.rb +0 -0
  467. data/test/factories/service/thema/v1/consulta_situacao_lote_rps.rb +0 -0
  468. data/test/factories/service/thema/v1/recepcao_lote_rps.rb +0 -0
  469. data/test/factories/service/thema/v1/recepcao_lote_rps_limitado.rb +0 -0
  470. data/test/fixtures/product/nfe/v3_10/cancelada.xml +246 -0
  471. data/test/fixtures/product/nfe/v3_10/completa.xml +1650 -0
  472. data/test/fixtures/product/nfe/v3_10/without_proc.xml +264 -0
  473. data/test/fixtures/product/operation/nfe_autorizacao/nfe_signed.xml +0 -0
  474. data/test/fixtures/product/response/v3.10/nfe_autorizacao/async_fail.xml +0 -0
  475. data/test/fixtures/product/response/v3.10/nfe_autorizacao/async_success.xml +0 -0
  476. data/test/fixtures/product/response/v3.10/nfe_autorizacao/nfe/with_proc.xml +0 -0
  477. data/test/fixtures/product/response/v3.10/nfe_autorizacao/nfe/without_proc.xml +0 -0
  478. data/test/fixtures/product/response/v3.10/nfe_autorizacao/original_xml.xml +0 -0
  479. data/test/fixtures/product/response/v3.10/nfe_autorizacao/sync_fail.xml +0 -0
  480. data/test/fixtures/product/response/v3.10/nfe_autorizacao/sync_success.xml +0 -0
  481. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/event_1.xml +0 -0
  482. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/event_2.xml +0 -0
  483. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/event_3.xml +0 -0
  484. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/event_cancel.xml +0 -0
  485. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/one_event.xml +0 -0
  486. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/fail.xml +0 -0
  487. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/nfe_original/with_proc.xml +0 -0
  488. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/nfe_original/without_proc.xml +0 -0
  489. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/success_many_with_cancel.xml +0 -0
  490. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/success_many_without_cancel.xml +0 -0
  491. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/success_one.xml +0 -0
  492. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/success_without.xml +0 -0
  493. data/test/fixtures/product/response/v3.10/nfe_inutilizacao/fail.xml +0 -0
  494. data/test/fixtures/product/response/v3.10/nfe_inutilizacao/success.xml +0 -0
  495. data/test/fixtures/product/response/v3.10/nfe_recepcao_evento/cancelamento/fail.xml +2 -2
  496. data/test/fixtures/product/response/v3.10/nfe_recepcao_evento/cancelamento/success.xml +0 -0
  497. data/test/fixtures/product/response/v3.10/nfe_recepcao_evento/cancelamento/xml_result_fail_formatted.xml +1 -0
  498. data/test/fixtures/product/response/v3.10/nfe_recepcao_evento/cancelamento/xml_result_success_formatted.xml +1 -0
  499. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_fail.xml +0 -0
  500. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_one_invoice_fail.xml +0 -0
  501. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_one_invoice_fail_and_one_ok.xml +0 -0
  502. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_one_invoice_ok.xml +0 -0
  503. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_two_invoice_fail.xml +0 -0
  504. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_two_invoice_ok.xml +0 -0
  505. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/nfe/nf_2_with_protocol.xml +0 -0
  506. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/nfe/nf_2_without_protocol.xml +0 -0
  507. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/nfe/nf_3_with_protocol.xml +0 -0
  508. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/nfe/nf_3_without_protocol.xml +0 -0
  509. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/original_xml/lot.xml +0 -0
  510. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/original_xml/nfe.xml +0 -0
  511. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/original_xml/nfeProc.xml +0 -0
  512. data/test/fixtures/product/response/v3.10/nfe_status_servico/fail.xml +0 -0
  513. data/test/fixtures/product/response/v3.10/nfe_status_servico/success.xml +0 -0
  514. data/test/fixtures/product/schemas/CCe_v1.00.xsd +0 -0
  515. data/test/fixtures/product/schemas/EPEC_v1.00.xsd +0 -0
  516. data/test/fixtures/product/schemas/LeiauteCadastroEmissorDFe_v1.01.xsd +0 -0
  517. data/test/fixtures/product/schemas/SuframaInternaliza_v1.00.xsd +0 -0
  518. data/test/fixtures/product/schemas/SuframaVistoria_v1.00.xsd +0 -0
  519. data/test/fixtures/product/schemas/atuCadEmiDFe_v1.01.xsd +0 -0
  520. data/test/fixtures/product/schemas/cabecMsg_v1.02.xsd +0 -0
  521. data/test/fixtures/product/schemas/cadEmiDFe_v1.01.xsd +0 -0
  522. data/test/fixtures/product/schemas/cancNFe_v2.00.xsd +0 -0
  523. data/test/fixtures/product/schemas/confRecebto_v1.00.xsd +0 -0
  524. data/test/fixtures/product/schemas/consCad_v2.00.xsd +0 -0
  525. data/test/fixtures/product/schemas/consDPEC_v1.01.xsd +0 -0
  526. data/test/fixtures/product/schemas/consNFeDest_v1.01.xsd +0 -0
  527. data/test/fixtures/product/schemas/consReciNFe_v2.00.xsd +0 -0
  528. data/test/fixtures/product/schemas/consReciNFe_v3.10.xsd +0 -0
  529. data/test/fixtures/product/schemas/consSitNFe_v2.01.xsd +0 -0
  530. data/test/fixtures/product/schemas/consSitNFe_v3.10.xsd +0 -0
  531. data/test/fixtures/product/schemas/consStatServ_v2.00.xsd +0 -0
  532. data/test/fixtures/product/schemas/consStatServ_v3.10.xsd +0 -0
  533. data/test/fixtures/product/schemas/distDFeInt_v1.00.xsd +0 -0
  534. data/test/fixtures/product/schemas/downloadNFe_v1.00.xsd +0 -0
  535. data/test/fixtures/product/schemas/e110110_v1.00.xsd +0 -0
  536. data/test/fixtures/product/schemas/e110111_v1.00.xsd +0 -0
  537. data/test/fixtures/product/schemas/e110140_v1.00.xsd +0 -0
  538. data/test/fixtures/product/schemas/e111500_v1.00.xsd +0 -0
  539. data/test/fixtures/product/schemas/e111501_v1.00.xsd +0 -0
  540. data/test/fixtures/product/schemas/e111502_v1.00.xsd +0 -0
  541. data/test/fixtures/product/schemas/e111503_v1.00.xsd +0 -0
  542. data/test/fixtures/product/schemas/e210200_v1.00.xsd +0 -0
  543. data/test/fixtures/product/schemas/e210210_v1.00.xsd +0 -0
  544. data/test/fixtures/product/schemas/e210220_v1.00.xsd +0 -0
  545. data/test/fixtures/product/schemas/e210240_v1.00.xsd +0 -0
  546. data/test/fixtures/product/schemas/e411500_v1.00.xsd +0 -0
  547. data/test/fixtures/product/schemas/e411501_v1.00.xsd +0 -0
  548. data/test/fixtures/product/schemas/e411502_v1.00.xsd +0 -0
  549. data/test/fixtures/product/schemas/e411503_v1.00.xsd +0 -0
  550. data/test/fixtures/product/schemas/e990900_v1.00.xsd +0 -0
  551. data/test/fixtures/product/schemas/e990910_v1.00.xsd +0 -0
  552. data/test/fixtures/product/schemas/envCCe_v1.00.xsd +0 -0
  553. data/test/fixtures/product/schemas/envCancelPProrrogNFe_v1.0.xsd +0 -0
  554. data/test/fixtures/product/schemas/envConfRecebto_v1.00.xsd +0 -0
  555. data/test/fixtures/product/schemas/envDPEC_v1.01.xsd +0 -0
  556. data/test/fixtures/product/schemas/envEPEC_v1.00.xsd +0 -0
  557. data/test/fixtures/product/schemas/envEventoCancNFe_v1.00.xsd +0 -0
  558. data/test/fixtures/product/schemas/envEvento_v1.00.xsd +0 -0
  559. data/test/fixtures/product/schemas/envFiscoNfe_v1.0.xsd +0 -0
  560. data/test/fixtures/product/schemas/envPProrrogNFe_v1.0.xsd +0 -0
  561. data/test/fixtures/product/schemas/envRemIndus_v1.00.xsd +0 -0
  562. data/test/fixtures/product/schemas/envSuframaInternaliza_v1.00.xsd +0 -0
  563. data/test/fixtures/product/schemas/envSuframaVistoria_v1.00.xsd +0 -0
  564. data/test/fixtures/product/schemas/enviNFe_v2.00.xsd +0 -0
  565. data/test/fixtures/product/schemas/enviNFe_v3.10.xsd +0 -0
  566. data/test/fixtures/product/schemas/eventoCancNFe_v1.00.xsd +0 -0
  567. data/test/fixtures/product/schemas/eventoEPEC_v0.01.xsd +0 -0
  568. data/test/fixtures/product/schemas/eventoEPEC_v1.00.xsd +0 -0
  569. data/test/fixtures/product/schemas/eventoRemIndus_v1.00.xsd +0 -0
  570. data/test/fixtures/product/schemas/inutNFe_v2.00.xsd +0 -0
  571. data/test/fixtures/product/schemas/inutNFe_v3.10.xsd +0 -0
  572. data/test/fixtures/product/schemas/leiauteCCe_v1.00.xsd +0 -0
  573. data/test/fixtures/product/schemas/leiauteCancNFe_v2.00.xsd +0 -0
  574. data/test/fixtures/product/schemas/leiauteConfRecebto_v1.00.xsd +0 -0
  575. data/test/fixtures/product/schemas/leiauteConsNFeDest_v1.01.xsd +0 -0
  576. data/test/fixtures/product/schemas/leiauteConsSitNFe_v2.01.xsd +0 -0
  577. data/test/fixtures/product/schemas/leiauteConsSitNFe_v3.10.xsd +0 -0
  578. data/test/fixtures/product/schemas/leiauteConsStatServ_v2.00.xsd +0 -0
  579. data/test/fixtures/product/schemas/leiauteConsStatServ_v3.10.xsd +0 -0
  580. data/test/fixtures/product/schemas/leiauteConsultaCadastro_v1.01.xsd +0 -0
  581. data/test/fixtures/product/schemas/leiauteConsultaCadastro_v2.00.xsd +0 -0
  582. data/test/fixtures/product/schemas/leiauteDPEC_v1.01.xsd +0 -0
  583. data/test/fixtures/product/schemas/leiauteDownloadNFe_v1.00.xsd +0 -0
  584. data/test/fixtures/product/schemas/leiauteEPEC_v1.00.xsd +0 -0
  585. data/test/fixtures/product/schemas/leiauteEventoCancNFe_v1.00.xsd +0 -0
  586. data/test/fixtures/product/schemas/leiauteEvento_v1.00.xsd +0 -0
  587. data/test/fixtures/product/schemas/leiauteInutNFe_v2.00.xsd +0 -0
  588. data/test/fixtures/product/schemas/leiauteInutNFe_v3.10.xsd +0 -0
  589. data/test/fixtures/product/schemas/leiauteNFe_v2.00.xsd +0 -0
  590. data/test/fixtures/product/schemas/leiauteNFe_v3.10.xsd +0 -0
  591. data/test/fixtures/product/schemas/leiauteRemIndus_v1.00.xsd +0 -0
  592. data/test/fixtures/product/schemas/leiauteSRE_v1.00.xsd +0 -0
  593. data/test/fixtures/product/schemas/leiauteSuframaInternaliza_v1.00.xsd +0 -0
  594. data/test/fixtures/product/schemas/leiauteSuframaVistoria_v1.00.xsd +0 -0
  595. data/test/fixtures/product/schemas/nfe_v2.00.xsd +0 -0
  596. data/test/fixtures/product/schemas/nfe_v3.10.xsd +0 -0
  597. data/test/fixtures/product/schemas/procCCeNFe_v1.00.xsd +0 -0
  598. data/test/fixtures/product/schemas/procCancNFe_v2.00.xsd +0 -0
  599. data/test/fixtures/product/schemas/procConfRecebtoNFe_v1.00.xsd +0 -0
  600. data/test/fixtures/product/schemas/procEPEC_v1.00.xsd +0 -0
  601. data/test/fixtures/product/schemas/procEventoCancNFe_v1.00.xsd +0 -0
  602. data/test/fixtures/product/schemas/procEventoNFe_v1.00.xsd +0 -0
  603. data/test/fixtures/product/schemas/procEventoNFe_v99.99.xsd +0 -0
  604. data/test/fixtures/product/schemas/procInutNFe_v2.00.xsd +0 -0
  605. data/test/fixtures/product/schemas/procInutNFe_v3.10.xsd +0 -0
  606. data/test/fixtures/product/schemas/procNFe_v2.00.xsd +0 -0
  607. data/test/fixtures/product/schemas/procNFe_v3.10.xsd +0 -0
  608. data/test/fixtures/product/schemas/procRemIndus_v1.00.xsd +0 -0
  609. data/test/fixtures/product/schemas/resEvento_v1.00.xsd +0 -0
  610. data/test/fixtures/product/schemas/resNFe_v1.00.xsd +0 -0
  611. data/test/fixtures/product/schemas/retAtuCadEmiDFe_v1.01.xsd +0 -0
  612. data/test/fixtures/product/schemas/retCancNFe_v2.00.xsd +0 -0
  613. data/test/fixtures/product/schemas/retConsCad_v2.00.xsd +0 -0
  614. data/test/fixtures/product/schemas/retConsDPEC_v1.01.xsd +0 -0
  615. data/test/fixtures/product/schemas/retConsReciNFe_v2.00.xsd +0 -0
  616. data/test/fixtures/product/schemas/retConsReciNFe_v3.10.xsd +0 -0
  617. data/test/fixtures/product/schemas/retConsSitNFe_v2.01.xsd +0 -0
  618. data/test/fixtures/product/schemas/retConsSitNFe_v3.10.xsd +0 -0
  619. data/test/fixtures/product/schemas/retConsStatServ_v2.00.xsd +0 -0
  620. data/test/fixtures/product/schemas/retConsStatServ_v3.10.xsd +0 -0
  621. data/test/fixtures/product/schemas/retDPEC_v1.01.xsd +0 -0
  622. data/test/fixtures/product/schemas/retDistDFeInt_v1.00.xsd +0 -0
  623. data/test/fixtures/product/schemas/retDownloadNFe_v1.00.xsd +0 -0
  624. data/test/fixtures/product/schemas/retEnvCCe_v1.00.xsd +0 -0
  625. data/test/fixtures/product/schemas/retEnvCancelPProrrogNFe_v1.0.xsd +0 -0
  626. data/test/fixtures/product/schemas/retEnvConfRecebto_v1.00.xsd +0 -0
  627. data/test/fixtures/product/schemas/retEnvEPEC_v1.00.xsd +0 -0
  628. data/test/fixtures/product/schemas/retEnvEventoCancNFe_v1.00.xsd +0 -0
  629. data/test/fixtures/product/schemas/retEnvEvento_v1.00.xsd +0 -0
  630. data/test/fixtures/product/schemas/retEnvFiscoNFe_v1.0.xsd +0 -0
  631. data/test/fixtures/product/schemas/retEnvRemIndus_v1.00.xsd +0 -0
  632. data/test/fixtures/product/schemas/retEnvSuframaInternaliza_v1.00.xsd +0 -0
  633. data/test/fixtures/product/schemas/retEnvSuframaVistoria_v1.00.xsd +0 -0
  634. data/test/fixtures/product/schemas/retEnviNFe_v2.00.xsd +0 -0
  635. data/test/fixtures/product/schemas/retEnviNFe_v3.10.xsd +0 -0
  636. data/test/fixtures/product/schemas/retEventoEPEC_v0.01.xsd +0 -0
  637. data/test/fixtures/product/schemas/retInutNFe_v2.00.xsd +0 -0
  638. data/test/fixtures/product/schemas/retInutNFe_v3.10.xsd +0 -0
  639. data/test/fixtures/product/schemas/retPProrrogNFe_v1.0.xsd +0 -0
  640. data/test/fixtures/product/schemas/retconsNFeDest_v1.01.xsd +0 -0
  641. data/test/fixtures/product/schemas/tiposBasico_v1.03.xsd +0 -0
  642. data/test/fixtures/product/schemas/tiposBasico_v1.03_OPENSSL.xsd +0 -0
  643. data/test/fixtures/product/schemas/tiposBasico_v3.10.xsd +0 -0
  644. data/test/fixtures/product/schemas/tiposBasico_v3.10_OPENSSL.xsd +0 -0
  645. data/test/fixtures/product/schemas/tiposDistDFe_v1.00.xsd +0 -0
  646. data/test/fixtures/product/schemas/xmldsig-core-schema_v1.01.xsd +0 -0
  647. data/test/fixtures/product/wsdl/NFeRetAutorizacao.xml +0 -0
  648. data/test/fixtures/product/wsdl/NfeAutorizacao.xml +0 -0
  649. data/test/fixtures/product/wsdl/NfeConsulta2.xml +0 -0
  650. data/test/fixtures/product/wsdl/NfeStatusServico2.xml +0 -0
  651. data/test/fixtures/product/wsdl/RecepcaoEvento.xml +78 -0
  652. data/test/fixtures/product/wsdl/nfeinutilizacao2.xml +0 -0
  653. data/test/fixtures/service/response/betha/v1/cancela_nfse/fault.xml +0 -0
  654. data/test/fixtures/service/response/betha/v1/cancela_nfse/success.xml +0 -0
  655. data/test/fixtures/service/response/betha/v1/consulta_lote_rps/fault.xml +0 -0
  656. data/test/fixtures/service/response/betha/v1/consulta_lote_rps/success.xml +0 -0
  657. data/test/fixtures/service/response/betha/v1/consulta_nfse/fault.xml +0 -0
  658. data/test/fixtures/service/response/betha/v1/consulta_nfse/nfs_empty.xml +0 -0
  659. data/test/fixtures/service/response/betha/v1/consulta_nfse/success.xml +0 -0
  660. data/test/fixtures/service/response/betha/v1/consulta_nfse_por_rps/fault.xml +0 -0
  661. data/test/fixtures/service/response/betha/v1/consulta_nfse_por_rps/success.xml +0 -0
  662. data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/error.xml +0 -0
  663. data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/fault.xml +0 -0
  664. data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/success.xml +0 -0
  665. data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unprocessed.xml +0 -0
  666. data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unprocessed_by_code_error.xml +0 -0
  667. data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unreceived.xml +0 -0
  668. data/test/fixtures/service/response/betha/v1/consulta_situacao_lote_rps/unreceived_by_code_error.xml +0 -0
  669. data/test/fixtures/service/response/betha/v1/recepcao_lote_rps/error.xml +0 -0
  670. data/test/fixtures/service/response/betha/v1/recepcao_lote_rps/success.xml +0 -0
  671. data/test/fixtures/service/response/simpliss/v1/cancela_nfse/fault.xml +0 -0
  672. data/test/fixtures/service/response/simpliss/v1/cancela_nfse/success.xml +0 -0
  673. data/test/fixtures/service/response/simpliss/v1/consulta_lote_rps/fault.xml +0 -0
  674. data/test/fixtures/service/response/simpliss/v1/consulta_lote_rps/nfse_complete.xml +0 -0
  675. data/test/fixtures/service/response/simpliss/v1/consulta_lote_rps/nfse_simple.xml +0 -0
  676. data/test/fixtures/service/response/simpliss/v1/consulta_nfse/fault.xml +0 -0
  677. data/test/fixtures/service/response/simpliss/v1/consulta_nfse/nfs_empty.xml +0 -0
  678. data/test/fixtures/service/response/simpliss/v1/consulta_nfse/nfse_complete.xml +0 -0
  679. data/test/fixtures/service/response/simpliss/v1/consulta_nfse/nfse_simple.xml +0 -0
  680. data/test/fixtures/service/response/simpliss/v1/consulta_nfse_por_rps/fault.xml +0 -0
  681. data/test/fixtures/service/response/simpliss/v1/consulta_nfse_por_rps/nfse_complete.xml +0 -0
  682. data/test/fixtures/service/response/simpliss/v1/consulta_nfse_por_rps/nfse_simple.xml +0 -0
  683. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/error.xml +0 -0
  684. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/fault.xml +0 -0
  685. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/success.xml +0 -0
  686. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/unprocessed.xml +0 -0
  687. data/test/fixtures/service/response/simpliss/v1/consulta_situacao_lote_rps/unreceived.xml +0 -0
  688. data/test/fixtures/service/response/simpliss/v1/recepcao_lote_rps/error.xml +0 -0
  689. data/test/fixtures/service/response/simpliss/v1/recepcao_lote_rps/success.xml +0 -0
  690. data/test/fixtures/service/response/thema/v1/cancela_nfse/fault.xml +0 -0
  691. data/test/fixtures/service/response/thema/v1/cancela_nfse/success.xml +0 -0
  692. data/test/fixtures/service/response/thema/v1/consulta_lote_rps/fault.xml +0 -0
  693. data/test/fixtures/service/response/thema/v1/consulta_lote_rps/nfse_complete.xml +0 -0
  694. data/test/fixtures/service/response/thema/v1/consulta_nfse/fault.xml +0 -0
  695. data/test/fixtures/service/response/thema/v1/consulta_nfse/nfs_empty.xml +0 -0
  696. data/test/fixtures/service/response/thema/v1/consulta_nfse/nfse_complete.xml +0 -0
  697. data/test/fixtures/service/response/thema/v1/consulta_nfse/nfse_simple.xml +0 -0
  698. data/test/fixtures/service/response/thema/v1/consulta_nfse_por_rps/fault.xml +0 -0
  699. data/test/fixtures/service/response/thema/v1/consulta_nfse_por_rps/nfse_complete.xml +0 -0
  700. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/error.xml +0 -0
  701. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/fault.xml +0 -0
  702. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/success.xml +0 -0
  703. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/unprocessed.xml +0 -0
  704. data/test/fixtures/service/response/thema/v1/consulta_situacao_lote_rps/unreceived.xml +0 -0
  705. data/test/fixtures/service/response/thema/v1/recepcao_lote_rps/error.xml +0 -0
  706. data/test/fixtures/service/response/thema/v1/recepcao_lote_rps/success.xml +0 -0
  707. data/test/fixtures/service/response/thema/v1/recepcao_lote_rps_limitado/error.xml +0 -0
  708. data/test/fixtures/service/response/thema/v1/recepcao_lote_rps_limitado/success.xml +0 -0
  709. data/test/fixtures/service/thema/v1/cancelar_nfse_envio.xml +0 -0
  710. data/test/fixtures/service/thema/v1/cancelar_nfse_envio_signed.xml +0 -0
  711. data/test/fixtures/service/thema/v1/enviar_lote_rps.xml +0 -0
  712. data/test/fixtures/service/thema/v1/enviar_lote_rps_signed.xml +0 -0
  713. data/test/fixtures/service/wsdl/betha/v1/cancelar_nfse.xml +0 -0
  714. data/test/fixtures/service/wsdl/betha/v1/consultar_lote_rps.xml +0 -0
  715. data/test/fixtures/service/wsdl/betha/v1/consultar_nfse.xml +0 -0
  716. data/test/fixtures/service/wsdl/betha/v1/consultar_nfse_por_rps.xml +0 -0
  717. data/test/fixtures/service/wsdl/betha/v1/consultar_situacao_lote_rps.xml +0 -0
  718. data/test/fixtures/service/wsdl/betha/v1/recepcionar_lote_rps.xml +0 -0
  719. data/test/fixtures/service/wsdl/simpliss/v1/nfseservice.xml +0 -0
  720. data/test/fixtures/service/wsdl/thema/v1/nfse_cancelamento.xml +0 -0
  721. data/test/fixtures/service/wsdl/thema/v1/nfse_consulta.xml +0 -0
  722. data/test/fixtures/service/wsdl/thema/v1/nfse_remessa.xml +0 -0
  723. data/test/test_helper.rb +0 -0
  724. metadata +35 -63
  725. data/lib/br_nfe/product/gateway/base.rb +0 -35
  726. data/lib/br_nfe/product/gateway/web_service_am.rb +0 -140
  727. data/lib/br_nfe/product/gateway/web_service_ba.rb +0 -140
  728. data/lib/br_nfe/product/gateway/web_service_ce.rb +0 -162
  729. data/lib/br_nfe/product/gateway/web_service_go.rb +0 -140
  730. data/lib/br_nfe/product/gateway/web_service_mg.rb +0 -140
  731. data/lib/br_nfe/product/gateway/web_service_ms.rb +0 -140
  732. data/lib/br_nfe/product/gateway/web_service_mt.rb +0 -140
  733. data/lib/br_nfe/product/gateway/web_service_pe.rb +0 -140
  734. data/lib/br_nfe/product/gateway/web_service_pr.rb +0 -140
  735. data/lib/br_nfe/product/gateway/web_service_rs.rb +0 -140
  736. data/lib/br_nfe/product/gateway/web_service_sp.rb +0 -140
  737. data/lib/br_nfe/product/gateway/web_service_svan.rb +0 -162
  738. data/lib/br_nfe/product/gateway/web_service_svc_an.rb +0 -131
  739. data/lib/br_nfe/product/gateway/web_service_svc_rs.rb +0 -20
  740. data/lib/br_nfe/product/gateway/web_service_svrs.rb +0 -140
  741. data/test/br_nfe/product/gateway/base_test.rb +0 -16
  742. data/test/br_nfe/product/gateway/web_service_am_test.rb +0 -242
  743. data/test/br_nfe/product/gateway/web_service_ba_test.rb +0 -242
  744. data/test/br_nfe/product/gateway/web_service_ce_test.rb +0 -242
  745. data/test/br_nfe/product/gateway/web_service_go_test.rb +0 -242
  746. data/test/br_nfe/product/gateway/web_service_mg_test.rb +0 -242
  747. data/test/br_nfe/product/gateway/web_service_ms_test.rb +0 -242
  748. data/test/br_nfe/product/gateway/web_service_mt_test.rb +0 -408
  749. data/test/br_nfe/product/gateway/web_service_pe_test.rb +0 -408
  750. data/test/br_nfe/product/gateway/web_service_pr_test.rb +0 -408
  751. data/test/br_nfe/product/gateway/web_service_rs_test.rb +0 -407
  752. data/test/br_nfe/product/gateway/web_service_sp_test.rb +0 -408
  753. data/test/br_nfe/product/gateway/web_service_svan_test.rb +0 -242
  754. data/test/br_nfe/product/gateway/web_service_svc_an_test.rb +0 -185
  755. data/test/br_nfe/product/gateway/web_service_svc_rs_test.rb +0 -185
  756. data/test/br_nfe/product/gateway/web_service_svrs_test.rb +0 -242
  757. data/test/factories/product/gateway/base.rb +0 -5
  758. data/test/factories/product/gateway/web_service_am.rb +0 -5
  759. data/test/factories/product/gateway/web_service_ba.rb +0 -5
  760. data/test/factories/product/gateway/web_service_svrs.rb +0 -5
@@ -0,0 +1,236 @@
1
+ module BrNfe
2
+ module Product
3
+ module Reader
4
+ class Item
5
+ class << self
6
+ def new xml, path
7
+ @xml = xml
8
+ @path = path
9
+ @item = BrNfe::Product::Nfe::Item.new
10
+ populate!
11
+ @item
12
+ end
13
+ private
14
+ def safe_parse_date value
15
+ Date.parse value
16
+ rescue
17
+ nil
18
+ end
19
+ def safe_parse_datetime value
20
+ Time.parse value
21
+ rescue
22
+ nil
23
+ end
24
+ def populate!
25
+ set_product_details
26
+ set_icms if @xml.css( @path[:icms][:root] ).present?
27
+ set_ipi if @xml.css( @path[:ipi][:root] ).present?
28
+ set_pis if @xml.css( @path[:pis][:root] ).present?
29
+ set_cofins if @xml.css( @path[:cofins][:root] ).present?
30
+ set_icms_uf_destino if @xml.css( @path[:icms_uf_destino][:root] ).present?
31
+ set_declaracoes_importacao if @xml.css( @path[:declaracoes_importacao][:root] ).present?
32
+ set_detalhes_exportacao if @xml.css( @path[:detalhes_exportacao][:root] ).present?
33
+ set_pis_st if @xml.css( @path[:pis_st][:root] ).present?
34
+ set_cofins_st if @xml.css( @path[:cofins_st][:root] ).present?
35
+ set_importacao_tax if @xml.css( @path[:importacao][:root] ).present?
36
+ set_issqn if @xml.css( @path[:issqn][:root] ).present?
37
+ end
38
+
39
+ def set_product_details
40
+ @item.tipo_produto = @xml.css( @path[:issqn][:root] ).present? ? :service : :product
41
+ @item.codigo_produto = @xml.css( @path[:codigo_produto] ).text
42
+ @item.codigo_ean = @xml.css( @path[:codigo_ean] ).text
43
+ @item.descricao_produto = @xml.css( @path[:descricao_produto] ).text
44
+ @item.codigo_ncm = @xml.css( @path[:codigo_ncm] ).text
45
+ @item.codigos_nve = @xml.css( @path[:codigos_nve] ).map(&:text)
46
+ @item.codigo_extipi = @xml.css( @path[:codigo_extipi] ).text
47
+ @item.cfop = @xml.css( @path[:cfop] ).text
48
+ @item.unidade_comercial = @xml.css( @path[:unidade_comercial] ).text
49
+ @item.quantidade_comercial = @xml.css( @path[:quantidade_comercial] ).text.to_f
50
+ @item.valor_unitario_comercial = @xml.css( @path[:valor_unitario_comercial] ).text.to_f
51
+ @item.valor_total_produto = @xml.css( @path[:valor_total_produto] ).text.to_f
52
+ @item.codigo_ean_tributavel = @xml.css( @path[:codigo_ean_tributavel] ).text
53
+ @item.unidade_tributavel = @xml.css( @path[:unidade_tributavel] ).text
54
+ @item.quantidade_tributavel = @xml.css( @path[:quantidade_tributavel] ).text.to_f
55
+ @item.valor_unitario_tributavel = @xml.css( @path[:valor_unitario_tributavel] ).text.to_f
56
+ @item.total_frete = @xml.css( @path[:total_frete] ).text.to_f
57
+ @item.total_seguro = @xml.css( @path[:total_seguro] ).text.to_f
58
+ @item.total_desconto = @xml.css( @path[:total_desconto] ).text.to_f
59
+ @item.total_outros = @xml.css( @path[:total_outros] ).text.to_f
60
+ @item.soma_total_nfe = @xml.css( @path[:soma_total_nfe] ).text == '1' ? true : false
61
+ @item.codigo_cest = @xml.css( @path[:codigo_cest] ).text
62
+ @item.numero_pedido_compra = @xml.css( @path[:numero_pedido_compra] ).text
63
+ @item.item_pedido_compra = @xml.css( @path[:item_pedido_compra] ).text
64
+ @item.numero_fci = @xml.css( @path[:numero_fci] ).text
65
+ @item.percentual_devolucao = @xml.css( @path[:percentual_devolucao] ).text.to_f
66
+ @item.total_ipi_devolucao = @xml.css( @path[:total_ipi_devolucao] ).text.to_f
67
+ @item.informacoes_adicionais = @xml.css( @path[:informacoes_adicionais] ).text
68
+ @item.total_tributos = @xml.css( @path[:total_tributos] ).text.to_f
69
+ end
70
+
71
+ def set_icms
72
+ codigo_cst = @xml.css( @path[:icms][:cst] ).text
73
+ codigo_cst = @xml.css( @path[:icms][:csosn] ).text if codigo_cst.blank?
74
+ @item.icms = {
75
+ origem: @xml.css( @path[:icms][:origem] ).text,
76
+ codigo_cst: codigo_cst,
77
+ modalidade_base_calculo: @xml.css( @path[:icms][:modalidade_base_calculo] ).text,
78
+ reducao_base_calculo: @xml.css( @path[:icms][:reducao_base_calculo] ).text.to_f,
79
+ total_base_calculo: @xml.css( @path[:icms][:total_base_calculo] ).text.to_f,
80
+ aliquota: @xml.css( @path[:icms][:aliquota] ).text.to_f,
81
+ total: @xml.css( @path[:icms][:total] ).text.to_f,
82
+ modalidade_base_calculo_st: @xml.css( @path[:icms][:modalidade_base_calculo_st] ).text,
83
+ mva_st: @xml.css( @path[:icms][:mva_st] ).text.to_f,
84
+ reducao_base_calculo_st: @xml.css( @path[:icms][:reducao_base_calculo_st] ).text.to_f,
85
+ total_base_calculo_st: @xml.css( @path[:icms][:total_base_calculo_st] ).text.to_f,
86
+ aliquota_st: @xml.css( @path[:icms][:aliquota_st] ).text.to_f,
87
+ total_st: @xml.css( @path[:icms][:total_st] ).text.to_f,
88
+ total_desoneracao: @xml.css( @path[:icms][:total_desoneracao] ).text.to_f,
89
+ motivo_desoneracao: @xml.css( @path[:icms][:motivo_desoneracao] ).text,
90
+ total_icms_operacao: @xml.css( @path[:icms][:total_icms_operacao] ).text.to_f,
91
+ percentual_diferimento: @xml.css( @path[:icms][:percentual_diferimento] ).text.to_f,
92
+ total_icms_diferido: @xml.css( @path[:icms][:total_icms_diferido] ).text.to_f,
93
+ total_base_calculo_st_retido: @xml.css( @path[:icms][:total_base_calculo_st_retido]).text.to_f,
94
+ total_st_retido: @xml.css( @path[:icms][:total_st_retido] ).text.to_f,
95
+ aliquota_credito_sn: @xml.css( @path[:icms][:aliquota_credito_sn] ).text.to_f,
96
+ total_credito_sn: @xml.css( @path[:icms][:total_credito_sn] ).text.to_f
97
+ }
98
+ end
99
+ def set_ipi
100
+ @item.ipi do |ipi|
101
+ ipi.codigo_cst = @xml.css( @path[:ipi][:codigo_cst] ).text
102
+ ipi.classe_enquadramento = @xml.css( @path[:ipi][:classe_enquadramento]).text
103
+ ipi.cnpj_produtor = @xml.css( @path[:ipi][:cnpj_produtor] ).text
104
+ ipi.codigo_selo = @xml.css( @path[:ipi][:codigo_selo] ).text
105
+ ipi.quantidade_selo = @xml.css( @path[:ipi][:quantidade_selo] ).text
106
+ ipi.codigo_enquadramento = @xml.css( @path[:ipi][:codigo_enquadramento]).text
107
+ ipi.base_calculo = @xml.css( @path[:ipi][:base_calculo] ).text.to_f
108
+ ipi.aliquota = @xml.css( @path[:ipi][:aliquota] ).text.to_f
109
+ ipi.quantidade_unidade = @xml.css( @path[:ipi][:quantidade_unidade] ).text.to_f
110
+ ipi.total_unidade = @xml.css( @path[:ipi][:total_unidade] ).text.to_f
111
+ ipi.total = @xml.css( @path[:ipi][:total] ).text.to_f
112
+ end
113
+ end
114
+ def set_pis
115
+ @item.pis do |pis|
116
+ pis.codigo_cst = @xml.css( @path[:pis][:codigo_cst] ).text
117
+ pis.total_base_calculo = @xml.css( @path[:pis][:total_base_calculo]).text.to_f
118
+ pis.aliquota = @xml.css( @path[:pis][:aliquota] ).text.to_f
119
+ pis.total = @xml.css( @path[:pis][:total] ).text.to_f
120
+ pis.quantidade_vendida = @xml.css( @path[:pis][:quantidade_vendida]).text.to_f
121
+ pis.total_aliquota = @xml.css( @path[:pis][:total_aliquota] ).text.to_f
122
+ end
123
+ end
124
+ def set_cofins
125
+ @item.cofins do |cofins|
126
+ cofins.codigo_cst = @xml.css( @path[:cofins][:codigo_cst] ).text
127
+ cofins.total_base_calculo = @xml.css( @path[:cofins][:total_base_calculo]).text.to_f
128
+ cofins.aliquota = @xml.css( @path[:cofins][:aliquota] ).text.to_f
129
+ cofins.total = @xml.css( @path[:cofins][:total] ).text.to_f
130
+ cofins.quantidade_vendida = @xml.css( @path[:cofins][:quantidade_vendida]).text.to_f
131
+ cofins.total_aliquota = @xml.css( @path[:cofins][:total_aliquota] ).text.to_f
132
+ end
133
+ end
134
+ def set_icms_uf_destino
135
+ @item.icms_uf_destino do |icms_uf_destino|
136
+ icms_uf_destino.total_base_calculo = @xml.css( @path[:icms_uf_destino][:total_base_calculo] ).text.to_f
137
+ icms_uf_destino.percentual_fcp = @xml.css( @path[:icms_uf_destino][:percentual_fcp] ).text.to_f
138
+ icms_uf_destino.aliquota_interna_uf_destino = @xml.css( @path[:icms_uf_destino][:aliquota_interna_uf_destino]).text.to_f
139
+ icms_uf_destino.aliquota_interestadual = @xml.css( @path[:icms_uf_destino][:aliquota_interestadual] ).text.to_f
140
+ icms_uf_destino.percentual_partilha_destino = @xml.css( @path[:icms_uf_destino][:percentual_partilha_destino]).text.to_f
141
+ icms_uf_destino.total_fcp_destino = @xml.css( @path[:icms_uf_destino][:total_fcp_destino] ).text.to_f
142
+ icms_uf_destino.total_destino = @xml.css( @path[:icms_uf_destino][:total_destino] ).text.to_f
143
+ icms_uf_destino.total_origem = @xml.css( @path[:icms_uf_destino][:total_origem] ).text.to_f
144
+ end
145
+ end
146
+ def set_declaracoes_importacao
147
+ @xml.css( @path[:declaracoes_importacao][:root] ).each do |xml_declaracao|
148
+ @item.declaracoes_importacao << BrNfe.declaracao_importacao_product_class.new do |declaracao|
149
+ declaracao.numero_documento = xml_declaracao.css( @path[:declaracoes_importacao][:numero_documento] ).text
150
+ declaracao.data_registro = safe_parse_date xml_declaracao.css( @path[:declaracoes_importacao][:data_registro] ).text
151
+ declaracao.local_desembaraco = xml_declaracao.css( @path[:declaracoes_importacao][:local_desembaraco] ).text
152
+ declaracao.uf_desembaraco = xml_declaracao.css( @path[:declaracoes_importacao][:uf_desembaraco] ).text
153
+ declaracao.data_desembaraco = safe_parse_date xml_declaracao.css( @path[:declaracoes_importacao][:data_desembaraco] ).text
154
+ declaracao.via_transporte = xml_declaracao.css( @path[:declaracoes_importacao][:via_transporte] ).text
155
+ declaracao.valor_afrmm = xml_declaracao.css( @path[:declaracoes_importacao][:valor_afrmm] ).text.to_f
156
+ declaracao.tipo_intermediacao = xml_declaracao.css( @path[:declaracoes_importacao][:tipo_intermediacao]).text
157
+ declaracao.cnpj_adquirente = xml_declaracao.css( @path[:declaracoes_importacao][:cnpj_adquirente] ).text
158
+ declaracao.uf_terceiro = xml_declaracao.css( @path[:declaracoes_importacao][:uf_terceiro] ).text
159
+ declaracao.codigo_exportador = xml_declaracao.css( @path[:declaracoes_importacao][:codigo_exportador] ).text
160
+ xml_declaracao.css( @path[:declaracoes_importacao][:adicoes][:root] ).each do |xml_adi|
161
+ declaracao.adicoes << {
162
+ numero_adicao: xml_adi.css( @path[:declaracoes_importacao][:adicoes][:numero_adicao] ).text,
163
+ sequencial: xml_adi.css( @path[:declaracoes_importacao][:adicoes][:sequencial] ).text.to_i,
164
+ codigo_fabricante: xml_adi.css( @path[:declaracoes_importacao][:adicoes][:codigo_fabricante]).text,
165
+ valor_desconto: xml_adi.css( @path[:declaracoes_importacao][:adicoes][:valor_desconto] ).text.to_f,
166
+ numero_drawback: xml_adi.css( @path[:declaracoes_importacao][:adicoes][:numero_drawback] ).text,
167
+ }
168
+ end
169
+ end
170
+ end
171
+ end
172
+ def set_detalhes_exportacao
173
+ @xml.css( @path[:detalhes_exportacao][:root] ).each do |xml_exportacao|
174
+ @item.detalhes_exportacao << BrNfe.detalhe_exportacao_product_class.new do |declaracao|
175
+ declaracao.numero_drawback = xml_exportacao.css( @path[:detalhes_exportacao][:numero_drawback] ).text
176
+ declaracao.numero_registro = xml_exportacao.css( @path[:detalhes_exportacao][:numero_registro] ).text
177
+ declaracao.chave_nfe_recebida = xml_exportacao.css( @path[:detalhes_exportacao][:chave_nfe_recebida]).text
178
+ declaracao.quantidade = xml_exportacao.css( @path[:detalhes_exportacao][:quantidade] ).text.to_f
179
+ end
180
+ end
181
+ end
182
+
183
+ def set_importacao_tax
184
+ @item.importacao do |importacao|
185
+ importacao.total_base_calculo = @xml.css( @path[:importacao][:total_base_calculo] ).text.to_f
186
+ importacao.total_despesas_aduaneiras = @xml.css( @path[:importacao][:total_despesas_aduaneiras]).text.to_f
187
+ importacao.total_imposto = @xml.css( @path[:importacao][:total_imposto] ).text.to_f
188
+ importacao.total_iof = @xml.css( @path[:importacao][:total_iof] ).text.to_f
189
+ end
190
+ end
191
+
192
+ def set_pis_st
193
+ @item.pis_st do |pis|
194
+ pis.total_base_calculo = @xml.css( @path[:pis_st][:total_base_calculo]).text.to_f
195
+ pis.aliquota = @xml.css( @path[:pis_st][:aliquota] ).text.to_f
196
+ pis.total = @xml.css( @path[:pis_st][:total] ).text.to_f
197
+ pis.quantidade_vendida = @xml.css( @path[:pis_st][:quantidade_vendida]).text.to_f
198
+ pis.total_aliquota = @xml.css( @path[:pis_st][:total_aliquota] ).text.to_f
199
+ end
200
+ end
201
+
202
+ def set_cofins_st
203
+ @item.cofins_st do |pis|
204
+ pis.total_base_calculo = @xml.css( @path[:cofins_st][:total_base_calculo]).text.to_f
205
+ pis.aliquota = @xml.css( @path[:cofins_st][:aliquota] ).text.to_f
206
+ pis.total = @xml.css( @path[:cofins_st][:total] ).text.to_f
207
+ pis.quantidade_vendida = @xml.css( @path[:cofins_st][:quantidade_vendida]).text.to_f
208
+ pis.total_aliquota = @xml.css( @path[:cofins_st][:total_aliquota] ).text.to_f
209
+ end
210
+ end
211
+
212
+ def set_issqn
213
+ @item.issqn do |issqn|
214
+ issqn.total_base_calculo = @xml.css( @path[:issqn][:total_base_calculo] ).text.to_f
215
+ issqn.aliquota = @xml.css( @path[:issqn][:aliquota] ).text.to_f
216
+ issqn.total = @xml.css( @path[:issqn][:total] ).text.to_f
217
+ issqn.municipio_ocorrencia = @xml.css( @path[:issqn][:municipio_ocorrencia] ).text
218
+ issqn.codigo_servico = @xml.css( @path[:issqn][:codigo_servico] ).text
219
+ issqn.total_deducao_bc = @xml.css( @path[:issqn][:total_deducao_bc] ).text.to_f
220
+ issqn.total_outras_retencoes = @xml.css( @path[:issqn][:total_outras_retencoes] ).text.to_f
221
+ issqn.total_desconto_incondicionado = @xml.css( @path[:issqn][:total_desconto_incondicionado]).text.to_f
222
+ issqn.total_desconto_condicionado = @xml.css( @path[:issqn][:total_desconto_condicionado] ).text.to_f
223
+ issqn.total_iss_retido = @xml.css( @path[:issqn][:total_iss_retido] ).text.to_f
224
+ issqn.indicador_iss = @xml.css( @path[:issqn][:indicador_iss] ).text
225
+ issqn.codigo_servico_municipio = @xml.css( @path[:issqn][:codigo_servico_municipio] ).text
226
+ issqn.municipio_incidencia = @xml.css( @path[:issqn][:municipio_incidencia] ).text
227
+ issqn.codigo_pais = @xml.css( @path[:issqn][:codigo_pais] ).text
228
+ issqn.numero_processo = @xml.css( @path[:issqn][:numero_processo] ).text
229
+ issqn.incentivo_fiscal = @xml.css( @path[:issqn][:incentivo_fiscal] ).text == '1'
230
+ end
231
+ end
232
+ end
233
+ end
234
+ end
235
+ end
236
+ end
@@ -0,0 +1,200 @@
1
+ module BrNfe
2
+ module Product
3
+ module Reader
4
+ class Nfe < BrNfe::ActiveModelBase
5
+ def initialize xml
6
+ @xml = Nokogiri::XML xml
7
+ @xml_version = find_xml_version
8
+ @xml_nfe = @xml.css("NFe")
9
+ @invoice = BrNfe::Product::NotaFiscal.new
10
+ populate_invoice!
11
+ @invoice
12
+ end
13
+ def invoice
14
+ @invoice
15
+ end
16
+
17
+ def xml_version
18
+ @xml_version
19
+ end
20
+
21
+ private
22
+
23
+ def path
24
+ BrNfe.settings[:nfe][@xml_version][:reader_xml_paths]
25
+ end
26
+
27
+ def proc_is_present?
28
+ @xml.css("nfeProc").present?
29
+ end
30
+
31
+ def find_xml_version
32
+ "v#{@xml.css("infNFe").attr("versao")}".gsub('.','_').to_sym
33
+ end
34
+
35
+ def populate_invoice!
36
+ build_associations
37
+
38
+ # Totais
39
+ build_product_total_values! if @xml_nfe.css(path[:total_icms][:root]).present?
40
+ build_service_total_values! if @xml_nfe.css(path[:total_issqn][:root]).present?
41
+ build_total_retencao! if @xml_nfe.css(path[:total_retencao][:root]).present?
42
+ build_state_protocol_nfe! if proc_is_present?
43
+
44
+ @invoice.codigo_tipo_emissao = @xml_nfe.css(path[:codigo_tipo_emissao]).text
45
+ @invoice.codigo_nf = @xml_nfe.css(path[:codigo_nf]).text
46
+ @invoice.natureza_operacao = @xml_nfe.css(path[:natureza_operacao]).text
47
+ @invoice.forma_pagamento = @xml_nfe.css(path[:forma_pagamento]).text
48
+ @invoice.modelo_nf = @xml_nfe.css(path[:modelo_nf]).text
49
+ @invoice.serie = @xml_nfe.css(path[:serie]).text
50
+ @invoice.numero_nf = @xml_nfe.css(path[:numero_nf]).text.to_i
51
+ @invoice.data_hora_emissao = parse_time @xml_nfe.css(path[:data_hora_emissao]).text
52
+ @invoice.data_hora_expedicao = parse_time @xml_nfe.css(path[:data_hora_expedicao]).text
53
+ @invoice.tipo_operacao = @xml_nfe.css(path[:tipo_operacao]).text
54
+ @invoice.tipo_impressao = @xml_nfe.css(path[:tipo_impressao]).text
55
+ @invoice.tipo_ambiente = @xml_nfe.css(path[:tipo_ambiente]).text
56
+ @invoice.finalidade_emissao = @xml_nfe.css(path[:finalidade_emissao]).text
57
+ @invoice.consumidor_final = @xml_nfe.css(path[:consumidor_final]).text
58
+ @invoice.presenca_comprador = @xml_nfe.css(path[:presenca_comprador]).text
59
+ @invoice.processo_emissao = @xml_nfe.css(path[:processo_emissao]).text
60
+ @invoice.versao_aplicativo = @xml_nfe.css(path[:versao_aplicativo]).text
61
+ @invoice.informacoes_fisco = @xml_nfe.css(path[:informacoes_fisco]).text
62
+ @invoice.informacoes_contribuinte = @xml_nfe.css(path[:informacoes_contribuinte]).text
63
+ @invoice.exportacao_uf_saida = @xml_nfe.css(path[:exportacao_uf_saida]).text
64
+ @invoice.exportacao_local_embarque = @xml_nfe.css(path[:exportacao_local_embarque]).text
65
+ @invoice.exportacao_local_despacho = @xml_nfe.css(path[:exportacao_local_despacho]).text
66
+ end
67
+
68
+ def build_associations
69
+ @invoice.emitente = Emitente.new(@xml_nfe, path)
70
+ @invoice.destinatario = Destinatario.new(@xml_nfe, path)
71
+ @invoice.transporte = Transporte.new(@xml_nfe, path)
72
+ build_endereco_retirada!
73
+ build_endereco_entrega!
74
+ build_fatura!
75
+ build_pagamentos!
76
+ build_items!
77
+ end
78
+
79
+ def build_product_total_values!
80
+ @invoice.total_icms_base_calculo = @xml_nfe.css(path[:total_icms][:total_icms_base_calculo]).text.to_f
81
+ @invoice.total_icms = @xml_nfe.css(path[:total_icms][:total_icms]).text.to_f
82
+ @invoice.total_icms_desonerado = @xml_nfe.css(path[:total_icms][:total_icms_desonerado]).text.to_f
83
+ @invoice.total_icms_fcp_uf_destino = @xml_nfe.css(path[:total_icms][:total_icms_fcp_uf_destino]).text.to_f
84
+ @invoice.total_icms_uf_destino = @xml_nfe.css(path[:total_icms][:total_icms_uf_destino]).text.to_f
85
+ @invoice.total_icms_uf_origem = @xml_nfe.css(path[:total_icms][:total_icms_uf_origem]).text.to_f
86
+ @invoice.total_icms_base_calculo_st = @xml_nfe.css(path[:total_icms][:total_icms_base_calculo_st]).text.to_f
87
+ @invoice.total_icms_st = @xml_nfe.css(path[:total_icms][:total_icms_st]).text.to_f
88
+ @invoice.total_produtos = @xml_nfe.css(path[:total_icms][:total_produtos]).text.to_f
89
+ @invoice.total_frete = @xml_nfe.css(path[:total_icms][:total_frete]).text.to_f
90
+ @invoice.total_seguro = @xml_nfe.css(path[:total_icms][:total_seguro]).text.to_f
91
+ @invoice.total_desconto = @xml_nfe.css(path[:total_icms][:total_desconto]).text.to_f
92
+ @invoice.total_imposto_importacao = @xml_nfe.css(path[:total_icms][:total_imposto_importacao]).text.to_f
93
+ @invoice.total_ipi = @xml_nfe.css(path[:total_icms][:total_ipi]).text.to_f
94
+ @invoice.total_pis = @xml_nfe.css(path[:total_icms][:total_pis]).text.to_f
95
+ @invoice.total_cofins = @xml_nfe.css(path[:total_icms][:total_cofins]).text.to_f
96
+ @invoice.total_outras_despesas = @xml_nfe.css(path[:total_icms][:total_outras_despesas]).text.to_f
97
+ @invoice.total_nf = @xml_nfe.css(path[:total_icms][:total_nf]).text.to_f
98
+ @invoice.total_tributos = @xml_nfe.css(path[:total_icms][:total_tributos]).text.to_f
99
+ end
100
+
101
+ def build_service_total_values!
102
+ @invoice.total_servicos = @xml_nfe.css(path[:total_issqn][:total_servicos]).text.to_f
103
+ @invoice.total_servicos_base_calculo = @xml_nfe.css(path[:total_issqn][:total_servicos_base_calculo]).text.to_f
104
+ @invoice.total_servicos_iss = @xml_nfe.css(path[:total_issqn][:total_servicos_iss]).text.to_f
105
+ @invoice.total_servicos_pis = @xml_nfe.css(path[:total_issqn][:total_servicos_pis]).text.to_f
106
+ @invoice.total_servicos_cofins = @xml_nfe.css(path[:total_issqn][:total_servicos_cofins]).text.to_f
107
+ @invoice.servicos_data_prestacao = parse_date( @xml_nfe.css(path[:total_issqn][:servicos_data_prestacao]).text )
108
+ @invoice.total_servicos_deducao = @xml_nfe.css(path[:total_issqn][:total_servicos_deducao]).text.to_f
109
+ @invoice.total_servicos_outras_retencoes = @xml_nfe.css(path[:total_issqn][:total_servicos_outras_retencoes]).text.to_f
110
+ @invoice.total_servicos_desconto_incondicionado = @xml_nfe.css(path[:total_issqn][:total_servicos_desconto_incondicionado]).text.to_f
111
+ @invoice.total_servicos_desconto_condicionado = @xml_nfe.css(path[:total_issqn][:total_servicos_desconto_condicionado]).text.to_f
112
+ @invoice.total_servicos_iss_retido = @xml_nfe.css(path[:total_issqn][:total_servicos_iss_retido]).text.to_f
113
+ @invoice.regime_tributario_servico = @xml_nfe.css(path[:total_issqn][:regime_tributario_servico]).text
114
+ end
115
+
116
+ def build_total_retencao!
117
+ @invoice.total_retencao_pis = @xml_nfe.css(path[:total_retencao][:total_retencao_pis]).text.to_f
118
+ @invoice.total_retencao_cofins = @xml_nfe.css(path[:total_retencao][:total_retencao_cofins]).text.to_f
119
+ @invoice.total_retencao_csll = @xml_nfe.css(path[:total_retencao][:total_retencao_csll]).text.to_f
120
+ @invoice.total_retencao_base_calculo_irrf = @xml_nfe.css(path[:total_retencao][:total_retencao_base_calculo_irrf]).text.to_f
121
+ @invoice.total_retencao_irrf = @xml_nfe.css(path[:total_retencao][:total_retencao_irrf]).text.to_f
122
+ @invoice.total_retencao_base_calculo_previdencia = @xml_nfe.css(path[:total_retencao][:total_retencao_base_calculo_previdencia]).text.to_f
123
+ @invoice.total_retencao_previdencia = @xml_nfe.css(path[:total_retencao][:total_retencao_previdencia]).text.to_f
124
+ end
125
+
126
+
127
+ def build_endereco_retirada!
128
+ if @xml_nfe.css(path[:endereco_retirada][:root]).present?
129
+ @invoice.endereco_retirada_cpf_cnpj = @xml_nfe.css(path[:endereco_retirada][:cnpj]).text
130
+ @invoice.endereco_retirada_cpf_cnpj = @xml_nfe.css(path[:endereco_retirada][:cpf]).text unless @invoice.endereco_retirada_cpf_cnpj.present?
131
+ @invoice.endereco_retirada = EnderecoRetiradaEntrega.new(@xml_nfe, path[:endereco_retirada])
132
+ end
133
+ end
134
+
135
+ def build_endereco_entrega!
136
+ if @xml_nfe.css(path[:endereco_entrega][:root]).present?
137
+ @invoice.endereco_entrega_cpf_cnpj = @xml_nfe.css(path[:endereco_entrega][:cnpj]).text
138
+ @invoice.endereco_entrega_cpf_cnpj = @xml_nfe.css(path[:endereco_entrega][:cpf]).text unless @invoice.endereco_entrega_cpf_cnpj.present?
139
+ @invoice.endereco_entrega = EnderecoRetiradaEntrega.new(@xml_nfe, path[:endereco_entrega])
140
+ end
141
+ end
142
+
143
+ def build_fatura!
144
+ if @xml_nfe.css(path[:fatura][:root]).present? || @xml_nfe.css(path[:fatura][:duplicatas][:root]).present?
145
+ @invoice.fatura = Fatura.new(@xml_nfe, path)
146
+ end
147
+ end
148
+
149
+ def build_pagamentos!
150
+ @xml_nfe.css(path[:pagamentos][:root]).each do |xml_pag|
151
+ @invoice.pagamentos << {
152
+ forma_pagamento: xml_pag.css(path[:pagamentos][:forma_pagamento]).text,
153
+ total: xml_pag.css(path[:pagamentos][:total]).text.to_f,
154
+ tipo_integracao: xml_pag.css(path[:pagamentos][:tipo_integracao]).text,
155
+ cartao_cnpj: xml_pag.css(path[:pagamentos][:cartao_cnpj]).text,
156
+ cartao_bandeira: xml_pag.css(path[:pagamentos][:cartao_bandeira]).text,
157
+ cartao_autorizacao: xml_pag.css(path[:pagamentos][:cartao_autorizacao]).text
158
+ }
159
+ end
160
+ end
161
+
162
+ def build_items!
163
+ @xml_nfe.css(path[:items][:root]).each do |xml_item|
164
+ @invoice.itens << Item.new(xml_item, path[:items])
165
+ end
166
+ end
167
+
168
+ def build_state_protocol_nfe!
169
+ @invoice.protocol = @xml.css( path[:protocol][:protocol] ).text
170
+ @invoice.digest_value = @xml.css( path[:protocol][:digest_value]).text
171
+ @invoice.processed_at = parse_time @xml.css( path[:protocol][:processed_at]).text
172
+ @invoice.status_code = @xml.css( path[:protocol][:status_code] ).text
173
+ @xml.css( path[:info_events][:root] ).each do |info_xml|
174
+ tipo_evento = info_xml.css( path[:info_events][:tipo_evento] ).text
175
+ if tipo_evento == '110111' # Cancelada
176
+ @invoice.situation = :canceled
177
+
178
+ @invoice.protocol = info_xml.css( path[:info_events][:protocol] ).text
179
+ @invoice.processed_at = parse_time info_xml.css( path[:info_events][:processed_at]).text
180
+ @invoice.status_code = info_xml.css( path[:info_events][:status_code] ).text
181
+ end
182
+ end
183
+ end
184
+
185
+ def parse_date value
186
+ Date.parse value
187
+ rescue
188
+ nil
189
+ end
190
+
191
+ def parse_time value
192
+ Time.parse(value)
193
+ rescue
194
+ nil
195
+ end
196
+
197
+ end
198
+ end
199
+ end
200
+ end
@@ -0,0 +1,79 @@
1
+ module BrNfe
2
+ module Product
3
+ module Reader
4
+ class Transporte
5
+ class << self
6
+ def new xml, path
7
+ @xml = xml
8
+ @path = path
9
+ @transporte = BrNfe::Product::Nfe::Transporte::Base.new
10
+ populate!
11
+ @transporte
12
+ end
13
+ private
14
+ def populate!
15
+ @transporte.modalidade_frete = @xml.css(@path[:transporte][:modalidade_frete]).text
16
+ return if @transporte.modalidade_frete == '9'
17
+ @transporte.retencao_valor_sevico = @xml.css(@path[:transporte][:retencao_valor_sevico]).text.to_f
18
+ @transporte.retencao_base_calculo_icms = @xml.css(@path[:transporte][:retencao_base_calculo_icms]).text.to_f
19
+ @transporte.retencao_aliquota = @xml.css(@path[:transporte][:retencao_aliquota]).text.to_f
20
+ @transporte.retencao_valor_icms = @xml.css(@path[:transporte][:retencao_valor_icms]).text.to_f
21
+ @transporte.retencao_cfop = @xml.css(@path[:transporte][:retencao_cfop]).text
22
+ @transporte.retencao_codigo_municipio = @xml.css(@path[:transporte][:retencao_codigo_municipio]).text
23
+ build_transportadora! if @xml.css(@path[:transporte][:transportadora][:root]).present?
24
+ build_veiculo! if @xml.css(@path[:transporte][:veiculo][:root]).present?
25
+ build_reboques! if @xml.css(@path[:transporte][:reboques][:root]).present?
26
+ build_volumes! if @xml.css(@path[:transporte][:volumes][:root]).present?
27
+ end
28
+
29
+ def build_transportadora!
30
+ @transporte.transportador = {
31
+ cpf_cnpj: @xml.css(@path[:transporte][:transportadora][:cpf_cnpj]).text,
32
+ razao_social: @xml.css(@path[:transporte][:transportadora][:razao_social]).text,
33
+ inscricao_estadual: @xml.css(@path[:transporte][:transportadora][:inscricao_estadual]).text,
34
+ endereco_descricao: @xml.css(@path[:transporte][:transportadora][:endereco_descricao]).text,
35
+ endereco_uf: @xml.css(@path[:transporte][:transportadora][:endereco_uf]).text,
36
+ endereco_nome_municipio: @xml.css(@path[:transporte][:transportadora][:endereco_nome_municipio]).text
37
+ }
38
+ end
39
+
40
+ def build_veiculo!
41
+ @transporte.veiculo = {
42
+ placa: @xml.css(@path[:transporte][:veiculo][:placa]).text,
43
+ uf: @xml.css(@path[:transporte][:veiculo][:uf]).text,
44
+ rntc: @xml.css(@path[:transporte][:veiculo][:rntc]).text
45
+ }
46
+ end
47
+
48
+ def build_reboques!
49
+ reboques = []
50
+ @xml.css(@path[:transporte][:reboques][:root]).each do |reboque_path|
51
+ reboques << {
52
+ placa: reboque_path.css(@path[:transporte][:reboques][:placa]).text,
53
+ uf: reboque_path.css(@path[:transporte][:reboques][:uf]).text,
54
+ rntc: reboque_path.css(@path[:transporte][:reboques][:rntc]).text
55
+ }
56
+ end
57
+ @transporte.reboques = reboques
58
+ end
59
+
60
+ def build_volumes!
61
+ volumes = []
62
+ @xml.css(@path[:transporte][:volumes][:root]).each do |vol_path|
63
+ volumes << {
64
+ quantidade: vol_path.css(@path[:transporte][:volumes][:quantidade]).text,
65
+ especie: vol_path.css(@path[:transporte][:volumes][:especie]).text,
66
+ marca: vol_path.css(@path[:transporte][:volumes][:marca]).text,
67
+ numercao: vol_path.css(@path[:transporte][:volumes][:numercao]).text,
68
+ peso_liquido: vol_path.css(@path[:transporte][:volumes][:peso_liquido]).text.to_f,
69
+ peso_bruto: vol_path.css(@path[:transporte][:volumes][:peso_bruto]).text.to_f,
70
+ lacres: vol_path.css(@path[:transporte][:volumes][:lacres]).map{|e| e.text},
71
+ }
72
+ end
73
+ @transporte.volumes = volumes
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end