nfe_reader 1.0.5 → 1.0.6

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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/lib/nfe_reader.rb +4 -4
  4. data/lib/nfe_reader/address.rb +38 -0
  5. data/lib/nfe_reader/authorization.rb +8 -10
  6. data/lib/nfe_reader/billing.rb +21 -0
  7. data/lib/nfe_reader/billing/duplicate.rb +14 -0
  8. data/lib/nfe_reader/carrier.rb +12 -14
  9. data/lib/nfe_reader/customer.rb +15 -57
  10. data/lib/nfe_reader/delivery.rb +16 -18
  11. data/lib/nfe_reader/document.rb +63 -65
  12. data/lib/nfe_reader/export.rb +8 -10
  13. data/lib/nfe_reader/fiscal.rb +29 -31
  14. data/lib/nfe_reader/header.rb +114 -123
  15. data/lib/nfe_reader/helpers/attribute_helper.rb +24 -0
  16. data/lib/nfe_reader/helpers/creator_helper.rb +40 -0
  17. data/lib/{helpers → nfe_reader/helpers}/nokogiri_hash.rb +2 -0
  18. data/lib/nfe_reader/information.rb +17 -19
  19. data/lib/nfe_reader/nfe.rb +78 -87
  20. data/lib/nfe_reader/person.rb +53 -0
  21. data/lib/nfe_reader/product.rb +69 -67
  22. data/lib/nfe_reader/product/armament.rb +18 -20
  23. data/lib/nfe_reader/product/cane.rb +22 -24
  24. data/lib/nfe_reader/product/exportation.rb +15 -17
  25. data/lib/nfe_reader/product/fuel.rb +13 -15
  26. data/lib/nfe_reader/product/importation.rb +42 -44
  27. data/lib/nfe_reader/product/medicament.rb +15 -17
  28. data/lib/nfe_reader/product/vehicle.rb +113 -115
  29. data/lib/nfe_reader/provider.rb +10 -40
  30. data/lib/nfe_reader/purchase.rb +9 -12
  31. data/lib/nfe_reader/removal.rb +17 -19
  32. data/lib/nfe_reader/taxation/cofins.rb +41 -41
  33. data/lib/nfe_reader/taxation/cofins_st.rb +15 -17
  34. data/lib/nfe_reader/taxation/icms.rb +80 -81
  35. data/lib/nfe_reader/taxation/importation_tax.rb +14 -16
  36. data/lib/nfe_reader/taxation/ipi.rb +35 -37
  37. data/lib/nfe_reader/taxation/issqn.rb +17 -19
  38. data/lib/nfe_reader/taxation/pis.rb +41 -41
  39. data/lib/nfe_reader/taxation/pis_st.rb +16 -18
  40. data/lib/nfe_reader/total.rb +71 -71
  41. data/lib/nfe_reader/transport.rb +76 -89
  42. data/lib/nfe_reader/version.rb +2 -4
  43. data/nfe-reader.gemspec +2 -1
  44. data/test/nfe_reader/address_test.rb +75 -0
  45. data/test/nfe_reader/authorization_test.rb +2 -2
  46. data/test/nfe_reader/{collection → billing}/duplicate_test.rb +2 -2
  47. data/test/nfe_reader/{collection_test.rb → billing_test.rb} +13 -13
  48. data/test/nfe_reader/cane_test.rb +2 -2
  49. data/test/nfe_reader/carrier_test.rb +4 -4
  50. data/test/nfe_reader/customer_test.rb +6 -101
  51. data/test/nfe_reader/delivery_test.rb +2 -2
  52. data/test/nfe_reader/document_test.rb +2 -2
  53. data/test/nfe_reader/export_test.rb +2 -2
  54. data/test/nfe_reader/fiscal_test.rb +2 -2
  55. data/test/nfe_reader/header_test.rb +2 -2
  56. data/test/{helpers → nfe_reader/helpers}/attributte_helper_test.rb +3 -3
  57. data/test/{helpers → nfe_reader/helpers}/creator_helper_test.rb +3 -3
  58. data/test/{helpers → nfe_reader/helpers}/nokogiri_test.rb +1 -1
  59. data/test/nfe_reader/information_test.rb +2 -2
  60. data/test/nfe_reader/nfe_test.rb +13 -13
  61. data/test/nfe_reader/person_test.rb +60 -0
  62. data/test/nfe_reader/product/armament_test.rb +2 -2
  63. data/test/nfe_reader/product/exportation_test.rb +2 -2
  64. data/test/nfe_reader/product/fuel_test.rb +2 -2
  65. data/test/nfe_reader/product/importation_test.rb +2 -2
  66. data/test/nfe_reader/product/medicament_test.rb +2 -2
  67. data/test/nfe_reader/product/vehicle_test.rb +2 -2
  68. data/test/nfe_reader/product_test.rb +2 -2
  69. data/test/nfe_reader/provider_test.rb +5 -118
  70. data/test/nfe_reader/purchase_test.rb +2 -2
  71. data/test/nfe_reader/removal_test.rb +2 -2
  72. data/test/nfe_reader/taxation/cofins_st_test.rb +2 -2
  73. data/test/nfe_reader/taxation/cofins_test.rb +2 -2
  74. data/test/nfe_reader/taxation/icms_test.rb +2 -2
  75. data/test/nfe_reader/taxation/importation_tax_test.rb +2 -2
  76. data/test/nfe_reader/taxation/ipi_test.rb +2 -2
  77. data/test/nfe_reader/taxation/issqn_test.rb +2 -2
  78. data/test/nfe_reader/taxation/pis_st_test.rb +2 -2
  79. data/test/nfe_reader/taxation/pis_test.rb +2 -2
  80. data/test/nfe_reader/total_test.rb +2 -2
  81. data/test/nfe_reader/transport_test.rb +3 -3
  82. metadata +37 -17
  83. data/lib/helpers/attribute_helper.rb +0 -18
  84. data/lib/helpers/creator_helper.rb +0 -32
  85. data/lib/nfe_reader/collection.rb +0 -38
  86. data/lib/nfe_reader/collection/duplicate.rb +0 -16
@@ -1,5 +1,3 @@
1
- module Nfe
2
- module Reader
3
- VERSION = "1.0.5"
4
- end
1
+ module NfeReader
2
+ VERSION = "1.0.6"
5
3
  end
@@ -5,7 +5,7 @@ require 'nfe_reader/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "nfe_reader"
8
- spec.version = Nfe::Reader::VERSION
8
+ spec.version = NfeReader::VERSION
9
9
  spec.authors = ["Eduardo Becker"]
10
10
  spec.email = ["edu.bkr@gmail.com"]
11
11
  spec.summary = %q{NFe XML Extractor}
@@ -21,5 +21,6 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency "bundler", "~> 1.6"
22
22
  spec.add_development_dependency "rake"
23
23
  spec.add_development_dependency "turn", "~> 0.9"
24
+ spec.add_development_dependency "minitest"
24
25
  spec.add_dependency "nokogiri", "~> 1.6"
25
26
  end
@@ -0,0 +1,75 @@
1
+ require File.expand_path("../../test_helper", __FILE__)
2
+
3
+ describe NfeReader::Address do
4
+ def cte_hash
5
+ {
6
+ CNPJ: '58571647000153',
7
+ CPF: '28113502254',
8
+ fone: '55 5555-5555',
9
+ xLgr: 'Address',
10
+ nro: 'Number',
11
+ xCpl: 'Complement',
12
+ xBairro: 'Neighborhood',
13
+ cMun: '1001',
14
+ xMun: 'City',
15
+ CEP: '00000-000',
16
+ UF: 'State',
17
+ cPais: '1058',
18
+ xPais: 'Brazil'
19
+ }
20
+ end
21
+
22
+ let(:address) { NfeReader::Address.new(cte_hash) }
23
+
24
+ it '#cnpj' do
25
+ address.cnpj.must_equal cte_hash[:CNPJ]
26
+ end
27
+
28
+ it '#cpf' do
29
+ address.cpf.must_equal cte_hash[:CPF]
30
+ end
31
+
32
+ it '#phone' do
33
+ address.phone.must_equal cte_hash[:fone]
34
+ end
35
+
36
+ it '#address' do
37
+ address.address.must_equal cte_hash[:xLgr]
38
+ end
39
+
40
+ it '#number' do
41
+ address.number.must_equal cte_hash[:nro]
42
+ end
43
+
44
+ it '#complement' do
45
+ address.complement.must_equal cte_hash[:xCpl]
46
+ end
47
+
48
+ it '#neighborhood' do
49
+ address.neighborhood.must_equal cte_hash[:xBairro]
50
+ end
51
+
52
+ it '#city_code' do
53
+ address.city_code.must_equal cte_hash[:cMun]
54
+ end
55
+
56
+ it '#city' do
57
+ address.city.must_equal cte_hash[:xMun]
58
+ end
59
+
60
+ it '#zip_code' do
61
+ address.zip_code.must_equal cte_hash[:CEP]
62
+ end
63
+
64
+ it '#state' do
65
+ address.state.must_equal cte_hash[:UF]
66
+ end
67
+
68
+ it '#country_code' do
69
+ address.country_code.must_equal cte_hash[:cPais]
70
+ end
71
+
72
+ it '#country' do
73
+ address.country.must_equal cte_hash[:xPais]
74
+ end
75
+ end
@@ -1,6 +1,6 @@
1
1
  require File.expand_path("../../test_helper", __FILE__)
2
2
 
3
- describe Nfe::Reader::Authorization do
3
+ describe NfeReader::Authorization do
4
4
  def nfe_hash
5
5
  {
6
6
  autXML: {
@@ -10,7 +10,7 @@ describe Nfe::Reader::Authorization do
10
10
  }
11
11
  end
12
12
 
13
- let(:authorization) { Nfe::Reader::Authorization.new(nfe_hash[:autXML]) }
13
+ let(:authorization) { NfeReader::Authorization.new(nfe_hash[:autXML]) }
14
14
 
15
15
  it '#cnpj' do
16
16
  authorization.cnpj.must_equal '99819146000120'
@@ -1,6 +1,6 @@
1
1
  require File.expand_path("../../../test_helper", __FILE__)
2
2
 
3
- describe Nfe::Reader::Duplicate do
3
+ describe NfeReader::Duplicate do
4
4
  def nfe_hash
5
5
  {
6
6
  duplicate: {
@@ -11,7 +11,7 @@ describe Nfe::Reader::Duplicate do
11
11
  }
12
12
  end
13
13
 
14
- let(:duplicate) { Nfe::Reader::Duplicate.new(nfe_hash[:duplicate]) }
14
+ let(:duplicate) { NfeReader::Duplicate.new(nfe_hash[:duplicate]) }
15
15
 
16
16
  it '#number' do
17
17
  duplicate.number.must_equal '1'
@@ -1,9 +1,9 @@
1
1
  require File.expand_path("../../test_helper", __FILE__)
2
2
 
3
- describe Nfe::Reader::Collection do
3
+ describe NfeReader::Billing do
4
4
  def nfe_hash
5
5
  {
6
- collection: {
6
+ billing: {
7
7
  fat:{
8
8
  nFat: '1000',
9
9
  vOrig: '1500.00',
@@ -19,9 +19,9 @@ describe Nfe::Reader::Collection do
19
19
  }
20
20
  end
21
21
 
22
- def collection_hash
22
+ def billing_hash
23
23
  {
24
- collection: {
24
+ billing: {
25
25
  fat:{
26
26
  nFat: '1000',
27
27
  vOrig: '1500.00',
@@ -44,35 +44,35 @@ describe Nfe::Reader::Collection do
44
44
  }
45
45
  end
46
46
 
47
- let(:collection) { Nfe::Reader::Collection.new(nfe_hash[:collection]) }
47
+ let(:billing) { NfeReader::Billing.new(nfe_hash[:billing]) }
48
48
 
49
49
  describe 'One duplicate' do
50
50
  it '#number' do
51
- collection.number.must_equal '1000'
51
+ billing.number.must_equal '1000'
52
52
  end
53
53
 
54
54
  it '#value' do
55
- collection.value.must_equal '1500.00'
55
+ billing.value.must_equal '1500.00'
56
56
  end
57
57
 
58
- it '#descont' do
59
- collection.descont.must_equal '0.00'
58
+ it '#descount' do
59
+ billing.descount.must_equal '0.00'
60
60
  end
61
61
 
62
62
  it '#value_net' do
63
- collection.value_net.must_equal '1500.00'
63
+ billing.value_net.must_equal '1500.00'
64
64
  end
65
65
 
66
66
  it '#duplicates' do
67
- collection.duplicates.size.must_equal 1
67
+ billing.duplicates.size.must_equal 1
68
68
  end
69
69
  end
70
70
 
71
71
  describe 'Two duplicate' do
72
- let(:collection) { Nfe::Reader::Collection.new(collection_hash[:collection]) }
72
+ let(:billing) { NfeReader::Billing.new(billing_hash[:billing]) }
73
73
 
74
74
  it '#duplicates' do
75
- collection.duplicates.size.must_equal 2
75
+ billing.duplicates.size.must_equal 2
76
76
  end
77
77
  end
78
78
  end
@@ -1,6 +1,6 @@
1
1
  require File.expand_path("../../test_helper", __FILE__)
2
2
 
3
- describe Nfe::Reader::Cane do
3
+ describe NfeReader::Cane do
4
4
  def nfe_hash
5
5
  {
6
6
  cana: {
@@ -27,7 +27,7 @@ describe Nfe::Reader::Cane do
27
27
  }
28
28
  end
29
29
 
30
- let(:cane) { Nfe::Reader::Cane.new(nfe_hash[:cana]) }
30
+ let(:cane) { NfeReader::Cane.new(nfe_hash[:cana]) }
31
31
 
32
32
  it '#harvest' do
33
33
  cane.harvest.must_equal '2000'
@@ -1,6 +1,6 @@
1
1
  require File.expand_path("../../test_helper", __FILE__)
2
2
 
3
- describe Nfe::Reader::Carrier do
3
+ describe NfeReader::Carrier do
4
4
  def nfe_hash
5
5
  {
6
6
  transp: {
@@ -14,7 +14,7 @@ describe Nfe::Reader::Carrier do
14
14
  }
15
15
  end
16
16
 
17
- let(:carrier) { Nfe::Reader::Carrier.new(nfe_hash[:transp]) }
17
+ let(:carrier) { NfeReader::Carrier.new(nfe_hash[:transp]) }
18
18
 
19
19
  it '#cnpj' do
20
20
  carrier.cnpj.must_equal '99819146000120'
@@ -28,8 +28,8 @@ describe Nfe::Reader::Carrier do
28
28
  carrier.name.must_equal 'Carrier'
29
29
  end
30
30
 
31
- it '#ie' do
32
- carrier.ie.must_equal '15786913'
31
+ it '#state_registration' do
32
+ carrier.state_registration.must_equal '15786913'
33
33
  end
34
34
 
35
35
  it '#address' do
@@ -1,6 +1,6 @@
1
1
  require File.expand_path("../../test_helper", __FILE__)
2
2
 
3
- describe Nfe::Reader::Customer do
3
+ describe NfeReader::Customer do
4
4
  def customer_hash
5
5
  {
6
6
  dest: {
@@ -26,108 +26,13 @@ describe Nfe::Reader::Customer do
26
26
  }
27
27
  end
28
28
 
29
- describe 'with address' do
30
- let(:customer) { Nfe::Reader::Customer.new(customer_hash[:dest]) }
29
+ let(:customer) { NfeReader::Customer.new(customer_hash[:dest]) }
31
30
 
32
- it '#foreign_code' do
33
- customer.foreign_code.must_equal '10021312198423'
34
- end
35
-
36
- it '#cnpj' do
37
- customer.cnpj.must_equal '99819146000120'
38
- end
39
-
40
- it '#cpf' do
41
- customer.cpf.must_equal '64046757655'
42
- end
43
-
44
- it '#name' do
45
- customer.name.must_equal 'Customer'
46
- end
47
-
48
- it '#state_registration' do
49
- customer.state_registration.must_equal '15786913'
50
- end
51
-
52
- it '#email' do
53
- customer.email.must_equal 'customer@test.mail'
54
- end
55
-
56
- it '#suframa' do
57
- customer.suframa.must_equal '1234567890'
58
- end
59
-
60
- it '#phone' do
61
- customer.phone.must_equal '55 5555-5555'
62
- end
63
-
64
- it '#number' do
65
- customer.number.must_equal '123'
66
- end
67
-
68
- it '#address' do
69
- customer.address.must_equal 'Green Street'
70
- end
71
- it '#neighborhood' do
72
- customer.neighborhood.must_equal 'Neighborhood'
73
- end
74
-
75
- it '#city_code' do
76
- customer.city_code.must_equal '1246'
77
- end
78
-
79
- it '#city' do
80
- customer.city.must_equal 'City'
81
- end
82
-
83
- it '#state' do
84
- customer.state.must_equal 'ST'
85
- end
86
-
87
- it '#country_code' do
88
- customer.country_code.must_equal '1058'
89
- end
90
-
91
- it '#country' do
92
- customer.country.must_equal 'Brazil'
93
- end
31
+ it '#person' do
32
+ customer.person.must_be_instance_of NfeReader::Person
94
33
  end
95
34
 
96
- describe 'without address' do
97
- let(:customer) { Nfe::Reader::Customer.new }
98
- it '#phone' do
99
- customer.number.must_be_nil
100
- end
101
-
102
- it '#number' do
103
- customer.number.must_be_nil
104
- end
105
-
106
- it '#address' do
107
- customer.address.must_be_nil
108
- end
109
- it '#neighborhood' do
110
- customer.neighborhood.must_be_nil
111
- end
112
-
113
- it '#city_code' do
114
- customer.city_code.must_be_nil
115
- end
116
-
117
- it '#city' do
118
- customer.city.must_be_nil
119
- end
120
-
121
- it '#state' do
122
- customer.state.must_be_nil
123
- end
124
-
125
- it '#country_code' do
126
- customer.country_code.must_be_nil
127
- end
128
-
129
- it '#country' do
130
- customer.country.must_be_nil
131
- end
35
+ it '#address' do
36
+ customer.address.must_be_instance_of NfeReader::Address
132
37
  end
133
38
  end
@@ -1,6 +1,6 @@
1
1
  require File.expand_path("../../test_helper", __FILE__)
2
2
 
3
- describe Nfe::Reader::Delivery do
3
+ describe NfeReader::Delivery do
4
4
  def nfe_hash
5
5
  {
6
6
  entrega: {
@@ -17,7 +17,7 @@ describe Nfe::Reader::Delivery do
17
17
  }
18
18
  end
19
19
 
20
- let(:delivery) { Nfe::Reader::Delivery.new(nfe_hash[:entrega]) }
20
+ let(:delivery) { NfeReader::Delivery.new(nfe_hash[:entrega]) }
21
21
 
22
22
  it '#cnpj' do
23
23
  delivery.cnpj.must_equal '99819146000120'
@@ -1,6 +1,6 @@
1
1
  require File.expand_path("../../test_helper", __FILE__)
2
2
 
3
- describe Nfe::Reader::Document do
3
+ describe NfeReader::Document do
4
4
  def nfe_hash
5
5
  {
6
6
  NFref: {
@@ -33,7 +33,7 @@ describe Nfe::Reader::Document do
33
33
  }
34
34
  end
35
35
 
36
- let(:document) { Nfe::Reader::Document.new(nfe_hash[:NFref]) }
36
+ let(:document) { NfeReader::Document.new(nfe_hash[:NFref]) }
37
37
 
38
38
  it '#key' do
39
39
  document.key.must_equal '1000000000000'
@@ -1,6 +1,6 @@
1
1
  require File.expand_path("../../test_helper", __FILE__)
2
2
 
3
- describe Nfe::Reader::Export do
3
+ describe NfeReader::Export do
4
4
  def nfe_hash
5
5
  {
6
6
  exporta: {
@@ -10,7 +10,7 @@ describe Nfe::Reader::Export do
10
10
  }
11
11
  end
12
12
 
13
- let(:export) { Nfe::Reader::Export.new(nfe_hash[:exporta]) }
13
+ let(:export) { NfeReader::Export.new(nfe_hash[:exporta]) }
14
14
 
15
15
  it '#state' do
16
16
  export.state.must_equal 'ST'
@@ -1,6 +1,6 @@
1
1
  require File.expand_path("../../test_helper", __FILE__)
2
2
 
3
- describe Nfe::Reader::Fiscal do
3
+ describe NfeReader::Fiscal do
4
4
  def nfe_hash
5
5
  {
6
6
  avulsa: {
@@ -19,7 +19,7 @@ describe Nfe::Reader::Fiscal do
19
19
  }
20
20
  end
21
21
 
22
- let(:fiscal) { Nfe::Reader::Fiscal.new(nfe_hash[:avulsa]) }
22
+ let(:fiscal) { NfeReader::Fiscal.new(nfe_hash[:avulsa]) }
23
23
 
24
24
  it '#cnpj' do
25
25
  fiscal.cnpj.must_equal '99819146000120'
@@ -1,6 +1,6 @@
1
1
  require File.expand_path("../../test_helper", __FILE__)
2
2
 
3
- describe Nfe::Reader::Header do
3
+ describe NfeReader::Header do
4
4
  def nfe_hash
5
5
  {
6
6
  ide: {
@@ -31,7 +31,7 @@ describe Nfe::Reader::Header do
31
31
  }
32
32
  end
33
33
 
34
- let(:header) { Nfe::Reader::Header.new(nfe_hash[:ide]) }
34
+ let(:header) { NfeReader::Header.new(nfe_hash[:ide]) }
35
35
 
36
36
  it '#final_consumer' do
37
37
  header.final_consumer.must_equal '0'