br_nfe 2.1.1 → 2.2.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 (495) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/Gemfile +1 -0
  4. data/Gemfile.lock +12 -2
  5. data/README.markdown +3 -1
  6. data/Rakefile +20 -1
  7. data/lib/br_nfe/active_model/associations.rb +11 -0
  8. data/lib/br_nfe/active_model/has_many.rb +65 -0
  9. data/lib/br_nfe/active_model/has_one.rb +57 -0
  10. data/lib/br_nfe/active_model_base.rb +38 -1
  11. data/lib/br_nfe/base.rb +9 -0
  12. data/lib/br_nfe/calculos/fatores_de_multiplicacao.rb +67 -0
  13. data/lib/br_nfe/calculos/modulo11.rb +54 -0
  14. data/lib/br_nfe/calculos/modulo11_fator_de2a9.rb +83 -0
  15. data/lib/br_nfe/calculos/modulo11_fator_de2a9_resto_zero.rb +29 -0
  16. data/lib/br_nfe/constants.rb +46 -1
  17. data/lib/br_nfe/endereco.rb +6 -2
  18. data/lib/br_nfe/helper/cpf_cnpj.rb +8 -1
  19. data/lib/br_nfe/person.rb +32 -3
  20. data/lib/br_nfe/product/destinatario.rb +45 -0
  21. data/lib/br_nfe/product/emitente.rb +14 -1
  22. data/lib/br_nfe/product/evento/base.rb +146 -0
  23. data/lib/br_nfe/product/evento/cancelamento.rb +46 -0
  24. data/lib/br_nfe/product/gateway/base.rb +16 -43
  25. data/lib/br_nfe/product/gateway/web_service_am.rb +140 -0
  26. data/lib/br_nfe/product/gateway/web_service_ba.rb +140 -0
  27. data/lib/br_nfe/product/gateway/web_service_ce.rb +162 -0
  28. data/lib/br_nfe/product/gateway/web_service_go.rb +140 -0
  29. data/lib/br_nfe/product/gateway/web_service_mg.rb +140 -0
  30. data/lib/br_nfe/product/gateway/web_service_ms.rb +140 -0
  31. data/lib/br_nfe/product/gateway/web_service_mt.rb +140 -0
  32. data/lib/br_nfe/product/gateway/web_service_pe.rb +140 -0
  33. data/lib/br_nfe/product/gateway/web_service_pr.rb +140 -0
  34. data/lib/br_nfe/product/gateway/web_service_rs.rb +140 -0
  35. data/lib/br_nfe/product/gateway/web_service_sp.rb +140 -0
  36. data/lib/br_nfe/product/gateway/web_service_svan.rb +162 -0
  37. data/lib/br_nfe/product/gateway/web_service_svc_an.rb +131 -0
  38. data/lib/br_nfe/product/gateway/web_service_svc_rs.rb +20 -0
  39. data/lib/br_nfe/product/gateway/web_service_svrs.rb +111 -10
  40. data/lib/br_nfe/product/nf_xml_value.rb +278 -0
  41. data/lib/br_nfe/product/nfe/adicao_importacao.rb +76 -0
  42. data/lib/br_nfe/product/nfe/cobranca/duplicata.rb +44 -0
  43. data/lib/br_nfe/product/nfe/cobranca/fatura.rb +64 -0
  44. data/lib/br_nfe/product/nfe/cobranca/pagamento.rb +99 -0
  45. data/lib/br_nfe/product/nfe/declaracao_importacao.rb +221 -0
  46. data/lib/br_nfe/product/nfe/detalhe_exportacao.rb +89 -0
  47. data/lib/br_nfe/product/nfe/item.rb +678 -0
  48. data/lib/br_nfe/product/nfe/item_tax/cofins.rb +138 -0
  49. data/lib/br_nfe/product/nfe/item_tax/cofins_st.rb +68 -0
  50. data/lib/br_nfe/product/nfe/item_tax/icms.rb +593 -0
  51. data/lib/br_nfe/product/nfe/item_tax/icms_uf_destino.rb +169 -0
  52. data/lib/br_nfe/product/nfe/item_tax/importacao.rb +62 -0
  53. data/lib/br_nfe/product/nfe/item_tax/ipi.rb +179 -0
  54. data/lib/br_nfe/product/nfe/item_tax/issqn.rb +256 -0
  55. data/lib/br_nfe/product/nfe/item_tax/pis.rb +138 -0
  56. data/lib/br_nfe/product/nfe/item_tax/pis_st.rb +68 -0
  57. data/lib/br_nfe/product/nfe/processo_referencia.rb +48 -0
  58. data/lib/br_nfe/product/nfe/transporte/base.rb +264 -0
  59. data/lib/br_nfe/product/nfe/transporte/transportador.rb +15 -0
  60. data/lib/br_nfe/product/nfe/transporte/veiculo.rb +53 -0
  61. data/lib/br_nfe/product/nfe/transporte/volume.rb +89 -0
  62. data/lib/br_nfe/product/nota_fiscal.rb +1173 -0
  63. data/lib/br_nfe/product/operation/base.rb +255 -0
  64. data/lib/br_nfe/product/operation/nfe_autorizacao.rb +118 -0
  65. data/lib/br_nfe/product/operation/nfe_consulta_protocolo.rb +61 -0
  66. data/lib/br_nfe/product/operation/nfe_download_nf.rb +86 -0
  67. data/lib/br_nfe/product/operation/nfe_inutilizacao.rb +168 -0
  68. data/lib/br_nfe/product/operation/nfe_recepcao_evento.rb +70 -0
  69. data/lib/br_nfe/product/operation/nfe_ret_autorizacao.rb +63 -0
  70. data/lib/br_nfe/product/operation/nfe_status_servico.rb +46 -0
  71. data/lib/br_nfe/product/response/base.rb +97 -0
  72. data/lib/br_nfe/product/response/build/base.rb +287 -0
  73. data/lib/br_nfe/product/response/build/nfe_autorizacao.rb +102 -0
  74. data/lib/br_nfe/product/response/build/nfe_consulta_protocolo.rb +133 -0
  75. data/lib/br_nfe/product/response/build/nfe_inutilizacao.rb +53 -0
  76. data/lib/br_nfe/product/response/build/nfe_ret_autorizacao.rb +65 -0
  77. data/lib/br_nfe/product/response/build/nfe_status_servico.rb +43 -0
  78. data/lib/br_nfe/product/response/event.rb +89 -0
  79. data/lib/br_nfe/product/response/nfe_autorizacao.rb +12 -0
  80. data/lib/br_nfe/product/response/nfe_consulta_protocolo.rb +13 -0
  81. data/lib/br_nfe/product/response/nfe_inutilizacao.rb +89 -0
  82. data/lib/br_nfe/product/response/nfe_ret_autorizacao.rb +9 -0
  83. data/lib/br_nfe/product/response/nfe_status_servico.rb +31 -0
  84. data/lib/br_nfe/product/xml/_signed_info_sh1.xml.slim +9 -0
  85. data/lib/br_nfe/product/xml/_tc_cpf_cnpj.xml.slim +7 -0
  86. data/lib/br_nfe/product/xml/signature_sh1.xml.slim +12 -0
  87. data/lib/br_nfe/product/xml/v1_00/evento/infEventoCancelamento.xml.slim +19 -0
  88. data/lib/br_nfe/product/xml/v1_00/root/NfeDownloadNf.xml.slim +5 -0
  89. data/lib/br_nfe/product/xml/v1_00/root/NfeRecepcaoEvento.xml.slim +7 -0
  90. data/lib/br_nfe/product/xml/v2_00/_tc_endereco.xml.slim +19 -0
  91. data/lib/br_nfe/product/xml/v2_00/_tc_infNFe.xml.slim +39 -0
  92. data/lib/br_nfe/product/xml/v2_00/infInut.xml.slim +12 -0
  93. data/lib/br_nfe/product/xml/v2_00/infNFe/NFe.xml.slim +4 -0
  94. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_cobr.xml.slim +19 -0
  95. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_dest.xml.slim +14 -0
  96. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_det.xml.slim +7 -0
  97. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_emit.xml.slim +19 -0
  98. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_entrega.xml.slim +11 -0
  99. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_exporta.xml.slim +2 -0
  100. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_ide.xml.slim +24 -0
  101. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_infAdic.xml.slim +13 -0
  102. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_retirada.xml.slim +11 -0
  103. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_total.xml.slim +50 -0
  104. data/lib/br_nfe/product/xml/v2_00/infNFe/_tc_transp.xml.slim +35 -0
  105. data/lib/br_nfe/product/xml/v2_00/infNFe/det/_tc_imposto.xml.slim +31 -0
  106. data/lib/br_nfe/product/xml/v2_00/infNFe/det/_tc_prod.xml.slim +37 -0
  107. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS00.xml.slim +6 -0
  108. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS10.xml.slim +16 -0
  109. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS101.xml.slim +4 -0
  110. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS102.xml.slim +3 -0
  111. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS20.xml.slim +6 -0
  112. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS201.xml.slim +15 -0
  113. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS202.xml.slim +14 -0
  114. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS30.xml.slim +12 -0
  115. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS40.xml.slim +7 -0
  116. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS500.xml.slim +6 -0
  117. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS51.xml.slim +13 -0
  118. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS60.xml.slim +5 -0
  119. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS70.xml.slim +18 -0
  120. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS90.xml.slim +21 -0
  121. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/ICMS/_tc_ICMS900.xml.slim +25 -0
  122. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_COFINS.xml.slim +26 -0
  123. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_COFINS_ST.xml.slim +7 -0
  124. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_ICMS.xml.slim +45 -0
  125. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_II.xml.slim +4 -0
  126. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_IPI.xml.slim +30 -0
  127. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_PIS.xml.slim +26 -0
  128. data/lib/br_nfe/product/xml/v2_00/infNFe/det/imposto/_tc_PIS_ST.xml.slim +7 -0
  129. data/lib/br_nfe/product/xml/v2_00/infNFe/det/prod/_tc_di.xml.slim +13 -0
  130. data/lib/br_nfe/product/xml/v2_00/infNFe/transp/_tc_retTransp.xml.slim +6 -0
  131. data/lib/br_nfe/product/xml/v2_00/infNFe/transp/_tc_transporta.xml.slim +17 -0
  132. data/lib/br_nfe/product/xml/v2_00/infNFe/transp/_tc_vol.xml.slim +15 -0
  133. data/lib/br_nfe/product/xml/v2_00/infNFe.xml.slim +3 -0
  134. data/lib/br_nfe/product/xml/v2_00/root/NfeAutorizacao.xml.slim +5 -0
  135. data/lib/br_nfe/product/xml/v2_00/root/NfeInutilizacao.xml.slim +4 -0
  136. data/lib/br_nfe/product/xml/v2_00/root/NfeRetAutorizacao.xml.slim +3 -0
  137. data/lib/br_nfe/product/xml/v2_00/root/NfeStatusServico.xml.slim +4 -0
  138. data/lib/br_nfe/product/xml/v2_01/root/NfeConsultaProtocolo.xml.slim +4 -0
  139. data/lib/br_nfe/product/xml/v3_10/_tc_infNFe.xml.slim +44 -0
  140. data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_dest.xml.slim +25 -0
  141. data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_det.xml.slim +14 -0
  142. data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_exporta.xml.slim +4 -0
  143. data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_ide.xml.slim +26 -0
  144. data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_pag.xml.slim +7 -0
  145. data/lib/br_nfe/product/xml/v3_10/infNFe/_tc_total.xml.slim +78 -0
  146. data/lib/br_nfe/product/xml/v3_10/infNFe/det/_tc_imposto.xml.slim +37 -0
  147. data/lib/br_nfe/product/xml/v3_10/infNFe/det/_tc_prod.xml.slim +48 -0
  148. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS20.xml.slim +12 -0
  149. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS30.xml.slim +17 -0
  150. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS40.xml.slim +7 -0
  151. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS51.xml.slim +19 -0
  152. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS70.xml.slim +23 -0
  153. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/ICMS/_tc_ICMS90.xml.slim +26 -0
  154. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/_tc_ICMSUFDest.xml.slim +8 -0
  155. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/_tc_ISSQN.xml.slim +35 -0
  156. data/lib/br_nfe/product/xml/v3_10/infNFe/det/prod/_tc_det_export.xml.slim +8 -0
  157. data/lib/br_nfe/product/xml/v3_10/infNFe/det/prod/_tc_di.xml.slim +28 -0
  158. data/lib/br_nfe/product/xml/v3_10/root/NfeAutorizacao.xml.slim +6 -0
  159. data/lib/br_nfe/service/base.rb +1 -105
  160. data/lib/br_nfe/service/betha/v1/cancela_nfse.rb +1 -1
  161. data/lib/br_nfe/service/response/default.rb +1 -1
  162. data/lib/br_nfe/service/simpliss/v1/base.rb +2 -0
  163. data/lib/br_nfe/version.rb +2 -2
  164. data/lib/br_nfe.rb +180 -22
  165. data/lib/config/locales/br_nfe/en/product/nfe/cobranca/fatura.yml +6 -0
  166. data/lib/config/locales/br_nfe/en/product/nfe/declaracao_importacao.yml +10 -0
  167. data/lib/config/locales/br_nfe/en/product/nfe/item.yml +20 -0
  168. data/lib/config/locales/br_nfe/en/product/nfe/item_tax/icms_uf_destino.yml +8 -0
  169. data/lib/config/locales/br_nfe/en/product/nfe/transporte/base.yml +9 -0
  170. data/lib/config/locales/br_nfe/en/product/nota_fiscal.yml +21 -0
  171. data/lib/config/locales/br_nfe/en/product/operation/nfe_autorizacao.yml +10 -0
  172. data/lib/config/locales/br_nfe/en/product/operation/nfe_recepcao_evento.yml +6 -0
  173. data/lib/config/locales/br_nfe/pt-BR/product/nfe/cobranca/fatura.yml +6 -0
  174. data/lib/config/locales/br_nfe/pt-BR/product/nfe/declaracao_importacao.yml +10 -0
  175. data/lib/config/locales/br_nfe/pt-BR/product/nfe/item.yml +20 -0
  176. data/lib/config/locales/br_nfe/pt-BR/product/nfe/item_tax/icms_uf_destino.yml +8 -0
  177. data/lib/config/locales/br_nfe/pt-BR/product/nfe/transporte/base.yml +9 -0
  178. data/lib/config/locales/br_nfe/pt-BR/product/nota_fiscal.yml +21 -0
  179. data/lib/config/locales/br_nfe/pt-BR/product/operation/nfe_autorizacao.yml +10 -0
  180. data/lib/config/locales/br_nfe/pt-BR/product/operation/nfe_recepcao_evento.yml +6 -0
  181. data/test/br_nfe/association/have_destinatario_test.rb +8 -8
  182. data/test/br_nfe/association/have_emitente_test.rb +6 -6
  183. data/test/br_nfe/base_test.rb +15 -4
  184. data/test/br_nfe/endereco_test.rb +15 -0
  185. data/test/br_nfe/person_test.rb +55 -6
  186. data/test/br_nfe/product/destinatario_test.rb +26 -0
  187. data/test/br_nfe/product/emitente_test.rb +1 -2
  188. data/test/br_nfe/product/evento/base_test.rb +58 -0
  189. data/test/br_nfe/product/evento/cancelamento_test.rb +32 -0
  190. data/test/br_nfe/product/gateway/web_service_am_test.rb +242 -0
  191. data/test/br_nfe/product/gateway/web_service_ba_test.rb +242 -0
  192. data/test/br_nfe/product/gateway/web_service_ce_test.rb +242 -0
  193. data/test/br_nfe/product/gateway/web_service_go_test.rb +242 -0
  194. data/test/br_nfe/product/gateway/web_service_mg_test.rb +242 -0
  195. data/test/br_nfe/product/gateway/web_service_ms_test.rb +242 -0
  196. data/test/br_nfe/product/gateway/web_service_mt_test.rb +408 -0
  197. data/test/br_nfe/product/gateway/web_service_pe_test.rb +408 -0
  198. data/test/br_nfe/product/gateway/web_service_pr_test.rb +408 -0
  199. data/test/br_nfe/product/gateway/web_service_rs_test.rb +407 -0
  200. data/test/br_nfe/product/gateway/web_service_sp_test.rb +408 -0
  201. data/test/br_nfe/product/gateway/web_service_svan_test.rb +242 -0
  202. data/test/br_nfe/product/gateway/web_service_svc_an_test.rb +185 -0
  203. data/test/br_nfe/product/gateway/web_service_svc_rs_test.rb +185 -0
  204. data/test/br_nfe/product/gateway/web_service_svrs_test.rb +208 -2
  205. data/test/br_nfe/product/nfe/adicao_importacao_test.rb +19 -0
  206. data/test/br_nfe/product/nfe/cobranca/duplicata_test.rb +19 -0
  207. data/test/br_nfe/product/nfe/cobranca/fatura_test.rb +32 -0
  208. data/test/br_nfe/product/nfe/cobranca/pagamento_test.rb +105 -0
  209. data/test/br_nfe/product/nfe/declaracao_importacao_test.rb +116 -0
  210. data/test/br_nfe/product/nfe/detalhe_exportacao_test.rb +97 -0
  211. data/test/br_nfe/product/nfe/item_tax/cofins_st_test.rb +22 -0
  212. data/test/br_nfe/product/nfe/item_tax/cofins_test.rb +113 -0
  213. data/test/br_nfe/product/nfe/item_tax/icms_test.rb +1011 -0
  214. data/test/br_nfe/product/nfe/item_tax/icms_uf_destino_test.rb +99 -0
  215. data/test/br_nfe/product/nfe/item_tax/importacao_test.rb +23 -0
  216. data/test/br_nfe/product/nfe/item_tax/ipi_test.rb +160 -0
  217. data/test/br_nfe/product/nfe/item_tax/issqn_test.rb +84 -0
  218. data/test/br_nfe/product/nfe/item_tax/pis_st_test.rb +22 -0
  219. data/test/br_nfe/product/nfe/item_tax/pis_test.rb +113 -0
  220. data/test/br_nfe/product/nfe/item_test.rb +381 -0
  221. data/test/br_nfe/product/nfe/processo_referencia_test.rb +30 -0
  222. data/test/br_nfe/product/nfe/transporte/base_test.rb +182 -0
  223. data/test/br_nfe/product/nfe/transporte/transportador_test.rb +13 -0
  224. data/test/br_nfe/product/nfe/transporte/veiculo_test.rb +13 -0
  225. data/test/br_nfe/product/nfe/transporte/volume_test.rb +42 -0
  226. data/test/br_nfe/product/nota_fiscal_test.rb +662 -0
  227. data/test/br_nfe/product/operation/base_test.rb +538 -0
  228. data/test/br_nfe/product/operation/nfe_autorizacao_test.rb +378 -0
  229. data/test/br_nfe/product/operation/nfe_consulta_protocolo_test.rb +349 -0
  230. data/test/br_nfe/product/operation/nfe_download_nf_test.rb +93 -0
  231. data/test/br_nfe/product/operation/nfe_inutilizacao_test.rb +210 -0
  232. data/test/br_nfe/product/operation/nfe_recepcao_evento_test.rb +84 -0
  233. data/test/br_nfe/product/operation/nfe_ret_autorizacao_test.rb +309 -0
  234. data/test/br_nfe/product/operation/nfe_status_servico_test.rb +122 -0
  235. data/test/br_nfe/product/response/base_test.rb +75 -0
  236. data/test/br_nfe/product/response/build/base_test.rb +34 -0
  237. data/test/br_nfe/product/response/nfe_ret_autorizacao_test.rb +14 -0
  238. data/test/br_nfe/service/association/have_intermediario_test.rb +10 -10
  239. data/test/br_nfe/service/base_test.rb +9 -206
  240. data/test/br_nfe/service/betha/v1/cancela_nfse_test.rb +8 -6
  241. data/test/br_nfe/service/betha/v1/consulta_lote_rps_test.rb +6 -3
  242. data/test/br_nfe/service/betha/v1/consulta_nfs_por_rps_test.rb +6 -3
  243. data/test/br_nfe/service/betha/v1/consulta_nfse_test.rb +7 -4
  244. data/test/br_nfe/service/betha/v1/consulta_situacao_lote_rps_test.rb +12 -9
  245. data/test/br_nfe/service/betha/v1/recepcao_lote_rps_test.rb +6 -3
  246. data/test/br_nfe/service/rps_test.rb +2 -2
  247. data/test/br_nfe/service/simpliss/v1/cancela_nfse_test.rb +6 -3
  248. data/test/br_nfe/service/simpliss/v1/consulta_lote_rps_test.rb +7 -4
  249. data/test/br_nfe/service/simpliss/v1/consulta_nfs_por_rps_test.rb +7 -4
  250. data/test/br_nfe/service/simpliss/v1/consulta_nfse_test.rb +8 -5
  251. data/test/br_nfe/service/simpliss/v1/consulta_situacao_lote_rps_test.rb +9 -6
  252. data/test/br_nfe/service/simpliss/v1/recepcao_lote_rps_test.rb +6 -3
  253. data/test/br_nfe/service/thema/v1/cancela_nfse_test.rb +6 -3
  254. data/test/br_nfe/service/thema/v1/consulta_lote_rps_test.rb +6 -3
  255. data/test/br_nfe/service/thema/v1/consulta_nfs_por_rps_test.rb +6 -3
  256. data/test/br_nfe/service/thema/v1/consulta_nfse_test.rb +8 -5
  257. data/test/br_nfe/service/thema/v1/consulta_situacao_lote_rps_test.rb +9 -6
  258. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_limitado_test.rb +6 -3
  259. data/test/br_nfe/service/thema/v1/recepcao_lote_rps_test.rb +6 -3
  260. data/test/factories/person.rb +1 -1
  261. data/test/factories/product/destinatario.rb +11 -0
  262. data/test/factories/product/emitente.rb +1 -1
  263. data/test/factories/product/evento/base.rb +9 -0
  264. data/test/factories/product/evento/cancelamento.rb +10 -0
  265. data/test/factories/product/gateway/web_service_am.rb +5 -0
  266. data/test/factories/product/gateway/web_service_ba.rb +5 -0
  267. data/test/factories/product/nfe/adicao_importacao.rb +7 -0
  268. data/test/factories/product/nfe/cobranca/duplicata.rb +7 -0
  269. data/test/factories/product/nfe/cobranca/fatura.rb +8 -0
  270. data/test/factories/product/nfe/cobranca/pagamento.rb +9 -0
  271. data/test/factories/product/nfe/declaracao_importacao.rb +10 -0
  272. data/test/factories/product/nfe/detalhe_exportacao.rb +5 -0
  273. data/test/factories/product/nfe/item.rb +24 -0
  274. data/test/factories/product/nfe/item_tax/cofins.rb +5 -0
  275. data/test/factories/product/nfe/item_tax/cofins_st.rb +5 -0
  276. data/test/factories/product/nfe/item_tax/icms.rb +9 -0
  277. data/test/factories/product/nfe/item_tax/icms_uf_destino.rb +11 -0
  278. data/test/factories/product/nfe/item_tax/importacao.rb +8 -0
  279. data/test/factories/product/nfe/item_tax/ipi.rb +6 -0
  280. data/test/factories/product/nfe/item_tax/issqn.rb +9 -0
  281. data/test/factories/product/nfe/item_tax/pis.rb +5 -0
  282. data/test/factories/product/nfe/item_tax/pis_st.rb +5 -0
  283. data/test/factories/product/nfe/processo_referencia.rb +6 -0
  284. data/test/factories/product/nfe/transporte/base.rb +5 -0
  285. data/test/factories/product/nfe/transporte/transportador.rb +7 -0
  286. data/test/factories/product/nfe/transporte/veiculo.rb +7 -0
  287. data/test/factories/product/nfe/transporte/volume.rb +5 -0
  288. data/test/factories/product/nota_fiscal.rb +22 -0
  289. data/test/factories/product/{base.rb → operation/base.rb} +1 -1
  290. data/test/factories/product/operation/nfe_autorizacao.rb +590 -0
  291. data/test/factories/product/operation/nfe_consulta_protocolo.rb +13 -0
  292. data/test/factories/product/operation/nfe_download_nf.rb +15 -0
  293. data/test/factories/product/operation/nfe_inutilizacao.rb +19 -0
  294. data/test/factories/product/operation/nfe_recepcao_evento.rb +14 -0
  295. data/test/factories/product/operation/nfe_ret_autorizacao.rb +13 -0
  296. data/test/factories/product/{consulta_status_servico.rb → operation/nfe_status_servico.rb} +1 -1
  297. data/test/factories/product/response/base.rb +12 -0
  298. data/test/factories/product/response/build/base.rb +6 -0
  299. data/test/factories/product/response/nfe_ret_autorizacao.rb +13 -0
  300. data/test/factories/service/emitente.rb +1 -1
  301. data/test/fixtures/product/operation/nfe_autorizacao/nfe_signed.xml +1 -0
  302. data/test/fixtures/product/response/v3.10/nfe_autorizacao/async_fail.xml +21 -0
  303. data/test/fixtures/product/response/v3.10/nfe_autorizacao/async_success.xml +25 -0
  304. data/test/fixtures/product/response/v3.10/nfe_autorizacao/nfe/with_proc.xml +1 -0
  305. data/test/fixtures/product/response/v3.10/nfe_autorizacao/nfe/without_proc.xml +1 -0
  306. data/test/fixtures/product/response/v3.10/nfe_autorizacao/original_xml.xml +1 -0
  307. data/test/fixtures/product/response/v3.10/nfe_autorizacao/sync_fail.xml +32 -0
  308. data/test/fixtures/product/response/v3.10/nfe_autorizacao/sync_success.xml +33 -0
  309. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/event_1.xml +1 -0
  310. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/event_2.xml +1 -0
  311. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/event_3.xml +1 -0
  312. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/event_cancel.xml +1 -0
  313. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/event_xml/one_event.xml +1 -0
  314. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/fail.xml +22 -0
  315. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/nfe_original/with_proc.xml +1 -0
  316. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/nfe_original/without_proc.xml +1 -0
  317. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/success_many_with_cancel.xml +198 -0
  318. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/success_many_without_cancel.xml +199 -0
  319. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/success_one.xml +89 -0
  320. data/test/fixtures/product/response/v3.10/nfe_consulta_protocolo/success_without.xml +34 -0
  321. data/test/fixtures/product/response/v3.10/nfe_inutilizacao/fail.xml +29 -0
  322. data/test/fixtures/product/response/v3.10/nfe_inutilizacao/success.xml +30 -0
  323. data/test/fixtures/product/response/v3.10/nfe_recepcao_evento/cancelamento/fail.xml +34 -0
  324. data/test/fixtures/product/response/v3.10/nfe_recepcao_evento/cancelamento/success.xml +36 -0
  325. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_fail.xml +22 -0
  326. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_one_invoice_fail.xml +33 -0
  327. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_one_invoice_fail_and_one_ok.xml +46 -0
  328. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_one_invoice_ok.xml +34 -0
  329. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_two_invoice_fail.xml +46 -0
  330. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/lot_ok_two_invoice_ok.xml +46 -0
  331. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/nfe/nf_2_with_protocol.xml +1 -0
  332. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/nfe/nf_2_without_protocol.xml +1 -0
  333. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/nfe/nf_3_with_protocol.xml +1 -0
  334. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/nfe/nf_3_without_protocol.xml +1 -0
  335. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/original_xml/lot.xml +2 -0
  336. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/original_xml/nfe.xml +2 -0
  337. data/test/fixtures/product/response/v3.10/nfe_ret_autorizacao/original_xml/nfeProc.xml +4 -0
  338. data/test/fixtures/product/response/v3.10/nfe_status_servico/fail.xml +23 -0
  339. data/test/fixtures/product/response/v3.10/nfe_status_servico/success.xml +22 -0
  340. data/test/fixtures/product/schemas/CCe_v1.00.xsd +11 -0
  341. data/test/fixtures/product/schemas/EPEC_v1.00.xsd +9 -0
  342. data/test/fixtures/product/schemas/LeiauteCadastroEmissorDFe_v1.01.xsd +234 -0
  343. data/test/fixtures/product/schemas/SuframaInternaliza_v1.00.xsd +9 -0
  344. data/test/fixtures/product/schemas/SuframaVistoria_v1.00.xsd +9 -0
  345. data/test/fixtures/product/schemas/atuCadEmiDFe_v1.01.xsd +9 -0
  346. data/test/fixtures/product/schemas/cabecMsg_v1.02.xsd +29 -0
  347. data/test/fixtures/product/schemas/cadEmiDFe_v1.01.xsd +9 -0
  348. data/test/fixtures/product/schemas/cancNFe_v2.00.xsd +9 -0
  349. data/test/fixtures/product/schemas/confRecebto_v1.00.xsd +9 -0
  350. data/test/fixtures/product/schemas/consCad_v2.00.xsd +9 -0
  351. data/test/fixtures/product/schemas/consDPEC_v1.01.xsd +9 -0
  352. data/test/fixtures/product/schemas/consNFeDest_v1.01.xsd +10 -0
  353. data/test/fixtures/product/schemas/consReciNFe_v2.00.xsd +9 -0
  354. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/consReciNFe_v3.10.xsd +8 -8
  355. data/test/fixtures/product/schemas/consSitNFe_v2.01.xsd +10 -0
  356. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/consSitNFe_v3.10.xsd +8 -8
  357. data/test/fixtures/product/schemas/consStatServ_v2.00.xsd +9 -0
  358. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/consStatServ_v3.10.xsd +8 -8
  359. data/test/fixtures/product/schemas/distDFeInt_v1.00.xsd +71 -0
  360. data/test/fixtures/product/schemas/downloadNFe_v1.00.xsd +10 -0
  361. data/test/fixtures/product/schemas/e110110_v1.00.xsd +58 -0
  362. data/test/fixtures/product/schemas/e110111_v1.00.xsd +42 -0
  363. data/test/fixtures/product/schemas/e110140_v1.00.xsd +124 -0
  364. data/test/fixtures/product/schemas/e111500_v1.00.xsd +69 -0
  365. data/test/fixtures/product/schemas/e111501_v1.00.xsd +69 -0
  366. data/test/fixtures/product/schemas/e111502_v1.00.xsd +50 -0
  367. data/test/fixtures/product/schemas/e111503_v1.00.xsd +50 -0
  368. data/test/fixtures/product/schemas/e210200_v1.00.xsd +32 -0
  369. data/test/fixtures/product/schemas/e210210_v1.00.xsd +32 -0
  370. data/test/fixtures/product/schemas/e210220_v1.00.xsd +45 -0
  371. data/test/fixtures/product/schemas/e210240_v1.00.xsd +44 -0
  372. data/test/fixtures/product/schemas/e411500_v1.00.xsd +134 -0
  373. data/test/fixtures/product/schemas/e411501_v1.00.xsd +134 -0
  374. data/test/fixtures/product/schemas/e411502_v1.00.xsd +95 -0
  375. data/test/fixtures/product/schemas/e411503_v1.00.xsd +95 -0
  376. data/test/fixtures/product/schemas/e990900_v1.00.xsd +87 -0
  377. data/test/fixtures/product/schemas/e990910_v1.00.xsd +81 -0
  378. data/test/fixtures/product/schemas/envCCe_v1.00.xsd +10 -0
  379. data/test/fixtures/product/schemas/envCancelPProrrogNFe_v1.0.xsd +50 -0
  380. data/test/fixtures/product/schemas/envConfRecebto_v1.00.xsd +9 -0
  381. data/test/fixtures/product/schemas/envDPEC_v1.01.xsd +9 -0
  382. data/test/fixtures/product/schemas/envEPEC_v1.00.xsd +9 -0
  383. data/test/fixtures/product/schemas/envEventoCancNFe_v1.00.xsd +9 -0
  384. data/test/fixtures/product/schemas/envEvento_v1.00.xsd +9 -0
  385. data/test/fixtures/product/schemas/envFiscoNfe_v1.0.xsd +179 -0
  386. data/test/fixtures/product/schemas/envPProrrogNFe_v1.0.xsd +65 -0
  387. data/test/fixtures/product/schemas/envRemIndus_v1.00.xsd +9 -0
  388. data/test/fixtures/product/schemas/envSuframaInternaliza_v1.00.xsd +10 -0
  389. data/test/fixtures/product/schemas/envSuframaVistoria_v1.00.xsd +10 -0
  390. data/test/fixtures/product/schemas/enviNFe_v2.00.xsd +9 -0
  391. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/enviNFe_v3.10.xsd +8 -8
  392. data/test/fixtures/product/schemas/eventoCancNFe_v1.00.xsd +9 -0
  393. data/test/fixtures/product/schemas/eventoEPEC_v0.01.xsd +267 -0
  394. data/test/fixtures/product/schemas/eventoEPEC_v1.00.xsd +267 -0
  395. data/test/fixtures/product/schemas/eventoRemIndus_v1.00.xsd +9 -0
  396. data/test/fixtures/product/schemas/inutNFe_v2.00.xsd +9 -0
  397. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/inutNFe_v3.10.xsd +8 -8
  398. data/test/fixtures/product/schemas/leiauteCCe_v1.00.xsd +418 -0
  399. data/test/fixtures/product/schemas/leiauteCancNFe_v2.00.xsd +143 -0
  400. data/test/fixtures/product/schemas/leiauteConfRecebto_v1.00.xsd +406 -0
  401. data/test/fixtures/product/schemas/leiauteConsNFeDest_v1.01.xsd +483 -0
  402. data/test/fixtures/product/schemas/leiauteConsSitNFe_v2.01.xsd +548 -0
  403. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/leiauteConsSitNFe_v3.10.xsd +502 -502
  404. data/test/fixtures/product/schemas/leiauteConsStatServ_v2.00.xsd +98 -0
  405. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/leiauteConsStatServ_v3.10.xsd +97 -97
  406. data/test/fixtures/product/schemas/leiauteConsultaCadastro_v1.01.xsd +355 -0
  407. data/test/fixtures/product/schemas/leiauteConsultaCadastro_v2.00.xsd +404 -0
  408. data/test/fixtures/product/schemas/leiauteDPEC_v1.01.xsd +464 -0
  409. data/test/fixtures/product/schemas/leiauteDownloadNFe_v1.00.xsd +149 -0
  410. data/test/fixtures/product/schemas/leiauteEPEC_v1.00.xsd +459 -0
  411. data/test/fixtures/product/schemas/leiauteEventoCancNFe_v1.00.xsd +394 -0
  412. data/test/fixtures/product/schemas/leiauteEvento_v1.00.xsd +373 -0
  413. data/test/fixtures/product/schemas/leiauteInutNFe_v2.00.xsd +193 -0
  414. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/leiauteInutNFe_v3.10.xsd +192 -192
  415. data/test/fixtures/product/schemas/leiauteNFe_v2.00.xsd +6661 -0
  416. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/leiauteNFe_v3.10.xsd +6060 -6060
  417. data/test/fixtures/product/schemas/leiauteRemIndus_v1.00.xsd +382 -0
  418. data/test/fixtures/product/schemas/leiauteSRE_v1.00.xsd +372 -0
  419. data/test/fixtures/product/schemas/leiauteSuframaInternaliza_v1.00.xsd +642 -0
  420. data/test/fixtures/product/schemas/leiauteSuframaVistoria_v1.00.xsd +648 -0
  421. data/test/fixtures/product/schemas/nfe_v2.00.xsd +9 -0
  422. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/nfe_v3.10.xsd +8 -8
  423. data/test/fixtures/product/schemas/procCCeNFe_v1.00.xsd +10 -0
  424. data/test/fixtures/product/schemas/procCancNFe_v2.00.xsd +9 -0
  425. data/test/fixtures/product/schemas/procConfRecebtoNFe_v1.00.xsd +9 -0
  426. data/test/fixtures/product/schemas/procEPEC_v1.00.xsd +9 -0
  427. data/test/fixtures/product/schemas/procEventoCancNFe_v1.00.xsd +9 -0
  428. data/test/fixtures/product/schemas/procEventoNFe_v1.00.xsd +9 -0
  429. data/test/fixtures/product/schemas/procEventoNFe_v99.99.xsd +37 -0
  430. data/test/fixtures/product/schemas/procInutNFe_v2.00.xsd +9 -0
  431. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/procInutNFe_v3.10.xsd +8 -8
  432. data/test/fixtures/product/schemas/procNFe_v2.00.xsd +9 -0
  433. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/procNFe_v3.10.xsd +8 -8
  434. data/test/fixtures/product/schemas/procRemIndus_v1.00.xsd +9 -0
  435. data/test/fixtures/product/schemas/resEvento_v1.00.xsd +94 -0
  436. data/test/fixtures/product/schemas/resNFe_v1.00.xsd +110 -0
  437. data/test/fixtures/product/schemas/retAtuCadEmiDFe_v1.01.xsd +9 -0
  438. data/test/fixtures/product/schemas/retCancNFe_v2.00.xsd +9 -0
  439. data/test/fixtures/product/schemas/retConsCad_v2.00.xsd +9 -0
  440. data/test/fixtures/product/schemas/retConsDPEC_v1.01.xsd +9 -0
  441. data/test/fixtures/product/schemas/retConsReciNFe_v2.00.xsd +9 -0
  442. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/retConsReciNFe_v3.10.xsd +8 -8
  443. data/test/fixtures/product/schemas/retConsSitNFe_v2.01.xsd +10 -0
  444. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/retConsSitNFe_v3.10.xsd +8 -8
  445. data/test/fixtures/product/schemas/retConsStatServ_v2.00.xsd +9 -0
  446. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/retConsStatServ_v3.10.xsd +8 -8
  447. data/test/fixtures/product/schemas/retDPEC_v1.01.xsd +9 -0
  448. data/test/fixtures/product/schemas/retDistDFeInt_v1.00.xsd +84 -0
  449. data/test/fixtures/product/schemas/retDownloadNFe_v1.00.xsd +9 -0
  450. data/test/fixtures/product/schemas/retEnvCCe_v1.00.xsd +10 -0
  451. data/test/fixtures/product/schemas/retEnvCancelPProrrogNFe_v1.0.xsd +231 -0
  452. data/test/fixtures/product/schemas/retEnvConfRecebto_v1.00.xsd +9 -0
  453. data/test/fixtures/product/schemas/retEnvEPEC_v1.00.xsd +9 -0
  454. data/test/fixtures/product/schemas/retEnvEventoCancNFe_v1.00.xsd +9 -0
  455. data/test/fixtures/product/schemas/retEnvEvento_v1.00.xsd +9 -0
  456. data/test/fixtures/product/schemas/retEnvFiscoNFe_v1.0.xsd +234 -0
  457. data/test/fixtures/product/schemas/retEnvRemIndus_v1.00.xsd +9 -0
  458. data/test/fixtures/product/schemas/retEnvSuframaInternaliza_v1.00.xsd +9 -0
  459. data/test/fixtures/product/schemas/retEnvSuframaVistoria_v1.00.xsd +9 -0
  460. data/test/fixtures/product/schemas/retEnviNFe_v2.00.xsd +9 -0
  461. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/retEnviNFe_v3.10.xsd +8 -8
  462. data/test/fixtures/product/schemas/retEventoEPEC_v0.01.xsd +207 -0
  463. data/test/fixtures/product/schemas/retInutNFe_v2.00.xsd +9 -0
  464. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/retInutNFe_v3.10.xsd +8 -8
  465. data/test/fixtures/product/schemas/retPProrrogNFe_v1.0.xsd +233 -0
  466. data/test/fixtures/product/schemas/retconsNFeDest_v1.01.xsd +9 -0
  467. data/test/fixtures/product/schemas/tiposBasico_v1.03.xsd +816 -0
  468. data/test/fixtures/product/schemas/tiposBasico_v1.03_OPENSSL.xsd +816 -0
  469. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/tiposBasico_v3.10.xsd +571 -571
  470. data/test/fixtures/product/schemas/tiposBasico_v3.10_OPENSSL.xsd +877 -0
  471. data/test/fixtures/product/schemas/tiposDistDFe_v1.00.xsd +217 -0
  472. data/{lib/br_nfe/product/xml/v3_10/XSD → test/fixtures/product/schemas}/xmldsig-core-schema_v1.01.xsd +97 -97
  473. data/test/fixtures/product/wsdl/NFeRetAutorizacao.xml +80 -0
  474. data/test/fixtures/product/wsdl/NfeAutorizacao.xml +107 -0
  475. data/test/fixtures/product/wsdl/NfeConsulta2.xml +80 -0
  476. data/test/fixtures/product/wsdl/NfeStatusServico2.xml +70 -0
  477. data/test/fixtures/product/wsdl/nfeinutilizacao2.xml +80 -0
  478. data/test/fixtures/service/wsdl/betha/v1/cancelar_nfse.xml +178 -0
  479. data/test/fixtures/service/wsdl/betha/v1/consultar_lote_rps.xml +339 -0
  480. data/test/fixtures/service/wsdl/betha/v1/consultar_nfse.xml +348 -0
  481. data/test/fixtures/service/wsdl/betha/v1/consultar_nfse_por_rps.xml +365 -0
  482. data/test/fixtures/service/wsdl/betha/v1/consultar_situacao_lote_rps.xml +74 -0
  483. data/test/fixtures/service/wsdl/betha/v1/recepcionar_lote_rps.xml +299 -0
  484. data/test/fixtures/service/wsdl/simpliss/v1/nfseservice.xml +1 -0
  485. data/test/fixtures/service/wsdl/thema/v1/nfse_cancelamento.xml +82 -0
  486. data/test/fixtures/service/wsdl/thema/v1/nfse_consulta.xml +235 -0
  487. data/test/fixtures/service/wsdl/thema/v1/nfse_remessa.xml +185 -0
  488. data/test/test_helper.rb +369 -1
  489. metadata +711 -33
  490. data/lib/br_nfe/product/base.rb +0 -82
  491. data/lib/br_nfe/product/consulta_status_servico.rb +0 -35
  492. data/lib/br_nfe/product/value_nf.rb +0 -9
  493. data/lib/br_nfe/product/xml/v3_10/consulta_status_servico.xml.slim +0 -4
  494. data/test/br_nfe/product/base_test.rb +0 -150
  495. data/test/br_nfe/product/consulta_status_servico_test.rb +0 -59
@@ -0,0 +1,169 @@
1
+ # GRUPO DE TRIBUTAÇÃO DO ICMS PARA A UF DE DESTINO
2
+ # NT_2015_003_v150
3
+ #
4
+ # Foi criado um novo grupo de informações no item, para identificar o
5
+ # ICMS Interestadual nas operações de venda para consumidor final,
6
+ # atendendo ao disposto na Emenda Constitucional 87 de 2015.
7
+ #
8
+ # INFORMAÇÃO DO ICMS INTERESTADUAL
9
+ # Grupo a ser informado nas vendas interestaduais para
10
+ # consumidor final, não contribuinte do ICMS.
11
+ #
12
+ module BrNfe
13
+ module Product
14
+ module Nfe
15
+ module ItemTax
16
+ class IcmsUfDestino < BrNfe::ActiveModelBase
17
+ # VALOR DA BC DO ICMS NA UF DE DESTINO
18
+ # Valor da Base de Cálculo do ICMS na UF de destino.
19
+ #
20
+ # <b>Type: </b> _Float_
21
+ # <b>Required: </b> _Yes_
22
+ # <b>Example: </b> _350.47_
23
+ # <b>Length: </b> _13v2_
24
+ # <b>tag: </b> vBCUFDest
25
+ #
26
+ attr_accessor :total_base_calculo
27
+ alias_attribute :vBCUFDest, :total_base_calculo
28
+
29
+ # PERCENTUAL DO ICMS RELATIVO AO FUNDO DE COMBATE À POBREZA
30
+ # (FCP) NA UF DE DESTINO
31
+ # Percentual adicional inserido na alíquota interna da UF de
32
+ # destino, relativo ao Fundo de Combate à Pobreza (FCP) naquela UF.
33
+ # Nota: Percentual máximo de 2%, conforme a legislação
34
+ #
35
+ # <b>Type: </b> _Float_
36
+ # <b>Required: </b> _Yes_
37
+ # <b>Example: </b> _1.47_
38
+ # <b>Length: </b> _13v2-4_
39
+ # <b>tag: </b> pFCPUFDest
40
+ #
41
+ attr_accessor :percentual_fcp
42
+ alias_attribute :pFCPUFDest, :percentual_fcp
43
+
44
+ # ALÍQUOTA INTERNA DA UF DE DESTINO
45
+ # Alíquota adotada nas operações internas na UF de destino para o
46
+ # produto / mercadoria. A alíquota do Fundo de Combate a
47
+ # Pobreza, se existente para o produto / mercadoria, deve ser
48
+ # informada no campo próprio (pFCPUFDest) não devendo ser
49
+ # somada à essa alíquota interna
50
+ #
51
+ # <b>Type: </b> _Float_
52
+ # <b>Required: </b> _Yes_
53
+ # <b>Example: </b> _18.0_
54
+ # <b>Length: </b> _13v2-4_
55
+ # <b>tag: </b> pICMSUFDest
56
+ #
57
+ attr_accessor :aliquota_interna_uf_destino
58
+ alias_attribute :pICMSUFDest, :aliquota_interna_uf_destino
59
+
60
+ # ALÍQUOTA INTERESTADUAL DAS UF ENVOLVIDAS
61
+ # - 4% alíquota interestadual para produtos importados;
62
+ # - 7% para os Estados de origem do Sul e Sudeste (exceto ES),
63
+ # destinado para os Estados do Norte, Nordeste, CentroOeste
64
+ # e Espírito Santo;
65
+ # - 12% para os demais casos
66
+ #
67
+ # <b>Type: </b> _Float_
68
+ # <b>Required: </b> _Yes_
69
+ # <b>Example: </b> _17.0_
70
+ # <b>Length: </b> _2v2_
71
+ # <b>tag: </b> pICMSInter
72
+ #
73
+ attr_accessor :aliquota_interestadual
74
+ alias_attribute :pICMSInter, :aliquota_interestadual
75
+
76
+ # PERCENTUAL PROVISÓRIO DE PARTILHA DO ICMS INTERESTADUAL
77
+ # Percentual de ICMS Interestadual para a UF de destino:
78
+ # - 40% em 2016;
79
+ # - 60% em 2017;
80
+ # - 80% em 2018;
81
+ # - 100% a partir de 2019.
82
+ # OBS: Caso não seja setado manualmente um valor, será setado
83
+ # automaticamnete conforme o ano da data atual.
84
+ #
85
+ # <b>Type: </b> _Float_
86
+ # <b>Required: </b> _Yes_
87
+ # <b>Example: </b> _40.0_
88
+ # <b>Length: </b> _2v2_
89
+ # <b>tag: </b> pICMSInterPart
90
+ #
91
+ attr_accessor :percentual_partilha_destino
92
+ def percentual_partilha_destino
93
+ @percentual_partilha_destino ||= get_percentual_partilha_destino
94
+ end
95
+ alias_attribute :pICMSInterPart, :percentual_partilha_destino
96
+
97
+ # VALOR DO ICMS RELATIVO AO FUNDO DE COMBATE À POBREZA (FCP) DA
98
+ # UF DE DESTINO
99
+ #
100
+ # <b>Type: </b> _Float_
101
+ # <b>Required: </b> _Yes_
102
+ # <b>Example: </b> _347.54_
103
+ # <b>Length: </b> _13v2_
104
+ # <b>tag: </b> vFCPUFDest
105
+ #
106
+ attr_accessor :total_fcp_destino
107
+ alias_attribute :vFCPUFDest, :total_fcp_destino
108
+
109
+ # VALOR DO ICMS INTERESTADUAL PARA A UF DE DESTINO
110
+ # Valor do ICMS Interestadual para a UF de destino, já
111
+ # considerando o valor do ICMS relativo ao Fundo de Combate à
112
+ # Pobreza naquela UF.
113
+ #
114
+ # <b>Type: </b> _Float_
115
+ # <b>Required: </b> _Yes_
116
+ # <b>Example: </b> _47.54_
117
+ # <b>Length: </b> _13v2_
118
+ # <b>tag: </b> vICMSUFDest
119
+ #
120
+ attr_accessor :total_destino
121
+ alias_attribute :vICMSUFDest, :total_destino
122
+
123
+ # VALOR DO ICMS INTERESTADUAL PARA A UF DO REMETENTE
124
+ # Valor do ICMS Interestadual para a UF do remetente.
125
+ # Nota: A partir de 2019, este valor será zero.
126
+ #
127
+ # <b>Type: </b> _Float_
128
+ # <b>Required: </b> _Yes_
129
+ # <b>Example: </b> _47.54_
130
+ # <b>Length: </b> _13v2_
131
+ # <b>tag: </b> vICMSUFRemet
132
+ #
133
+ attr_accessor :total_origem
134
+ alias_attribute :vICMSUFRemet, :total_origem
135
+
136
+ validates :total_base_calculo, presence: true
137
+ validates :total_base_calculo, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
138
+ validates :aliquota_interna_uf_destino, presence: true
139
+ validates :aliquota_interna_uf_destino, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
140
+ validates :aliquota_interestadual, presence: true
141
+ validates :aliquota_interestadual, numericality: {greater_than_or_equal_to: 0.0, less_than_or_equal_to: 99.99}, allow_blank: true
142
+ validates :aliquota_interestadual, inclusion: {in: [4.0, 7.0, 12.0]}, allow_blank: true
143
+ validates :percentual_partilha_destino, numericality: {greater_than_or_equal_to: 0.0, less_than_or_equal_to: 100.0}, allow_blank: true
144
+ validates :percentual_fcp, numericality: {greater_than_or_equal_to: 0.0, less_than_or_equal_to: 2.0}, allow_blank: true
145
+ validates :total_fcp_destino, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
146
+ validates :total_destino, presence: true
147
+ validates :total_origem, presence: true
148
+ validates :total_destino, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
149
+ validates :total_origem, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
150
+
151
+ private
152
+
153
+ def get_percentual_partilha_destino
154
+ case Date.current.year
155
+ when 2016
156
+ 40.0
157
+ when 2017
158
+ 60.0
159
+ when 2018
160
+ 80.0
161
+ else
162
+ 100.0
163
+ end
164
+ end
165
+ end
166
+ end
167
+ end
168
+ end
169
+ end
@@ -0,0 +1,62 @@
1
+ # GRUPO IMPOSTO DE IMPORTAÇÃO
2
+ # Informar apenas quando o item for sujeito ao II
3
+ #
4
+ module BrNfe
5
+ module Product
6
+ module Nfe
7
+ module ItemTax
8
+ class Importacao < BrNfe::ActiveModelBase
9
+
10
+ # VALOR BC DO IMPOSTO DE IMPORTAÇÃO
11
+ #
12
+ # <b>Type: </b> _Float_
13
+ # <b>Required: </b> _Yes_
14
+ # <b>Example: </b> _120.00_
15
+ # <b>tag: </b> vBC
16
+ #
17
+ attr_accessor :total_base_calculo
18
+ alias_attribute :vBC, :total_base_calculo
19
+
20
+ # VALOR DESPESAS ADUANEIRAS
21
+ #
22
+ # <b>Type: </b> _Float_
23
+ # <b>Required: </b> _Yes_
24
+ # <b>Example: </b> _120.00_
25
+ # <b>tag: </b> vDespAdu
26
+ #
27
+ attr_accessor :total_despesas_aduaneiras
28
+ alias_attribute :vDespAdu, :total_despesas_aduaneiras
29
+
30
+ # VALOR IMPOSTO DE IMPORTAÇÃO
31
+ #
32
+ # <b>Type: </b> _Float_
33
+ # <b>Required: </b> _Yes_
34
+ # <b>Example: </b> _120.00_
35
+ # <b>tag: </b> vII
36
+ #
37
+ attr_accessor :total_imposto
38
+ alias_attribute :vII, :total_imposto
39
+
40
+ # VALOR IMPOSTO SOBRE OPERAÇÕES FINANCEIRAS
41
+ #
42
+ # <b>Type: </b> _Float_
43
+ # <b>Required: </b> _Yes_
44
+ # <b>Example: </b> _120.00_
45
+ # <b>tag: </b> vIOF
46
+ #
47
+ attr_accessor :total_iof
48
+ alias_attribute :vIOF, :total_iof
49
+
50
+ validates :total_base_calculo, :total_despesas_aduaneiras,
51
+ :total_imposto, :total_iof,
52
+ presence: true
53
+
54
+ validates :total_base_calculo, :total_despesas_aduaneiras,
55
+ :total_imposto, :total_iof,
56
+ numericality: {greater_than_or_equal_to: 0.0},
57
+ allow_blank: true
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,179 @@
1
+ module BrNfe
2
+ module Product
3
+ module Nfe
4
+ module ItemTax
5
+ class Ipi < BrNfe::ActiveModelBase
6
+ # CÓDIGO DA SITUAÇÃO TRIBUTÁRIA do IPI
7
+ # 00 = Entrada com recuperação de crédito
8
+ # 01 = Entrada tributada com alíquota zero
9
+ # 02 = Entrada isenta
10
+ # 03 = Entrada não-tributada
11
+ # 04 = Entrada imune
12
+ # 05 = Entrada com suspensão
13
+ # 49 = Outras entradas
14
+ # 50 = Saída tributada
15
+ # 51 = Saída tributada com alíquota zero
16
+ # 52 = Saída isenta
17
+ # 53 = Saída não-tributada
18
+ # 54 = Saída imune
19
+ # 55 = Saída com suspensão
20
+ # 99 = Outras saídas
21
+ #
22
+ # <b>Type: </b> _Number_ <- string
23
+ # <b>Required: </b> _Yes_
24
+ # <b>Example: </b> _00_
25
+ # <b>Length: </b> _2_
26
+ # <b>tag: </b> CST
27
+ #
28
+ attr_accessor :codigo_cst
29
+ def codigo_cst
30
+ "#{@codigo_cst}".rjust(2, '0') if @codigo_cst.present?
31
+ end
32
+ alias_attribute :CST, :codigo_cst
33
+
34
+ # CLASSE DE ENQUADRAMENTO DO IPI PARA CIGARROS E BEBIDAS
35
+ # Preenchimento conforme Atos Normativos editados pela
36
+ # Receita Federal (Observação 2)
37
+ #
38
+ # <b>Type: </b> _String_
39
+ # <b>Required: </b> _No_
40
+ # <b>Example: </b> _C1324_
41
+ # <b>Length: </b> _max: 5_
42
+ # <b>tag: </b> clEnq
43
+ #
44
+ attr_accessor :classe_enquadramento
45
+ alias_attribute :clEnq, :classe_enquadramento
46
+
47
+ # CNPJ DO PRODUTOR DA MERCADORIA, QUANDO DIFERENTE DO EMITENTE.
48
+ # SOMENTE PARA OS CASOS DE EXPORTAÇÃO DIRETA OU INDIRETA.
49
+ # Informar os zeros não significativos
50
+ #
51
+ # <b>Type: </b> _String_
52
+ # <b>Required: </b> _No_
53
+ # <b>Example: </b> _00.000.000/0001-00 OU 01234567890123_
54
+ # <b>Length: </b> _14_
55
+ # <b>tag: </b> CNPJProd
56
+ #
57
+ attr_accessor :cnpj_produtor
58
+ def cnpj_produtor
59
+ "#{@cnpj_produtor}".gsub(/[^\d]/,'')
60
+ end
61
+ alias_attribute :CNPJProd, :cnpj_produtor
62
+
63
+ # CÓDIGO DO SELO DE CONTROLE IPI
64
+ # Preenchimento conforme Atos Normativos editados pela
65
+ # Receita Federal (Observação 3)
66
+ #
67
+ # <b>Type: </b> _String_
68
+ # <b>Required: </b> _No_
69
+ # <b>Example: </b> _SELO12345654_
70
+ # <b>Length: </b> _max: 60_
71
+ # <b>tag: </b> cSelo
72
+ #
73
+ attr_accessor :codigo_selo
74
+ alias_attribute :cSelo, :codigo_selo
75
+
76
+ # QUANTIDADE DE SELO DE CONTROLE
77
+ #
78
+ # <b>Type: </b> _Number_
79
+ # <b>Required: </b> _No_
80
+ # <b>Example: </b> _50_
81
+ # <b>Length: </b> _max: 12_
82
+ # <b>tag: </b> qSelo
83
+ #
84
+ attr_accessor :quantidade_selo
85
+ def quantidade_selo
86
+ "#{@quantidade_selo}".gsub(/[^\d]/,'')
87
+ end
88
+ alias_attribute :qSelo, :quantidade_selo
89
+
90
+ # CÓDIGO DE ENQUADRAMENTO LEGAL DO IPI
91
+ # Tabela a ser criada pela RFB, informar 999 enquanto a tabela
92
+ # não for criada
93
+ #
94
+ # <b>Type: </b> _String_
95
+ # <b>Required: </b> _Yes_
96
+ # <b>Example: </b> _999_
97
+ # <b>Default: </b> _999_
98
+ # <b>Length: </b> _max: 3_
99
+ # <b>tag: </b> cEnq
100
+ #
101
+ attr_accessor :codigo_enquadramento
102
+ alias_attribute :cEnq, :codigo_enquadramento
103
+
104
+ # Valor da BC do IPI
105
+ # Informar se o cálculo do IPI for por alíquota.
106
+ #
107
+ # <b>Type: </b> _Float_
108
+ # <b>Required: </b> _No_
109
+ # <b>Example: </b> _152.38_
110
+ # <b>tag: </b> vBC
111
+ #
112
+ attr_accessor :base_calculo
113
+ alias_attribute :vBC, :base_calculo
114
+
115
+ # Alíquota do IPI
116
+ #
117
+ # <b>Type: </b> _Float_
118
+ # <b>Required: </b> _No_
119
+ # <b>Example: </b> _12.00_
120
+ # <b>tag: </b> pIPI
121
+ #
122
+ attr_accessor :aliquota
123
+ alias_attribute :pIPI, :aliquota
124
+
125
+ # QUANTIDADE TOTAL NA UNIDADE PADRÃO PARA TRIBUTAÇÃO
126
+ # (SOMENTE PARA OS PRODUTOS TRIBUTADOS POR UNIDADE)
127
+ #
128
+ # <b>Type: </b> _Float_
129
+ # <b>Required: </b> _No_
130
+ # <b>Example: </b> _12.00_
131
+ # <b>tag: </b> qUnid
132
+ #
133
+ attr_accessor :quantidade_unidade
134
+ alias_attribute :qUnid, :quantidade_unidade
135
+
136
+ # VALOR POR UNIDADE TRIBUTÁVEL
137
+ #
138
+ # <b>Type: </b> _Float_
139
+ # <b>Required: </b> _No_
140
+ # <b>Example: </b> _12.00_
141
+ # <b>tag: </b> vUnid
142
+ #
143
+ attr_accessor :total_unidade
144
+ alias_attribute :vUnid, :total_unidade
145
+
146
+ # VALOR DO IPI
147
+ #
148
+ # <b>Type: </b> _Float_
149
+ # <b>Required: </b> _No_ (Yes if CST [00 49 50 99])
150
+ # <b>Example: </b> _12.00_
151
+ # <b>tag: </b> vIPI
152
+ #
153
+ attr_accessor :total
154
+ alias_attribute :vIPI, :total
155
+
156
+ def default_values
157
+ {
158
+ codigo_enquadramento: '999',
159
+ }
160
+ end
161
+
162
+ validates :codigo_cst, presence: true
163
+ validates :codigo_cst, inclusion: {in: %w[00 01 02 03 04 05 49 50 51 52 53 54 55 99]}
164
+ validates :classe_enquadramento, length: {maximum: 5}
165
+ validates :cnpj_produtor, length: {is: 14}, allow_blank: true
166
+ validates :codigo_selo, length: {maximum: 60}
167
+ validates :quantidade_selo, length: {maximum: 12}
168
+ validates :codigo_enquadramento, presence: true
169
+ validates :codigo_enquadramento, length: {maximum: 3}
170
+
171
+ with_options if: lambda{|r| r.codigo_cst.in?(%w[00 49 50 99])} do |record|
172
+ record.validates :total, presence: true
173
+ record.validates :total, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
174
+ end
175
+ end
176
+ end
177
+ end
178
+ end
179
+ end
@@ -0,0 +1,256 @@
1
+ # Campos para cálculo do ISSQN na NF-e conjugada, onde há a
2
+ # prestação de serviços sujeitos ao ISSQN e fornecimento de
3
+ # peças sujeitas ao ICMS.
4
+ # Grupo ISSQN é mutuamente exclusivo com os grupos ICMS, IPI
5
+ # e II, isto é se ISSQN for informado os grupos ICMS, IPI e II não
6
+ # serão informados e vice-versa (v2.0).
7
+ #
8
+ module BrNfe
9
+ module Product
10
+ module Nfe
11
+ module ItemTax
12
+ class Issqn < BrNfe::ActiveModelBase
13
+ # VALOR DA BASE DE CÁLCULO DO ISSQN
14
+ #
15
+ # <b>Type: </b> _Float_
16
+ # <b>Required: </b> _Yes_
17
+ # <b>Example: </b> _350.47_
18
+ # <b>Length: </b> _13v2_
19
+ # <b>tag: </b> vBC
20
+ #
21
+ attr_accessor :total_base_calculo
22
+ alias_attribute :vBC, :total_base_calculo
23
+
24
+ # Alíquota do ISSQN
25
+ #
26
+ # <b>Type: </b> _Float_
27
+ # <b>Required: </b> _Yes_
28
+ # <b>Example: </b> _2.47_
29
+ # <b>Length: </b> _3v2-4_
30
+ # <b>tag: </b> vAliq
31
+ #
32
+ attr_accessor :aliquota
33
+ alias_attribute :vAliq, :aliquota
34
+
35
+ # VALOR DO ISSQN
36
+ #
37
+ # <b>Type: </b> _Float_
38
+ # <b>Required: </b> _Yes_
39
+ # <b>Example: </b> _350.47_
40
+ # <b>Length: </b> _13v2_
41
+ # <b>tag: </b> vISSQN
42
+ #
43
+ attr_accessor :total
44
+ alias_attribute :vISSQN, :total
45
+
46
+ # CÓDIGO DO MUNICÍPIO DE OCORRÊNCIA DO FATO GERADOR DO ISSQN
47
+ # Informar o município de ocorrência do fato gerador do ISSQN.
48
+ # Utilizar a Tabela do IBGE (Anexo IX - Tabela de UF, Município e
49
+ # País).
50
+ # Nota 1: Não vincular com o município do fato gerador de ICMS
51
+ # (id:B12), ou com o município do emitente (id:C10) ou do
52
+ # destinatário (id:E10).
53
+ # Nota 2: Pode ser informado 9999999 se a prestação de serviço
54
+ # for no Exterior.
55
+ #
56
+ # <b>Type: </b> _Number_
57
+ # <b>Required: </b> _Yes_
58
+ # <b>Example: </b> _4201534_
59
+ # <b>Length: </b> _7_
60
+ # <b>tag: </b> cMunFG
61
+ #
62
+ attr_accessor :municipio_ocorrencia
63
+ def municipio_ocorrencia
64
+ BrNfe::Helper.only_number(@municipio_ocorrencia)
65
+ end
66
+ alias_attribute :cMunFG, :municipio_ocorrencia
67
+
68
+ # ITEM DA LISTA DE SERVIÇOS
69
+ # Informar o Item da lista de serviços em que se classifica o
70
+ # serviço no padrão ABRASF (Formato: NN.NN).
71
+ #
72
+ # <b>Type: </b> _Number_
73
+ # <b>Required: </b> _Yes_
74
+ # <b>Example: </b> _1204 OR '12.04'_
75
+ # <b>Length: </b> _5_
76
+ # <b>tag: </b> cListServ
77
+ #
78
+ attr_accessor :codigo_servico
79
+ def codigo_servico
80
+ BrNfe::Helper.only_number(@codigo_servico).to_i.to_s.reverse.scan(/.{1,2}/).join('.').reverse if @codigo_servico.present?
81
+ end
82
+ alias_attribute :cListServ, :codigo_servico
83
+
84
+ # VALOR DEDUÇÃO PARA REDUÇÃO DA BASE DE CÁLCULO
85
+ #
86
+ # <b>Type: </b> _Float_
87
+ # <b>Required: </b> _No_
88
+ # <b>Example: </b> _450.00_
89
+ # <b>Length: </b> _13v2_
90
+ # <b>tag: </b> vDeducao
91
+ #
92
+ attr_accessor :total_deducao_bc
93
+ alias_attribute :vDeducao, :total_deducao_bc
94
+
95
+ # VALOR OUTRAS RETENÇÕES
96
+ # Valor declaratório
97
+ #
98
+ # <b>Type: </b> _Float_
99
+ # <b>Required: </b> _No_
100
+ # <b>Example: </b> _450.00_
101
+ # <b>Length: </b> _13v2_
102
+ # <b>tag: </b> vOutro
103
+ #
104
+ attr_accessor :total_outras_retencoes
105
+ alias_attribute :vOutro, :total_outras_retencoes
106
+
107
+ # VALOR DESCONTO INCONDICIONADO
108
+ #
109
+ # <b>Type: </b> _Float_
110
+ # <b>Required: </b> _No_
111
+ # <b>Example: </b> _450.00_
112
+ # <b>Length: </b> _13v2_
113
+ # <b>tag: </b> vDescIncond
114
+ #
115
+ attr_accessor :total_desconto_incondicionado
116
+ alias_attribute :vDescIncond, :total_desconto_incondicionado
117
+
118
+ # VALOR DESCONTO CONDICIONADO
119
+ #
120
+ # <b>Type: </b> _Float_
121
+ # <b>Required: </b> _No_
122
+ # <b>Example: </b> _450.00_
123
+ # <b>Length: </b> _13v2_
124
+ # <b>tag: </b> vDescCond
125
+ #
126
+ attr_accessor :total_desconto_condicionado
127
+ alias_attribute :vDescCond, :total_desconto_condicionado
128
+
129
+ # VALOR RETENÇÃO ISS
130
+ # Valor declaratório
131
+ #
132
+ # <b>Type: </b> _Float_
133
+ # <b>Required: </b> _No_
134
+ # <b>Example: </b> _450.00_
135
+ # <b>Length: </b> _13v2_
136
+ # <b>tag: </b> vISSRet
137
+ #
138
+ attr_accessor :total_iss_retido
139
+ alias_attribute :vISSRet, :total_iss_retido
140
+
141
+ # INDICADOR DA EXIGIBILIDADE DO ISS
142
+ # 1=Exigível,
143
+ # 2=Não incidência;
144
+ # 3=Isenção;
145
+ # 4=Exportação;
146
+ # 5=Imunidade;
147
+ # 6=Exigibilidade Suspensa por Decisão Judicial;
148
+ # 7=Exigibilidade Suspensa por Processo Administrativo;
149
+ #
150
+ # <b>Type: </b> _Number_
151
+ # <b>Required: </b> _Yes_
152
+ # <b>Example: </b> _2_
153
+ # <b>Default: </b> _1_
154
+ # <b>Length: </b> _1_
155
+ # <b>tag: </b> indISS
156
+ #
157
+ attr_accessor :indicador_iss
158
+ def indicador_iss
159
+ @indicador_iss.to_i if @indicador_iss.present?
160
+ end
161
+ alias_attribute :indISS, :indicador_iss
162
+
163
+ # CÓDIGO DO SERVIÇO PRESTADO DENTRO DO MUNICÍPIO
164
+ #
165
+ # <b>Type: </b> _String_
166
+ # <b>Required: </b> _No_
167
+ # <b>Example: </b> _216461_
168
+ # <b>Length: </b> _max: 20_
169
+ # <b>tag: </b> cServico
170
+ #
171
+ attr_accessor :codigo_servico_municipio
172
+ alias_attribute :cServico, :codigo_servico_municipio
173
+
174
+ # CÓDIGO DO MUNICÍPIO DE INCIDÊNCIA DO IMPOSTO
175
+ # Tabela do IBGE. Informar "9999999" para serviço fora do País.
176
+ #
177
+ # <b>Type: </b> _Number_
178
+ # <b>Required: </b> _No_
179
+ # <b>Example: </b> _4253214_
180
+ # <b>Length: </b> _7_
181
+ # <b>tag: </b> cMun
182
+ #
183
+ attr_accessor :municipio_incidencia
184
+ alias_attribute :cMun, :municipio_incidencia
185
+
186
+ # CÓDIGO DO PAÍS ONDE O SERVIÇO FOI PRESTADO
187
+ # Tabela do BACEN. Informar somente se o município da
188
+ # prestação do serviço for "9999999".
189
+ #
190
+ # <b>Type: </b> _Number_
191
+ # <b>Required: </b> _No_
192
+ # <b>Example: </b> _0142_
193
+ # <b>Length: </b> _4_
194
+ # <b>tag: </b> cPais
195
+ #
196
+ attr_accessor :codigo_pais
197
+ alias_attribute :cPais, :codigo_pais
198
+
199
+ # NÚMERO DO PROCESSO JUDICIAL OU ADMINISTRATIVO DE SUSPENSÃO DA EXIGIBILIDADE
200
+ # Informar somente quando declarada a suspensão da exigibilidade do ISSQN.
201
+ #
202
+ # <b>Type: </b> _String_
203
+ # <b>Required: </b> _No_
204
+ # <b>Example: </b> _0142_
205
+ # <b>Length: </b> _max: 30_
206
+ # <b>tag: </b> nProcesso
207
+ #
208
+ attr_accessor :numero_processo
209
+ alias_attribute :nProcesso, :numero_processo
210
+
211
+ # INDICADOR DE INCENTIVO FISCAL
212
+ # true = Sim(1);
213
+ # false = Não;
214
+ #
215
+ # <b>Type: </b> _Boolean_
216
+ # <b>Required: </b> _No_
217
+ # <b>Example: </b> _0142_
218
+ # <b>Default: </b> _false_
219
+ # <b>Length: </b> _max: 30_
220
+ # <b>tag: </b> indIncentivo
221
+ #
222
+ attr_accessor :incentivo_fiscal
223
+ def incentivo_fiscal
224
+ convert_to_boolean(@incentivo_fiscal)
225
+ end
226
+ alias_attribute :indIncentivo, :incentivo_fiscal
227
+
228
+ def default_values
229
+ {
230
+ indicador_iss: 1, # 1=Exigível;
231
+ incentivo_fiscal: false, # Não
232
+ }
233
+ end
234
+
235
+ validates :indicador_iss, presence: true
236
+ validates :codigo_servico, presence: true
237
+ validates :total_base_calculo, presence: true
238
+ validates :aliquota, presence: true
239
+ validates :total, presence: true
240
+ validates :municipio_ocorrencia, presence: true
241
+
242
+ validates :indicador_iss, inclusion: {in: [1,2,3,4,5,6,7]}, allow_blank: true
243
+ validates :total_base_calculo, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
244
+ validates :aliquota, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
245
+ validates :total, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
246
+
247
+ validates :codigo_pais, length: {maximum: 4}
248
+ validates :municipio_ocorrencia, length: {maximum: 7}
249
+ validates :municipio_incidencia, length: {maximum: 7}
250
+ validates :codigo_servico_municipio, length: {maximum: 20}
251
+ validates :numero_processo, length: {maximum: 30}
252
+ end
253
+ end
254
+ end
255
+ end
256
+ end