nfe_reader 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b0a6ea021f20cf8869fb72b69dc09f308b4459b2
4
- data.tar.gz: 8fd34ca62a8976705aaa417b5aa01b67f006d260
3
+ metadata.gz: ba1c5791d02df4dfb1c09a5c5207060233d22129
4
+ data.tar.gz: d21ea3e85feb073c68932cae0d5ff5176b276d45
5
5
  SHA512:
6
- metadata.gz: eecac3227082e880243211a0897a3517420719a76772b4b343d7c14386496c399ec6b570c5f90068f38c9b9f69ea2d5a09e47dda1a1e83ebad4d05ec698559c3
7
- data.tar.gz: a0372bd094fd2cae68d5071b98a9875f20ae30cc1afce35043e6be1ae3a77891688ff7c4484b2a4461e4263801c60ae7268fd4ff65067f973a1e1278f957073b
6
+ metadata.gz: 71801667ed953056b6018147364723507d62c32a8730ed342f91c1ce3b58e5d6ea24d30558c980b92b6206ac692d1520c035177c25e5e1f5ef045d23af23f76d
7
+ data.tar.gz: ddc9fd204fdd0d4ad7bc462cbe015fddbd14f1bb3c9855a418dc15d6787a27ec3c9283a81cec738443f42acb21319aac2a181bfe6d7e4f3ff4892b1cadb9896e
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- ## Nfe::Reader ##
1
+ ## NfeReader ##
2
2
 
3
3
  Gem to open Brazilian NF-e XML and convert to Ruby classes.
4
4
 
@@ -22,11 +22,11 @@ Or install it yourself as:
22
22
 
23
23
  ### Usage
24
24
 
25
- Open the xml file and import to Nfe::Reader:
25
+ Open the xml file and import to NfeReader:
26
26
 
27
27
  ```ruby
28
28
  file = File.open('sample-nfe.xml')
29
- nfe = Nfe::Reader::Nfe.new(file)
29
+ nfe = NfeReader::Nfe.new(file)
30
30
  ```
31
31
 
32
32
  You can access class attributes:
@@ -1,10 +1,10 @@
1
1
  # encoding: UTF-8
2
2
  require "nfe_reader/version"
3
3
  require "nokogiri"
4
- require "helpers/nokogiri_hash"
5
- require "helpers/attribute_helper"
6
- require "helpers/creator_helper"
4
+ require "nfe_reader/helpers/nokogiri_hash"
5
+ require "nfe_reader/helpers/attribute_helper"
6
+ require "nfe_reader/helpers/creator_helper"
7
7
 
8
- %w(nfe_reader/product nfe_reader/collection nfe_reader/taxation nfe_reader).each do |namespace|
8
+ %w(nfe_reader/product nfe_reader/billing nfe_reader/taxation nfe_reader).each do |namespace|
9
9
  Dir[File.dirname(__FILE__) + "/../lib/#{namespace}/*.rb"].each { |file| require file }
10
10
  end
@@ -0,0 +1,38 @@
1
+ module NfeReader
2
+ class Address
3
+ include AttributeHelper
4
+
5
+ attr_reader :address, :number, :complement, :neighborhood,
6
+ :city_code, :city, :zip_code, :state, :country_code, :country,
7
+ :phone, :cnpj, :cpf
8
+
9
+ def initialize(attrs= {})
10
+ # CNPJ
11
+ @cnpj = attrs[:CNPJ]
12
+ # CPF
13
+ @cpf = attrs[:CPF]
14
+ # Logradouo
15
+ @address = attrs[:xLgr]
16
+ # Numero
17
+ @number = attrs[:nro]
18
+ # Complemento
19
+ @complement = attrs[:xCpl]
20
+ # Bairro
21
+ @neighborhood = attrs[:xBairro]
22
+ # Codigo IBGE Cidade
23
+ @city_code = attrs[:cMun]
24
+ # Nome Cidade
25
+ @city = attrs[:xMun]
26
+ # CEP
27
+ @zip_code = attrs[:CEP]
28
+ # Estado
29
+ @state = attrs[:UF]
30
+ # Codigo Pais
31
+ @country_code = attrs[:cPais]
32
+ # Pais
33
+ @country = attrs[:xPais]
34
+ # Telefone
35
+ @phone = attrs[:fone]
36
+ end
37
+ end
38
+ end
@@ -1,16 +1,14 @@
1
1
  # encoding: UTF-8
2
- module Nfe
3
- module Reader
4
- # Pessoas Autorizadas para obter XML
5
- class Authorization
6
- include ::AttributeHelper
2
+ module NfeReader
3
+ # Pessoas Autorizadas para obter XML
4
+ class Authorization
5
+ include AttributeHelper
7
6
 
8
- attr_reader :cnpj, :cpf
7
+ attr_reader :cnpj, :cpf
9
8
 
10
- def initialize(attrs = {})
11
- @cnpj = attrs[:CNPJ]
12
- @cpf = attrs[:CPF]
13
- end
9
+ def initialize(attrs = {})
10
+ @cnpj = attrs[:CNPJ]
11
+ @cpf = attrs[:CPF]
14
12
  end
15
13
  end
16
14
  end
@@ -0,0 +1,21 @@
1
+ # encoding: UTF-8
2
+ module NfeReader
3
+ # Mapeia as Cobrancas
4
+ class Billing
5
+ include AttributeHelper
6
+ include CreatorHelper
7
+
8
+ attr_reader :number, :value, :descount, :value_net, :duplicates
9
+
10
+ def initialize(attrs = {})
11
+ if attrs[:fat]
12
+ @number = attrs[:fat][:nFat]
13
+ @value = attrs[:fat][:vOrig]
14
+ @descount = attrs[:fat][:vDesc]
15
+ @value_net = attrs[:fat][:vLiq]
16
+ end
17
+
18
+ @duplicates = create_resources(Duplicate, attrs[:dup])
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,14 @@
1
+ # encoding: UTF-8
2
+ module NfeReader
3
+ class Duplicate
4
+ include AttributeHelper
5
+
6
+ attr_reader :number, :expiration, :value
7
+
8
+ def initialize(attrs = {})
9
+ @number = attrs[:nDup]
10
+ @expiration = attrs[:dVenc]
11
+ @value = attrs[:vDup]
12
+ end
13
+ end
14
+ end
@@ -1,20 +1,18 @@
1
1
  # encoding: UTF-8
2
- module Nfe
3
- module Reader
4
- class Carrier
5
- include ::AttributeHelper
2
+ module NfeReader
3
+ class Carrier
4
+ include AttributeHelper
6
5
 
7
- attr_reader :cnpj, :cpf, :name, :ie, :address, :city, :state
6
+ attr_reader :cnpj, :cpf, :name, :state_registration, :address, :city, :state
8
7
 
9
- def initialize(attrs = {})
10
- @cnpj = attrs[:CNPJ]
11
- @cpf = attrs[:CPF]
12
- @name = attrs[:xNome]
13
- @ie = attrs[:IE]
14
- @address = attrs[:xEnder]
15
- @city = attrs[:xMun]
16
- @state = attrs[:UF]
17
- end
8
+ def initialize(attrs = {})
9
+ @cnpj = attrs[:CNPJ]
10
+ @cpf = attrs[:CPF]
11
+ @name = attrs[:xNome]
12
+ @state_registration = attrs[:IE]
13
+ @address = attrs[:xEnder]
14
+ @city = attrs[:xMun]
15
+ @state = attrs[:UF]
18
16
  end
19
17
  end
20
18
  end
@@ -1,65 +1,23 @@
1
1
  # encoding: UTF-8
2
- module Nfe
3
- module Reader
4
- # Identificação do Destinatário da Nota Fiscal eletrônica
5
- class Customer
6
- include ::AttributeHelper
2
+ module NfeReader
3
+ # Identificação do Destinatário da Nota Fiscal eletrônica
4
+ class Customer
5
+ include AttributeHelper
7
6
 
8
- attr_reader :cnpj, :cpf, :name, :state_registration, :email,
9
- :suframa, :phone, :address, :number, :neighborhood, :city_code,
10
- :city, :state, :country_code, :country, :complement, :foreign_code,
11
- :zip_code, :city_registration, :state_registration_code
7
+ attr_reader :person, :address
12
8
 
13
- # == Fields Values
14
- #
15
- # indIEDest: 1 - Contribuinte ICMS (informar a IE do destinatário),
16
- # 2 - Contribuinte isento de Inscrição no cadastro de Contribuintes do ICMS,
17
- # 9 - Não Contribuinte, que pode ou não possuir Inscrição Estadual
9
+ # == Fields Values
10
+ #
11
+ # indIEDest: 1 - Contribuinte ICMS (informar a IE do destinatário),
12
+ # 2 - Contribuinte isento de Inscrição no cadastro de Contribuintes do ICMS,
13
+ # 9 - Não Contribuinte, que pode ou não possuir Inscrição Estadual
18
14
 
19
- def initialize(attrs = {})
20
- @cnpj = attrs[:CNPJ]
21
- @cpf = attrs[:CPF]
15
+ def initialize(attrs = {})
16
+ @person = Person.new(attrs)
22
17
 
23
- # Razão Social ou nome do destinatário
24
- @name = attrs[:xNome]
25
- # Inscrição Estadual do Destinatário
26
- @state_registration = attrs[:IE]
27
- # Inscrição na SUFRAMA
28
- @suframa = attrs[:ISUF]
29
- # Inscrição Municipal do Tomador do Serviço
30
- @city_registration = attrs[:IM]
31
- # Indicador da IE do Destinatário
32
- @state_registration_code = attrs[:indIEDest]
33
- # Email
34
- @email = attrs[:email]
35
- # Identificação do destinatário no caso de comprador estrangeiro
36
- @foreign_code = attrs[:idEstrangeiro]
37
-
38
- # Address
39
- if attrs[:enderDest]
40
- # Logradouro
41
- @address = attrs[:enderDest][:xLgr]
42
- # Numero
43
- @number = attrs[:enderDest][:nro]
44
- # Complemento
45
- @complement = attrs[:enderDest][:xCpl]
46
- # Bairro
47
- @neighborhood = attrs[:enderDest][:xBairro]
48
- # Código do município
49
- @city_code = attrs[:enderDest][:cMun]
50
- # Nome do município
51
- @city = attrs[:enderDest][:xMun]
52
- # Sigla da UF
53
- @state = attrs[:enderDest][:UF]
54
- # Código do CEP
55
- @zip_code = attrs[:enderDest][:CEP]
56
- # Codigo Pais
57
- @country_code = attrs[:enderDest][:cPais]
58
- # Nome do Pais
59
- @country = attrs[:enderDest][:xPais]
60
- # Telefone
61
- @phone = attrs[:enderDest][:fone]
62
- end
18
+ # Address
19
+ if attrs[:enderDest]
20
+ @address = Address.new(attrs[:enderDest])
63
21
  end
64
22
  end
65
23
  end
@@ -1,24 +1,22 @@
1
1
  # Local de Entrega
2
- module Nfe
3
- module Reader
4
- # Identificação do Local de Entrega
5
- class Delivery
6
- include ::AttributeHelper
2
+ module NfeReader
3
+ # Identificação do Local de Entrega
4
+ class Delivery
5
+ include AttributeHelper
7
6
 
8
- attr_reader :cnpj, :cpf, :address, :number, :complement,
9
- :neighborhood, :city_code, :city, :state
7
+ attr_reader :cnpj, :cpf, :address, :number, :complement,
8
+ :neighborhood, :city_code, :city, :state
10
9
 
11
- def initialize(attrs = {})
12
- @cnpj = attrs[:CNPJ]
13
- @cpf = attrs[:CPF]
14
- @address = attrs[:xLgr]
15
- @number = attrs[:nro]
16
- @complement = attrs[:xCpl]
17
- @neighborhood = attrs[:xBairro]
18
- @city_code = attrs[:cMun]
19
- @city = attrs[:xMun]
20
- @state = attrs[:UF]
21
- end
10
+ def initialize(attrs = {})
11
+ @cnpj = attrs[:CNPJ]
12
+ @cpf = attrs[:CPF]
13
+ @address = attrs[:xLgr]
14
+ @number = attrs[:nro]
15
+ @complement = attrs[:xCpl]
16
+ @neighborhood = attrs[:xBairro]
17
+ @city_code = attrs[:cMun]
18
+ @city = attrs[:xMun]
19
+ @state = attrs[:UF]
22
20
  end
23
21
  end
24
22
  end
@@ -1,76 +1,74 @@
1
1
  # encoding: UTF-8
2
- module Nfe
3
- module Reader
4
- # Documento Fiscal Referenciado
5
- class Document
6
- include ::AttributeHelper
2
+ module NfeReader
3
+ # Documento Fiscal Referenciado
4
+ class Document
5
+ include AttributeHelper
7
6
 
8
- attr_reader :key, :nfe_state, :nfe_year, :nfe_cnpj, :nfe_model,
9
- :nfe_serie, :nfe_number, :farmer_state, :farmer_year, :farmer_cnpj,
10
- :farmer_cpf, :farmer_ie, :farmer_model, :farmer_serie, :farmer_number,
11
- :cte_key, :ecf_model, :ecf_number, :ecf_operation
7
+ attr_reader :key, :nfe_state, :nfe_year, :nfe_cnpj, :nfe_model,
8
+ :nfe_serie, :nfe_number, :farmer_state, :farmer_year, :farmer_cnpj,
9
+ :farmer_cpf, :farmer_ie, :farmer_model, :farmer_serie, :farmer_number,
10
+ :cte_key, :ecf_model, :ecf_number, :ecf_operation
12
11
 
13
- # == Fields Values
14
- # mod:
15
- # refNF: 01 - modelo 01
16
- # refNFP: 04 - NF de Produtor,
17
- # 01 - NF (v2.0)
18
- # refECF: 2B - Cupom Fiscal emitido por máquina registradora (não ECF),
19
- # 2C - Cupom Fiscal PDV,
20
- # 2D - Cupom Fiscal (emitido por ECF) (v2.0)
12
+ # == Fields Values
13
+ # mod:
14
+ # refNF: 01 - modelo 01
15
+ # refNFP: 04 - NF de Produtor,
16
+ # 01 - NF (v2.0)
17
+ # refECF: 2B - Cupom Fiscal emitido por máquina registradora (não ECF),
18
+ # 2C - Cupom Fiscal PDV,
19
+ # 2D - Cupom Fiscal (emitido por ECF) (v2.0)
21
20
 
22
- def initialize(attrs = {})
23
- # Chave da NF-e
24
- @key = attrs[:refNFe]
21
+ def initialize(attrs = {})
22
+ # Chave da NF-e
23
+ @key = attrs[:refNFe]
25
24
 
26
- # Referencia uma NF-e
27
- if attrs[:refNF]
28
- # Estado
29
- @nfe_state = attrs[:refNF][:cUF]
30
- # Ano e mes
31
- @nfe_year = attrs[:refNF][:AAMM]
32
- # CNPJ do emitente
33
- @nfe_cnpj = attrs[:refNF][:CNPJ]
34
- # Modelo do Documento Fiscal
35
- @nfe_model = attrs[:refNF][:mod]
36
- # Serie Documento Fiscal
37
- @nfe_serie = attrs[:refNF][:serie]
38
- # Numero Documento Fiscal
39
- @nfe_number = attrs[:refNF][:nNF]
40
- end
25
+ # Referencia uma NF-e
26
+ if attrs[:refNF]
27
+ # Estado
28
+ @nfe_state = attrs[:refNF][:cUF]
29
+ # Ano e mes
30
+ @nfe_year = attrs[:refNF][:AAMM]
31
+ # CNPJ do emitente
32
+ @nfe_cnpj = attrs[:refNF][:CNPJ]
33
+ # Modelo do Documento Fiscal
34
+ @nfe_model = attrs[:refNF][:mod]
35
+ # Serie Documento Fiscal
36
+ @nfe_serie = attrs[:refNF][:serie]
37
+ # Numero Documento Fiscal
38
+ @nfe_number = attrs[:refNF][:nNF]
39
+ end
41
40
 
42
- # NF de Produtor Rural
43
- if attrs[:refNFP]
44
- # Estado
45
- @farmer_state = attrs[:refNFP][:cUF]
46
- # Ano e mes
47
- @farmer_year = attrs[:refNFP][:AAMM]
48
- # CNPJ do emitente
49
- @farmer_cnpj = attrs[:refNFP][:CNPJ]
50
- # CPF do emitente
51
- @farmer_cpf = attrs[:refNFP][:CPF]
52
- # IE do emitente
53
- @farmer_ie = attrs[:refNFP][:IE]
54
- # Modelo do Documento Fiscal
55
- @farmer_model = attrs[:refNFP][:mod]
56
- # Serie Documento Fiscal
57
- @farmer_serie = attrs[:refNFP][:serie]
58
- # Numero Documento Fiscal
59
- @farmer_number = attrs[:refNFP][:nNF]
60
- end
41
+ # NF de Produtor Rural
42
+ if attrs[:refNFP]
43
+ # Estado
44
+ @farmer_state = attrs[:refNFP][:cUF]
45
+ # Ano e mes
46
+ @farmer_year = attrs[:refNFP][:AAMM]
47
+ # CNPJ do emitente
48
+ @farmer_cnpj = attrs[:refNFP][:CNPJ]
49
+ # CPF do emitente
50
+ @farmer_cpf = attrs[:refNFP][:CPF]
51
+ # IE do emitente
52
+ @farmer_ie = attrs[:refNFP][:IE]
53
+ # Modelo do Documento Fiscal
54
+ @farmer_model = attrs[:refNFP][:mod]
55
+ # Serie Documento Fiscal
56
+ @farmer_serie = attrs[:refNFP][:serie]
57
+ # Numero Documento Fiscal
58
+ @farmer_number = attrs[:refNFP][:nNF]
59
+ end
61
60
 
62
- # CT-e
63
- @cte_key = attrs[:refCTe]
61
+ # CT-e
62
+ @cte_key = attrs[:refCTe]
64
63
 
65
- # Referencia uma ECF
66
- if attrs[:refECF]
67
- # Modelo do Documento Fiscal
68
- @ecf_model = attrs[:refECF][:mod]
69
- # Número de ordem sequencial do ECF
70
- @ecf_number = attrs[:refECF][:nECF]
71
- # Número do Contador de Ordem de Operação
72
- @ecf_operation = attrs[:refECF][:nCOO]
73
- end
64
+ # Referencia uma ECF
65
+ if attrs[:refECF]
66
+ # Modelo do Documento Fiscal
67
+ @ecf_model = attrs[:refECF][:mod]
68
+ # Número de ordem sequencial do ECF
69
+ @ecf_number = attrs[:refECF][:nECF]
70
+ # Número do Contador de Ordem de Operação
71
+ @ecf_operation = attrs[:refECF][:nCOO]
74
72
  end
75
73
  end
76
74
  end