br_nfe 2.3.2 → 3.0.0.beta.1
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/Gemfile.lock +2 -2
- data/README.markdown +1 -1
- data/br_nfe.gemspec +0 -0
- data/lib/br_nfe/constants.rb +2 -2
- data/lib/br_nfe/product/nf_xml_value.rb +6 -11
- data/lib/br_nfe/product/nfe/cobranca/pagamento.rb +39 -12
- data/lib/br_nfe/product/nfe/item.rb +83 -36
- data/lib/br_nfe/product/nfe/item_tax/icms.rb +182 -46
- data/lib/br_nfe/product/nfe/item_tax/icms_uf_destino.rb +33 -22
- data/lib/br_nfe/product/nfe/item_tax/ipi.rb +18 -18
- data/lib/br_nfe/product/nfe/transporte/base.rb +17 -15
- data/lib/br_nfe/product/nota_fiscal.rb +72 -6
- data/lib/br_nfe/product/operation/base.rb +14 -13
- data/lib/br_nfe/product/reader/item.rb +19 -2
- data/lib/br_nfe/product/reader/nfe.rb +28 -9
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/_tc_prod.xml.slim +2 -2
- data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/_tc_ICMSUFDest.xml.slim +1 -1
- data/lib/br_nfe/product/xml/v4_00/_tc_infNFe.xml.slim +45 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/_tc_ide.xml.slim +30 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/_tc_total.xml.slim +84 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/_tc_prod.xml.slim +62 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS00.xml.slim +11 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS10.xml.slim +28 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS20.xml.slim +18 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS201.xml.slim +21 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS202.xml.slim +20 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS30.xml.slim +23 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS500.xml.slim +13 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS51.xml.slim +25 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS60.xml.slim +12 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS70.xml.slim +35 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS90.xml.slim +38 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS900.xml.slim +31 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/_tc_ICMSUFDest.xml.slim +15 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/_tc_IPI.xml.slim +27 -0
- data/lib/br_nfe/product/xml/v4_00/infNFe/pag/_tc_detPag.xml.slim +17 -0
- data/lib/br_nfe/version.rb +4 -4
- data/lib/config/settings/nfe/reader_xml_paths.yml +40 -9
- data/lib/config/settings/nfe/v4_00/operation.yml +843 -0
- data/lib/config/settings/nfe/v4_00/soap_client.yml +807 -0
- data/lib/config/settings/nfe/v4_00/xml_paths.yml +577 -0
- data/test/br_nfe/product/nfe/item_tax/icms_uf_destino_test.rb +9 -8
- data/test/br_nfe/product/nota_fiscal_test.rb +28 -36
- data/test/br_nfe/product/reader/nfe_test.rb +31 -31
- data/test/factories/product/nfe/item_tax/icms_uf_destino.rb +1 -1
- data/test/factories/product/operation/nfe_autorizacao.rb +3 -3
- metadata +26 -4
@@ -1,18 +1,18 @@
|
|
1
1
|
########################################################################################
|
2
2
|
####################################### NOTA 1 #######################################
|
3
|
-
# No grupo (ICMSPart) Partilha do ICMS entre a UF de origem e
|
3
|
+
# No grupo (ICMSPart) Partilha do ICMS entre a UF de origem e
|
4
4
|
# UF de destino ou a UF na legislação, campos:
|
5
5
|
# -pBCOp("Percentual da BC operação própria")
|
6
6
|
# - UFST("UF para qual é devido o ICMS ST")
|
7
|
-
# -> Refere-se às operações com veículos automotores novos efetuados por meio de
|
8
|
-
# faturamento direto para consumidor, cujo percentual de partilha do ICMS é
|
7
|
+
# -> Refere-se às operações com veículos automotores novos efetuados por meio de
|
8
|
+
# faturamento direto para consumidor, cujo percentual de partilha do ICMS é
|
9
9
|
# definido pelo Convênio ICMS 51/00.
|
10
|
-
# ------------------------------------------------------------------------------------
|
11
|
-
# No grupo (ICMSST) ICMS ST - repasse de ICMS ST retido anteriormente em
|
10
|
+
# ------------------------------------------------------------------------------------
|
11
|
+
# No grupo (ICMSST) ICMS ST - repasse de ICMS ST retido anteriormente em
|
12
12
|
# operações interestaduais com repasses através do Substituto Tributário.
|
13
|
-
# -> ICMS ST que foi retido e recolhido antecipadamente pela UF do remetente,
|
13
|
+
# -> ICMS ST que foi retido e recolhido antecipadamente pela UF do remetente,
|
14
14
|
# em operações interestaduais e que será repassado a UF de destino.
|
15
|
-
#
|
15
|
+
#
|
16
16
|
# Os grupos ICMSST e ICMSPart ainda não serão desenvolvidos pois são exclusivamente
|
17
17
|
# para venda de "veiculos novos"
|
18
18
|
#########################################################################################
|
@@ -26,18 +26,18 @@ module BrNfe
|
|
26
26
|
# 0 - Nacional, exceto as indicadas nos códigos 3, 4, 5 e 8;
|
27
27
|
# 1 - Estrangeira - Importação direta, exceto a indicada no código 6;
|
28
28
|
# 2 - Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7;
|
29
|
-
# 3 - Nacional, mercadoria ou bem com Conteúdo de Importação superior
|
29
|
+
# 3 - Nacional, mercadoria ou bem com Conteúdo de Importação superior
|
30
30
|
# a 40% e inferior ou igual a 70%;
|
31
|
-
# 4 - Nacional, cuja produção tenha sido feita em conformidade com os processos
|
31
|
+
# 4 - Nacional, cuja produção tenha sido feita em conformidade com os processos
|
32
32
|
# produtivos básicos de que tratam as legislações citadas nos Ajustes;
|
33
|
-
# 5 - Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou
|
33
|
+
# 5 - Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou
|
34
34
|
# igual a 40%;
|
35
|
-
# 6 - Estrangeira - Importação direta, sem similar nacional, constante em
|
35
|
+
# 6 - Estrangeira - Importação direta, sem similar nacional, constante em
|
36
36
|
# lista da CAMEX e gás natural;
|
37
|
-
# 7 - Estrangeira - Adquirida no mercado interno, sem similar nacional,
|
37
|
+
# 7 - Estrangeira - Adquirida no mercado interno, sem similar nacional,
|
38
38
|
# constante lista CAMEX e gás natural.
|
39
39
|
# 8 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 70%;
|
40
|
-
#
|
40
|
+
#
|
41
41
|
# <b>Type: </b> _Number_
|
42
42
|
# <b>Required: </b> _Yes_
|
43
43
|
# <b>Example: </b> _1_
|
@@ -80,7 +80,7 @@ module BrNfe
|
|
80
80
|
# <b>Example: </b> _00_
|
81
81
|
# <b>Length: </b> _min: 2, max: 3_
|
82
82
|
# <b>tag: </b> CST ou CSOSN
|
83
|
-
#
|
83
|
+
#
|
84
84
|
attr_accessor :codigo_cst
|
85
85
|
def codigo_cst
|
86
86
|
"#{@codigo_cst}".rjust(2, '0') if @codigo_cst.present?
|
@@ -101,7 +101,7 @@ module BrNfe
|
|
101
101
|
# <b>Example: </b> _0_
|
102
102
|
# <b>Length: </b> _1_
|
103
103
|
# <b>tag: </b> modBC
|
104
|
-
#
|
104
|
+
#
|
105
105
|
attr_accessor :modalidade_base_calculo
|
106
106
|
def modalidade_base_calculo
|
107
107
|
@modalidade_base_calculo.to_i if @modalidade_base_calculo.present?
|
@@ -116,7 +116,7 @@ module BrNfe
|
|
116
116
|
# <b>Example: </b> _45.00_
|
117
117
|
# <b>Length: </b> _13v2-4_
|
118
118
|
# <b>tag: </b> pRedBC
|
119
|
-
#
|
119
|
+
#
|
120
120
|
attr_accessor :reducao_base_calculo
|
121
121
|
alias_attribute :pRedBC, :reducao_base_calculo
|
122
122
|
|
@@ -129,11 +129,11 @@ module BrNfe
|
|
129
129
|
# <b>Example: </b> _350.00_
|
130
130
|
# <b>Length: </b> _13v2_
|
131
131
|
# <b>tag: </b> vBC
|
132
|
-
#
|
132
|
+
#
|
133
133
|
attr_accessor :total_base_calculo
|
134
134
|
alias_attribute :vBC, :total_base_calculo
|
135
135
|
|
136
|
-
# ALÍQUOTA DO ICMS
|
136
|
+
# ALÍQUOTA DO ICMS
|
137
137
|
# Percentual do imposto do ICMS
|
138
138
|
# Utilizado nos CSTs: [00 10 20 51 70 90 900]
|
139
139
|
#
|
@@ -142,7 +142,7 @@ module BrNfe
|
|
142
142
|
# <b>Example: </b> _17.00_
|
143
143
|
# <b>Length: </b> _13v2-4_
|
144
144
|
# <b>tag: </b> pICMS
|
145
|
-
#
|
145
|
+
#
|
146
146
|
attr_accessor :aliquota
|
147
147
|
alias_attribute :pICMS, :aliquota
|
148
148
|
|
@@ -150,7 +150,7 @@ module BrNfe
|
|
150
150
|
# Valor total do ICMS
|
151
151
|
# Utilizado nos CSTs: [00 10 20 51 70 900]
|
152
152
|
# O calculo se dá através da base de cálculo x alíquota
|
153
|
-
# EX:
|
153
|
+
# EX:
|
154
154
|
# total_base_calculo = 200.00
|
155
155
|
# aliquota = 17.0%
|
156
156
|
# total = 200*17% = 34.00
|
@@ -160,7 +160,7 @@ module BrNfe
|
|
160
160
|
# <b>Example: </b> _120.00_
|
161
161
|
# <b>Length: </b> _13v2_
|
162
162
|
# <b>tag: </b> vICMS
|
163
|
-
#
|
163
|
+
#
|
164
164
|
attr_accessor :total
|
165
165
|
def total
|
166
166
|
@total ||= calculate_total
|
@@ -181,7 +181,7 @@ module BrNfe
|
|
181
181
|
# <b>Example: </b> _2_
|
182
182
|
# <b>Length: </b> _1_
|
183
183
|
# <b>tag: </b> modBCST
|
184
|
-
#
|
184
|
+
#
|
185
185
|
attr_accessor :modalidade_base_calculo_st
|
186
186
|
def modalidade_base_calculo_st
|
187
187
|
@modalidade_base_calculo_st.to_i if @modalidade_base_calculo_st.present?
|
@@ -190,8 +190,8 @@ module BrNfe
|
|
190
190
|
|
191
191
|
# PERCENTUAL DA MARGEM DE VALOR ADICIONADO DO ICMS ST
|
192
192
|
# Utilizado nos CSTs: [10 30 70 201 202 203 900]
|
193
|
-
# MVA ST original – é a margem de valor agregado prevista
|
194
|
-
# na legislação do Estado do destinatário para suas operações
|
193
|
+
# MVA ST original – é a margem de valor agregado prevista
|
194
|
+
# na legislação do Estado do destinatário para suas operações
|
195
195
|
# internas com produto sujeito ao regime de substituição tributária;
|
196
196
|
#
|
197
197
|
# <b>Type: </b> _Float_
|
@@ -199,7 +199,7 @@ module BrNfe
|
|
199
199
|
# <b>Example: </b> _120.00_
|
200
200
|
# <b>Length: </b> _13v2-4_
|
201
201
|
# <b>tag: </b> pMVAST
|
202
|
-
#
|
202
|
+
#
|
203
203
|
attr_accessor :mva_st
|
204
204
|
alias_attribute :pMVAST, :mva_st
|
205
205
|
|
@@ -211,19 +211,19 @@ module BrNfe
|
|
211
211
|
# <b>Example: </b> _45.00_
|
212
212
|
# <b>Length: </b> _13v2-4_
|
213
213
|
# <b>tag: </b> pRedBCST
|
214
|
-
#
|
215
|
-
attr_accessor :reducao_base_calculo_st
|
214
|
+
#
|
215
|
+
attr_accessor :reducao_base_calculo_st
|
216
216
|
alias_attribute :pRedBCST, :reducao_base_calculo_st
|
217
217
|
|
218
218
|
# VALOR DA BASE DE CÁLCULO DO ICMS ST
|
219
219
|
# Utilizado nos CSTs: [10 30 70 201 202 203 900]
|
220
|
-
#
|
220
|
+
#
|
221
221
|
# <b>Type: </b> _Float_
|
222
222
|
# <b>Required: </b> _CST: [10 30 70 201 202 203]_
|
223
223
|
# <b>Example: </b> _1450.00_
|
224
224
|
# <b>Length: </b> _13v2_
|
225
225
|
# <b>tag: </b> vBCST
|
226
|
-
#
|
226
|
+
#
|
227
227
|
attr_accessor :total_base_calculo_st
|
228
228
|
alias_attribute :vBCST, :total_base_calculo_st
|
229
229
|
|
@@ -236,7 +236,7 @@ module BrNfe
|
|
236
236
|
# <b>Example: </b> _17.00_
|
237
237
|
# <b>Length: </b> _13v2-4_
|
238
238
|
# <b>tag: </b> pICMSST
|
239
|
-
#
|
239
|
+
#
|
240
240
|
attr_accessor :aliquota_st
|
241
241
|
alias_attribute :pICMSST, :aliquota_st
|
242
242
|
|
@@ -248,7 +248,7 @@ module BrNfe
|
|
248
248
|
# <b>Example: </b> _120.00_
|
249
249
|
# <b>Length: </b> _13v2_
|
250
250
|
# <b>tag: </b> vICMSST
|
251
|
-
#
|
251
|
+
#
|
252
252
|
attr_accessor :total_st
|
253
253
|
alias_attribute :vICMSST, :total_st
|
254
254
|
|
@@ -260,7 +260,7 @@ module BrNfe
|
|
260
260
|
# <b>Example: </b> _75.5_
|
261
261
|
# <b>Length: </b> _13v2_
|
262
262
|
# <b>tag: </b> vICMSDeson
|
263
|
-
#
|
263
|
+
#
|
264
264
|
attr_accessor :total_desoneracao
|
265
265
|
alias_attribute :vICMSDeson, :total_desoneracao
|
266
266
|
|
@@ -292,7 +292,7 @@ module BrNfe
|
|
292
292
|
# <b>Example: </b> _9_
|
293
293
|
# <b>Length: </b> _1 OR 2_
|
294
294
|
# <b>tag: </b> motDesICMS
|
295
|
-
#
|
295
|
+
#
|
296
296
|
attr_accessor :motivo_desoneracao
|
297
297
|
def motivo_desoneracao
|
298
298
|
@motivo_desoneracao.to_i if @motivo_desoneracao.present?
|
@@ -309,7 +309,7 @@ module BrNfe
|
|
309
309
|
# <b>Example: </b> _75.5_
|
310
310
|
# <b>Length: </b> _13v2_
|
311
311
|
# <b>tag: </b> vICMSOp
|
312
|
-
#
|
312
|
+
#
|
313
313
|
attr_accessor :total_icms_operacao
|
314
314
|
alias_attribute :vICMSOp, :total_icms_operacao
|
315
315
|
|
@@ -322,12 +322,12 @@ module BrNfe
|
|
322
322
|
# <b>Example: </b> _75.5_
|
323
323
|
# <b>Length: </b> _13v2-4_
|
324
324
|
# <b>tag: </b> pDif
|
325
|
-
#
|
325
|
+
#
|
326
326
|
attr_accessor :percentual_diferimento
|
327
327
|
alias_attribute :pDif, :percentual_diferimento
|
328
328
|
|
329
329
|
# VALOR DO ICMS DIFERIDO
|
330
|
-
#
|
330
|
+
#
|
331
331
|
# Utilizado nos CSTs: [51]
|
332
332
|
#
|
333
333
|
# <b>Type: </b> _Float_
|
@@ -335,7 +335,7 @@ module BrNfe
|
|
335
335
|
# <b>Example: </b> _75.5_
|
336
336
|
# <b>Length: </b> _13v2_
|
337
337
|
# <b>tag: </b> vICMSDif
|
338
|
-
#
|
338
|
+
#
|
339
339
|
attr_accessor :total_icms_diferido
|
340
340
|
alias_attribute :vICMSDif, :total_icms_diferido
|
341
341
|
|
@@ -343,7 +343,7 @@ module BrNfe
|
|
343
343
|
# Valor da BC do ICMS ST cobrado anteriormente por ST (v2.0).
|
344
344
|
# O valor pode ser omitido quando a legislação não exigir a sua
|
345
345
|
# informação. (NT 2011/004)
|
346
|
-
#
|
346
|
+
#
|
347
347
|
# Utilizado nos CSTs: [60 500]
|
348
348
|
#
|
349
349
|
# <b>Type: </b> _Float_
|
@@ -351,7 +351,7 @@ module BrNfe
|
|
351
351
|
# <b>Example: </b> _75.5_
|
352
352
|
# <b>Length: </b> _13v2_
|
353
353
|
# <b>tag: </b> vBCSTRet
|
354
|
-
#
|
354
|
+
#
|
355
355
|
attr_accessor :total_base_calculo_st_retido
|
356
356
|
alias_attribute :vBCSTRet, :total_base_calculo_st_retido
|
357
357
|
|
@@ -359,7 +359,7 @@ module BrNfe
|
|
359
359
|
# Valor do ICMS ST cobrado anteriormente por ST (v2.0). O valor
|
360
360
|
# pode ser omitido quando a legislação não exigir a sua
|
361
361
|
# informação. (NT 2011/004)
|
362
|
-
#
|
362
|
+
#
|
363
363
|
# Utilizado nos CSTs: [60 500]
|
364
364
|
#
|
365
365
|
# <b>Type: </b> _Float_
|
@@ -367,7 +367,7 @@ module BrNfe
|
|
367
367
|
# <b>Example: </b> _75.5_
|
368
368
|
# <b>Length: </b> _13v2_
|
369
369
|
# <b>tag: </b> vICMSSTRet
|
370
|
-
#
|
370
|
+
#
|
371
371
|
attr_accessor :total_st_retido
|
372
372
|
alias_attribute :vICMSSTRet, :total_st_retido
|
373
373
|
|
@@ -380,11 +380,11 @@ module BrNfe
|
|
380
380
|
# <b>Example: </b> _75.5_
|
381
381
|
# <b>Length: </b> _13v2-4_
|
382
382
|
# <b>tag: </b> pCredSN
|
383
|
-
#
|
383
|
+
#
|
384
384
|
attr_accessor :aliquota_credito_sn
|
385
385
|
alias_attribute :pCredSN, :aliquota_credito_sn
|
386
386
|
|
387
|
-
# VALOR CRÉDITO DO ICMS QUE PODE SER APROVEITADO
|
387
|
+
# VALOR CRÉDITO DO ICMS QUE PODE SER APROVEITADO
|
388
388
|
# nos termos do art. 23 da LC 123 (Simples Nacional)
|
389
389
|
#
|
390
390
|
# Utilizado nos CSTs: [101 201]
|
@@ -394,10 +394,146 @@ module BrNfe
|
|
394
394
|
# <b>Example: </b> _75.5_
|
395
395
|
# <b>Length: </b> _13v2_
|
396
396
|
# <b>tag: </b> vCredICMSSN
|
397
|
-
#
|
397
|
+
#
|
398
398
|
attr_accessor :total_credito_sn
|
399
399
|
alias_attribute :vCredICMSSN, :total_credito_sn
|
400
400
|
|
401
|
+
# VALOR DA BASE DE CÁLCULO DO FCP
|
402
|
+
# Informar o valor da Base de Cálculo do FCP
|
403
|
+
#
|
404
|
+
# CSTs: 10, 20, 51, 70, 90
|
405
|
+
#
|
406
|
+
# <b>Type: </b> _Float_
|
407
|
+
# <b>Required: </b> _NO_ Yes if have CFP
|
408
|
+
# <b>Example: </b> _75.5_
|
409
|
+
# <b>Length: </b> _13v2_
|
410
|
+
# <b>tag: </b> vBCFCP
|
411
|
+
#
|
412
|
+
attr_accessor :cfp_base_calculo
|
413
|
+
alias_attribute :vBCFCP, :cfp_base_calculo
|
414
|
+
|
415
|
+
# PERCENTUAL DO FUNDO DE COMBATE À POBREZA
|
416
|
+
#
|
417
|
+
# CSTs: 00, 10, 20, 51, 70, 90
|
418
|
+
#
|
419
|
+
# <b>Type: </b> _Float_
|
420
|
+
# <b>Required: </b> _NO_ Yes if have CFP
|
421
|
+
# <b>Example: </b> _75.5_
|
422
|
+
# <b>Length: </b> _13v2_
|
423
|
+
# <b>tag: </b> pFCP
|
424
|
+
#
|
425
|
+
attr_accessor :cfp_percentual
|
426
|
+
alias_attribute :pFCP, :cfp_percentual
|
427
|
+
|
428
|
+
# VALOR DO FUNDO DE COMBATE À POBREZA
|
429
|
+
#
|
430
|
+
# CSTs: 00, 10, 20, 51, 70, 90
|
431
|
+
#
|
432
|
+
# <b>Type: </b> _Float_
|
433
|
+
# <b>Required: </b> _NO_ Yes if have CFP
|
434
|
+
# <b>Example: </b> _75.5_
|
435
|
+
# <b>Length: </b> _13v2_
|
436
|
+
# <b>tag: </b> vFCP
|
437
|
+
#
|
438
|
+
attr_accessor :cfp_valor
|
439
|
+
alias_attribute :vFCP, :cfp_valor
|
440
|
+
|
441
|
+
# VALOR DA BASE DE CÁLCULO DO FCP RETIDO POR SUBSTITUIÇÃO TRIBUTÁRIA
|
442
|
+
#
|
443
|
+
# CSTs: 10, 30, 70, 90, 201, 202, 203, 900
|
444
|
+
#
|
445
|
+
# <b>Type: </b> _Float_
|
446
|
+
# <b>Required: </b> _NO_ Yes if have CFP
|
447
|
+
# <b>Example: </b> _75.5_
|
448
|
+
# <b>Length: </b> _13v2_
|
449
|
+
# <b>tag: </b> vBCFCPST
|
450
|
+
#
|
451
|
+
attr_accessor :cfp_st_base_calculo
|
452
|
+
alias_attribute :vBCFCPST, :cfp_st_base_calculo
|
453
|
+
|
454
|
+
# PERCENTUAL DO FCP RETIDO POR SUBSTITUIÇÃO TRIBUTÁRIA
|
455
|
+
#
|
456
|
+
# CSTs: 10, 30, 70, 90, 201, 202, 203, 900
|
457
|
+
#
|
458
|
+
# <b>Type: </b> _Float_
|
459
|
+
# <b>Required: </b> _NO_ Yes if have CFP
|
460
|
+
# <b>Example: </b> _75.5_
|
461
|
+
# <b>Length: </b> _13v2_
|
462
|
+
# <b>tag: </b> pFCPST
|
463
|
+
#
|
464
|
+
attr_accessor :cfp_st_percentual
|
465
|
+
alias_attribute :pFCPST, :cfp_st_percentual
|
466
|
+
|
467
|
+
# VALOR DO FCP RETIDO POR SUBSTITUIÇÃO TRIBUTÁRIA
|
468
|
+
#
|
469
|
+
# CSTs: 10, 30, 70, 90, 201, 202, 203, 900
|
470
|
+
#
|
471
|
+
# <b>Type: </b> _Float_
|
472
|
+
# <b>Required: </b> _NO_ Yes if have CFP
|
473
|
+
# <b>Example: </b> _75.5_
|
474
|
+
# <b>Length: </b> _13v2_
|
475
|
+
# <b>tag: </b> vFCPST
|
476
|
+
#
|
477
|
+
attr_accessor :cfp_st_valor
|
478
|
+
alias_attribute :vFCPST, :cfp_st_valor
|
479
|
+
|
480
|
+
# Alíquota suportada pelo Consumidor Final
|
481
|
+
# Deve ser informada a alíquota do cálculo do ICMS-ST, já
|
482
|
+
# incluso o FCP caso incida sobre a mercadoria. Exemplo:
|
483
|
+
# alíquota da mercadoria na venda ao consumidor final =
|
484
|
+
# 18% e 2% de FCP. A alíquota a ser informada no campo
|
485
|
+
# pST deve ser 20%.
|
486
|
+
#
|
487
|
+
# CSTs: 60 e 500
|
488
|
+
#
|
489
|
+
# <b>Type: </b> _Float_
|
490
|
+
# <b>Required: </b> _NO_ Yes if have CFP
|
491
|
+
# <b>Example: </b> _20.0_
|
492
|
+
# <b>Length: </b> _13v2_
|
493
|
+
# <b>tag: </b> pST
|
494
|
+
#
|
495
|
+
attr_accessor :aliquota_consumidor_final
|
496
|
+
alias_attribute :pST, :aliquota_consumidor_final
|
497
|
+
|
498
|
+
# VALOR DA BASE DE CÁLCULO DO FCP RETIDO ANTERIORMENTE POR ST
|
499
|
+
#
|
500
|
+
# CSTs: 60 e 500
|
501
|
+
#
|
502
|
+
# <b>Type: </b> _Float_
|
503
|
+
# <b>Required: </b> _NO_ Yes if have CFP
|
504
|
+
# <b>Example: </b> _20.0_
|
505
|
+
# <b>Length: </b> _13v2_
|
506
|
+
# <b>tag: </b> vBCFCPSTRet
|
507
|
+
#
|
508
|
+
attr_accessor :cfp_st_retido_base_calculo
|
509
|
+
alias_attribute :vBCFCPSTRet, :cfp_st_retido_base_calculo
|
510
|
+
|
511
|
+
# PERCENTUAL DO FCP RETIDO ANTERIORMENTE POR SUBSTITUIÇÃO TRIBUTÁRIA
|
512
|
+
#
|
513
|
+
# CSTs: 60 e 500
|
514
|
+
#
|
515
|
+
# <b>Type: </b> _Float_
|
516
|
+
# <b>Required: </b> _NO_ Yes if have CFP
|
517
|
+
# <b>Example: </b> _20.0_
|
518
|
+
# <b>Length: </b> _13v2_
|
519
|
+
# <b>tag: </b> pFCPSTRet
|
520
|
+
#
|
521
|
+
attr_accessor :cfp_st_retido_percentual
|
522
|
+
alias_attribute :pFCPSTRet, :cfp_st_retido_percentual
|
523
|
+
|
524
|
+
# VALOR DO FCP RETIDO POR SUBSTITUIÇÃO TRIBUTÁRIA
|
525
|
+
#
|
526
|
+
# CSTs: 60 e 500
|
527
|
+
#
|
528
|
+
# <b>Type: </b> _Float_
|
529
|
+
# <b>Required: </b> _NO_ Yes if have CFP
|
530
|
+
# <b>Example: </b> _20.0_
|
531
|
+
# <b>Length: </b> _13v2_
|
532
|
+
# <b>tag: </b> vFCPSTRet
|
533
|
+
#
|
534
|
+
attr_accessor :cfp_st_retido_valor
|
535
|
+
alias_attribute :vFCPSTRet, :cfp_st_retido_valor
|
536
|
+
|
401
537
|
|
402
538
|
###################################################################
|
403
539
|
########################### VALIDAÇÕES ###########################
|
@@ -551,12 +687,12 @@ module BrNfe
|
|
551
687
|
record.validates :total_st_retido, presence: true
|
552
688
|
record.validates :total_st_retido, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
|
553
689
|
end
|
554
|
-
|
690
|
+
|
555
691
|
with_options if: lambda{|r| r.codigo_cst == '900'} do |record|
|
556
692
|
record.validates :aliquota, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
|
557
693
|
record.validates :aliquota_st, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
|
558
694
|
record.validates :aliquota_credito_sn, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
|
559
|
-
end
|
695
|
+
end
|
560
696
|
with_options if: lambda{|r| r.codigo_cst == '900' && r.aliquota.to_f > 0.0 } do |record|
|
561
697
|
record.validates :total_base_calculo, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
|
562
698
|
record.validates :total_base_calculo, presence: true
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# GRUPO DE TRIBUTAÇÃO DO ICMS PARA A UF DE DESTINO
|
2
2
|
# NT_2015_003_v150
|
3
3
|
#
|
4
|
-
# Foi criado um novo grupo de informações no item, para identificar o
|
5
|
-
# ICMS Interestadual nas operações de venda para consumidor final,
|
4
|
+
# Foi criado um novo grupo de informações no item, para identificar o
|
5
|
+
# ICMS Interestadual nas operações de venda para consumidor final,
|
6
6
|
# atendendo ao disposto na Emenda Constitucional 87 de 2015.
|
7
7
|
#
|
8
8
|
# INFORMAÇÃO DO ICMS INTERESTADUAL
|
@@ -16,44 +16,55 @@ module BrNfe
|
|
16
16
|
class IcmsUfDestino < BrNfe::ActiveModelBase
|
17
17
|
# VALOR DA BC DO ICMS NA UF DE DESTINO
|
18
18
|
# Valor da Base de Cálculo do ICMS na UF de destino.
|
19
|
-
#
|
19
|
+
#
|
20
20
|
# <b>Type: </b> _Float_
|
21
21
|
# <b>Required: </b> _Yes_
|
22
22
|
# <b>Example: </b> _350.47_
|
23
23
|
# <b>Length: </b> _13v2_
|
24
24
|
# <b>tag: </b> vBCUFDest
|
25
|
-
#
|
25
|
+
#
|
26
26
|
attr_accessor :total_base_calculo
|
27
27
|
alias_attribute :vBCUFDest, :total_base_calculo
|
28
28
|
|
29
|
+
# VALOR DA BASE DE CÁLCULO DO FCP NA UF DE DESTINO.
|
30
|
+
#
|
31
|
+
# <b>Type: </b> _Float_
|
32
|
+
# <b>Required: </b> _Yes_
|
33
|
+
# <b>Example: </b> _1.47_
|
34
|
+
# <b>Length: </b> _13v2-4_
|
35
|
+
# <b>tag: </b> vBCFCPUFDest
|
36
|
+
#
|
37
|
+
attr_accessor :bc_fcp_uf_destino
|
38
|
+
alias_attribute :vBCFCPUFDest, :bc_fcp_uf_destino
|
39
|
+
|
29
40
|
# PERCENTUAL DO ICMS RELATIVO AO FUNDO DE COMBATE À POBREZA
|
30
41
|
# (FCP) NA UF DE DESTINO
|
31
42
|
# Percentual adicional inserido na alíquota interna da UF de
|
32
43
|
# destino, relativo ao Fundo de Combate à Pobreza (FCP) naquela UF.
|
33
44
|
# Nota: Percentual máximo de 2%, conforme a legislação
|
34
|
-
#
|
45
|
+
#
|
35
46
|
# <b>Type: </b> _Float_
|
36
47
|
# <b>Required: </b> _Yes_
|
37
48
|
# <b>Example: </b> _1.47_
|
38
49
|
# <b>Length: </b> _13v2-4_
|
39
50
|
# <b>tag: </b> pFCPUFDest
|
40
|
-
#
|
41
|
-
attr_accessor :
|
42
|
-
alias_attribute :pFCPUFDest, :
|
51
|
+
#
|
52
|
+
attr_accessor :percentual_fcp_uf_destino
|
53
|
+
alias_attribute :pFCPUFDest, :percentual_fcp_uf_destino
|
43
54
|
|
44
55
|
# ALÍQUOTA INTERNA DA UF DE DESTINO
|
45
56
|
# Alíquota adotada nas operações internas na UF de destino para o
|
46
57
|
# produto / mercadoria. A alíquota do Fundo de Combate a
|
47
|
-
# Pobreza, se existente para o produto / mercadoria, deve ser
|
58
|
+
# Pobreza, se existente para o produto / mercadoria, deve ser
|
48
59
|
# informada no campo próprio (pFCPUFDest) não devendo ser
|
49
60
|
# somada à essa alíquota interna
|
50
|
-
#
|
61
|
+
#
|
51
62
|
# <b>Type: </b> _Float_
|
52
63
|
# <b>Required: </b> _Yes_
|
53
64
|
# <b>Example: </b> _18.0_
|
54
65
|
# <b>Length: </b> _13v2-4_
|
55
66
|
# <b>tag: </b> pICMSUFDest
|
56
|
-
#
|
67
|
+
#
|
57
68
|
attr_accessor :aliquota_interna_uf_destino
|
58
69
|
alias_attribute :pICMSUFDest, :aliquota_interna_uf_destino
|
59
70
|
|
@@ -63,13 +74,13 @@ module BrNfe
|
|
63
74
|
# destinado para os Estados do Norte, Nordeste, CentroOeste
|
64
75
|
# e Espírito Santo;
|
65
76
|
# - 12% para os demais casos
|
66
|
-
#
|
77
|
+
#
|
67
78
|
# <b>Type: </b> _Float_
|
68
79
|
# <b>Required: </b> _Yes_
|
69
80
|
# <b>Example: </b> _17.0_
|
70
81
|
# <b>Length: </b> _2v2_
|
71
82
|
# <b>tag: </b> pICMSInter
|
72
|
-
#
|
83
|
+
#
|
73
84
|
attr_accessor :aliquota_interestadual
|
74
85
|
alias_attribute :pICMSInter, :aliquota_interestadual
|
75
86
|
|
@@ -81,28 +92,28 @@ module BrNfe
|
|
81
92
|
# - 100% a partir de 2019.
|
82
93
|
# OBS: Caso não seja setado manualmente um valor, será setado
|
83
94
|
# automaticamnete conforme o ano da data atual.
|
84
|
-
#
|
95
|
+
#
|
85
96
|
# <b>Type: </b> _Float_
|
86
97
|
# <b>Required: </b> _Yes_
|
87
98
|
# <b>Example: </b> _40.0_
|
88
99
|
# <b>Length: </b> _2v2_
|
89
100
|
# <b>tag: </b> pICMSInterPart
|
90
|
-
#
|
101
|
+
#
|
91
102
|
attr_accessor :percentual_partilha_destino
|
92
103
|
def percentual_partilha_destino
|
93
104
|
@percentual_partilha_destino ||= get_percentual_partilha_destino
|
94
105
|
end
|
95
106
|
alias_attribute :pICMSInterPart, :percentual_partilha_destino
|
96
|
-
|
107
|
+
|
97
108
|
# VALOR DO ICMS RELATIVO AO FUNDO DE COMBATE À POBREZA (FCP) DA
|
98
109
|
# UF DE DESTINO
|
99
|
-
#
|
110
|
+
#
|
100
111
|
# <b>Type: </b> _Float_
|
101
112
|
# <b>Required: </b> _Yes_
|
102
113
|
# <b>Example: </b> _347.54_
|
103
114
|
# <b>Length: </b> _13v2_
|
104
115
|
# <b>tag: </b> vFCPUFDest
|
105
|
-
#
|
116
|
+
#
|
106
117
|
attr_accessor :total_fcp_destino
|
107
118
|
alias_attribute :vFCPUFDest, :total_fcp_destino
|
108
119
|
|
@@ -110,20 +121,20 @@ module BrNfe
|
|
110
121
|
# Valor do ICMS Interestadual para a UF de destino, já
|
111
122
|
# considerando o valor do ICMS relativo ao Fundo de Combate à
|
112
123
|
# Pobreza naquela UF.
|
113
|
-
#
|
124
|
+
#
|
114
125
|
# <b>Type: </b> _Float_
|
115
126
|
# <b>Required: </b> _Yes_
|
116
127
|
# <b>Example: </b> _47.54_
|
117
128
|
# <b>Length: </b> _13v2_
|
118
129
|
# <b>tag: </b> vICMSUFDest
|
119
|
-
#
|
130
|
+
#
|
120
131
|
attr_accessor :total_destino
|
121
132
|
alias_attribute :vICMSUFDest, :total_destino
|
122
133
|
|
123
134
|
# VALOR DO ICMS INTERESTADUAL PARA A UF DO REMETENTE
|
124
135
|
# Valor do ICMS Interestadual para a UF do remetente.
|
125
136
|
# Nota: A partir de 2019, este valor será zero.
|
126
|
-
#
|
137
|
+
#
|
127
138
|
# <b>Type: </b> _Float_
|
128
139
|
# <b>Required: </b> _Yes_
|
129
140
|
# <b>Example: </b> _47.54_
|
@@ -141,7 +152,7 @@ module BrNfe
|
|
141
152
|
validates :aliquota_interestadual, numericality: {greater_than_or_equal_to: 0.0, less_than_or_equal_to: 99.99}, allow_blank: true
|
142
153
|
validates :aliquota_interestadual, inclusion: {in: [4.0, 7.0, 12.0]}, allow_blank: true
|
143
154
|
validates :percentual_partilha_destino, numericality: {greater_than_or_equal_to: 0.0, less_than_or_equal_to: 100.0}, allow_blank: true
|
144
|
-
validates :
|
155
|
+
validates :percentual_fcp_uf_destino, numericality: {greater_than_or_equal_to: 0.0, less_than_or_equal_to: 2.5}, allow_blank: true
|
145
156
|
validates :total_fcp_destino, numericality: {greater_than_or_equal_to: 0.0}, allow_blank: true
|
146
157
|
validates :total_destino, presence: true
|
147
158
|
validates :total_origem, presence: true
|