ruby_xml_nfe 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +12 -0
  3. data/.gitignore +11 -0
  4. data/.rspec +3 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/.travis.yml +7 -0
  8. data/CODE_OF_CONDUCT.md +74 -0
  9. data/Gemfile +6 -0
  10. data/Gemfile.lock +77 -0
  11. data/Guardfile +70 -0
  12. data/LICENSE.txt +21 -0
  13. data/README.md +43 -0
  14. data/Rakefile +6 -0
  15. data/bin/console +14 -0
  16. data/bin/setup +8 -0
  17. data/lib/ruby_xml_nfe.rb +6 -0
  18. data/lib/ruby_xml_nfe/aut_xml.rb +16 -0
  19. data/lib/ruby_xml_nfe/cobr.rb +26 -0
  20. data/lib/ruby_xml_nfe/cofins.rb +28 -0
  21. data/lib/ruby_xml_nfe/cofins_aliq.rb +22 -0
  22. data/lib/ruby_xml_nfe/cofins_outr.rb +22 -0
  23. data/lib/ruby_xml_nfe/dat_pag.rb +20 -0
  24. data/lib/ruby_xml_nfe/dest.rb +32 -0
  25. data/lib/ruby_xml_nfe/dup.rb +20 -0
  26. data/lib/ruby_xml_nfe/emit.rb +36 -0
  27. data/lib/ruby_xml_nfe/ender_dest.rb +39 -0
  28. data/lib/ruby_xml_nfe/ender_emit.rb +38 -0
  29. data/lib/ruby_xml_nfe/fat.rb +22 -0
  30. data/lib/ruby_xml_nfe/icms.rb +19 -0
  31. data/lib/ruby_xml_nfe/icms00.rb +30 -0
  32. data/lib/ruby_xml_nfe/icms_tot.rb +59 -0
  33. data/lib/ruby_xml_nfe/ide.rb +57 -0
  34. data/lib/ruby_xml_nfe/ii.rb +22 -0
  35. data/lib/ruby_xml_nfe/imposto.rb +47 -0
  36. data/lib/ruby_xml_nfe/inf_adic.rb +18 -0
  37. data/lib/ruby_xml_nfe/ipi.rb +20 -0
  38. data/lib/ruby_xml_nfe/ipi_int.rb +16 -0
  39. data/lib/ruby_xml_nfe/items.rb +27 -0
  40. data/lib/ruby_xml_nfe/pag.rb +19 -0
  41. data/lib/ruby_xml_nfe/pis.rb +28 -0
  42. data/lib/ruby_xml_nfe/pis_aliq.rb +22 -0
  43. data/lib/ruby_xml_nfe/pis_outr.rb +22 -0
  44. data/lib/ruby_xml_nfe/prod.rb +52 -0
  45. data/lib/ruby_xml_nfe/total.rb +19 -0
  46. data/lib/ruby_xml_nfe/transp.rb +21 -0
  47. data/lib/ruby_xml_nfe/version.rb +3 -0
  48. data/lib/ruby_xml_nfe/vol.rb +21 -0
  49. data/lib/ruby_xml_nfe/xml.rb +78 -0
  50. data/ruby_xml_nfe.gemspec +45 -0
  51. 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