nfe_reader 1.0.4 → 1.0.5

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 (77) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -1
  3. data/lib/helpers/attribute_helper.rb +18 -0
  4. data/lib/helpers/creator_helper.rb +32 -0
  5. data/lib/nfe_reader/authorization.rb +10 -6
  6. data/lib/nfe_reader/carrier.rb +14 -10
  7. data/lib/nfe_reader/collection/duplicate.rb +10 -6
  8. data/lib/nfe_reader/collection.rb +28 -24
  9. data/lib/nfe_reader/customer.rb +56 -52
  10. data/lib/nfe_reader/delivery.rb +18 -14
  11. data/lib/nfe_reader/document.rb +65 -61
  12. data/lib/nfe_reader/export.rb +9 -5
  13. data/lib/nfe_reader/fiscal.rb +31 -27
  14. data/lib/nfe_reader/header.rb +120 -117
  15. data/lib/nfe_reader/information.rb +17 -26
  16. data/lib/nfe_reader/nfe.rb +130 -0
  17. data/lib/nfe_reader/product/armament.rb +20 -16
  18. data/lib/nfe_reader/product/cane.rb +22 -32
  19. data/lib/nfe_reader/product/exportation.rb +17 -13
  20. data/lib/nfe_reader/product/fuel.rb +15 -11
  21. data/lib/nfe_reader/product/importation.rb +44 -40
  22. data/lib/nfe_reader/product/medicament.rb +17 -13
  23. data/lib/nfe_reader/product/vehicle.rb +115 -111
  24. data/lib/nfe_reader/product.rb +67 -76
  25. data/lib/nfe_reader/provider.rb +39 -35
  26. data/lib/nfe_reader/purchase.rb +10 -6
  27. data/lib/nfe_reader/removal.rb +18 -14
  28. data/lib/nfe_reader/taxation/cofins.rb +41 -37
  29. data/lib/nfe_reader/taxation/cofins_st.rb +17 -13
  30. data/lib/nfe_reader/taxation/icms.rb +80 -76
  31. data/lib/nfe_reader/taxation/importation_tax.rb +16 -12
  32. data/lib/nfe_reader/taxation/ipi.rb +37 -33
  33. data/lib/nfe_reader/taxation/issqn.rb +19 -15
  34. data/lib/nfe_reader/taxation/pis.rb +41 -37
  35. data/lib/nfe_reader/taxation/pis_st.rb +18 -14
  36. data/lib/nfe_reader/total.rb +71 -67
  37. data/lib/nfe_reader/transport.rb +87 -83
  38. data/lib/nfe_reader/version.rb +1 -1
  39. data/lib/nfe_reader.rb +3 -130
  40. data/test/helpers/attributte_helper_test.rb +19 -0
  41. data/test/helpers/creator_helper_test.rb +28 -0
  42. data/test/{nokogiri_test.rb → helpers/nokogiri_test.rb} +1 -1
  43. data/test/nfe_reader/authorization_test.rb +2 -2
  44. data/test/nfe_reader/cane_test.rb +2 -2
  45. data/test/nfe_reader/carrier_test.rb +2 -2
  46. data/test/nfe_reader/collection/duplicate_test.rb +2 -2
  47. data/test/nfe_reader/collection_test.rb +3 -3
  48. data/test/nfe_reader/customer_test.rb +3 -3
  49. data/test/nfe_reader/delivery_test.rb +2 -2
  50. data/test/nfe_reader/document_test.rb +2 -2
  51. data/test/nfe_reader/export_test.rb +2 -2
  52. data/test/nfe_reader/fiscal_test.rb +2 -2
  53. data/test/nfe_reader/header_test.rb +2 -2
  54. data/test/nfe_reader/information_test.rb +2 -2
  55. data/test/{nfe_reader_test.rb → nfe_reader/nfe_test.rb} +15 -15
  56. data/test/nfe_reader/product/armament_test.rb +2 -2
  57. data/test/nfe_reader/product/exportation_test.rb +2 -2
  58. data/test/nfe_reader/product/fuel_test.rb +2 -2
  59. data/test/nfe_reader/product/importation_test.rb +27 -2
  60. data/test/nfe_reader/product/medicament_test.rb +2 -2
  61. data/test/nfe_reader/product/vehicle_test.rb +2 -2
  62. data/test/nfe_reader/product_test.rb +6 -6
  63. data/test/nfe_reader/provider_test.rb +3 -3
  64. data/test/nfe_reader/purchase_test.rb +2 -2
  65. data/test/nfe_reader/removal_test.rb +2 -2
  66. data/test/nfe_reader/taxation/cofins_st_test.rb +2 -2
  67. data/test/nfe_reader/taxation/cofins_test.rb +2 -2
  68. data/test/nfe_reader/taxation/icms_test.rb +2 -2
  69. data/test/nfe_reader/taxation/importation_tax_test.rb +2 -2
  70. data/test/nfe_reader/taxation/ipi_test.rb +2 -2
  71. data/test/nfe_reader/taxation/issqn_test.rb +2 -2
  72. data/test/nfe_reader/taxation/pis_st_test.rb +2 -2
  73. data/test/nfe_reader/taxation/pis_test.rb +2 -2
  74. data/test/nfe_reader/total_test.rb +2 -2
  75. data/test/nfe_reader/transport_test.rb +3 -3
  76. metadata +14 -7
  77. /data/lib/{nokogiri_hash.rb → helpers/nokogiri_hash.rb} +0 -0
@@ -1,20 +1,24 @@
1
1
  # Local de Retirada
2
2
  module Nfe
3
- # Identificação do Local de Retirada
4
- class Removal
5
- attr_reader :cnpj, :cpf, :address, :number, :complement,
6
- :neighborhood, :city_code, :city, :state
3
+ module Reader
4
+ # Identificação do Local de Retirada
5
+ class Removal
6
+ include ::AttributeHelper
7
7
 
8
- def initialize(attrs = {})
9
- @cnpj = attrs[:CNPJ]
10
- @cpf = attrs[:CPF]
11
- @address = attrs[:xLgr]
12
- @number = attrs[:nro]
13
- @complement = attrs[:xCpl]
14
- @neighborhood = attrs[:xBairro]
15
- @city_code = attrs[:cMun]
16
- @city = attrs[:xMun]
17
- @state = attrs[:UF]
8
+ attr_reader :cnpj, :cpf, :address, :number, :complement,
9
+ :neighborhood, :city_code, :city, :state
10
+
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
18
22
  end
19
23
  end
20
24
  end
@@ -1,43 +1,47 @@
1
1
  # encoding: UTF-8
2
2
  module Nfe
3
- class Cofins
4
- attr_reader :cst, :base, :percentage, :value, :amount,
5
- :aliquot
3
+ module Reader
4
+ class Cofins
5
+ include ::AttributeHelper
6
6
 
7
- # Fieds Values
8
- #
9
- # cst:
10
- # COFINSAliq:
11
- # 01 - Operação Tributável
12
- # (base de cálculo = valor da operação alíquota normal (cumulativo/não cumulativo));
13
- # 02 - Operação Tributável
14
- # (base de cálculo = valor da operação (alíquota diferenciada));
15
- # COFINSQtde:
16
- # 03 - Operação Tributável
17
- # (base de cálculo = quantidade vendida x alíquota por unidadede produto);
18
- # COFINSNT:
19
- # 04 - Operação Tributável
20
- # (tributação monofásica(alíquota zero));
21
- # 06 - Operação Tributável(alíquota zero);
22
- # 07 - Operação Isenta da Contribuição;
23
- # 08 - Operação Sem Incidência da Contribuição;
24
- # 09 - Operação com Suspensão da Contribuição;
25
- # COFINSOutr:
26
- # 99 - Outras Operações;
27
- #
28
- def initialize(attrs = {})
29
- # Cst COFINS
30
- @cst = attrs[:CST]
31
- # Base COFINS
32
- @base = attrs[:vBC]
33
- # % COFINS
34
- @percentage = attrs[:pCOFINS]
35
- # Valor COFINS
36
- @value = attrs[:vCOFINS]
37
- # Quantidade Vendida
38
- @amount = attrs[:qBCProd]
39
- # Alíquota do COFINS
40
- @aliquot = attrs[:vAliqProd]
7
+ attr_reader :cst, :base, :percentage, :value, :amount,
8
+ :aliquot
9
+
10
+ # Fieds Values
11
+ #
12
+ # cst:
13
+ # COFINSAliq:
14
+ # 01 - Operação Tributável
15
+ # (base de cálculo = valor da operação alíquota normal (cumulativo/não cumulativo));
16
+ # 02 - Operação Tributável
17
+ # (base de cálculo = valor da operação (alíquota diferenciada));
18
+ # COFINSQtde:
19
+ # 03 - Operação Tributável
20
+ # (base de cálculo = quantidade vendida x alíquota por unidadede produto);
21
+ # COFINSNT:
22
+ # 04 - Operação Tributável
23
+ # (tributação monofásica(alíquota zero));
24
+ # 06 - Operação Tributável(alíquota zero);
25
+ # 07 - Operação Isenta da Contribuição;
26
+ # 08 - Operação Sem Incidência da Contribuição;
27
+ # 09 - Operação com Suspensão da Contribuição;
28
+ # COFINSOutr:
29
+ # 99 - Outras Operações;
30
+ #
31
+ def initialize(attrs = {})
32
+ # Cst COFINS
33
+ @cst = attrs[:CST]
34
+ # Base COFINS
35
+ @base = attrs[:vBC]
36
+ # % COFINS
37
+ @percentage = attrs[:pCOFINS]
38
+ # Valor COFINS
39
+ @value = attrs[:vCOFINS]
40
+ # Quantidade Vendida
41
+ @amount = attrs[:qBCProd]
42
+ # Alíquota do COFINS
43
+ @aliquot = attrs[:vAliqProd]
44
+ end
41
45
  end
42
46
  end
43
47
  end
@@ -1,19 +1,23 @@
1
1
  # encoding: UTF-8
2
2
  module Nfe
3
- class CofinsSt
4
- attr_reader :base, :percentage, :amount, :aliquot, :value
3
+ module Reader
4
+ class CofinsSt
5
+ include ::AttributeHelper
5
6
 
6
- def initialize(attrs = {})
7
- # Valor Base
8
- @base = attrs[:vBC]
9
- # % COFINS ST
10
- @percentage = attrs[:pCOFINS]
11
- # Quantidade
12
- @amount = attrs[:qBCProd]
13
- # Aliquota COFINS ST
14
- @aliquot = attrs[:vAliqProd]
15
- # Valor COFINS ST
16
- @value = attrs[:vCOFINS]
7
+ attr_reader :base, :percentage, :amount, :aliquot, :value
8
+
9
+ def initialize(attrs = {})
10
+ # Valor Base
11
+ @base = attrs[:vBC]
12
+ # % COFINS ST
13
+ @percentage = attrs[:pCOFINS]
14
+ # Quantidade
15
+ @amount = attrs[:qBCProd]
16
+ # Aliquota COFINS ST
17
+ @aliquot = attrs[:vAliqProd]
18
+ # Valor COFINS ST
19
+ @value = attrs[:vCOFINS]
20
+ end
17
21
  end
18
22
  end
19
23
  end
@@ -1,86 +1,90 @@
1
1
  # encoding: UTF-8
2
2
  module Nfe
3
- class Icms
4
- attr_reader :origin, :cst, :icms_percentage, :icms, :icms_base_kind,
5
- :icms_base, :icms_base_reduction, :icms_st_base_kind, :icms_st_base_reduction,
6
- :mva, :icms_st_base, :icms_st_percentage, :icms_st, :icms_st_base_retained_sender,
7
- :icms_st_retained_sender, :icms_st_base_retained, :icms_st_retained, :state,
8
- :retained_reason, :credit_percentage, :icms_credit, :sn_operation_code
9
-
10
- # == Field Values
11
- #
12
- # ori: 0 - Nacional
13
- # 1 - Estrangeira - Importação direta
14
- # 2 - Estrangeira – Adquirida no mercado interno.
15
- #
16
- # modBC: 0 - Margem Valor Agregado (%);
17
- # 1 - Pauta (Valor);
18
- # 2 - Preço Tabelado Máx. (valor);
19
- # 3 - valor da operação.
20
- #
21
- # modBCST: 0 – Preço tabelado ou máximosugerido;
22
- # 1 - Lista Negativa (valor);
23
- # 2 - Lista Positiva (valor);
24
- # 3 - Lista Neutra (valor);
25
- # 4 - Margem Valor Agregado (%);
26
- # 5 - Pauta (valor);
3
+ module Reader
4
+ class Icms
5
+ include ::AttributeHelper
27
6
 
28
- def initialize(attrs = {})
29
- # Origem da mercadoria
30
- @origin = attrs[:orig]
31
- @origin ||= attrs[:Orig]
7
+ attr_reader :origin, :cst, :icms_percentage, :icms, :icms_base_kind,
8
+ :icms_base, :icms_base_reduction, :icms_st_base_kind, :icms_st_base_reduction,
9
+ :mva, :icms_st_base, :icms_st_percentage, :icms_st, :icms_st_base_retained_sender,
10
+ :icms_st_retained_sender, :icms_st_base_retained, :icms_st_retained, :state,
11
+ :retained_reason, :credit_percentage, :icms_credit, :sn_operation_code
32
12
 
33
- # Tributação do ICMS
34
- @cst = attrs[:CST]
35
-
36
- # == ICMS
13
+ # == Field Values
37
14
  #
38
- # % ICMS
39
- @icms_percentage = attrs[:pICMS]
40
- # Valor ICMS
41
- @icms = attrs[:vICMS]
42
- # Modalidade de determinação da BC do ICMS
43
- @icms_base_kind = attrs[:modBC]
44
- # Base ICMS
45
- @icms_base = attrs[:vBC]
46
- # % Redução Base ICMS
47
- @icms_base_reduction = attrs[:pRedBC]
48
-
49
- # == ICMS ST
15
+ # ori: 0 - Nacional
16
+ # 1 - Estrangeira - Importação direta
17
+ # 2 - Estrangeira – Adquirida no mercado interno.
50
18
  #
51
- # Modalidade de determinação da BC do ICMS ST
52
- @icms_st_base_kind = attrs[:modBCST]
53
- # % redução Base ICMS ST
54
- @icms_st_base_reduction = attrs[:pRedBCST]
55
- # MVA ST
56
- @mva = attrs[:pMVAST]
57
- # Base ICMS ST
58
- @icms_st_base = attrs[:vBCST]
59
- # % ICMS ST
60
- @icms_st_percentage = attrs[:pICMSST]
61
- # Valor ICMS ST
62
- @icms_st = attrs[:vICMSST]
63
- # Valor do BC do ICMS ST Retido UF Remetente
64
- @icms_st_base_retained_sender = attrs[:vBCSTRet]
65
- # Valor ICMS ST Retido UF Remetente
66
- @icms_st_retained_sender = attrs[:vICMSSTRet]
67
- # Valor do BC do ICMS ST Retido UF Destiantaria
68
- @icms_st_base_retained = attrs[:vBCSTDest]
69
- # Valor ICMS ST Retido UF Destinataria
70
- @icms_st_retained = attrs[:vICMSSTDes]
71
- # UF para qual é devido o ICMS ST
72
- @state = attrs[:UFST]
73
-
74
- # == Simples Nacional
19
+ # modBC: 0 - Margem Valor Agregado (%);
20
+ # 1 - Pauta (Valor);
21
+ # 2 - Preço Tabelado Máx. (valor);
22
+ # 3 - valor da operação.
75
23
  #
76
- # Motivo da desoneração do ICMS
77
- @retained_reason = attrs[:motDesICMS]
78
- # Alíquota aplicável de cálculo do crédito
79
- @credit_percentage = attrs[:pCredSN]
80
- # Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123
81
- @icms_credit = attrs[:vCredICMSSN]
82
- # Código de Situação da Operação
83
- @sn_operation_code = attrs[:CSOSN]
24
+ # modBCST: 0 Preço tabelado ou máximosugerido;
25
+ # 1 - Lista Negativa (valor);
26
+ # 2 - Lista Positiva (valor);
27
+ # 3 - Lista Neutra (valor);
28
+ # 4 - Margem Valor Agregado (%);
29
+ # 5 - Pauta (valor);
30
+
31
+ def initialize(attrs = {})
32
+ # Origem da mercadoria
33
+ @origin = attrs[:orig]
34
+ @origin ||= attrs[:Orig]
35
+
36
+ # Tributação do ICMS
37
+ @cst = attrs[:CST]
38
+
39
+ # == ICMS
40
+ #
41
+ # % ICMS
42
+ @icms_percentage = attrs[:pICMS]
43
+ # Valor ICMS
44
+ @icms = attrs[:vICMS]
45
+ # Modalidade de determinação da BC do ICMS
46
+ @icms_base_kind = attrs[:modBC]
47
+ # Base ICMS
48
+ @icms_base = attrs[:vBC]
49
+ # % Redução Base ICMS
50
+ @icms_base_reduction = attrs[:pRedBC]
51
+
52
+ # == ICMS ST
53
+ #
54
+ # Modalidade de determinação da BC do ICMS ST
55
+ @icms_st_base_kind = attrs[:modBCST]
56
+ # % redução Base ICMS ST
57
+ @icms_st_base_reduction = attrs[:pRedBCST]
58
+ # MVA ST
59
+ @mva = attrs[:pMVAST]
60
+ # Base ICMS ST
61
+ @icms_st_base = attrs[:vBCST]
62
+ # % ICMS ST
63
+ @icms_st_percentage = attrs[:pICMSST]
64
+ # Valor ICMS ST
65
+ @icms_st = attrs[:vICMSST]
66
+ # Valor do BC do ICMS ST Retido UF Remetente
67
+ @icms_st_base_retained_sender = attrs[:vBCSTRet]
68
+ # Valor ICMS ST Retido UF Remetente
69
+ @icms_st_retained_sender = attrs[:vICMSSTRet]
70
+ # Valor do BC do ICMS ST Retido UF Destiantaria
71
+ @icms_st_base_retained = attrs[:vBCSTDest]
72
+ # Valor ICMS ST Retido UF Destinataria
73
+ @icms_st_retained = attrs[:vICMSSTDes]
74
+ # UF para qual é devido o ICMS ST
75
+ @state = attrs[:UFST]
76
+
77
+ # == Simples Nacional
78
+ #
79
+ # Motivo da desoneração do ICMS
80
+ @retained_reason = attrs[:motDesICMS]
81
+ # Alíquota aplicável de cálculo do crédito
82
+ @credit_percentage = attrs[:pCredSN]
83
+ # Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123
84
+ @icms_credit = attrs[:vCredICMSSN]
85
+ # Código de Situação da Operação
86
+ @sn_operation_code = attrs[:CSOSN]
87
+ end
84
88
  end
85
89
  end
86
90
  end
@@ -1,17 +1,21 @@
1
1
  # encoding: UTF-8
2
2
  module Nfe
3
- class ImportationTax
4
- attr_reader :base, :expenditure, :taxes, :iof
5
-
6
- def initialize(attrs = {})
7
- # Base de Caluclo
8
- @base = attrs[:vBC]
9
- # Despesas Aduaneiras
10
- @expenditure = attrs[:vDespAdu]
11
- # Imposto de Importação
12
- @taxes = attrs[:vII]
13
- # IOF
14
- @iof = attrs[:vIOF]
3
+ module Reader
4
+ class ImportationTax
5
+ include ::AttributeHelper
6
+
7
+ attr_reader :base, :expenditure, :taxes, :iof
8
+
9
+ def initialize(attrs = {})
10
+ # Base de Caluclo
11
+ @base = attrs[:vBC]
12
+ # Despesas Aduaneiras
13
+ @expenditure = attrs[:vDespAdu]
14
+ # Imposto de Importação
15
+ @taxes = attrs[:vII]
16
+ # IOF
17
+ @iof = attrs[:vIOF]
18
+ end
15
19
  end
16
20
  end
17
21
  end
@@ -1,40 +1,44 @@
1
1
  # encoding: UTF-8
2
2
  module Nfe
3
- class Ipi
4
- attr_reader :frame_class, :frame_code, :cnpj, :seal, :seal_amount,
5
- :cst, :ipi_base, :amount, :value_unit, :percentage, :value, :cst_group
3
+ module Reader
4
+ class Ipi
5
+ include ::AttributeHelper
6
6
 
7
- def initialize(attrs = {})
8
- # Classe de enquadramento do IPI para Cigarros e Bebidas
9
- @frame_class = attrs[:clEnq]
10
- # Codigo enquadramento
11
- @frame_code = attrs[:cEnq]
12
- # CNPJ do produtor
13
- @cnpj = attrs[:CNPJProd]
14
- # Código do selo de controle
15
- @seal = attrs[:cSelo]
16
- # Quantidade do selo de controle
17
- @seal_amount = attrs[:qSelo]
18
-
19
- # == Tributação
20
- if attrs[:IPITrib]
21
- # Código da situação tributária do IPI
22
- @cst = attrs[:IPITrib][:CST]
23
- # Valor da BC do IPI
24
- @ipi_base = attrs[:IPITrib][:vBC]
25
- # Quantidade total na unidade padrão para tributação
26
- @amount = attrs[:IPITrib][:qUnid]
27
- # Valor por Unidade Tributável
28
- @value_unit = attrs[:IPITrib][:vUnid]
29
- # % do IPI
30
- @percentage = attrs[:IPITrib][:pIPI]
31
- # Valor do IPI
32
- @value = attrs[:IPITrib][:vIPI]
33
- end
7
+ attr_reader :frame_class, :frame_code, :cnpj, :seal, :seal_amount,
8
+ :cst, :ipi_base, :amount, :value_unit, :percentage, :value, :cst_group
9
+
10
+ def initialize(attrs = {})
11
+ # Classe de enquadramento do IPI para Cigarros e Bebidas
12
+ @frame_class = attrs[:clEnq]
13
+ # Codigo enquadramento
14
+ @frame_code = attrs[:cEnq]
15
+ # CNPJ do produtor
16
+ @cnpj = attrs[:CNPJProd]
17
+ # Código do selo de controle
18
+ @seal = attrs[:cSelo]
19
+ # Quantidade do selo de controle
20
+ @seal_amount = attrs[:qSelo]
21
+
22
+ # == Tributação
23
+ if attrs[:IPITrib]
24
+ # Código da situação tributária do IPI
25
+ @cst = attrs[:IPITrib][:CST]
26
+ # Valor da BC do IPI
27
+ @ipi_base = attrs[:IPITrib][:vBC]
28
+ # Quantidade total na unidade padrão para tributação
29
+ @amount = attrs[:IPITrib][:qUnid]
30
+ # Valor por Unidade Tributável
31
+ @value_unit = attrs[:IPITrib][:vUnid]
32
+ # % do IPI
33
+ @percentage = attrs[:IPITrib][:pIPI]
34
+ # Valor do IPI
35
+ @value = attrs[:IPITrib][:vIPI]
36
+ end
34
37
 
35
- if attrs[:IPINT]
36
- # Grupo do CST 01, 02, 03, 04, 51, 52, 53, 54 e 55
37
- @cst_group = attrs[:IPINT][:CST]
38
+ if attrs[:IPINT]
39
+ # Grupo do CST 01, 02, 03, 04, 51, 52, 53, 54 e 55
40
+ @cst_group = attrs[:IPINT][:CST]
41
+ end
38
42
  end
39
43
  end
40
44
  end
@@ -1,22 +1,26 @@
1
1
  # encoding: UTF-8
2
2
  module Nfe
3
- class Issqn
4
- attr_accessor :base, :aliquot, :value, :city, :services, :cst
3
+ module Reader
4
+ class Issqn
5
+ include ::AttributeHelper
5
6
 
6
- # Fields Values
7
- #
8
- # cStiTrib : N - NORMAL;
9
- # R - RETIDA;
10
- # S - SUBSTITUTA;
11
- # I - ISENTA
7
+ attr_accessor :base, :aliquot, :value, :city, :services, :cst
12
8
 
13
- def initialize(attrs = {})
14
- @base = attrs[:vBC]
15
- @aliquot = attrs[:vAliq]
16
- @value = attrs[:vISSQN]
17
- @city = attrs[:cMunFG]
18
- @services = attrs[:cListServ]
19
- @cst = attrs[:cSitTrib]
9
+ # Fields Values
10
+ #
11
+ # cStiTrib : N - NORMAL;
12
+ # R - RETIDA;
13
+ # S - SUBSTITUTA;
14
+ # I - ISENTA
15
+
16
+ def initialize(attrs = {})
17
+ @base = attrs[:vBC]
18
+ @aliquot = attrs[:vAliq]
19
+ @value = attrs[:vISSQN]
20
+ @city = attrs[:cMunFG]
21
+ @services = attrs[:cListServ]
22
+ @cst = attrs[:cSitTrib]
23
+ end
20
24
  end
21
25
  end
22
26
  end
@@ -1,42 +1,46 @@
1
1
  # encoding: UTF-8
2
2
  module Nfe
3
- class Pis
4
- attr_reader :cst, :base, :percentage, :value, :amount, :aliquot
5
-
6
- # Fieds Values
7
- #
8
- # cst:
9
- # PISAliq:
10
- # 01 - Operação Tributável
11
- # (base de cálculo = valor da operação alíquota normal (cumulativo/não cumulativo));
12
- # 02 - Operação Tributável
13
- # (base de cálculo = valor da operação (alíquota diferenciada));
14
- # PISQtde:
15
- # 03 - Operação Tributável
16
- # (base de cálculo = quantidade vendida x alíquota por unidadede produto);
17
- # PISNT:
18
- # 04 - Operação Tributável
19
- # (tributação monofásica(alíquota zero));
20
- # 06 - Operação Tributável(alíquota zero);
21
- # 07 - Operação Isenta da Contribuição;
22
- # 08 - Operação Sem Incidência da Contribuição;
23
- # 09 - Operação com Suspensão da Contribuição;
24
- # PISOutr:
25
- # 99 - Outras Operações;
26
- #
27
- def initialize(attrs = {})
28
- # Cst PIS
29
- @cst = attrs[:CST]
30
- # Base PIS
31
- @base = attrs[:vBC]
32
- # % PIS
33
- @percentage = attrs[:pPIS]
34
- # Valor PIS
35
- @value = attrs[:vPIS]
36
- # Quantidade Vendida
37
- @amount = attrs[:qBCProd]
38
- # Alíquota do PIS
39
- @aliquot = attrs[:vAliqProd]
3
+ module Reader
4
+ class Pis
5
+ include ::AttributeHelper
6
+
7
+ attr_reader :cst, :base, :percentage, :value, :amount, :aliquot
8
+
9
+ # Fieds Values
10
+ #
11
+ # cst:
12
+ # PISAliq:
13
+ # 01 - Operação Tributável
14
+ # (base de cálculo = valor da operação alíquota normal (cumulativo/não cumulativo));
15
+ # 02 - Operação Tributável
16
+ # (base de cálculo = valor da operação (alíquota diferenciada));
17
+ # PISQtde:
18
+ # 03 - Operação Tributável
19
+ # (base de cálculo = quantidade vendida x alíquota por unidadede produto);
20
+ # PISNT:
21
+ # 04 - Operação Tributável
22
+ # (tributação monofásica(alíquota zero));
23
+ # 06 - Operação Tributável(alíquota zero);
24
+ # 07 - Operação Isenta da Contribuição;
25
+ # 08 - Operação Sem Incidência da Contribuição;
26
+ # 09 - Operação com Suspensão da Contribuição;
27
+ # PISOutr:
28
+ # 99 - Outras Operações;
29
+ #
30
+ def initialize(attrs = {})
31
+ # Cst PIS
32
+ @cst = attrs[:CST]
33
+ # Base PIS
34
+ @base = attrs[:vBC]
35
+ # % PIS
36
+ @percentage = attrs[:pPIS]
37
+ # Valor PIS
38
+ @value = attrs[:vPIS]
39
+ # Quantidade Vendida
40
+ @amount = attrs[:qBCProd]
41
+ # Alíquota do PIS
42
+ @aliquot = attrs[:vAliqProd]
43
+ end
40
44
  end
41
45
  end
42
46
  end
@@ -1,19 +1,23 @@
1
1
  # encoding: UTF-8
2
2
  module Nfe
3
- class PisSt
4
- attr_reader :base, :percentage, :amount, :aliquot, :value
5
-
6
- def initialize(attrs = {})
7
- # Valor Base
8
- @base = attrs[:vBC]
9
- # % PISST
10
- @percentage = attrs[:pPIS]
11
- # Quantidade
12
- @amount = attrs[:qBCProd]
13
- # Aliquota PIS ST
14
- @aliquot = attrs[:vAliqProd]
15
- # Valor PIS ST
16
- @value = attrs[:vPIS]
3
+ module Reader
4
+ class PisSt
5
+ include ::AttributeHelper
6
+
7
+ attr_reader :base, :percentage, :amount, :aliquot, :value
8
+
9
+ def initialize(attrs = {})
10
+ # Valor Base
11
+ @base = attrs[:vBC]
12
+ # % PISST
13
+ @percentage = attrs[:pPIS]
14
+ # Quantidade
15
+ @amount = attrs[:qBCProd]
16
+ # Aliquota PIS ST
17
+ @aliquot = attrs[:vAliqProd]
18
+ # Valor PIS ST
19
+ @value = attrs[:vPIS]
20
+ end
17
21
  end
18
22
  end
19
23
  end