nfe 0.0.0 → 0.0.1a

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 (94) hide show
  1. data/.gitignore +2 -0
  2. data/.rspec +3 -0
  3. data/Gemfile +5 -0
  4. data/lib/nfe.rb +1 -1
  5. data/lib/nfe/template.rb +44 -0
  6. data/lib/nfe/template/cobr.mustache +4 -0
  7. data/lib/nfe/template/cobr.rb +15 -0
  8. data/lib/nfe/template/cofins.mustache +3 -0
  9. data/lib/nfe/template/cofins.rb +11 -0
  10. data/lib/nfe/template/cofins_aliq.mustache +6 -0
  11. data/lib/nfe/template/cofins_aliq.rb +20 -0
  12. data/lib/nfe/template/dest.mustache +7 -0
  13. data/lib/nfe/template/dest.rb +12 -0
  14. data/lib/nfe/template/det.mustache +5 -0
  15. data/lib/nfe/template/det.rb +16 -0
  16. data/lib/nfe/template/dup.mustache +5 -0
  17. data/lib/nfe/template/dup.rb +12 -0
  18. data/lib/nfe/template/emit.mustache +10 -0
  19. data/lib/nfe/template/emit.rb +12 -0
  20. data/lib/nfe/template/ender_dest.mustache +12 -0
  21. data/lib/nfe/template/ender_dest.rb +7 -0
  22. data/lib/nfe/template/ender_emit.mustache +13 -0
  23. data/lib/nfe/template/ender_emit.rb +7 -0
  24. data/lib/nfe/template/fat.mustache +5 -0
  25. data/lib/nfe/template/fat.rb +6 -0
  26. data/lib/nfe/template/icms.mustache +3 -0
  27. data/lib/nfe/template/icms.rb +11 -0
  28. data/lib/nfe/template/icms00.mustache +8 -0
  29. data/lib/nfe/template/icms00.rb +6 -0
  30. data/lib/nfe/template/icms_tot.mustache +16 -0
  31. data/lib/nfe/template/icms_tot.rb +40 -0
  32. data/lib/nfe/template/ide.mustache +19 -0
  33. data/lib/nfe/template/ide.rb +7 -0
  34. data/lib/nfe/template/imposto.mustache +6 -0
  35. data/lib/nfe/template/imposto.rb +23 -0
  36. data/lib/nfe/template/inf_adic.mustache +4 -0
  37. data/lib/nfe/template/inf_adic.rb +12 -0
  38. data/lib/nfe/template/inf_nfe.mustache +10 -0
  39. data/lib/nfe/template/inf_nfe.rb +40 -0
  40. data/lib/nfe/template/ipi.mustache +4 -0
  41. data/lib/nfe/template/ipi.rb +11 -0
  42. data/lib/nfe/template/ipint.mustache +3 -0
  43. data/lib/nfe/template/ipint.rb +6 -0
  44. data/lib/nfe/template/obs_cont.mustache +3 -0
  45. data/lib/nfe/template/obs_cont.rb +7 -0
  46. data/lib/nfe/template/pis.mustache +3 -0
  47. data/lib/nfe/template/pis.rb +11 -0
  48. data/lib/nfe/template/pis_aliq.mustache +6 -0
  49. data/lib/nfe/template/pis_aliq.rb +20 -0
  50. data/lib/nfe/template/prod.mustache +18 -0
  51. data/lib/nfe/template/prod.rb +7 -0
  52. data/lib/nfe/template/root.mustache +4 -0
  53. data/lib/nfe/template/root.rb +11 -0
  54. data/lib/nfe/template/total.mustache +3 -0
  55. data/lib/nfe/template/total.rb +11 -0
  56. data/lib/nfe/template/transp.mustache +5 -0
  57. data/lib/nfe/template/transp.rb +16 -0
  58. data/lib/nfe/template/transporta.mustache +3 -0
  59. data/lib/nfe/template/transporta.rb +7 -0
  60. data/lib/nfe/template/vol.mustache +6 -0
  61. data/lib/nfe/template/vol.rb +16 -0
  62. data/lib/nfe/version.rb +1 -1
  63. data/nfe.gemspec +5 -0
  64. data/spec/fixtures/nfe.xml +167 -0
  65. data/spec/nfe/template/cobr_spec.rb +13 -0
  66. data/spec/nfe/template/cofins_aliq_spec.rb +11 -0
  67. data/spec/nfe/template/cofins_spec.rb +11 -0
  68. data/spec/nfe/template/dest_spec.rb +13 -0
  69. data/spec/nfe/template/det_spec.rb +13 -0
  70. data/spec/nfe/template/dup_spec.rb +13 -0
  71. data/spec/nfe/template/emit_spec.rb +13 -0
  72. data/spec/nfe/template/ender_dest_spec.rb +13 -0
  73. data/spec/nfe/template/ender_emit_spec.rb +13 -0
  74. data/spec/nfe/template/fat_spec.rb +13 -0
  75. data/spec/nfe/template/icms00_spec.rb +13 -0
  76. data/spec/nfe/template/icms_spec.rb +13 -0
  77. data/spec/nfe/template/icms_tot_spec.rb +13 -0
  78. data/spec/nfe/template/ide_spec.rb +13 -0
  79. data/spec/nfe/template/imposto_spec.rb +13 -0
  80. data/spec/nfe/template/inf_adic_spec.rb +13 -0
  81. data/spec/nfe/template/inf_nfe_spec.rb +13 -0
  82. data/spec/nfe/template/ipi_spec.rb +13 -0
  83. data/spec/nfe/template/ipint_spec.rb +13 -0
  84. data/spec/nfe/template/obs_cont_spec.rb +13 -0
  85. data/spec/nfe/template/pis_aliq_spec.rb +13 -0
  86. data/spec/nfe/template/pis_spec.rb +13 -0
  87. data/spec/nfe/template/prod_spec.rb +13 -0
  88. data/spec/nfe/template/root_spec.rb +13 -0
  89. data/spec/nfe/template/total_spec.rb +13 -0
  90. data/spec/nfe/template/transp_spec.rb +13 -0
  91. data/spec/nfe/template/transporta_spec.rb +13 -0
  92. data/spec/nfe/template/vol_spec.rb +13 -0
  93. data/spec/spec_helper.rb +306 -0
  94. metadata +158 -7
data/.gitignore CHANGED
@@ -15,3 +15,5 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ bin
19
+ vendor/ruby
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format progress
3
+ --fail-fast
data/Gemfile CHANGED
@@ -2,3 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in nfe.gemspec
4
4
  gemspec
5
+
6
+ group :development do
7
+ gem "pry"
8
+ gem "activesupport", :require => false
9
+ end
data/lib/nfe.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require "nfe/version"
2
2
 
3
3
  module Nfe
4
- # Your code goes here...
4
+ autoload :Template, "nfe/template"
5
5
  end
@@ -0,0 +1,44 @@
1
+ require "mustache"
2
+
3
+ module Nfe
4
+ module Template
5
+ class Base < Mustache
6
+ def initialize(*args)
7
+ self.template_path = File.expand_path("../../", __FILE__)
8
+ self.raise_on_context_miss = true
9
+ super
10
+ end
11
+ end
12
+
13
+ autoload :Root, "nfe/template/root"
14
+ autoload :Cobr, "nfe/template/cobr"
15
+ autoload :CofinsAliq, "nfe/template/cofins_aliq"
16
+ autoload :Cofins, "nfe/template/cofins"
17
+ autoload :Dest, "nfe/template/dest"
18
+ autoload :Det, "nfe/template/det"
19
+ autoload :EnderDest, "nfe/template/ender_dest"
20
+ autoload :Prod, "nfe/template/prod"
21
+ autoload :Imposto, "nfe/template/imposto"
22
+ autoload :Ide, "nfe/template/ide"
23
+ autoload :Fat, "nfe/template/fat"
24
+ autoload :Dup, "nfe/template/dup"
25
+ autoload :Icms, "nfe/template/icms"
26
+ autoload :Icms00, "nfe/template/icms00"
27
+ autoload :Ipi, "nfe/template/ipi"
28
+ autoload :Pis, "nfe/template/pis"
29
+ autoload :Ipint, "nfe/template/ipint"
30
+ autoload :PisAliq, "nfe/template/pis_aliq"
31
+ autoload :InfNfe, "nfe/template/inf_nfe"
32
+ autoload :Emit, "nfe/template/emit"
33
+ autoload :EnderEmit, "nfe/template/ender_emit"
34
+ autoload :Total, "nfe/template/total"
35
+ autoload :Transp, "nfe/template/transp"
36
+ autoload :IcmsTot, "nfe/template/icms_tot"
37
+ autoload :Transporta, "nfe/template/transporta"
38
+ autoload :Vol, "nfe/template/vol"
39
+ autoload :InfAdic, "nfe/template/inf_adic"
40
+ autoload :ObsCont, "nfe/template/obs_cont"
41
+
42
+ autoload :Signature, "nfe/template/signature"
43
+ end
44
+ end
@@ -0,0 +1,4 @@
1
+ <cobr>
2
+ {{{fat}}}
3
+ {{{dup}}}
4
+ </cobr>
@@ -0,0 +1,15 @@
1
+ module Nfe
2
+ module Template
3
+ class Cobr < Base
4
+ attr_writer :fat, :dup
5
+
6
+ def fat
7
+ @fat.render
8
+ end
9
+
10
+ def dup
11
+ @dup.render
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ <COFINS>
2
+ {{{cofins_aliq}}}
3
+ </COFINS>
@@ -0,0 +1,11 @@
1
+ module Nfe
2
+ module Template
3
+ class Cofins < Base
4
+ attr_writer :cofins_aliq
5
+
6
+ def cofins_aliq
7
+ @cofins_aliq.render
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ <COFINSAliq>
2
+ <CST>{{cst}}</CST>
3
+ <vBC>{{v_bc}}</vBC>
4
+ <pCOFINS>{{p_cofins}}</pCOFINS>
5
+ <vCOFINS>{{v_cofins}}</vCOFINS>
6
+ </COFINSAliq>
@@ -0,0 +1,20 @@
1
+ module Nfe
2
+ module Template
3
+ class CofinsAliq < Base
4
+ attr_accessor :cst
5
+ attr_accessor :v_bc, :p_cofins, :v_cofins
6
+
7
+ def v_bc
8
+ "%0.2f" % @v_bc
9
+ end
10
+
11
+ def p_cofins
12
+ "%0.2f" % @p_cofins
13
+ end
14
+
15
+ def v_cofins
16
+ "%0.2f" % @v_cofins
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+ <dest>
2
+ <CNPJ>{{cnpj}}</CNPJ>
3
+ <xNome>{{x_nome}}</xNome>
4
+ {{{ender_dest}}}
5
+ <IE>{{ie}}</IE>
6
+ <email>{{email}}</email>
7
+ </dest>
@@ -0,0 +1,12 @@
1
+ module Nfe
2
+ module Template
3
+ class Dest < Base
4
+ attr_accessor :cnpj, :x_nome, :ie, :email
5
+ attr_writer :ender_dest
6
+
7
+ def ender_dest
8
+ @ender_dest.render
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ <det nItem="1">
2
+ {{{prod}}}
3
+ {{{imposto}}}
4
+ <infAdProd>{{inf_ad_prod}}</infAdProd>
5
+ </det>
@@ -0,0 +1,16 @@
1
+ module Nfe
2
+ module Template
3
+ class Det < Base
4
+ attr_accessor :inf_ad_prod
5
+ attr_writer :prod, :imposto
6
+
7
+ def prod
8
+ @prod.render
9
+ end
10
+
11
+ def imposto
12
+ @imposto.render
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,5 @@
1
+ <dup>
2
+ <nDup>{{n_dup}}</nDup>
3
+ <dVenc>{{d_venc}}</dVenc>
4
+ <vDup>{{v_dup}}</vDup>
5
+ </dup>
@@ -0,0 +1,12 @@
1
+ module Nfe
2
+ module Template
3
+ class Dup < Base
4
+ attr_accessor :n_dup, :d_venc
5
+ attr_writer :v_dup
6
+
7
+ def v_dup
8
+ "%0.2f" % @v_dup
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ <emit>
2
+ <CNPJ>58716523000119</CNPJ>
3
+ <xNome>FIMATEC TEXTIL LTDA</xNome>
4
+ <xFant>FIMATEC</xFant>
5
+ {{{ender_emit}}}
6
+ <IE>112006603110</IE>
7
+ <IM>95095870</IM>
8
+ <CNAE>0131380</CNAE>
9
+ <CRT>3</CRT>
10
+ </emit>
@@ -0,0 +1,12 @@
1
+ module Nfe
2
+ module Template
3
+ class Emit < Base
4
+ attr_accessor :cnpj, :x_nome, :x_fant, :ie, :im, :cnae, :crt
5
+ attr_writer :ender_emit
6
+
7
+ def ender_emit
8
+ @ender_emit.render
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ <enderDest>
2
+ <xLgr>RUA PARAIBA</xLgr>
3
+ <nro>73</nro>
4
+ <xBairro>BRAS</xBairro>
5
+ <cMun>3550308</cMun>
6
+ <xMun>Sao Paulo</xMun>
7
+ <UF>SP</UF>
8
+ <CEP>03013030</CEP>
9
+ <cPais>1058</cPais>
10
+ <xPais>BRASIL</xPais>
11
+ <fone>1122910590</fone>
12
+ </enderDest>
@@ -0,0 +1,7 @@
1
+ module Nfe
2
+ module Template
3
+ class EnderDest < Base
4
+ attr_accessor :x_lgr, :nro, :x_bairro, :c_mun, :x_mun, :uf, :cep, :c_pais, :x_pais, :fone
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,13 @@
1
+ <enderEmit>
2
+ <xLgr>{{x_lgr}}</xLgr>
3
+ <nro>{{nro}}</nro>
4
+ <xCpl>{{x_cpl}}</xCpl>
5
+ <xBairro>{{x_bairro}}</xBairro>
6
+ <cMun>{{c_mun}}</cMun>
7
+ <xMun>{{x_mun}}</xMun>
8
+ <UF>{{uf}}</UF>
9
+ <CEP>{{cep}}</CEP>
10
+ <cPais>{{c_pais}}</cPais>
11
+ <xPais>{{x_pais}}</xPais>
12
+ <fone>{{fone}}</fone>
13
+ </enderEmit>
@@ -0,0 +1,7 @@
1
+ module Nfe
2
+ module Template
3
+ class EnderEmit < Base
4
+ attr_accessor :x_lgr, :nro, :x_cpl, :x_bairro, :c_mun, :x_mun, :uf, :cep, :c_pais, :x_pais, :fone
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ <fat>
2
+ <nFat>0001</nFat>
3
+ <vOrig>883.12</vOrig>
4
+ <vLiq>883.12</vLiq>
5
+ </fat>
@@ -0,0 +1,6 @@
1
+ module Nfe
2
+ module Template
3
+ class Fat < Base
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ <ICMS>
2
+ {{{icms00}}}
3
+ </ICMS>
@@ -0,0 +1,11 @@
1
+ module Nfe
2
+ module Template
3
+ class Icms < Base
4
+ attr_writer :icms00
5
+
6
+ def icms00
7
+ @icms00.render
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ <ICMS00>
2
+ <orig>0</orig>
3
+ <CST>00</CST>
4
+ <modBC>3</modBC>
5
+ <vBC>588.78</vBC>
6
+ <pICMS>18.00</pICMS>
7
+ <vICMS>105.98</vICMS>
8
+ </ICMS00>
@@ -0,0 +1,6 @@
1
+ module Nfe
2
+ module Template
3
+ class Icms00 < Base
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,16 @@
1
+ <ICMSTot>
2
+ <vBC>{{v_bc}}</vBC>
3
+ <vICMS>{{v_icms}}</vICMS>
4
+ <vBCST>{{v_bcst}}</vBCST>
5
+ <vST>{{v_st}}</vST>
6
+ <vProd>{{v_prod}}</vProd>
7
+ <vFrete>{{v_frete}}</vFrete>
8
+ <vSeg>{{v_seg}}</vSeg>
9
+ <vDesc>{{v_desc}}</vDesc>
10
+ <vII>{{v_ii}}</vII>
11
+ <vIPI>{{v_ipi}}</vIPI>
12
+ <vPIS>{{v_pis}}</vPIS>
13
+ <vCOFINS>{{v_cofins}}</vCOFINS>
14
+ <vOutro>{{v_outro}}</vOutro>
15
+ <vNF>{{v_nf}}</vNF>
16
+ </ICMSTot>
@@ -0,0 +1,40 @@
1
+ module Nfe
2
+ module Template
3
+ class IcmsTot < Base
4
+ attr_accessor :v_bc, :v_icms, :v_prod, :v_pis, :v_cofins, :v_nf
5
+ attr_writer :v_bcst, :v_st, :v_frete, :v_seg, :v_desc, :v_ii, :v_ipi, :v_outro
6
+
7
+ def v_bcst
8
+ "%0.2f" % @v_bcst
9
+ end
10
+
11
+ def v_st
12
+ "%0.2f" % @v_st
13
+ end
14
+
15
+ def v_frete
16
+ "%0.2f" % @v_frete
17
+ end
18
+
19
+ def v_seg
20
+ "%0.2f" % @v_seg
21
+ end
22
+
23
+ def v_desc
24
+ "%0.2f" % @v_desc
25
+ end
26
+
27
+ def v_ii
28
+ "%0.2f" % @v_ii
29
+ end
30
+
31
+ def v_ipi
32
+ "%0.2f" % @v_ipi
33
+ end
34
+
35
+ def v_outro
36
+ "%0.2f" % @v_outro
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,19 @@
1
+ <ide>
2
+ <cUF>{{c_uf}}</cUF>
3
+ <cNF>{{c_nf}}</cNF>
4
+ <natOp>{{nat_op}}</natOp>
5
+ <indPag>{{ind_pag}}</indPag>
6
+ <mod>{{mod}}</mod>
7
+ <serie>{{serie}}</serie>
8
+ <nNF>{{n_nf}}</nNF>
9
+ <dEmi>{{d_emi}}</dEmi>
10
+ <tpNF>{{tp_nf}}</tpNF>
11
+ <cMunFG>{{c_mun_fg}}</cMunFG>
12
+ <tpImp>{{tp_imp}}</tpImp>
13
+ <tpEmis>{{tp_emis}}</tpEmis>
14
+ <cDV>{{c_dv}}</cDV>
15
+ <tpAmb>{{tp_amb}}</tpAmb>
16
+ <finNFe>{{fin_nfe}}</finNFe>
17
+ <procEmi>{{proc_emi}}</procEmi>
18
+ <verProc>{{ver_proc}}</verProc>
19
+ </ide>
@@ -0,0 +1,7 @@
1
+ module Nfe
2
+ module Template
3
+ class Ide < Base
4
+ attr_accessor :c_uf, :c_nf, :nat_op, :ind_pag, :mod, :serie, :n_nf, :d_emi, :tp_nf, :c_mun_fg, :tp_imp, :tp_emis, :c_dv, :tp_amb, :fin_nfe, :proc_emi, :ver_proc
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ <imposto>
2
+ {{{icms}}}
3
+ {{{ipi}}}
4
+ {{{pis}}}
5
+ {{{cofins}}}
6
+ </imposto>
@@ -0,0 +1,23 @@
1
+ module Nfe
2
+ module Template
3
+ class Imposto < Base
4
+ attr_writer :icms, :ipi, :pis, :cofins
5
+
6
+ def icms
7
+ @icms.render
8
+ end
9
+
10
+ def ipi
11
+ @ipi.render
12
+ end
13
+
14
+ def pis
15
+ @pis.render
16
+ end
17
+
18
+ def cofins
19
+ @cofins.render
20
+ end
21
+ end
22
+ end
23
+ end