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.
- checksums.yaml +4 -4
- data/README.md +10 -1
- data/lib/helpers/attribute_helper.rb +18 -0
- data/lib/helpers/creator_helper.rb +32 -0
- data/lib/nfe_reader/authorization.rb +10 -6
- data/lib/nfe_reader/carrier.rb +14 -10
- data/lib/nfe_reader/collection/duplicate.rb +10 -6
- data/lib/nfe_reader/collection.rb +28 -24
- data/lib/nfe_reader/customer.rb +56 -52
- data/lib/nfe_reader/delivery.rb +18 -14
- data/lib/nfe_reader/document.rb +65 -61
- data/lib/nfe_reader/export.rb +9 -5
- data/lib/nfe_reader/fiscal.rb +31 -27
- data/lib/nfe_reader/header.rb +120 -117
- data/lib/nfe_reader/information.rb +17 -26
- data/lib/nfe_reader/nfe.rb +130 -0
- data/lib/nfe_reader/product/armament.rb +20 -16
- data/lib/nfe_reader/product/cane.rb +22 -32
- data/lib/nfe_reader/product/exportation.rb +17 -13
- data/lib/nfe_reader/product/fuel.rb +15 -11
- data/lib/nfe_reader/product/importation.rb +44 -40
- data/lib/nfe_reader/product/medicament.rb +17 -13
- data/lib/nfe_reader/product/vehicle.rb +115 -111
- data/lib/nfe_reader/product.rb +67 -76
- data/lib/nfe_reader/provider.rb +39 -35
- data/lib/nfe_reader/purchase.rb +10 -6
- data/lib/nfe_reader/removal.rb +18 -14
- data/lib/nfe_reader/taxation/cofins.rb +41 -37
- data/lib/nfe_reader/taxation/cofins_st.rb +17 -13
- data/lib/nfe_reader/taxation/icms.rb +80 -76
- data/lib/nfe_reader/taxation/importation_tax.rb +16 -12
- data/lib/nfe_reader/taxation/ipi.rb +37 -33
- data/lib/nfe_reader/taxation/issqn.rb +19 -15
- data/lib/nfe_reader/taxation/pis.rb +41 -37
- data/lib/nfe_reader/taxation/pis_st.rb +18 -14
- data/lib/nfe_reader/total.rb +71 -67
- data/lib/nfe_reader/transport.rb +87 -83
- data/lib/nfe_reader/version.rb +1 -1
- data/lib/nfe_reader.rb +3 -130
- data/test/helpers/attributte_helper_test.rb +19 -0
- data/test/helpers/creator_helper_test.rb +28 -0
- data/test/{nokogiri_test.rb → helpers/nokogiri_test.rb} +1 -1
- data/test/nfe_reader/authorization_test.rb +2 -2
- data/test/nfe_reader/cane_test.rb +2 -2
- data/test/nfe_reader/carrier_test.rb +2 -2
- data/test/nfe_reader/collection/duplicate_test.rb +2 -2
- data/test/nfe_reader/collection_test.rb +3 -3
- data/test/nfe_reader/customer_test.rb +3 -3
- data/test/nfe_reader/delivery_test.rb +2 -2
- data/test/nfe_reader/document_test.rb +2 -2
- data/test/nfe_reader/export_test.rb +2 -2
- data/test/nfe_reader/fiscal_test.rb +2 -2
- data/test/nfe_reader/header_test.rb +2 -2
- data/test/nfe_reader/information_test.rb +2 -2
- data/test/{nfe_reader_test.rb → nfe_reader/nfe_test.rb} +15 -15
- data/test/nfe_reader/product/armament_test.rb +2 -2
- data/test/nfe_reader/product/exportation_test.rb +2 -2
- data/test/nfe_reader/product/fuel_test.rb +2 -2
- data/test/nfe_reader/product/importation_test.rb +27 -2
- data/test/nfe_reader/product/medicament_test.rb +2 -2
- data/test/nfe_reader/product/vehicle_test.rb +2 -2
- data/test/nfe_reader/product_test.rb +6 -6
- data/test/nfe_reader/provider_test.rb +3 -3
- data/test/nfe_reader/purchase_test.rb +2 -2
- data/test/nfe_reader/removal_test.rb +2 -2
- data/test/nfe_reader/taxation/cofins_st_test.rb +2 -2
- data/test/nfe_reader/taxation/cofins_test.rb +2 -2
- data/test/nfe_reader/taxation/icms_test.rb +2 -2
- data/test/nfe_reader/taxation/importation_tax_test.rb +2 -2
- data/test/nfe_reader/taxation/ipi_test.rb +2 -2
- data/test/nfe_reader/taxation/issqn_test.rb +2 -2
- data/test/nfe_reader/taxation/pis_st_test.rb +2 -2
- data/test/nfe_reader/taxation/pis_test.rb +2 -2
- data/test/nfe_reader/total_test.rb +2 -2
- data/test/nfe_reader/transport_test.rb +3 -3
- metadata +14 -7
- /data/lib/{nokogiri_hash.rb → helpers/nokogiri_hash.rb} +0 -0
data/lib/nfe_reader/removal.rb
CHANGED
@@ -1,20 +1,24 @@
|
|
1
1
|
# Local de Retirada
|
2
2
|
module Nfe
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
module Reader
|
4
|
+
# Identificação do Local de Retirada
|
5
|
+
class Removal
|
6
|
+
include ::AttributeHelper
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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
|
-
|
4
|
-
|
5
|
-
|
3
|
+
module Reader
|
4
|
+
class Cofins
|
5
|
+
include ::AttributeHelper
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
#
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
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
|
-
|
4
|
-
|
3
|
+
module Reader
|
4
|
+
class CofinsSt
|
5
|
+
include ::AttributeHelper
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
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
|
-
|
4
|
-
|
5
|
-
|
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
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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
|
-
#
|
34
|
-
@cst = attrs[:CST]
|
35
|
-
|
36
|
-
# == ICMS
|
13
|
+
# == Field Values
|
37
14
|
#
|
38
|
-
#
|
39
|
-
|
40
|
-
#
|
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
|
-
#
|
52
|
-
|
53
|
-
#
|
54
|
-
|
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
|
-
#
|
77
|
-
|
78
|
-
#
|
79
|
-
|
80
|
-
#
|
81
|
-
|
82
|
-
|
83
|
-
|
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
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
4
|
-
|
5
|
-
|
3
|
+
module Reader
|
4
|
+
class Ipi
|
5
|
+
include ::AttributeHelper
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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
|
-
|
36
|
-
|
37
|
-
|
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
|
-
|
4
|
-
|
3
|
+
module Reader
|
4
|
+
class Issqn
|
5
|
+
include ::AttributeHelper
|
5
6
|
|
6
|
-
|
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
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
#
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
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
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
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
|