nf-e 0.2.26

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 (563) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +1 -0
  4. data/Gemfile +3 -0
  5. data/Gemfile.lock +201 -0
  6. data/Guardfile +8 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +35 -0
  9. data/Rakefile +6 -0
  10. data/circle.yml +7 -0
  11. data/config/locales/commons.yml +15 -0
  12. data/config/locales/models/dest.yml +13 -0
  13. data/config/locales/models/emit.yml +14 -0
  14. data/config/locales/models/ender.yml +13 -0
  15. data/config/locales/models/envi_nfe.yml +7 -0
  16. data/config/locales/models/ide.yml +5 -0
  17. data/config/locales/models/nfe.yml +5 -0
  18. data/config/locales/operations/correction_letter.yml +4 -0
  19. data/config/locales/operations/nfe_cancel.yml +4 -0
  20. data/config/locales/operations/nfe_discard.yml +7 -0
  21. data/config/locales/pt-BR.yml +211 -0
  22. data/lib/nf-e.rb +20 -0
  23. data/lib/nfe/helpers/nfe_key.rb +103 -0
  24. data/lib/nfe/helpers/schema_validator.rb +24 -0
  25. data/lib/nfe/helpers/signer.rb +25 -0
  26. data/lib/nfe/helpers/uf_helper.rb +23 -0
  27. data/lib/nfe/helpers/xml_model/attribute_base.rb +60 -0
  28. data/lib/nfe/helpers/xml_model/attribute_bigdecimal.rb +16 -0
  29. data/lib/nfe/helpers/xml_model/attribute_collection.rb +37 -0
  30. data/lib/nfe/helpers/xml_model/attribute_date.rb +20 -0
  31. data/lib/nfe/helpers/xml_model/attribute_datetime.rb +20 -0
  32. data/lib/nfe/helpers/xml_model/attribute_enumerize.rb +12 -0
  33. data/lib/nfe/helpers/xml_model/attribute_float.rb +20 -0
  34. data/lib/nfe/helpers/xml_model/attribute_integer.rb +12 -0
  35. data/lib/nfe/helpers/xml_model/attribute_node.rb +17 -0
  36. data/lib/nfe/helpers/xml_model/attribute_nodeattribute.rb +16 -0
  37. data/lib/nfe/helpers/xml_model/attribute_text.rb +31 -0
  38. data/lib/nfe/helpers/xml_model/factory.rb +17 -0
  39. data/lib/nfe/helpers/xml_model/nfe_model.rb +120 -0
  40. data/lib/nfe/models/NFe.rb +47 -0
  41. data/lib/nfe/models/avulsa.rb +59 -0
  42. data/lib/nfe/models/bill/cobr.rb +23 -0
  43. data/lib/nfe/models/bill/dup.rb +23 -0
  44. data/lib/nfe/models/bill/fat.rb +36 -0
  45. data/lib/nfe/models/cane/bigdecimal_greater_than_validator.rb +11 -0
  46. data/lib/nfe/models/cane/bigdecimal_less_than_validator.rb +9 -0
  47. data/lib/nfe/models/cane/cana.rb +100 -0
  48. data/lib/nfe/models/cane/deduc.rb +24 -0
  49. data/lib/nfe/models/cane/forDia.rb +33 -0
  50. data/lib/nfe/models/compra.rb +21 -0
  51. data/lib/nfe/models/concerns/cnpj_cpf_validatable.rb +22 -0
  52. data/lib/nfe/models/concerns/ufable.rb +20 -0
  53. data/lib/nfe/models/det.rb +34 -0
  54. data/lib/nfe/models/emitter/emit.rb +56 -0
  55. data/lib/nfe/models/ender.rb +64 -0
  56. data/lib/nfe/models/entrega_retirada.rb +47 -0
  57. data/lib/nfe/models/evento.rb +71 -0
  58. data/lib/nfe/models/exporta.rb +19 -0
  59. data/lib/nfe/models/ide.rb +140 -0
  60. data/lib/nfe/models/infNFe.rb +82 -0
  61. data/lib/nfe/models/information/infAdic.rb +51 -0
  62. data/lib/nfe/models/information/obsContFisco.rb +21 -0
  63. data/lib/nfe/models/information/procRef.rb +25 -0
  64. data/lib/nfe/models/itens/CIDE.rb +32 -0
  65. data/lib/nfe/models/itens/DI.rb +55 -0
  66. data/lib/nfe/models/itens/adi.rb +34 -0
  67. data/lib/nfe/models/itens/arma.rb +31 -0
  68. data/lib/nfe/models/itens/comb.rb +41 -0
  69. data/lib/nfe/models/itens/med.rb +40 -0
  70. data/lib/nfe/models/itens/prod.rb +115 -0
  71. data/lib/nfe/models/itens/veicProd.rb +140 -0
  72. data/lib/nfe/models/nfeProc.rb +29 -0
  73. data/lib/nfe/models/procEventoNFe.rb +29 -0
  74. data/lib/nfe/models/procInutNFe.rb +28 -0
  75. data/lib/nfe/models/recipient/dest.rb +57 -0
  76. data/lib/nfe/models/referenced/NFref.rb +44 -0
  77. data/lib/nfe/models/referenced/refECF.rb +26 -0
  78. data/lib/nfe/models/referenced/refNF.rb +43 -0
  79. data/lib/nfe/models/referenced/refNFP.rb +40 -0
  80. data/lib/nfe/models/signature.rb +53 -0
  81. data/lib/nfe/models/taxes/ICMS.rb +100 -0
  82. data/lib/nfe/models/taxes/ICMS00.rb +39 -0
  83. data/lib/nfe/models/taxes/ICMS10.rb +82 -0
  84. data/lib/nfe/models/taxes/ICMS101.rb +26 -0
  85. data/lib/nfe/models/taxes/ICMS102.rb +10 -0
  86. data/lib/nfe/models/taxes/ICMS103.rb +13 -0
  87. data/lib/nfe/models/taxes/ICMS20.rb +46 -0
  88. data/lib/nfe/models/taxes/ICMS201.rb +67 -0
  89. data/lib/nfe/models/taxes/ICMS202.rb +53 -0
  90. data/lib/nfe/models/taxes/ICMS203.rb +13 -0
  91. data/lib/nfe/models/taxes/ICMS30.rb +55 -0
  92. data/lib/nfe/models/taxes/ICMS300.rb +13 -0
  93. data/lib/nfe/models/taxes/ICMS40.rb +24 -0
  94. data/lib/nfe/models/taxes/ICMS400.rb +13 -0
  95. data/lib/nfe/models/taxes/ICMS41.rb +13 -0
  96. data/lib/nfe/models/taxes/ICMS50.rb +13 -0
  97. data/lib/nfe/models/taxes/ICMS500.rb +28 -0
  98. data/lib/nfe/models/taxes/ICMS51.rb +48 -0
  99. data/lib/nfe/models/taxes/ICMS60.rb +28 -0
  100. data/lib/nfe/models/taxes/ICMS70.rb +89 -0
  101. data/lib/nfe/models/taxes/ICMS90.rb +90 -0
  102. data/lib/nfe/models/taxes/ICMS900.rb +100 -0
  103. data/lib/nfe/models/taxes/ICMSBase.rb +21 -0
  104. data/lib/nfe/models/taxes/ICMSNormalBase.rb +15 -0
  105. data/lib/nfe/models/taxes/ICMSPart.rb +112 -0
  106. data/lib/nfe/models/taxes/ICMSSNBase.rb +19 -0
  107. data/lib/nfe/models/taxes/ICMSST.rb +50 -0
  108. data/lib/nfe/models/taxes/ICMSTot.rb +124 -0
  109. data/lib/nfe/models/taxes/II.rb +39 -0
  110. data/lib/nfe/models/taxes/IPI.rb +133 -0
  111. data/lib/nfe/models/taxes/IPINT.rb +17 -0
  112. data/lib/nfe/models/taxes/IPITrib.rb +51 -0
  113. data/lib/nfe/models/taxes/ISSQN.rb +54 -0
  114. data/lib/nfe/models/taxes/ISSQNtot.rb +51 -0
  115. data/lib/nfe/models/taxes/PISCOFINS.rb +173 -0
  116. data/lib/nfe/models/taxes/PISCOFINSAliq.rb +62 -0
  117. data/lib/nfe/models/taxes/PISCOFINSNT.rb +20 -0
  118. data/lib/nfe/models/taxes/PISCOFINSOutr.rb +87 -0
  119. data/lib/nfe/models/taxes/PISCOFINSQtde.rb +56 -0
  120. data/lib/nfe/models/taxes/PISCOFINSST.rb +78 -0
  121. data/lib/nfe/models/taxes/imposto.rb +44 -0
  122. data/lib/nfe/models/taxes/retTrib.rb +67 -0
  123. data/lib/nfe/models/total.rb +23 -0
  124. data/lib/nfe/models/transport/lacres.rb +16 -0
  125. data/lib/nfe/models/transport/retTransp.rb +49 -0
  126. data/lib/nfe/models/transport/transp.rb +50 -0
  127. data/lib/nfe/models/transport/transporta.rb +42 -0
  128. data/lib/nfe/models/transport/veicTransp_reboque.rb +23 -0
  129. data/lib/nfe/models/transport/vol.rb +50 -0
  130. data/lib/nfe/operations/base.rb +101 -0
  131. data/lib/nfe/operations/consult_emitter.rb +62 -0
  132. data/lib/nfe/operations/correction_letter.rb +37 -0
  133. data/lib/nfe/operations/event.rb +117 -0
  134. data/lib/nfe/operations/nfe_cancel.rb +47 -0
  135. data/lib/nfe/operations/nfe_discard.rb +106 -0
  136. data/lib/nfe/operations/nfe_send.rb +125 -0
  137. data/lib/nfe/operations/nfe_situation.rb +46 -0
  138. data/lib/nfe/operations/service_status.rb +44 -0
  139. data/lib/nfe/schemas/CCe_v1.00.xsd +11 -0
  140. data/lib/nfe/schemas/consCad_v2.00.xsd +9 -0
  141. data/lib/nfe/schemas/consReciNFe_v3.10.xsd +9 -0
  142. data/lib/nfe/schemas/consSitNFe_v3.10.xsd +9 -0
  143. data/lib/nfe/schemas/consStatServ_v3.10.xsd +9 -0
  144. data/lib/nfe/schemas/envCCe_v1.00.xsd +10 -0
  145. data/lib/nfe/schemas/envEventoCancNFe_v1.00.xsd +9 -0
  146. data/lib/nfe/schemas/enviNFe_v3.10.xsd +9 -0
  147. data/lib/nfe/schemas/inutNFe_v3.10.xsd +9 -0
  148. data/lib/nfe/schemas/leiauteCCe_v1.00.xsd +423 -0
  149. data/lib/nfe/schemas/leiauteConsSitNFe_v3.10.xsd +502 -0
  150. data/lib/nfe/schemas/leiauteConsStatServ_v3.10.xsd +98 -0
  151. data/lib/nfe/schemas/leiauteConsultaCadastro_v2.00.xsd +404 -0
  152. data/lib/nfe/schemas/leiauteEventoCancNFe_v1.00.xsd +400 -0
  153. data/lib/nfe/schemas/leiauteInutNFe_v3.10.xsd +193 -0
  154. data/lib/nfe/schemas/leiauteNFe_v3.10.xsd +7212 -0
  155. data/lib/nfe/schemas/nfe_v3.10.xsd +9 -0
  156. data/lib/nfe/schemas/procInutNFe_v3.10.xsd +9 -0
  157. data/lib/nfe/schemas/procNFe_v3.10.xsd +9 -0
  158. data/lib/nfe/schemas/retConsReciNFe_v3.10.xsd +9 -0
  159. data/lib/nfe/schemas/retConsSitNFe_v3.10.xsd +9 -0
  160. data/lib/nfe/schemas/retConsStatServ_v3.10.xsd +9 -0
  161. data/lib/nfe/schemas/retEnviNFe_v3.10.xsd +9 -0
  162. data/lib/nfe/schemas/retInutNFe_v3.10.xsd +9 -0
  163. data/lib/nfe/schemas/tiposBasico_v1.03.xsd +791 -0
  164. data/lib/nfe/schemas/tiposBasico_v3.10.xsd +877 -0
  165. data/lib/nfe/schemas/xmldsig-core-schema_v1.01.xsd +98 -0
  166. data/lib/nfe/services/dispatch/consCad.rb +57 -0
  167. data/lib/nfe/services/dispatch/consSitNFe.rb +43 -0
  168. data/lib/nfe/services/dispatch/consStatServ.rb +42 -0
  169. data/lib/nfe/services/dispatch/detEventoCC.rb +55 -0
  170. data/lib/nfe/services/dispatch/detEventoCancel.rb +45 -0
  171. data/lib/nfe/services/dispatch/envEvento.rb +28 -0
  172. data/lib/nfe/services/dispatch/enviNFe.rb +45 -0
  173. data/lib/nfe/services/dispatch/inutNFe.rb +93 -0
  174. data/lib/nfe/services/regress/infCad.rb +34 -0
  175. data/lib/nfe/services/regress/protNFe.rb +54 -0
  176. data/lib/nfe/services/regress/retConsCad.rb +27 -0
  177. data/lib/nfe/services/regress/retConsSitNFe.rb +26 -0
  178. data/lib/nfe/services/regress/retConsStatServ.rb +25 -0
  179. data/lib/nfe/services/regress/retEnvEvento.rb +27 -0
  180. data/lib/nfe/services/regress/retEnviNFe.rb +23 -0
  181. data/lib/nfe/services/regress/retEvento.rb +60 -0
  182. data/lib/nfe/services/regress/retInutNFe.rb +56 -0
  183. data/lib/nfe/version.rb +3 -0
  184. data/lib/nfe/webservices/client_soap.rb +35 -0
  185. data/lib/nfe/webservices/sender.rb +42 -0
  186. data/lib/nfe/webservices/wsinfo/base.rb +35 -0
  187. data/lib/nfe/webservices/wsinfo/consult_emitter.rb +16 -0
  188. data/lib/nfe/webservices/wsinfo/event.rb +20 -0
  189. data/lib/nfe/webservices/wsinfo/factory.rb +31 -0
  190. data/lib/nfe/webservices/wsinfo/nfe_disenable.rb +16 -0
  191. data/lib/nfe/webservices/wsinfo/nfe_send.rb +16 -0
  192. data/lib/nfe/webservices/wsinfo/nfe_situation.rb +16 -0
  193. data/lib/nfe/webservices/wsinfo/production/am.rb +16 -0
  194. data/lib/nfe/webservices/wsinfo/production/ba.rb +21 -0
  195. data/lib/nfe/webservices/wsinfo/production/ce.rb +16 -0
  196. data/lib/nfe/webservices/wsinfo/production/go.rb +16 -0
  197. data/lib/nfe/webservices/wsinfo/production/mg.rb +16 -0
  198. data/lib/nfe/webservices/wsinfo/production/ms.rb +16 -0
  199. data/lib/nfe/webservices/wsinfo/production/mt.rb +16 -0
  200. data/lib/nfe/webservices/wsinfo/production/pe.rb +16 -0
  201. data/lib/nfe/webservices/wsinfo/production/pr.rb +22 -0
  202. data/lib/nfe/webservices/wsinfo/production/rs.rb +21 -0
  203. data/lib/nfe/webservices/wsinfo/production/sp.rb +21 -0
  204. data/lib/nfe/webservices/wsinfo/production/svan.rb +24 -0
  205. data/lib/nfe/webservices/wsinfo/production/svrs.rb +21 -0
  206. data/lib/nfe/webservices/wsinfo/service_status.rb +16 -0
  207. data/lib/nfe/webservices/wsinfo/test/am.rb +16 -0
  208. data/lib/nfe/webservices/wsinfo/test/ba.rb +16 -0
  209. data/lib/nfe/webservices/wsinfo/test/ce.rb +16 -0
  210. data/lib/nfe/webservices/wsinfo/test/go.rb +16 -0
  211. data/lib/nfe/webservices/wsinfo/test/mg.rb +16 -0
  212. data/lib/nfe/webservices/wsinfo/test/ms.rb +16 -0
  213. data/lib/nfe/webservices/wsinfo/test/mt.rb +16 -0
  214. data/lib/nfe/webservices/wsinfo/test/pe.rb +16 -0
  215. data/lib/nfe/webservices/wsinfo/test/pr.rb +16 -0
  216. data/lib/nfe/webservices/wsinfo/test/rs.rb +17 -0
  217. data/lib/nfe/webservices/wsinfo/test/sp.rb +16 -0
  218. data/lib/nfe/webservices/wsinfo/test/svan.rb +20 -0
  219. data/lib/nfe/webservices/wsinfo/test/svrs.rb +18 -0
  220. data/lib/nfe/webservices/wsinfo/wsdl_base.rb +46 -0
  221. data/lib/nfe/webservices/wsinfo/wsdl_finder.rb +31 -0
  222. data/lib/xmldsig/canonicalize.rb +22 -0
  223. data/lib/xmldsig/canonicalizer.rb +27 -0
  224. data/lib/xmldsig/enveloped_signature.rb +10 -0
  225. data/lib/xmldsig/namespaces.rb +6 -0
  226. data/lib/xmldsig/reference.rb +72 -0
  227. data/lib/xmldsig/signature.rb +106 -0
  228. data/lib/xmldsig/signed_document.rb +28 -0
  229. data/lib/xmldsig/transform.rb +10 -0
  230. data/lib/xmldsig/transforms.rb +28 -0
  231. data/lib/xmldsig/xmldsig.rb +12 -0
  232. data/nf-e.gemspec +42 -0
  233. data/spec/nfe/factories/models/NFe.rb +9 -0
  234. data/spec/nfe/factories/models/avulsa.rb +16 -0
  235. data/spec/nfe/factories/models/bill/cobr.rb +14 -0
  236. data/spec/nfe/factories/models/bill/dup.rb +9 -0
  237. data/spec/nfe/factories/models/bill/fat.rb +10 -0
  238. data/spec/nfe/factories/models/cane/cana.rb +26 -0
  239. data/spec/nfe/factories/models/cane/deduc.rb +6 -0
  240. data/spec/nfe/factories/models/cane/forDia.rb +8 -0
  241. data/spec/nfe/factories/models/compra.rb +7 -0
  242. data/spec/nfe/factories/models/det.rb +11 -0
  243. data/spec/nfe/factories/models/emitter/emit.rb +15 -0
  244. data/spec/nfe/factories/models/ender.rb +17 -0
  245. data/spec/nfe/factories/models/entrega_retirada.rb +14 -0
  246. data/spec/nfe/factories/models/evento.rb +15 -0
  247. data/spec/nfe/factories/models/exporta.rb +6 -0
  248. data/spec/nfe/factories/models/ide.rb +43 -0
  249. data/spec/nfe/factories/models/infNFe.rb +26 -0
  250. data/spec/nfe/factories/models/information/infAdic.rb +23 -0
  251. data/spec/nfe/factories/models/information/obsContFisco.rb +8 -0
  252. data/spec/nfe/factories/models/information/procRef.rb +8 -0
  253. data/spec/nfe/factories/models/itens/CIDE.rb +7 -0
  254. data/spec/nfe/factories/models/itens/DI.rb +17 -0
  255. data/spec/nfe/factories/models/itens/adi.rb +8 -0
  256. data/spec/nfe/factories/models/itens/arma.rb +8 -0
  257. data/spec/nfe/factories/models/itens/comb.rb +9 -0
  258. data/spec/nfe/factories/models/itens/med.rb +9 -0
  259. data/spec/nfe/factories/models/itens/prod.rb +48 -0
  260. data/spec/nfe/factories/models/itens/veicProd.rb +28 -0
  261. data/spec/nfe/factories/models/recipient/dest.rb +13 -0
  262. data/spec/nfe/factories/models/referenced/NFref.rb +13 -0
  263. data/spec/nfe/factories/models/referenced/refECF.rb +7 -0
  264. data/spec/nfe/factories/models/referenced/refNF.rb +10 -0
  265. data/spec/nfe/factories/models/referenced/refNFP.rb +12 -0
  266. data/spec/nfe/factories/models/signature.rb +10 -0
  267. data/spec/nfe/factories/models/taxes/ICMS.rb +203 -0
  268. data/spec/nfe/factories/models/taxes/ICMS00.rb +10 -0
  269. data/spec/nfe/factories/models/taxes/ICMS10.rb +16 -0
  270. data/spec/nfe/factories/models/taxes/ICMS101.rb +8 -0
  271. data/spec/nfe/factories/models/taxes/ICMS102.rb +6 -0
  272. data/spec/nfe/factories/models/taxes/ICMS103.rb +6 -0
  273. data/spec/nfe/factories/models/taxes/ICMS20.rb +11 -0
  274. data/spec/nfe/factories/models/taxes/ICMS201.rb +14 -0
  275. data/spec/nfe/factories/models/taxes/ICMS202.rb +12 -0
  276. data/spec/nfe/factories/models/taxes/ICMS203.rb +12 -0
  277. data/spec/nfe/factories/models/taxes/ICMS30.rb +12 -0
  278. data/spec/nfe/factories/models/taxes/ICMS300.rb +6 -0
  279. data/spec/nfe/factories/models/taxes/ICMS40.rb +8 -0
  280. data/spec/nfe/factories/models/taxes/ICMS400.rb +6 -0
  281. data/spec/nfe/factories/models/taxes/ICMS41.rb +8 -0
  282. data/spec/nfe/factories/models/taxes/ICMS50.rb +8 -0
  283. data/spec/nfe/factories/models/taxes/ICMS500.rb +8 -0
  284. data/spec/nfe/factories/models/taxes/ICMS51.rb +11 -0
  285. data/spec/nfe/factories/models/taxes/ICMS60.rb +8 -0
  286. data/spec/nfe/factories/models/taxes/ICMS70.rb +17 -0
  287. data/spec/nfe/factories/models/taxes/ICMS90.rb +17 -0
  288. data/spec/nfe/factories/models/taxes/ICMS900.rb +19 -0
  289. data/spec/nfe/factories/models/taxes/ICMSPart.rb +19 -0
  290. data/spec/nfe/factories/models/taxes/ICMSST.rb +9 -0
  291. data/spec/nfe/factories/models/taxes/ICMSTot.rb +20 -0
  292. data/spec/nfe/factories/models/taxes/II.rb +8 -0
  293. data/spec/nfe/factories/models/taxes/IPI.rb +24 -0
  294. data/spec/nfe/factories/models/taxes/IPINT.rb +5 -0
  295. data/spec/nfe/factories/models/taxes/IPITrib.rb +10 -0
  296. data/spec/nfe/factories/models/taxes/ISSQN.rb +10 -0
  297. data/spec/nfe/factories/models/taxes/ISSQNtot.rb +9 -0
  298. data/spec/nfe/factories/models/taxes/PISCOFINS.rb +72 -0
  299. data/spec/nfe/factories/models/taxes/PISCOFINSAliq.rb +21 -0
  300. data/spec/nfe/factories/models/taxes/PISCOFINSNT.rb +5 -0
  301. data/spec/nfe/factories/models/taxes/PISCOFINSOutr.rb +23 -0
  302. data/spec/nfe/factories/models/taxes/PISCOFINSQtde.rb +17 -0
  303. data/spec/nfe/factories/models/taxes/PISCOFINSST.rb +21 -0
  304. data/spec/nfe/factories/models/taxes/imposto.rb +15 -0
  305. data/spec/nfe/factories/models/taxes/retTrib.rb +11 -0
  306. data/spec/nfe/factories/models/total.rb +7 -0
  307. data/spec/nfe/factories/models/transport/lacres.rb +6 -0
  308. data/spec/nfe/factories/models/transport/retTransp.rb +10 -0
  309. data/spec/nfe/factories/models/transport/transp.rb +18 -0
  310. data/spec/nfe/factories/models/transport/transporta.rb +11 -0
  311. data/spec/nfe/factories/models/transport/veicTranspReboque.rb +8 -0
  312. data/spec/nfe/factories/models/transport/vol.rb +17 -0
  313. data/spec/nfe/factories/services/consCad.rb +10 -0
  314. data/spec/nfe/factories/services/consSitNFe.rb +12 -0
  315. data/spec/nfe/factories/services/consStatServ.rb +7 -0
  316. data/spec/nfe/factories/services/detEventoCC.rb +6 -0
  317. data/spec/nfe/factories/services/detEventoCancel.rb +7 -0
  318. data/spec/nfe/factories/services/envEvento.rb +7 -0
  319. data/spec/nfe/factories/services/enviNFe.rb +11 -0
  320. data/spec/nfe/factories/services/inutNFe.rb +15 -0
  321. data/spec/nfe/factories/services/protNFe.rb +14 -0
  322. data/spec/nfe/factories/services/retEvento.rb +15 -0
  323. data/spec/nfe/factories/services/retInutNFe.rb +19 -0
  324. data/spec/nfe/fixtures/cassettes/correction_letter/error_in_lot.yml +176 -0
  325. data/spec/nfe/fixtures/cassettes/correction_letter/invalid_response.yml +175 -0
  326. data/spec/nfe/fixtures/cassettes/correction_letter/rejected.yml +177 -0
  327. data/spec/nfe/fixtures/cassettes/correction_letter/success.yml +177 -0
  328. data/spec/nfe/fixtures/cassettes/nfe_cancel/error_in_lot.yml +176 -0
  329. data/spec/nfe/fixtures/cassettes/nfe_cancel/invalid_response.yml +174 -0
  330. data/spec/nfe/fixtures/cassettes/nfe_cancel/rejected.yml +177 -0
  331. data/spec/nfe/fixtures/cassettes/nfe_cancel/success.yml +177 -0
  332. data/spec/nfe/fixtures/cassettes/nfe_discard/invalid_response.yml +175 -0
  333. data/spec/nfe/fixtures/cassettes/nfe_discard/rejected.yml +176 -0
  334. data/spec/nfe/fixtures/cassettes/nfe_discard/success.yml +176 -0
  335. data/spec/nfe/fixtures/cassettes/nfe_send/authorized.yml +197 -0
  336. data/spec/nfe/fixtures/cassettes/nfe_send/denied.yml +198 -0
  337. data/spec/nfe/fixtures/cassettes/nfe_send/error_in_lot.yml +195 -0
  338. data/spec/nfe/fixtures/cassettes/nfe_send/invalid_response.yml +193 -0
  339. data/spec/nfe/fixtures/cassettes/nfe_send/rejected.yml +198 -0
  340. data/spec/nfe/fixtures/certificate.pem +16 -0
  341. data/spec/nfe/fixtures/invalid_nfe.xml +1 -0
  342. data/spec/nfe/fixtures/nfe.xml +1 -0
  343. data/spec/nfe/fixtures/private-key.pem +15 -0
  344. data/spec/nfe/helpers/nfe_key_spec.rb +87 -0
  345. data/spec/nfe/helpers/schema_validator_spec.rb +34 -0
  346. data/spec/nfe/helpers/signer_spec.rb +22 -0
  347. data/spec/nfe/helpers/uf_helper_spec.rb +331 -0
  348. data/spec/nfe/helpers/xml_model/attribute_base_spec.rb +63 -0
  349. data/spec/nfe/helpers/xml_model/attribute_bigdecimal_spec.rb +32 -0
  350. data/spec/nfe/helpers/xml_model/attribute_collection_spec.rb +46 -0
  351. data/spec/nfe/helpers/xml_model/attribute_date_spec.rb +40 -0
  352. data/spec/nfe/helpers/xml_model/attribute_datetime_spec.rb +41 -0
  353. data/spec/nfe/helpers/xml_model/attribute_enumerize_spec.rb +34 -0
  354. data/spec/nfe/helpers/xml_model/attribute_float_spec.rb +40 -0
  355. data/spec/nfe/helpers/xml_model/attribute_integer_spec.rb +33 -0
  356. data/spec/nfe/helpers/xml_model/attribute_node_spec.rb +44 -0
  357. data/spec/nfe/helpers/xml_model/attribute_nodeattribute_spec.rb +33 -0
  358. data/spec/nfe/helpers/xml_model/attribute_text_spec.rb +173 -0
  359. data/spec/nfe/helpers/xml_model/factory_spec.rb +102 -0
  360. data/spec/nfe/helpers/xml_model/nfe_model_spec.rb +225 -0
  361. data/spec/nfe/models/NFe_spec.rb +48 -0
  362. data/spec/nfe/models/avulsa_spec.rb +140 -0
  363. data/spec/nfe/models/bigdecimal_greater_than_validator_spec.rb +33 -0
  364. data/spec/nfe/models/bigdecimal_less_than_validator_spec.rb +33 -0
  365. data/spec/nfe/models/bill/cobr_spec.rb +98 -0
  366. data/spec/nfe/models/bill/dup_spec.rb +80 -0
  367. data/spec/nfe/models/bill/fat_spec.rb +129 -0
  368. data/spec/nfe/models/cane/cana_spec.rb +161 -0
  369. data/spec/nfe/models/cane/deduc_spec.rb +40 -0
  370. data/spec/nfe/models/cane/forDia_spec.rb +51 -0
  371. data/spec/nfe/models/compra_spec.rb +78 -0
  372. data/spec/nfe/models/det_spec.rb +94 -0
  373. data/spec/nfe/models/emitter/emit_spec.rb +150 -0
  374. data/spec/nfe/models/ender_spec.rb +129 -0
  375. data/spec/nfe/models/entrega_retirada_spec.rb +159 -0
  376. data/spec/nfe/models/evento_spec.rb +52 -0
  377. data/spec/nfe/models/exporta_spec.rb +54 -0
  378. data/spec/nfe/models/ide_spec.rb +215 -0
  379. data/spec/nfe/models/infNFe_spec.rb +292 -0
  380. data/spec/nfe/models/information/infAdic_spec.rb +126 -0
  381. data/spec/nfe/models/information/obsContFisco_spec.rb +37 -0
  382. data/spec/nfe/models/information/procRef_spec.rb +41 -0
  383. data/spec/nfe/models/itens/CIDE_spec.rb +57 -0
  384. data/spec/nfe/models/itens/DI_spec.rb +67 -0
  385. data/spec/nfe/models/itens/adi_spec.rb +79 -0
  386. data/spec/nfe/models/itens/arma_spec.rb +43 -0
  387. data/spec/nfe/models/itens/comb_spec.rb +103 -0
  388. data/spec/nfe/models/itens/med_spec.rb +52 -0
  389. data/spec/nfe/models/itens/prod_spec.rb +249 -0
  390. data/spec/nfe/models/itens/veicProd_spec.rb +173 -0
  391. data/spec/nfe/models/nfeProc_spec.rb +21 -0
  392. data/spec/nfe/models/procEventoNFe_spec.rb +21 -0
  393. data/spec/nfe/models/procInutNFe_spec.rb +21 -0
  394. data/spec/nfe/models/recipient/dest_spec.rb +152 -0
  395. data/spec/nfe/models/referenced/NFref_spec.rb +102 -0
  396. data/spec/nfe/models/referenced/refECF_spec.rb +59 -0
  397. data/spec/nfe/models/referenced/refNFP_spec.rb +115 -0
  398. data/spec/nfe/models/referenced/refNF_spec.rb +82 -0
  399. data/spec/nfe/models/shared_examples_for_tdec_0302.rb +35 -0
  400. data/spec/nfe/models/shared_examples_for_tdec_0803.rb +21 -0
  401. data/spec/nfe/models/shared_examples_for_tdec_1104.rb +38 -0
  402. data/spec/nfe/models/shared_examples_for_tdec_1204.rb +34 -0
  403. data/spec/nfe/models/shared_examples_for_tdec_1302.rb +34 -0
  404. data/spec/nfe/models/signature_spec.rb +56 -0
  405. data/spec/nfe/models/taxes/ICMS00_spec.rb +27 -0
  406. data/spec/nfe/models/taxes/ICMS101_spec.rb +21 -0
  407. data/spec/nfe/models/taxes/ICMS102_spec.rb +15 -0
  408. data/spec/nfe/models/taxes/ICMS103_spec.rb +15 -0
  409. data/spec/nfe/models/taxes/ICMS10_spec.rb +83 -0
  410. data/spec/nfe/models/taxes/ICMS201_spec.rb +67 -0
  411. data/spec/nfe/models/taxes/ICMS202_spec.rb +61 -0
  412. data/spec/nfe/models/taxes/ICMS203_spec.rb +61 -0
  413. data/spec/nfe/models/taxes/ICMS20_spec.rb +30 -0
  414. data/spec/nfe/models/taxes/ICMS300_spec.rb +16 -0
  415. data/spec/nfe/models/taxes/ICMS30_spec.rb +67 -0
  416. data/spec/nfe/models/taxes/ICMS400_spec.rb +15 -0
  417. data/spec/nfe/models/taxes/ICMS40_spec.rb +51 -0
  418. data/spec/nfe/models/taxes/ICMS41_spec.rb +51 -0
  419. data/spec/nfe/models/taxes/ICMS500_spec.rb +46 -0
  420. data/spec/nfe/models/taxes/ICMS50_spec.rb +51 -0
  421. data/spec/nfe/models/taxes/ICMS51_spec.rb +55 -0
  422. data/spec/nfe/models/taxes/ICMS60_spec.rb +52 -0
  423. data/spec/nfe/models/taxes/ICMS70_spec.rb +84 -0
  424. data/spec/nfe/models/taxes/ICMS900_spec.rb +80 -0
  425. data/spec/nfe/models/taxes/ICMS90_spec.rb +83 -0
  426. data/spec/nfe/models/taxes/ICMSPart_spec.rb +141 -0
  427. data/spec/nfe/models/taxes/ICMSST_spec.rb +60 -0
  428. data/spec/nfe/models/taxes/ICMSTot_spec.rb +119 -0
  429. data/spec/nfe/models/taxes/ICMS_spec.rb +159 -0
  430. data/spec/nfe/models/taxes/II_spec.rb +58 -0
  431. data/spec/nfe/models/taxes/IPINT_spec.rb +39 -0
  432. data/spec/nfe/models/taxes/IPITrib_spec.rb +55 -0
  433. data/spec/nfe/models/taxes/IPI_spec.rb +128 -0
  434. data/spec/nfe/models/taxes/ISSQN_spec.rb +62 -0
  435. data/spec/nfe/models/taxes/ISSQNtot_spec.rb +72 -0
  436. data/spec/nfe/models/taxes/PISCOFINSAliq_spec.rb +22 -0
  437. data/spec/nfe/models/taxes/PISCOFINSNT_spec.rb +12 -0
  438. data/spec/nfe/models/taxes/PISCOFINSOutr_spec.rb +37 -0
  439. data/spec/nfe/models/taxes/PISCOFINSQtde_spec.rb +21 -0
  440. data/spec/nfe/models/taxes/PISCOFINSST_spec.rb +60 -0
  441. data/spec/nfe/models/taxes/PISCOFINS_spec.rb +68 -0
  442. data/spec/nfe/models/taxes/imposto_spec.rb +159 -0
  443. data/spec/nfe/models/taxes/retTrib_spec.rb +78 -0
  444. data/spec/nfe/models/taxes/shared_examples_for_COFINSAliq.rb +41 -0
  445. data/spec/nfe/models/taxes/shared_examples_for_COFINSNT.rb +35 -0
  446. data/spec/nfe/models/taxes/shared_examples_for_COFINSOutr.rb +119 -0
  447. data/spec/nfe/models/taxes/shared_examples_for_COFINSQtde.rb +41 -0
  448. data/spec/nfe/models/taxes/shared_examples_for_ICMS00.rb +45 -0
  449. data/spec/nfe/models/taxes/shared_examples_for_ICMS10.rb +57 -0
  450. data/spec/nfe/models/taxes/shared_examples_for_ICMS101.rb +41 -0
  451. data/spec/nfe/models/taxes/shared_examples_for_ICMS102.rb +37 -0
  452. data/spec/nfe/models/taxes/shared_examples_for_ICMS103.rb +37 -0
  453. data/spec/nfe/models/taxes/shared_examples_for_ICMS20.rb +47 -0
  454. data/spec/nfe/models/taxes/shared_examples_for_ICMS201.rb +53 -0
  455. data/spec/nfe/models/taxes/shared_examples_for_ICMS202.rb +49 -0
  456. data/spec/nfe/models/taxes/shared_examples_for_ICMS203.rb +49 -0
  457. data/spec/nfe/models/taxes/shared_examples_for_ICMS30.rb +49 -0
  458. data/spec/nfe/models/taxes/shared_examples_for_ICMS300.rb +37 -0
  459. data/spec/nfe/models/taxes/shared_examples_for_ICMS40.rb +41 -0
  460. data/spec/nfe/models/taxes/shared_examples_for_ICMS400.rb +37 -0
  461. data/spec/nfe/models/taxes/shared_examples_for_ICMS41.rb +41 -0
  462. data/spec/nfe/models/taxes/shared_examples_for_ICMS50.rb +41 -0
  463. data/spec/nfe/models/taxes/shared_examples_for_ICMS500.rb +41 -0
  464. data/spec/nfe/models/taxes/shared_examples_for_ICMS51.rb +47 -0
  465. data/spec/nfe/models/taxes/shared_examples_for_ICMS60.rb +41 -0
  466. data/spec/nfe/models/taxes/shared_examples_for_ICMS70.rb +59 -0
  467. data/spec/nfe/models/taxes/shared_examples_for_ICMS90.rb +59 -0
  468. data/spec/nfe/models/taxes/shared_examples_for_ICMS900.rb +63 -0
  469. data/spec/nfe/models/taxes/shared_examples_for_PISAliq.rb +41 -0
  470. data/spec/nfe/models/taxes/shared_examples_for_PISNT.rb +35 -0
  471. data/spec/nfe/models/taxes/shared_examples_for_PISOutr.rb +119 -0
  472. data/spec/nfe/models/taxes/shared_examples_for_PISQtde.rb +41 -0
  473. data/spec/nfe/models/total_spec.rb +144 -0
  474. data/spec/nfe/models/transport/lacres_spec.rb +35 -0
  475. data/spec/nfe/models/transport/retTransp_spec.rb +69 -0
  476. data/spec/nfe/models/transport/transp_spec.rb +149 -0
  477. data/spec/nfe/models/transport/transporta_spec.rb +128 -0
  478. data/spec/nfe/models/transport/veicTranspReboque_spec.rb +83 -0
  479. data/spec/nfe/models/transport/vol_spec.rb +97 -0
  480. data/spec/nfe/operations/consult_emitter_spec.rb +31 -0
  481. data/spec/nfe/operations/correction_letter_spec.rb +198 -0
  482. data/spec/nfe/operations/nfe_cancel_spec.rb +223 -0
  483. data/spec/nfe/operations/nfe_discard_spec.rb +172 -0
  484. data/spec/nfe/operations/nfe_send_spec.rb +220 -0
  485. data/spec/nfe/operations/nfe_situation_spec.rb +14 -0
  486. data/spec/nfe/operations/service_status_spec.rb +11 -0
  487. data/spec/nfe/operations/shared_examples_for_operations.rb +84 -0
  488. data/spec/nfe/services/dispatch/consCad_spec.rb +80 -0
  489. data/spec/nfe/services/dispatch/consSitNFe_spec.rb +29 -0
  490. data/spec/nfe/services/dispatch/consStatServ_spec.rb +25 -0
  491. data/spec/nfe/services/dispatch/detEventoCC_spec.rb +45 -0
  492. data/spec/nfe/services/dispatch/detEventoCancel_spec.rb +39 -0
  493. data/spec/nfe/services/dispatch/envEvento_spec.rb +33 -0
  494. data/spec/nfe/services/dispatch/enviNFe_spec.rb +27 -0
  495. data/spec/nfe/services/dispatch/inutNFe_spec.rb +51 -0
  496. data/spec/nfe/services/regress/infCad_spec.rb +61 -0
  497. data/spec/nfe/services/regress/protNFe_spec.rb +56 -0
  498. data/spec/nfe/services/regress/retConsCad_spec.rb +67 -0
  499. data/spec/nfe/services/regress/retConsSitNFe_spec.rb +46 -0
  500. data/spec/nfe/services/regress/retConsStatServ_spec.rb +34 -0
  501. data/spec/nfe/services/regress/retEnvEvento_spec.rb +44 -0
  502. data/spec/nfe/services/regress/retEnviNFe_spec.rb +44 -0
  503. data/spec/nfe/services/regress/retEvento_spec.rb +66 -0
  504. data/spec/nfe/services/regress/retInutNFe_spec.rb +70 -0
  505. data/spec/nfe/webservices/client_soap_spec.rb +32 -0
  506. data/spec/nfe/webservices/fixtures/nfe_status_servico2.wsdl +62 -0
  507. data/spec/nfe/webservices/fixtures/retConsCad.xml +1 -0
  508. data/spec/nfe/webservices/fixtures/retConsSitNFe.xml +1 -0
  509. data/spec/nfe/webservices/fixtures/retConsStatServ.xml +1 -0
  510. data/spec/nfe/webservices/fixtures/retEnvEventoCancNFe.xml +1 -0
  511. data/spec/nfe/webservices/fixtures/retEnviNFe.xml +1 -0
  512. data/spec/nfe/webservices/fixtures/retInutNFe.xml +1 -0
  513. data/spec/nfe/webservices/sender_spec.rb +65 -0
  514. data/spec/nfe/webservices/wsinfo/consult_emitter_spec.rb +37 -0
  515. data/spec/nfe/webservices/wsinfo/event_spec.rb +50 -0
  516. data/spec/nfe/webservices/wsinfo/factory_spec.rb +50 -0
  517. data/spec/nfe/webservices/wsinfo/nfe_disenable_spec.rb +37 -0
  518. data/spec/nfe/webservices/wsinfo/nfe_send_spec.rb +37 -0
  519. data/spec/nfe/webservices/wsinfo/nfe_situation_spec.rb +37 -0
  520. data/spec/nfe/webservices/wsinfo/production/am_spec.rb +21 -0
  521. data/spec/nfe/webservices/wsinfo/production/ba_spec.rb +21 -0
  522. data/spec/nfe/webservices/wsinfo/production/ce_spec.rb +21 -0
  523. data/spec/nfe/webservices/wsinfo/production/go_spec.rb +21 -0
  524. data/spec/nfe/webservices/wsinfo/production/mg_spec.rb +21 -0
  525. data/spec/nfe/webservices/wsinfo/production/ms_spec.rb +21 -0
  526. data/spec/nfe/webservices/wsinfo/production/mt_spec.rb +21 -0
  527. data/spec/nfe/webservices/wsinfo/production/pe_spec.rb +21 -0
  528. data/spec/nfe/webservices/wsinfo/production/pr_spec.rb +21 -0
  529. data/spec/nfe/webservices/wsinfo/production/rs_spec.rb +21 -0
  530. data/spec/nfe/webservices/wsinfo/production/sp_spec.rb +21 -0
  531. data/spec/nfe/webservices/wsinfo/production/svan_spec.rb +26 -0
  532. data/spec/nfe/webservices/wsinfo/production/svrs_spec.rb +21 -0
  533. data/spec/nfe/webservices/wsinfo/service_status_spec.rb +37 -0
  534. data/spec/nfe/webservices/wsinfo/shared_examples_for_wsdl.rb +39 -0
  535. data/spec/nfe/webservices/wsinfo/test/am_spec.rb +21 -0
  536. data/spec/nfe/webservices/wsinfo/test/ba_spec.rb +21 -0
  537. data/spec/nfe/webservices/wsinfo/test/ce_spec.rb +21 -0
  538. data/spec/nfe/webservices/wsinfo/test/go_spec.rb +21 -0
  539. data/spec/nfe/webservices/wsinfo/test/mg_spec.rb +21 -0
  540. data/spec/nfe/webservices/wsinfo/test/ms_spec.rb +21 -0
  541. data/spec/nfe/webservices/wsinfo/test/mt_spec.rb +21 -0
  542. data/spec/nfe/webservices/wsinfo/test/pe_spec.rb +21 -0
  543. data/spec/nfe/webservices/wsinfo/test/pr_spec.rb +21 -0
  544. data/spec/nfe/webservices/wsinfo/test/rs_spec.rb +21 -0
  545. data/spec/nfe/webservices/wsinfo/test/sp_spec.rb +21 -0
  546. data/spec/nfe/webservices/wsinfo/test/svan_spec.rb +26 -0
  547. data/spec/nfe/webservices/wsinfo/test/svrs_spec.rb +21 -0
  548. data/spec/nfe/webservices/wsinfo/wsdl_finder_spec.rb +56 -0
  549. data/spec/spec_helper.rb +33 -0
  550. data/spec/support/utilities.rb +3 -0
  551. data/spec/xmldsig/canonicalizer_spec.rb +43 -0
  552. data/spec/xmldsig/enveloped_signature_spec.rb +19 -0
  553. data/spec/xmldsig/fixtures/certificate.cer +16 -0
  554. data/spec/xmldsig/fixtures/certificate2.cer +16 -0
  555. data/spec/xmldsig/fixtures/key.pem +15 -0
  556. data/spec/xmldsig/fixtures/signed.xml +23 -0
  557. data/spec/xmldsig/fixtures/unsigned.xml +26 -0
  558. data/spec/xmldsig/fixtures/unsigned_multiple_references.xml +43 -0
  559. data/spec/xmldsig/fixtures/unsigned_nested_signature.xml +50 -0
  560. data/spec/xmldsig/reference_spec.rb +62 -0
  561. data/spec/xmldsig/signature_spec.rb +119 -0
  562. data/spec/xmldsig/signed_document_spec.rb +97 -0
  563. metadata +1201 -0
@@ -0,0 +1,16 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIICgjCCAeugAwIBAgIBADANBgkqhkiG9w0BAQUFADA6MQswCQYDVQQGEwJCRTEN
3
+ MAsGA1UECgwEVGVzdDENMAsGA1UECwwEVGVzdDENMAsGA1UEAwwEVGVzdDAeFw0x
4
+ MzAxMTMxNTMzNDNaFw0xNDAxMTMxNTMzNDNaMDoxCzAJBgNVBAYTAkJFMQ0wCwYD
5
+ VQQKDARUZXN0MQ0wCwYDVQQLDARUZXN0MQ0wCwYDVQQDDARUZXN0MIGfMA0GCSqG
6
+ SIb3DQEBAQUAA4GNADCBiQKBgQC37C0mhTmdr8iVfQPQuOKtzG/fhwG4ILuUX1Vk
7
+ 5uN9oSZJxhb5Kn8aBppny1BSekgk12wn4AE/6i7Jfix3SZWoqdaxpdDalvQSdNey
8
+ n6GmV2oP4lzp6XjXmtRxvOywgTYuhf/DBlpiq7B/vTF7kMwYgs0ahM3mRJG2V7LA
9
+ RTXUfwIDAQABo4GXMIGUMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFBRkMx3Z
10
+ wHO3Zog0pWdYNB38NRmWMGIGA1UdIwRbMFmAFBRkMx3ZwHO3Zog0pWdYNB38NRmW
11
+ oT6kPDA6MQswCQYDVQQGEwJCRTENMAsGA1UECgwEVGVzdDENMAsGA1UECwwEVGVz
12
+ dDENMAsGA1UEAwwEVGVzdIIBADANBgkqhkiG9w0BAQUFAAOBgQBs8voSBDgN7HL1
13
+ i5EP+G/ymWUVenpGvRZCnfkR9Wo4ORzj1Y7ohXHooOzDJ2oi0yDwatXnPpe3hauq
14
+ QDid6d4i7F1Wpgdo2MibqXP8/DPzhuBARvPSzip+yS6ITjqKN/YN4K+kpja2Sh7D
15
+ dxWND3opvVHZTXywjZpdF1OsmNhOCg==
16
+ -----END CERTIFICATE-----
@@ -0,0 +1 @@
1
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe"><infNFe versao="3.10" Id="NFe35141200776574000580550020001895381731493575"><ide><cUF>35</cUF><cNF>73149357</cNF><natOp>Venda de mercadoria adquir. de terceiros</natOp><indPag>0</indPag><mod>55</mod><serie>2</serie><nNF>189538</nNF><dhEmi>2014-12-09T15:29:58-02:00</dhEmi><dhSaiEnt>2014-12-09T15:29:58-02:00</dhSaiEnt><tpNF>1</tpNF><idDest>2</idDest><cMunFG>3509205</cMunFG><tpImp>1</tpImp><tpEmis>1</tpEmis><cDV>5</cDV><tpAmb>1</tpAmb><finNFe>1</finNFe><indFinal>1</indFinal><indPres>2</indPres><procEmi>0</procEmi><verProc>ELDOC</verProc></ide><emit><CNPJ>00776574000580</CNPJ><!--<xNome>B2W Companhia Digital</xNome>--><enderEmit><xLgr>Via de Acesso Norte, Km 38</xLgr><nro>420</nro><xBairro>Bairro Empresarial Gato Preto</xBairro><cMun>3509205</cMun><xMun>CAJAMAR</xMun><UF>SP</UF><CEP>07789100</CEP></enderEmit><IE>241053271119</IE><CRT>3</CRT></emit><dest><CPF>06295019986</CPF><xNome>ASSEINFO</xNome><enderDest><xLgr>Rua Atanasio Antonio Bernades</xLgr><nro>204</nro><xCpl>Asseinfo</xCpl><xBairro>Centro</xBairro><cMun>4218004</cMun><xMun>TIJUCAS</xMun><UF>SC</UF><CEP>88200000</CEP><fone>4891450518</fone></enderDest><indIEDest>9</indIEDest></dest><det nItem="1"><prod><cProd>111066969</cProd><cEAN>7899091423842</cEAN><xProd>Batmoto - 6V - BANDEIRANTE</xProd><NCM>95030010</NCM><CFOP>6404</CFOP><uCom>PC</uCom><qCom>1</qCom><vUnCom>849.00</vUnCom><vProd>849.00</vProd><cEANTrib>7899091423842</cEANTrib><uTrib>PC</uTrib><qTrib>1</qTrib><vUnTrib>849.00</vUnTrib><vFrete>9.99</vFrete><vDesc>42.45</vDesc><indTot>1</indTot></prod><imposto><ICMS><ICMS60><orig>0</orig><CST>60</CST><vBCSTRet>0.00</vBCSTRet><vICMSSTRet>0.00</vICMSSTRet></ICMS60></ICMS><PIS><PISAliq><CST>01</CST><vBC>816.54</vBC><pPIS>1.65</pPIS><vPIS>13.47</vPIS></PISAliq></PIS><COFINS><COFINSAliq><CST>01</CST><vBC>816.54</vBC><pCOFINS>7.60</pCOFINS><vCOFINS>62.06</vCOFINS></COFINSAliq></COFINS></imposto><infAdProd>Desconto Incondicional Concedido: R$ 42.45</infAdProd></det><total><ICMSTot><vBC>0.00</vBC><vICMS>0.00</vICMS><vICMSDeson>0.00</vICMSDeson><vBCST>0.00</vBCST><vST>0.00</vST><vProd>849.00</vProd><vFrete>9.99</vFrete><vSeg>0.00</vSeg><vDesc>42.45</vDesc><vII>0.00</vII><vIPI>0.00</vIPI><vPIS>13.47</vPIS><vCOFINS>62.06</vCOFINS><vOutro>0.00</vOutro><vNF>816.54</vNF></ICMSTot></total><transp><modFrete>1</modFrete><vol><qVol>1</qVol><pesoL>13.460</pesoL><pesoB>13.460</pesoB></vol></transp><infAdic><infCpl>Nf.Id: 93706480 -Desconto Condicional Concedido de R$ 96.79 Nao incidencia de ICMS - Mercadoria com Substituicao Tributaria, conforme Art 310 RICMS- 30 de novembro de 2000 Resolucao do Senado Federal no 13/12, Numero da FCI: 708DBEF2 82D1 4C37 BAC2 21F8D130603A; 99E92779 D7EF 4C50 9472 DCF9D9ABD4BD; 462D9162 9CC2 448E 8CB3 22A8E67F00EB; 124468BB 0A4A 4FC5 A9D8 BE8A725709F1;85b26422-3dc0-4797-a51d-3475a1097a3c Impostos Pagos: PIS: R$ 13,47 (1,65%) COFINS: R$ 62,06 (7,60%); N. Pedido: 03-466850984 N. Entrega: 365083069.</infCpl><obsCont xCampo="SiglaERP"><xTexto>ORACLE</xTexto></obsCont><obsCont xCampo="Logo"><xTexto>SUBA</xTexto></obsCont><obsCont xCampo="NomedaMarca"><xTexto>Submarino.com</xTexto></obsCont></infAdic></infNFe><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><Reference URI="#NFe35141200776574000580550020001895381731493575"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo><X509Data><X509Certificate></X509Certificate></X509Data></KeyInfo></Signature></NFe>
@@ -0,0 +1 @@
1
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe"><infNFe versao="3.10" Id="NFe42150101144012000152550010000001111000001114"><ide><cUF>42</cUF><cNF>00000111</cNF><natOp>5102-Venda de mercadoria adquirida ou recebida de terceiros</natOp><indPag>0</indPag><mod>55</mod><serie>1</serie><nNF>111</nNF><dhEmi>2015-01-22T00:00:00+00:00</dhEmi><dhSaiEnt>2015-01-22T00:00:00+00:00</dhSaiEnt><tpNF>1</tpNF><idDest>1</idDest><cMunFG>4218004</cMunFG><tpImp>1</tpImp><tpEmis>1</tpEmis><cDV>4</cDV><tpAmb>2</tpAmb><finNFe>1</finNFe><indFinal>0</indFinal><indPres>9</indPres><procEmi>0</procEmi><verProc>1</verProc></ide><emit><CNPJ>01144012000152</CNPJ><xNome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xNome><xFant>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xFant><enderEmit><xLgr>ROD SC 411</xLgr><nro>13</nro><xBairro>INDIA</xBairro><cMun>4218004</cMun><xMun>TIJUCAS</xMun><UF>SC</UF><CEP>88200000</CEP><fone>32630000</fone></enderEmit><IE>253263131</IE><CRT>3</CRT></emit><dest><CNPJ>03131675000168</CNPJ><xNome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xNome><enderDest><xLgr>R ANTONIO ONOFRE</xLgr><nro>133</nro><xBairro>CENTRO</xBairro><cMun>4218004</cMun><xMun>TIJUCAS</xMun><UF>SC</UF><CEP>88200000</CEP><fone>32631222</fone></enderDest><indIEDest>1</indIEDest><IE>253889197</IE></dest><det nItem="1"><prod><cProd>1</cProd><cEAN/><xProd>Calça Leg Ultra Fashion - Uí</xProd><NCM>53013000</NCM><CFOP>5102</CFOP><uCom>UN</uCom><qCom>1.0</qCom><vUnCom>10.0</vUnCom><vProd>10.00</vProd><cEANTrib/><uTrib>UN</uTrib><qTrib>1.0</qTrib><vUnTrib>10.0</vUnTrib><indTot>1</indTot></prod><imposto><ICMS><ICMS00><orig>0</orig><CST>00</CST><modBC>3</modBC><vBC>10.00</vBC><pICMS>17.00</pICMS><vICMS>1.70</vICMS></ICMS00></ICMS><IPI><cEnq>999</cEnq><IPITrib><CST>50</CST><vBC>10.00</vBC><pIPI>1.00</pIPI><vIPI>0.10</vIPI></IPITrib></IPI><PIS><PISAliq><CST>01</CST><vBC>10.00</vBC><pPIS>1.65</pPIS><vPIS>0.17</vPIS></PISAliq></PIS><COFINS><COFINSAliq><CST>01</CST><vBC>10.00</vBC><pCOFINS>2.00</pCOFINS><vCOFINS>0.20</vCOFINS></COFINSAliq></COFINS></imposto></det><total><ICMSTot><vBC>10.00</vBC><vICMS>1.70</vICMS><vICMSDeson>0.00</vICMSDeson><vBCST>0.00</vBCST><vST>0.00</vST><vProd>10.00</vProd><vFrete>0.00</vFrete><vSeg>0.00</vSeg><vDesc>0.00</vDesc><vII>0.00</vII><vIPI>0.10</vIPI><vPIS>0.17</vPIS><vCOFINS>0.20</vCOFINS><vOutro>0.00</vOutro><vNF>10.10</vNF></ICMSTot></total><transp><modFrete>9</modFrete></transp></infNFe><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm='http://www.w3.org/TR/2001/REC-xml-c14n-20010315'/><SignatureMethod Algorithm='http://www.w3.org/2000/09/xmldsig#rsa-sha1'/><Reference URI='#NFe42150101144012000152550010000001111000001114'><Transforms><Transform Algorithm='http://www.w3.org/2000/09/xmldsig#enveloped-signature'/><Transform Algorithm='http://www.w3.org/TR/2001/REC-xml-c14n-20010315'/></Transforms><DigestMethod Algorithm='http://www.w3.org/2000/09/xmldsig#sha1'/><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo><X509Data><X509Certificate></X509Certificate></X509Data></KeyInfo></Signature></NFe>
@@ -0,0 +1,15 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIICXAIBAAKBgQC37C0mhTmdr8iVfQPQuOKtzG/fhwG4ILuUX1Vk5uN9oSZJxhb5
3
+ Kn8aBppny1BSekgk12wn4AE/6i7Jfix3SZWoqdaxpdDalvQSdNeyn6GmV2oP4lzp
4
+ 6XjXmtRxvOywgTYuhf/DBlpiq7B/vTF7kMwYgs0ahM3mRJG2V7LARTXUfwIDAQAB
5
+ AoGBAKDQkd3niSw2YiVLTQW4UwNyCLOioT80567g+JKkS28yc374BGhS3xWLhoCQ
6
+ xieHogMMlRX8iDsxcT1e5FRc88wtIh4vnpUeV++tU9nqpF9SAZV1HAHsOZwyrNUc
7
+ 0nZHgDcyyClirb2wbBG4L+SkrC2kS0MTlx+HiobGpMYsXMh5AkEA4EPrLY7fUaNl
8
+ bzbJb+Thb3M4UsoXzFuFm0Z/H8ty6aw9yi1pxuh8OiyGGFqPB/gl3zUE1LNdTzx5
9
+ xLt93Qdf8wJBANHy1EHwTcNbHJ935NQXF8RpllGyZG1X962NwtJ9x46MTPAhOceU
10
+ 9ZU+OCSOvl+7fKjjcw8TsLYiv4q+RMGZKEUCQHPaomOmqzdBceVCKE3lr5AjtbUP
11
+ Mbwgi6TrhkCmmXadxE3tp/dZotNqrNtn7Pvw9Z+ZhCVdg5arZzx6n0rPxIECQDFZ
12
+ oBUj1FOgXhkKCKrmBrsvipsHkN22+Mw971alJDxYtFkZpkhItnVvW6kUOKGuI35b
13
+ gJdBrJ8TieymDulnA/UCQGfl27mqPX4JTzN+RiZHqGyGSzBi1ggH3vsI2oXDQZ7k
14
+ uOAPiLSBR83eeHGkE2C5fn0QfQGgFNDFjC/6Su/Wvt4=
15
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,87 @@
1
+ require "spec_helper"
2
+
3
+ describe Nfe::Helpers::NfeKey do
4
+ let(:nfe_key) { "43091285961757000102551140912140011007055476" }
5
+ subject { described_class.parse nfe_key }
6
+
7
+ describe "#uf" do
8
+ it "returns the UF" do
9
+ expect(subject.uf).to eql "RS"
10
+ end
11
+ end
12
+
13
+ describe "#year" do
14
+ it "returns the year" do
15
+ expect(subject.year).to eql "09"
16
+ end
17
+ end
18
+
19
+ describe "#month" do
20
+ it "returns the month" do
21
+ expect(subject.month).to eql "12"
22
+ end
23
+ end
24
+
25
+ describe "#cnpj" do
26
+ it "returns the CNPJ" do
27
+ expect(subject.cnpj).to eql "85961757000102"
28
+ end
29
+ end
30
+
31
+ describe "#model" do
32
+ it "returns the model" do
33
+ expect(subject.model).to eql 55
34
+ end
35
+ end
36
+
37
+ describe "#series" do
38
+ it "returns the series" do
39
+ expect(subject.series).to eql 114
40
+ end
41
+ end
42
+
43
+ describe "#number" do
44
+ it "returns the number" do
45
+ expect(subject.number).to eql 91214001
46
+ end
47
+ end
48
+
49
+ describe "#emission_kind" do
50
+ it "returns the emission kind" do
51
+ expect(subject.emission_kind).to eql 1
52
+ end
53
+ end
54
+
55
+ describe "#code" do
56
+ it "returns the code" do
57
+ expect(subject.code).to eql 705547
58
+ end
59
+ end
60
+
61
+ describe "#check_digit" do
62
+ it "returns the check digit" do
63
+ expect(subject.check_digit).to eql 6
64
+ end
65
+ end
66
+
67
+ describe "#key" do
68
+ subject do
69
+ described_class.new("RS", Date.new(2009,12,1), "85961757000102",
70
+ 114, 91214001, 705547)
71
+ end
72
+
73
+ it "returns the key" do
74
+ expect(subject.key).to eql nfe_key
75
+ end
76
+ end
77
+
78
+ describe "parse" do
79
+ context "when nfe key is invalid" do
80
+ let(:nfe_key) { nil }
81
+
82
+ it "raise a exception" do
83
+ expect { described_class.parse nfe_key }.to raise_error(NfeKeyError)
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,34 @@
1
+ require "spec_helper"
2
+
3
+ describe Nfe::Helpers::SchemaValidator do
4
+ let(:schema_path) { "lib/nfe/schemas/enviNFe_v3.10.xsd" }
5
+ let(:xml) { File.read("spec/nfe/fixtures/nfe.xml") }
6
+ let(:nfe) do
7
+ nfe = Nfe::Models::NFe.new
8
+ nfe.parse! xml
9
+ Nfe::Services::Dispatch::EnviNFe.new(nfe, 1, "3.10").to_xml
10
+ end
11
+
12
+ subject { described_class.new(schema_path, nfe) }
13
+
14
+ describe "#valid?" do
15
+ context "when xml is valid" do
16
+ it "returns true" do
17
+ expect(subject).to be_valid
18
+ end
19
+ end
20
+
21
+ context "when xml isn't valid" do
22
+ let(:xml) { File.read("spec/nfe/fixtures/invalid_nfe.xml") }
23
+
24
+ it "returns false" do
25
+ expect(subject).to_not be_valid
26
+ end
27
+
28
+ it "fills an errors object" do
29
+ subject.valid?
30
+ expect(subject.errors).to be_any
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,22 @@
1
+ require "spec_helper"
2
+
3
+ describe Nfe::Helpers::Signer do
4
+ let(:certificate) { OpenSSL::X509::Certificate.new(File.read("spec/xmldsig/fixtures/certificate.cer")) }
5
+ let(:private_key) { OpenSSL::PKey::RSA.new(File.read("spec/xmldsig/fixtures/key.pem")) }
6
+ let(:object) { build(:inutNFe) }
7
+
8
+ subject { described_class.new(certificate, private_key) }
9
+
10
+ describe "#execute" do
11
+ it "returns a signed object" do
12
+ subject.execute(object, object.id)
13
+
14
+ signed_document = Xmldsig::SignedDocument.new(object.to_xml)
15
+ signature = signed_document.document.xpath("descendant::ds:Signature", Xmldsig::NAMESPACES)
16
+
17
+ expect(signature.xpath("descendant::ds:DigestValue", Xmldsig::NAMESPACES).text).to_not be_blank
18
+ expect(signature.xpath("descendant::ds:SignatureValue", Xmldsig::NAMESPACES).text).to_not be_blank
19
+ expect(signature.xpath("descendant::ds:X509Certificate", Xmldsig::NAMESPACES).text).to_not be_blank
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,331 @@
1
+ require "spec_helper"
2
+
3
+ describe Nfe::Helpers::UfHelper do
4
+ describe ".acronym" do
5
+ context "when UF is Rondônia(11)" do
6
+ it "returns RO" do
7
+ expect(Nfe::Helpers::UfHelper.acronym(11)).to eql "RO"
8
+ end
9
+ end
10
+
11
+ context "when UF is Acre(12)" do
12
+ it "returns AC" do
13
+ expect(Nfe::Helpers::UfHelper.acronym(12)).to eql "AC"
14
+ end
15
+ end
16
+
17
+ context "when UF is Amazonas(13)" do
18
+ it "returns AM" do
19
+ expect(Nfe::Helpers::UfHelper.acronym(13)).to eql "AM"
20
+ end
21
+ end
22
+
23
+ context "when UF is Roraima(14)" do
24
+ it "returns RR" do
25
+ expect(Nfe::Helpers::UfHelper.acronym(14)).to eql "RR"
26
+ end
27
+ end
28
+
29
+ context "when UF is Pará(15)" do
30
+ it "returns PA" do
31
+ expect(Nfe::Helpers::UfHelper.acronym(15)).to eql "PA"
32
+ end
33
+ end
34
+
35
+ context "when UF is Amapá(16)" do
36
+ it "returns AP" do
37
+ expect(Nfe::Helpers::UfHelper.acronym(16)).to eql "AP"
38
+ end
39
+ end
40
+
41
+ context "when UF is Tocantins(17)" do
42
+ it "returns TO" do
43
+ expect(Nfe::Helpers::UfHelper.acronym(17)).to eql "TO"
44
+ end
45
+ end
46
+
47
+ context "when UF is Maranhão(21)" do
48
+ it "returns MA" do
49
+ expect(Nfe::Helpers::UfHelper.acronym(21)).to eql "MA"
50
+ end
51
+ end
52
+
53
+ context "when UF is Piauí(22)" do
54
+ it "returns PI" do
55
+ expect(Nfe::Helpers::UfHelper.acronym(22)).to eql "PI"
56
+ end
57
+ end
58
+
59
+ context "when UF is Ceará(23)" do
60
+ it "returns CE" do
61
+ expect(Nfe::Helpers::UfHelper.acronym(23)).to eql "CE"
62
+ end
63
+ end
64
+
65
+ context "when UF is Rio Grande do Norte(24)" do
66
+ it "returns RN" do
67
+ expect(Nfe::Helpers::UfHelper.acronym(24)).to eql "RN"
68
+ end
69
+ end
70
+
71
+ context "when UF is Paraíba(25)" do
72
+ it "returns PB" do
73
+ expect(Nfe::Helpers::UfHelper.acronym(25)).to eql "PB"
74
+ end
75
+ end
76
+
77
+ context "when UF is Pernambuco(26)" do
78
+ it "returns PE" do
79
+ expect(Nfe::Helpers::UfHelper.acronym(26)).to eql "PE"
80
+ end
81
+ end
82
+
83
+ context "when UF is Alagoas(27)" do
84
+ it "returns AL" do
85
+ expect(Nfe::Helpers::UfHelper.acronym(27)).to eql "AL"
86
+ end
87
+ end
88
+
89
+ context "when UF is Sergipe(28)" do
90
+ it "returns SE" do
91
+ expect(Nfe::Helpers::UfHelper.acronym(28)).to eql "SE"
92
+ end
93
+ end
94
+
95
+ context "when UF is Bahia(29)" do
96
+ it "returns BA" do
97
+ expect(Nfe::Helpers::UfHelper.acronym(29)).to eql "BA"
98
+ end
99
+ end
100
+
101
+ context "when UF is Minas Gerais(31)" do
102
+ it "returns MG" do
103
+ expect(Nfe::Helpers::UfHelper.acronym(31)).to eql "MG"
104
+ end
105
+ end
106
+
107
+ context "when UF is Espírito Santo(32)" do
108
+ it "returns ES" do
109
+ expect(Nfe::Helpers::UfHelper.acronym(32)).to eql "ES"
110
+ end
111
+ end
112
+
113
+ context "when UF is Rio de Janeiro(33)" do
114
+ it "returns RJ" do
115
+ expect(Nfe::Helpers::UfHelper.acronym(33)).to eql "RJ"
116
+ end
117
+ end
118
+
119
+ context "when UF is São Paulo(35)" do
120
+ it "returns SP" do
121
+ expect(Nfe::Helpers::UfHelper.acronym(35)).to eql "SP"
122
+ end
123
+ end
124
+
125
+ context "when UF is Paraná(41)" do
126
+ it "returns PR" do
127
+ expect(Nfe::Helpers::UfHelper.acronym(41)).to eql "PR"
128
+ end
129
+ end
130
+
131
+ context "when UF is Santa Catarina(42)" do
132
+ it "returns SC" do
133
+ expect(Nfe::Helpers::UfHelper.acronym(42)).to eql "SC"
134
+ end
135
+ end
136
+
137
+ context "when UF is Rio Grande do Sul(43)" do
138
+ it "returns RS" do
139
+ expect(Nfe::Helpers::UfHelper.acronym(43)).to eql "RS"
140
+ end
141
+ end
142
+
143
+ context "when UF is Mato Grosso do Sul(50)" do
144
+ it "returns MS" do
145
+ expect(Nfe::Helpers::UfHelper.acronym(50)).to eql "MS"
146
+ end
147
+ end
148
+
149
+ context "when UF is Mato Grosso(51)" do
150
+ it "returns MT" do
151
+ expect(Nfe::Helpers::UfHelper.acronym(51)).to eql "MT"
152
+ end
153
+ end
154
+
155
+ context "when UF is Goiás(52)" do
156
+ it "returns GO" do
157
+ expect(Nfe::Helpers::UfHelper.acronym(52)).to eql "GO"
158
+ end
159
+ end
160
+
161
+ context "when UF is Distrito Federal(53)" do
162
+ it "returns DF" do
163
+ expect(Nfe::Helpers::UfHelper.acronym(53)).to eql "DF"
164
+ end
165
+ end
166
+ end
167
+
168
+ describe ".code" do
169
+ context "when UF is Rondônia(RO)" do
170
+ it "returns 11" do
171
+ expect(Nfe::Helpers::UfHelper.code("RO")).to eql 11
172
+ end
173
+ end
174
+
175
+ context "when UF is Acre(AC)" do
176
+ it "returns 12" do
177
+ expect(Nfe::Helpers::UfHelper.code("AC")).to eql 12
178
+ end
179
+ end
180
+
181
+ context "when UF is Amazonas(AM)" do
182
+ it "returns 13" do
183
+ expect(Nfe::Helpers::UfHelper.code("AM")).to eql 13
184
+ end
185
+ end
186
+
187
+ context "when UF is Roraima(RR)" do
188
+ it "returns 14" do
189
+ expect(Nfe::Helpers::UfHelper.code("RR")).to eql 14
190
+ end
191
+ end
192
+
193
+ context "when UF is Pará(PA)" do
194
+ it "returns 15" do
195
+ expect(Nfe::Helpers::UfHelper.code("PA")).to eql 15
196
+ end
197
+ end
198
+
199
+ context "when UF is Amapá(AP)" do
200
+ it "returns 16" do
201
+ expect(Nfe::Helpers::UfHelper.code("AP")).to eql 16
202
+ end
203
+ end
204
+
205
+ context "when UF is Tocantins(TO)" do
206
+ it "returns 17" do
207
+ expect(Nfe::Helpers::UfHelper.code("TO")).to eql 17
208
+ end
209
+ end
210
+
211
+ context "when UF is Maranhão(MA)" do
212
+ it "returns 21" do
213
+ expect(Nfe::Helpers::UfHelper.code("MA")).to eql 21
214
+ end
215
+ end
216
+
217
+ context "when UF is Piauí(PI)" do
218
+ it "returns 22" do
219
+ expect(Nfe::Helpers::UfHelper.code("PI")).to eql 22
220
+ end
221
+ end
222
+
223
+ context "when UF is Ceará(CE)" do
224
+ it "returns 23" do
225
+ expect(Nfe::Helpers::UfHelper.code("CE")).to eql 23
226
+ end
227
+ end
228
+
229
+ context "when UF is Rio Grande do Norte(RN)" do
230
+ it "returns 24" do
231
+ expect(Nfe::Helpers::UfHelper.code("RN")).to eql 24
232
+ end
233
+ end
234
+
235
+ context "when UF is Paraíba(PB)" do
236
+ it "returns 25" do
237
+ expect(Nfe::Helpers::UfHelper.code("PB")).to eql 25
238
+ end
239
+ end
240
+
241
+ context "when UF is Pernambuco(PE)" do
242
+ it "returns 26" do
243
+ expect(Nfe::Helpers::UfHelper.code("PE")).to eql 26
244
+ end
245
+ end
246
+
247
+ context "when UF is Alagoas(AL)" do
248
+ it "returns 27" do
249
+ expect(Nfe::Helpers::UfHelper.code("AL")).to eql 27
250
+ end
251
+ end
252
+
253
+ context "when UF is Sergipe(SE)" do
254
+ it "returns 28" do
255
+ expect(Nfe::Helpers::UfHelper.code("SE")).to eql 28
256
+ end
257
+ end
258
+
259
+ context "when UF is Bahia(BA)" do
260
+ it "returns 29" do
261
+ expect(Nfe::Helpers::UfHelper.code("BA")).to eql 29
262
+ end
263
+ end
264
+
265
+ context "when UF is Minas Gerais(MG)" do
266
+ it "returns 31" do
267
+ expect(Nfe::Helpers::UfHelper.code("MG")).to eql 31
268
+ end
269
+ end
270
+
271
+ context "when UF is Espírito Santo(ES)" do
272
+ it "returns 32" do
273
+ expect(Nfe::Helpers::UfHelper.code("ES")).to eql 32
274
+ end
275
+ end
276
+
277
+ context "when UF is Rio de Janeiro(RJ)" do
278
+ it "returns 33" do
279
+ expect(Nfe::Helpers::UfHelper.code("RJ")).to eql 33
280
+ end
281
+ end
282
+
283
+ context "when UF is São Paulo(SP)" do
284
+ it "returns 35" do
285
+ expect(Nfe::Helpers::UfHelper.code("SP")).to eql 35
286
+ end
287
+ end
288
+
289
+ context "when UF is Paraná(PR)" do
290
+ it "returns 41" do
291
+ expect(Nfe::Helpers::UfHelper.code("PR")).to eql 41
292
+ end
293
+ end
294
+
295
+ context "when UF is Santa Catarina(SC)" do
296
+ it "returns 42" do
297
+ expect(Nfe::Helpers::UfHelper.code("SC")).to eql 42
298
+ end
299
+ end
300
+
301
+ context "when UF is Rio Grande do Sul(RS)" do
302
+ it "returns 43" do
303
+ expect(Nfe::Helpers::UfHelper.code("RS")).to eql 43
304
+ end
305
+ end
306
+
307
+ context "when UF is Mato Grosso do Sul(MS)" do
308
+ it "returns 50" do
309
+ expect(Nfe::Helpers::UfHelper.code("MS")).to eql 50
310
+ end
311
+ end
312
+
313
+ context "when UF is Mato Grosso(MT)" do
314
+ it "returns 51" do
315
+ expect(Nfe::Helpers::UfHelper.code("MT")).to eql 51
316
+ end
317
+ end
318
+
319
+ context "when UF is Goiás(GO)" do
320
+ it "returns 52" do
321
+ expect(Nfe::Helpers::UfHelper.code("GO")).to eql 52
322
+ end
323
+ end
324
+
325
+ context "when UF is Distrito Federal(DF)" do
326
+ it "returns 53" do
327
+ expect(Nfe::Helpers::UfHelper.code("DF")).to eql 53
328
+ end
329
+ end
330
+ end
331
+ end