nfe_reader 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
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