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
@@ -0,0 +1,4 @@
1
+ <infAdic>
2
+ <infAdFisco>{{inf_ad_fisco}}</infAdFisco>
3
+ {{{obs_cont}}}
4
+ </infAdic>
@@ -0,0 +1,12 @@
1
+ module Nfe
2
+ module Template
3
+ class InfAdic < Base
4
+ attr_accessor :inf_ad_fisco
5
+ attr_writer :obs_cont
6
+
7
+ def obs_cont
8
+ @obs_cont.render
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ <infNFe Id="{{id}}" versao="2.00">
2
+ {{{ide}}}
3
+ {{{emit}}}
4
+ {{{dest}}}
5
+ {{{det}}}
6
+ {{{total}}}
7
+ {{{transp}}}
8
+ {{{cobr}}}
9
+ {{{inf_adic}}}
10
+ </infNFe>
@@ -0,0 +1,40 @@
1
+ module Nfe
2
+ module Template
3
+ class InfNfe < Base
4
+ attr_accessor :id
5
+ attr_writer :ide, :emit, :dest, :det, :total, :transp, :cobr, :inf_adic
6
+
7
+ def ide
8
+ @ide.render
9
+ end
10
+
11
+ def emit
12
+ @emit.render
13
+ end
14
+
15
+ def dest
16
+ @dest.render
17
+ end
18
+
19
+ def det
20
+ @det.render
21
+ end
22
+
23
+ def total
24
+ @total.render
25
+ end
26
+
27
+ def transp
28
+ @transp.render
29
+ end
30
+
31
+ def cobr
32
+ @cobr.render
33
+ end
34
+
35
+ def inf_adic
36
+ @inf_adic.render
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,4 @@
1
+ <IPI>
2
+ <cEnq>999</cEnq>
3
+ {{{ipint}}}
4
+ </IPI>
@@ -0,0 +1,11 @@
1
+ module Nfe
2
+ module Template
3
+ class Ipi < Base
4
+ attr_writer :ipint
5
+
6
+ def ipint
7
+ @ipint.render
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ <IPINT>
2
+ <CST>52</CST>
3
+ </IPINT>
@@ -0,0 +1,6 @@
1
+ module Nfe
2
+ module Template
3
+ class Ipint < Base
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ <obsCont xCampo="EMAIL">
2
+ <xTexto>{{x_texto}}</xTexto>
3
+ </obsCont>
@@ -0,0 +1,7 @@
1
+ module Nfe
2
+ module Template
3
+ class ObsCont < Base
4
+ attr_accessor :x_texto
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ <PIS>
2
+ {{{pis_aliq}}}
3
+ </PIS>
@@ -0,0 +1,11 @@
1
+ module Nfe
2
+ module Template
3
+ class Pis < Base
4
+ attr_writer :pis_aliq
5
+
6
+ def pis_aliq
7
+ @pis_aliq.render
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ <PISAliq>
2
+ <CST>{{cst}}</CST>
3
+ <vBC>{{v_bc}}</vBC>
4
+ <pPIS>{{p_pis}}</pPIS>
5
+ <vPIS>{{v_pis}}</vPIS>
6
+ </PISAliq>
@@ -0,0 +1,20 @@
1
+ module Nfe
2
+ module Template
3
+ class PisAliq < Base
4
+ attr_accessor :cst
5
+ attr_writer :v_bc, :p_pis, :v_pis
6
+
7
+ def v_bc
8
+ "%0.2f" % @v_bc
9
+ end
10
+
11
+ def p_pis
12
+ "%0.2f" % @p_pis
13
+ end
14
+
15
+ def v_pis
16
+ "%0.2f" % @v_pis
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ <prod>
2
+ <cProd>2470BCB90</cProd>
3
+ <cEAN></cEAN>
4
+ <xProd>DELFOS SND TINTO COM AMACIANTE SO TECIDO 1,80M</xProd>
5
+ <NCM>60063200</NCM>
6
+ <CFOP>5122</CFOP>
7
+ <uCom>KG</uCom>
8
+ <qCom>46.4800</qCom>
9
+ <vUnCom>19.0000000000</vUnCom>
10
+ <vProd>833.12</vProd>
11
+ <cEANTrib></cEANTrib>
12
+ <uTrib>KG</uTrib>
13
+ <qTrib>46.4800</qTrib>
14
+ <vUnTrib>19.0000000000</vUnTrib>
15
+ <indTot>1</indTot>
16
+ <xPed>060110-1030</xPed>
17
+ <nItemPed>1</nItemPed>
18
+ </prod>
@@ -0,0 +1,7 @@
1
+ module Nfe
2
+ module Template
3
+ class Prod < Base
4
+ attr_writer :c_prod, :c_ean, :x_prod, :n_cm, :c_fop, :u_com, :q_com, :v_uncom, :v_prod, :c_eantrib, :u_trib, :q_trib, :v_untrib, :i_ndtot, :x_ped, :n_itemped
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
3
+ {{{inf_nfe}}}
4
+ </NFe>
@@ -0,0 +1,11 @@
1
+ module Nfe
2
+ module Template
3
+ class Root < Base
4
+ attr_writer :inf_nfe
5
+
6
+ def inf_nfe
7
+ @inf_nfe.render
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ <total>
2
+ {{{icms_tot}}}
3
+ </total>
@@ -0,0 +1,11 @@
1
+ module Nfe
2
+ module Template
3
+ class Total < Base
4
+ attr_writer :icms_tot
5
+
6
+ def icms_tot
7
+ @icms_tot.render
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ <transp>
2
+ <modFrete>{{mod_frete}}</modFrete>
3
+ {{{transporta}}}
4
+ {{{vol}}}
5
+ </transp>
@@ -0,0 +1,16 @@
1
+ module Nfe
2
+ module Template
3
+ class Transp < Base
4
+ attr_accessor :mod_frete
5
+ attr_writer :transporta, :vol
6
+
7
+ def transporta
8
+ @transporta.render
9
+ end
10
+
11
+ def vol
12
+ @vol.render
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,3 @@
1
+ <transporta>
2
+ <xNome>{{x_nome}}</xNome>
3
+ </transporta>
@@ -0,0 +1,7 @@
1
+ module Nfe
2
+ module Template
3
+ class Transporta < Base
4
+ attr_accessor :x_nome
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ <vol>
2
+ <qVol>{{q_vol}}</qVol>
3
+ <esp>{{esp}}</esp>
4
+ <pesoL>{{peso_l}}</pesoL>
5
+ <pesoB>{{peso_b}}</pesoB>
6
+ </vol>
@@ -0,0 +1,16 @@
1
+ module Nfe
2
+ module Template
3
+ class Vol < Base
4
+ attr_accessor :q_vol, :esp
5
+ attr_writer :peso_l, :peso_b
6
+
7
+ def peso_l
8
+ "%0.3f" % @peso_l
9
+ end
10
+
11
+ def peso_b
12
+ "%0.3f" % @peso_b
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,3 +1,3 @@
1
1
  module Nfe
2
- VERSION = "0.0.0"
2
+ VERSION = "0.0.1a"
3
3
  end
@@ -14,4 +14,9 @@ Gem::Specification.new do |gem|
14
14
  gem.name = "nfe"
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Nfe::VERSION
17
+
18
+ gem.add_dependency "mustache", "~> 0.99.4"
19
+ gem.add_dependency "nokogiri", "~> 1.5.2"
20
+
21
+ gem.add_development_dependency "rspec", "~> 2.8.0"
17
22
  end
@@ -0,0 +1,167 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
3
+ <infNFe Id="NFe35101158716523000119550010000000011003000000" versao="2.00">
4
+ <ide>
5
+ <cUF>35</cUF>
6
+ <cNF>00300000</cNF>
7
+ <natOp>VENDA</natOp>
8
+ <indPag>0</indPag>
9
+ <mod>55</mod>
10
+ <serie>1</serie>
11
+ <nNF>1</nNF>
12
+ <dEmi>2010-11-02</dEmi>
13
+ <tpNF>1</tpNF>
14
+ <cMunFG>3550308</cMunFG>
15
+ <tpImp>1</tpImp>
16
+ <tpEmis>1</tpEmis>
17
+ <cDV>0</cDV>
18
+ <tpAmb>2</tpAmb>
19
+ <finNFe>1</finNFe>
20
+ <procEmi>3</procEmi>
21
+ <verProc>2.0.3</verProc>
22
+ </ide>
23
+ <emit>
24
+ <CNPJ>58716523000119</CNPJ>
25
+ <xNome>FIMATEC TEXTIL LTDA</xNome>
26
+ <xFant>FIMATEC</xFant>
27
+ <enderEmit>
28
+ <xLgr>RUA DOS PATRIOTAS</xLgr>
29
+ <nro>897</nro>
30
+ <xCpl>ARMAZEM 42</xCpl>
31
+ <xBairro>IPIRANGA</xBairro>
32
+ <cMun>3550308</cMun>
33
+ <xMun>Sao Paulo</xMun>
34
+ <UF>SP</UF>
35
+ <CEP>04207040</CEP>
36
+ <cPais>1058</cPais>
37
+ <xPais>BRASIL</xPais>
38
+ <fone>1120677300</fone>
39
+ </enderEmit>
40
+ <IE>112006603110</IE>
41
+ <IM>95095870</IM>
42
+ <CNAE>0131380</CNAE>
43
+ <CRT>3</CRT>
44
+ </emit>
45
+ <dest>
46
+ <CNPJ>02536490000170</CNPJ>
47
+ <xNome>WARDY CONFECCOES LTDA</xNome>
48
+ <enderDest>
49
+ <xLgr>RUA PARAIBA</xLgr>
50
+ <nro>73</nro>
51
+ <xBairro>BRAS</xBairro>
52
+ <cMun>3550308</cMun>
53
+ <xMun>Sao Paulo</xMun>
54
+ <UF>SP</UF>
55
+ <CEP>03013030</CEP>
56
+ <cPais>1058</cPais>
57
+ <xPais>BRASIL</xPais>
58
+ <fone>1122910590</fone>
59
+ </enderDest>
60
+ <IE>115399484115</IE>
61
+ <email>wardy@wardy.com.br</email>
62
+ </dest>
63
+ <det nItem="1">
64
+ <prod>
65
+ <cProd>2470BCB90</cProd>
66
+ <cEAN></cEAN>
67
+ <xProd>DELFOS SND TINTO COM AMACIANTE SO TECIDO 1,80M</xProd>
68
+ <NCM>60063200</NCM>
69
+ <CFOP>5122</CFOP>
70
+ <uCom>KG</uCom>
71
+ <qCom>46.4800</qCom>
72
+ <vUnCom>19.0000000000</vUnCom>
73
+ <vProd>833.12</vProd>
74
+ <cEANTrib></cEANTrib>
75
+ <uTrib>KG</uTrib>
76
+ <qTrib>46.4800</qTrib>
77
+ <vUnTrib>19.0000000000</vUnTrib>
78
+ <indTot>1</indTot>
79
+ <xPed>060110-1030</xPed>
80
+ <nItemPed>1</nItemPed>
81
+ </prod>
82
+ <imposto>
83
+ <ICMS>
84
+ <ICMS00>
85
+ <orig>0</orig>
86
+ <CST>00</CST>
87
+ <modBC>3</modBC>
88
+ <vBC>588.78</vBC>
89
+ <pICMS>18.00</pICMS>
90
+ <vICMS>105.98</vICMS>
91
+ </ICMS00>
92
+ </ICMS>
93
+ <IPI>
94
+ <cEnq>999</cEnq>
95
+ <IPINT>
96
+ <CST>52</CST>
97
+ </IPINT>
98
+ </IPI>
99
+ <PIS>
100
+ <PISAliq>
101
+ <CST>01</CST>
102
+ <vBC>883.12</vBC>
103
+ <pPIS>1.65</pPIS>
104
+ <vPIS>14.57</vPIS>
105
+ </PISAliq>
106
+ </PIS>
107
+ <COFINS>
108
+ <COFINSAliq>
109
+ <CST>01</CST>
110
+ <vBC>883.12</vBC>
111
+ <pCOFINS>7.60</pCOFINS>
112
+ <vCOFINS>67.11</vCOFINS>
113
+ </COFINSAliq>
114
+ </COFINS>
115
+ </imposto>
116
+ <infAdProd>BLUE HEAVEN F01946 LOTE XXXX</infAdProd>
117
+ </det>
118
+ <total>
119
+ <ICMSTot>
120
+ <vBC>588.78</vBC>
121
+ <vICMS>105.98</vICMS>
122
+ <vBCST>0.00</vBCST>
123
+ <vST>0.00</vST>
124
+ <vProd>833.12</vProd>
125
+ <vFrete>0.00</vFrete>
126
+ <vSeg>0.00</vSeg>
127
+ <vDesc>0.00</vDesc>
128
+ <vII>0.00</vII>
129
+ <vIPI>0.00</vIPI>
130
+ <vPIS>14.57</vPIS>
131
+ <vCOFINS>67.11</vCOFINS>
132
+ <vOutro>0.00</vOutro>
133
+ <vNF>833.12</vNF>
134
+ </ICMSTot>
135
+ </total>
136
+ <transp>
137
+ <modFrete>1</modFrete>
138
+ <transporta>
139
+ <xNome>RETIRA</xNome>
140
+ </transporta>
141
+ <vol>
142
+ <qVol>3</qVol>
143
+ <esp>VOLUMES</esp>
144
+ <pesoL>46.480</pesoL>
145
+ <pesoB>50.000</pesoB>
146
+ </vol>
147
+ </transp>
148
+ <cobr>
149
+ <fat>
150
+ <nFat>0001</nFat>
151
+ <vOrig>883.12</vOrig>
152
+ <vLiq>883.12</vLiq>
153
+ </fat>
154
+ <dup>
155
+ <nDup>0001-1</nDup>
156
+ <dVenc>2010-12-20</dVenc>
157
+ <vDup>883.12</vDup>
158
+ </dup>
159
+ </cobr>
160
+ <infAdic>
161
+ <infAdFisco>EMITIDO NOS TERMOS DO ARTIGO 400-C DO DECRETO 48042/03 SAIDA COM SUSPENSAO DO IPI CONFORME ART 29 DA LEI 10.637</infAdFisco>
162
+ <obsCont xCampo="EMAIL">
163
+ <xTexto>roberto@fimatec.com.br</xTexto>
164
+ </obsCont>
165
+ </infAdic>
166
+ </infNFe>
167
+ </NFe>