br_nfe 2.3.2 → 3.0.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|