ruby_xml_nfe 0.1.0

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 (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