nfe 0.0.0 → 0.0.1a

Sign up to get free protection for your applications and to get access to all the features.
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>