ruby_xml_nfe 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.editorconfig +12 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +7 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +77 -0
- data/Guardfile +70 -0
- data/LICENSE.txt +21 -0
- data/README.md +43 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/ruby_xml_nfe.rb +6 -0
- data/lib/ruby_xml_nfe/aut_xml.rb +16 -0
- data/lib/ruby_xml_nfe/cobr.rb +26 -0
- data/lib/ruby_xml_nfe/cofins.rb +28 -0
- data/lib/ruby_xml_nfe/cofins_aliq.rb +22 -0
- data/lib/ruby_xml_nfe/cofins_outr.rb +22 -0
- data/lib/ruby_xml_nfe/dat_pag.rb +20 -0
- data/lib/ruby_xml_nfe/dest.rb +32 -0
- data/lib/ruby_xml_nfe/dup.rb +20 -0
- data/lib/ruby_xml_nfe/emit.rb +36 -0
- data/lib/ruby_xml_nfe/ender_dest.rb +39 -0
- data/lib/ruby_xml_nfe/ender_emit.rb +38 -0
- data/lib/ruby_xml_nfe/fat.rb +22 -0
- data/lib/ruby_xml_nfe/icms.rb +19 -0
- data/lib/ruby_xml_nfe/icms00.rb +30 -0
- data/lib/ruby_xml_nfe/icms_tot.rb +59 -0
- data/lib/ruby_xml_nfe/ide.rb +57 -0
- data/lib/ruby_xml_nfe/ii.rb +22 -0
- data/lib/ruby_xml_nfe/imposto.rb +47 -0
- data/lib/ruby_xml_nfe/inf_adic.rb +18 -0
- data/lib/ruby_xml_nfe/ipi.rb +20 -0
- data/lib/ruby_xml_nfe/ipi_int.rb +16 -0
- data/lib/ruby_xml_nfe/items.rb +27 -0
- data/lib/ruby_xml_nfe/pag.rb +19 -0
- data/lib/ruby_xml_nfe/pis.rb +28 -0
- data/lib/ruby_xml_nfe/pis_aliq.rb +22 -0
- data/lib/ruby_xml_nfe/pis_outr.rb +22 -0
- data/lib/ruby_xml_nfe/prod.rb +52 -0
- data/lib/ruby_xml_nfe/total.rb +19 -0
- data/lib/ruby_xml_nfe/transp.rb +21 -0
- data/lib/ruby_xml_nfe/version.rb +3 -0
- data/lib/ruby_xml_nfe/vol.rb +21 -0
- data/lib/ruby_xml_nfe/xml.rb +78 -0
- data/ruby_xml_nfe.gemspec +45 -0
- metadata +178 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'ruby_xml_nfe/cofins_aliq'
|
2
|
+
require 'ruby_xml_nfe/cofins_outr'
|
3
|
+
|
4
|
+
module RubyXmlNfe
|
5
|
+
class Cofins
|
6
|
+
attr_reader :xml, :cofins_aliq_params, :cofins_outr_params
|
7
|
+
|
8
|
+
def initialize(xml, params)
|
9
|
+
@xml = xml
|
10
|
+
@cofins_aliq_params = params[:COFINSAliq]
|
11
|
+
@cofins_outr_params = params[:COFINSOutr]
|
12
|
+
end
|
13
|
+
|
14
|
+
def build
|
15
|
+
xml.COFINS do
|
16
|
+
if cofins_aliq_params
|
17
|
+
cofins_aliq = RubyXmlNfe::CofinsAliq.new(xml, cofins_aliq_params)
|
18
|
+
cofins_aliq.build
|
19
|
+
end
|
20
|
+
|
21
|
+
if cofins_outr_params
|
22
|
+
cofins_outr = RubyXmlNfe::CofinsOutr.new(xml, cofins_outr_params)
|
23
|
+
cofins_outr.build
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module RubyXmlNfe
|
2
|
+
class CofinsAliq
|
3
|
+
attr_reader :xml, :cst, :vBC, :pCOFINS, :vCOFINS
|
4
|
+
|
5
|
+
def initialize(xml, params)
|
6
|
+
@xml = xml
|
7
|
+
@cst = params[:CST]
|
8
|
+
@vBC = params[:vBC]
|
9
|
+
@pCOFINS = params[:pCOFINS]
|
10
|
+
@vCOFINS = params[:vCOFINS]
|
11
|
+
end
|
12
|
+
|
13
|
+
def build
|
14
|
+
xml.COFINSAliq do
|
15
|
+
xml.CST cst
|
16
|
+
xml.vBC vBC
|
17
|
+
xml.pCOFINS pCOFINS
|
18
|
+
xml.vCOFINS vCOFINS
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module RubyXmlNfe
|
2
|
+
class CofinsOutr
|
3
|
+
attr_reader :xml, :cst, :vBC, :pCOFINS, :vCOFINS
|
4
|
+
|
5
|
+
def initialize(xml, params)
|
6
|
+
@xml = xml
|
7
|
+
@cst = params[:CST]
|
8
|
+
@vBC = params[:vBC]
|
9
|
+
@pCOFINS = params[:pCOFINS]
|
10
|
+
@vCOFINS = params[:vCOFINS]
|
11
|
+
end
|
12
|
+
|
13
|
+
def build
|
14
|
+
xml.COFINSOutr do
|
15
|
+
xml.CST cst
|
16
|
+
xml.vBC vBC
|
17
|
+
xml.pCOFINS pCOFINS
|
18
|
+
xml.vCOFINS vCOFINS
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module RubyXmlNfe
|
2
|
+
class DatPag
|
3
|
+
attr_reader :xml, :indPag, :tPag, :vPag
|
4
|
+
|
5
|
+
def initialize(xml, params)
|
6
|
+
@xml = xml
|
7
|
+
@indPag = params[:indPag]
|
8
|
+
@tPag = params[:tPag]
|
9
|
+
@vPag = params[:vPag]
|
10
|
+
end
|
11
|
+
|
12
|
+
def build
|
13
|
+
xml.detPag do
|
14
|
+
xml.indPag indPag
|
15
|
+
xml.tPag tPag
|
16
|
+
xml.vPag vPag
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
require 'ruby_xml_nfe/ender_dest'
|
3
|
+
|
4
|
+
module RubyXmlNfe
|
5
|
+
class Dest
|
6
|
+
attr_reader :xml, :cnpj, :xNome, :ender_dest_params, :indIEDest, :ie, :email
|
7
|
+
|
8
|
+
def initialize(xml, params)
|
9
|
+
@xml = xml
|
10
|
+
@cnpj = params[:CNPJ]
|
11
|
+
@xNome = params[:xNome]
|
12
|
+
@ender_dest_params = params[:enderDest]
|
13
|
+
@indIEDest = params[:indIEDest]
|
14
|
+
@ie = params[:IE]
|
15
|
+
@email = params[:email]
|
16
|
+
end
|
17
|
+
|
18
|
+
def build
|
19
|
+
xml.dest do
|
20
|
+
xml.CNPJ cnpj
|
21
|
+
xml.xNome xNome
|
22
|
+
|
23
|
+
ender_emit = RubyXmlNfe::EnderDest.new(xml, ender_dest_params)
|
24
|
+
ender_emit.build
|
25
|
+
|
26
|
+
xml.indIEDest indIEDest
|
27
|
+
xml.IE ie if ie
|
28
|
+
xml.email email if email
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module RubyXmlNfe
|
2
|
+
class Dup
|
3
|
+
attr_reader :xml, :nDup, :dVenc, :vDup
|
4
|
+
|
5
|
+
def initialize(xml, params)
|
6
|
+
@xml = xml
|
7
|
+
@nDup = params[:nDup]
|
8
|
+
@dVenc = params[:dVenc]
|
9
|
+
@vDup = params[:vDup]
|
10
|
+
end
|
11
|
+
|
12
|
+
def build
|
13
|
+
xml.dup_ do
|
14
|
+
xml.nDup nDup
|
15
|
+
xml.dVenc dVenc
|
16
|
+
xml.vDup vDup
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
require 'ruby_xml_nfe/ender_emit'
|
3
|
+
|
4
|
+
module RubyXmlNfe
|
5
|
+
class Emit
|
6
|
+
attr_reader :xml, :cnpj, :xNome, :xFant, :ender_emit_params, :ie, :im, :cnae, :crt
|
7
|
+
|
8
|
+
def initialize(xml, params)
|
9
|
+
@xml = xml
|
10
|
+
@cnpj = params[:CNPJ]
|
11
|
+
@xNome = params[:xNome]
|
12
|
+
@xFant = params[:xFant]
|
13
|
+
@ender_emit_params = params[:enderEmit]
|
14
|
+
@ie = params[:IE]
|
15
|
+
@im = params[:IM]
|
16
|
+
@cnae = params[:CNAE]
|
17
|
+
@crt = params[:CRT]
|
18
|
+
end
|
19
|
+
|
20
|
+
def build
|
21
|
+
xml.emit do
|
22
|
+
xml.CNPJ cnpj
|
23
|
+
xml.xNome xNome
|
24
|
+
xml.xFant xFant
|
25
|
+
|
26
|
+
ender_emit = RubyXmlNfe::EnderEmit.new(xml, ender_emit_params)
|
27
|
+
ender_emit.build
|
28
|
+
|
29
|
+
xml.IE ie
|
30
|
+
xml.IM im if im
|
31
|
+
xml.CNAE cnae if cnae
|
32
|
+
xml.CRT crt
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
|
3
|
+
module RubyXmlNfe
|
4
|
+
class EnderDest
|
5
|
+
attr_accessor :xml, :xLgr, :nro, :xCpl, :xBairro, :cMun, :xMun, :uf,
|
6
|
+
:cep, :cPais, :xPais, :fone
|
7
|
+
|
8
|
+
def initialize(xml, params)
|
9
|
+
@xml = xml
|
10
|
+
@xLgr = params[:xLgr]
|
11
|
+
@nro = params[:nro]
|
12
|
+
@xCpl = params[:xCpl]
|
13
|
+
@xBairro = params[:xBairro]
|
14
|
+
@cMun = params[:cMun]
|
15
|
+
@xMun = params[:xMun]
|
16
|
+
@uf = params[:UF]
|
17
|
+
@cep = params[:CEP]
|
18
|
+
@cPais = params[:cPais]
|
19
|
+
@xPais = params[:xPais]
|
20
|
+
@fone = params[:fone]
|
21
|
+
end
|
22
|
+
|
23
|
+
def build
|
24
|
+
xml.enderDest do
|
25
|
+
xml.xLgr xLgr
|
26
|
+
xml.nro nro
|
27
|
+
xml.xCpl xCpl if xCpl
|
28
|
+
xml.xBairro xBairro
|
29
|
+
xml.cMun cMun
|
30
|
+
xml.xMun xMun
|
31
|
+
xml.UF uf
|
32
|
+
xml.CEP cep
|
33
|
+
xml.cPais cPais
|
34
|
+
xml.xPais xPais
|
35
|
+
xml.fone fone if fone
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
|
3
|
+
module RubyXmlNfe
|
4
|
+
class EnderEmit
|
5
|
+
attr_reader :xml, :xLgr, :nro, :xCpl, :xBairro, :cMun, :xMun, :uf, :cep, :cPais, :xPais, :fone
|
6
|
+
|
7
|
+
def initialize(xml, params)
|
8
|
+
@xml = xml
|
9
|
+
@xLgr = params[:xLgr]
|
10
|
+
@nro = params[:nro]
|
11
|
+
@xCpl = params[:xCpl]
|
12
|
+
@xBairro = params[:xBairro]
|
13
|
+
@cMun = params[:cMun]
|
14
|
+
@xMun = params[:xMun]
|
15
|
+
@uf = params[:UF]
|
16
|
+
@cep = params[:CEP]
|
17
|
+
@cPais = params[:cPais]
|
18
|
+
@xPais = params[:xPais]
|
19
|
+
@fone = params[:fone]
|
20
|
+
end
|
21
|
+
|
22
|
+
def build
|
23
|
+
xml.enderEmit do
|
24
|
+
xml.xLgr xLgr
|
25
|
+
xml.nro nro
|
26
|
+
xml.xCpl xCpl
|
27
|
+
xml.xBairro xBairro
|
28
|
+
xml.cMun cMun
|
29
|
+
xml.xMun xMun
|
30
|
+
xml.UF uf
|
31
|
+
xml.CEP cep
|
32
|
+
xml.cPais cPais
|
33
|
+
xml.xPais xPais
|
34
|
+
xml.fone fone
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module RubyXmlNfe
|
2
|
+
class Fat
|
3
|
+
attr_reader :xml, :nFat, :vOrig, :vDesc, :vLiq
|
4
|
+
|
5
|
+
def initialize(xml, params)
|
6
|
+
@xml = xml
|
7
|
+
@nFat = params[:nFat]
|
8
|
+
@vOrig = params[:vOrig]
|
9
|
+
@vDesc = params[:vDesc]
|
10
|
+
@vLiq = params[:vLiq]
|
11
|
+
end
|
12
|
+
|
13
|
+
def build
|
14
|
+
xml.fat do
|
15
|
+
xml.nFat nFat
|
16
|
+
xml.vOrig vOrig
|
17
|
+
xml.vDesc vDesc
|
18
|
+
xml.vLiq vLiq
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'ruby_xml_nfe/icms00'
|
2
|
+
|
3
|
+
module RubyXmlNfe
|
4
|
+
class Icms
|
5
|
+
attr_reader :xml, :icms00_params
|
6
|
+
|
7
|
+
def initialize(xml, params)
|
8
|
+
@xml = xml
|
9
|
+
@icms00_params = params[:ICMS00]
|
10
|
+
end
|
11
|
+
|
12
|
+
def build
|
13
|
+
xml.ICMS do
|
14
|
+
icms00 = RubyXmlNfe::Icms00.new(xml, icms00_params)
|
15
|
+
icms00.build
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module RubyXmlNfe
|
2
|
+
class Icms00
|
3
|
+
attr_reader :xml, :orig, :cst, :modBC, :vBC, :pICMS, :vICMS, :pFCP, :vFCP
|
4
|
+
|
5
|
+
def initialize(xml, params)
|
6
|
+
@xml = xml
|
7
|
+
@orig = params[:orig]
|
8
|
+
@cst = params[:CST]
|
9
|
+
@modBC = params[:modBC]
|
10
|
+
@vBC = params[:vBC]
|
11
|
+
@pICMS = params[:pICMS]
|
12
|
+
@vICMS = params[:vICMS]
|
13
|
+
@pFCP = params[:pFCP]
|
14
|
+
@vFCP = params[:vFCP]
|
15
|
+
end
|
16
|
+
|
17
|
+
def build
|
18
|
+
xml.ICMS00 do
|
19
|
+
xml.orig orig
|
20
|
+
xml.CST cst
|
21
|
+
xml.modBC modBC
|
22
|
+
xml.vBC vBC
|
23
|
+
xml.pICMS pICMS
|
24
|
+
xml.vICMS vICMS
|
25
|
+
xml.pFCP pFCP if pFCP
|
26
|
+
xml.vFCP vFCP if vFCP
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module RubyXmlNfe
|
2
|
+
class IcmsTot
|
3
|
+
attr_reader *%i(xml vBC vICMS vICMSDeson vFCPUFDest vICMSUFDest vICMSUFRemet vFCP vBCST vST vFCPST
|
4
|
+
vFCPSTRet vProd vFrete vSeg vDesc vII vIPI vIPIDevol vPIS vCOFINS vOutro vNF)
|
5
|
+
|
6
|
+
def initialize(xml, params)
|
7
|
+
@xml = xml
|
8
|
+
@vBC = params[:vBC]
|
9
|
+
@vICMS = params[:vICMS]
|
10
|
+
@vICMSDeson = params[:vICMSDeson]
|
11
|
+
@vFCPUFDest = params[:vFCPUFDest]
|
12
|
+
@vICMSUFDest = params[:vICMSUFDest]
|
13
|
+
@vICMSUFRemet = params[:vICMSUFRemet]
|
14
|
+
@vFCP = params[:vFCP]
|
15
|
+
@vBCST = params[:vBCST]
|
16
|
+
@vST = params[:vST]
|
17
|
+
@vFCPST = params[:vFCPST]
|
18
|
+
@vFCPSTRet = params[:vFCPSTRet]
|
19
|
+
@vProd = params[:vProd]
|
20
|
+
@vFrete = params[:vFrete]
|
21
|
+
@vSeg = params[:vSeg]
|
22
|
+
@vDesc = params[:vDesc]
|
23
|
+
@vII = params[:vII]
|
24
|
+
@vIPI = params[:vIPI]
|
25
|
+
@vIPIDevol = params[:vIPIDevol]
|
26
|
+
@vPIS = params[:vPIS]
|
27
|
+
@vCOFINS = params[:vCOFINS]
|
28
|
+
@vOutro = params[:vOutro]
|
29
|
+
@vNF = params[:vNF]
|
30
|
+
end
|
31
|
+
|
32
|
+
def build
|
33
|
+
xml.ICMSTot do
|
34
|
+
xml.vBC vBC
|
35
|
+
xml.vICMS vICMS
|
36
|
+
xml.vICMSDeson vICMSDeson
|
37
|
+
xml.vFCPUFDest vFCPUFDest if vFCPUFDest
|
38
|
+
xml.vICMSUFDest vICMSUFDest if vICMSUFDest
|
39
|
+
xml.vICMSUFRemet vICMSUFRemet if vICMSUFRemet
|
40
|
+
xml.vFCP vFCP
|
41
|
+
xml.vBCST vBCST
|
42
|
+
xml.vST vST
|
43
|
+
xml.vFCPST vFCPST
|
44
|
+
xml.vFCPSTRet vFCPSTRet
|
45
|
+
xml.vProd vProd
|
46
|
+
xml.vFrete vFrete
|
47
|
+
xml.vSeg vSeg
|
48
|
+
xml.vDesc vDesc
|
49
|
+
xml.vII vII
|
50
|
+
xml.vIPI vIPI
|
51
|
+
xml.vIPIDevol vIPIDevol
|
52
|
+
xml.vPIS vPIS
|
53
|
+
xml.vCOFINS vCOFINS
|
54
|
+
xml.vOutro vOutro
|
55
|
+
xml.vNF vNF
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
|
3
|
+
module RubyXmlNfe
|
4
|
+
class Ide
|
5
|
+
attr_reader :xml, :cUF, :cNF, :natOp, :mod, :serie, :nNF, :dhEmi, :dhSaiEnt, :tpNF, :idDest,
|
6
|
+
:cMunFG, :tpImp, :tpEmis, :cDV, :tpAmb, :finNFe, :indFinal, :indPres, :procEmi, :verProc
|
7
|
+
|
8
|
+
def initialize(xml, params)
|
9
|
+
@xml = xml
|
10
|
+
@cUF = params[:cUF]
|
11
|
+
@cNF = params[:cNF]
|
12
|
+
@natOp = params[:natOp]
|
13
|
+
@mod = params[:mod]
|
14
|
+
@serie = params[:serie]
|
15
|
+
@nNF = params[:nNF]
|
16
|
+
@dhEmi = params[:dhEmi]
|
17
|
+
@dhSaiEnt = params[:dhSaiEnt]
|
18
|
+
@tpNF = params[:tpNF]
|
19
|
+
@idDest = params[:idDest]
|
20
|
+
@cMunFG = params[:cMunFG]
|
21
|
+
@tpImp = params[:tpImp]
|
22
|
+
@tpEmis = params[:tpEmis]
|
23
|
+
@cDV = params[:cDV]
|
24
|
+
@tpAmb = params[:tpAmb]
|
25
|
+
@finNFe = params[:finNFe]
|
26
|
+
@indFinal = params[:indFinal]
|
27
|
+
@indPres = params[:indPres]
|
28
|
+
@procEmi = params[:procEmi]
|
29
|
+
@verProc = params[:verProc]
|
30
|
+
end
|
31
|
+
|
32
|
+
def build
|
33
|
+
xml.ide do
|
34
|
+
xml.cUF cUF
|
35
|
+
xml.cNF cNF
|
36
|
+
xml.natOp natOp
|
37
|
+
xml.mod mod
|
38
|
+
xml.serie serie
|
39
|
+
xml.nNF nNF
|
40
|
+
xml.dhEmi dhEmi
|
41
|
+
xml.dhSaiEnt dhSaiEnt if dhSaiEnt
|
42
|
+
xml.tpNF tpNF
|
43
|
+
xml.idDest idDest
|
44
|
+
xml.cMunFG cMunFG
|
45
|
+
xml.tpImp tpImp
|
46
|
+
xml.tpEmis tpEmis
|
47
|
+
xml.cDV cDV
|
48
|
+
xml.tpAmb tpAmb
|
49
|
+
xml.finNFe finNFe
|
50
|
+
xml.indFinal indFinal
|
51
|
+
xml.indPres indPres
|
52
|
+
xml.procEmi procEmi
|
53
|
+
xml.verProc verProc
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|