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.
- 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
|