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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/README.markdown +1 -1
  4. data/br_nfe.gemspec +0 -0
  5. data/lib/br_nfe/constants.rb +2 -2
  6. data/lib/br_nfe/product/nf_xml_value.rb +6 -11
  7. data/lib/br_nfe/product/nfe/cobranca/pagamento.rb +39 -12
  8. data/lib/br_nfe/product/nfe/item.rb +83 -36
  9. data/lib/br_nfe/product/nfe/item_tax/icms.rb +182 -46
  10. data/lib/br_nfe/product/nfe/item_tax/icms_uf_destino.rb +33 -22
  11. data/lib/br_nfe/product/nfe/item_tax/ipi.rb +18 -18
  12. data/lib/br_nfe/product/nfe/transporte/base.rb +17 -15
  13. data/lib/br_nfe/product/nota_fiscal.rb +72 -6
  14. data/lib/br_nfe/product/operation/base.rb +14 -13
  15. data/lib/br_nfe/product/reader/item.rb +19 -2
  16. data/lib/br_nfe/product/reader/nfe.rb +28 -9
  17. data/lib/br_nfe/product/xml/v3_10/infNFe/det/_tc_prod.xml.slim +2 -2
  18. data/lib/br_nfe/product/xml/v3_10/infNFe/det/imposto/_tc_ICMSUFDest.xml.slim +1 -1
  19. data/lib/br_nfe/product/xml/v4_00/_tc_infNFe.xml.slim +45 -0
  20. data/lib/br_nfe/product/xml/v4_00/infNFe/_tc_ide.xml.slim +30 -0
  21. data/lib/br_nfe/product/xml/v4_00/infNFe/_tc_total.xml.slim +84 -0
  22. data/lib/br_nfe/product/xml/v4_00/infNFe/det/_tc_prod.xml.slim +62 -0
  23. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS00.xml.slim +11 -0
  24. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS10.xml.slim +28 -0
  25. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS20.xml.slim +18 -0
  26. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS201.xml.slim +21 -0
  27. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS202.xml.slim +20 -0
  28. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS30.xml.slim +23 -0
  29. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS500.xml.slim +13 -0
  30. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS51.xml.slim +25 -0
  31. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS60.xml.slim +12 -0
  32. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS70.xml.slim +35 -0
  33. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS90.xml.slim +38 -0
  34. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/ICMS/_tc_ICMS900.xml.slim +31 -0
  35. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/_tc_ICMSUFDest.xml.slim +15 -0
  36. data/lib/br_nfe/product/xml/v4_00/infNFe/det/imposto/_tc_IPI.xml.slim +27 -0
  37. data/lib/br_nfe/product/xml/v4_00/infNFe/pag/_tc_detPag.xml.slim +17 -0
  38. data/lib/br_nfe/version.rb +4 -4
  39. data/lib/config/settings/nfe/reader_xml_paths.yml +40 -9
  40. data/lib/config/settings/nfe/v4_00/operation.yml +843 -0
  41. data/lib/config/settings/nfe/v4_00/soap_client.yml +807 -0
  42. data/lib/config/settings/nfe/v4_00/xml_paths.yml +577 -0
  43. data/test/br_nfe/product/nfe/item_tax/icms_uf_destino_test.rb +9 -8
  44. data/test/br_nfe/product/nota_fiscal_test.rb +28 -36
  45. data/test/br_nfe/product/reader/nfe_test.rb +31 -31
  46. data/test/factories/product/nfe/item_tax/icms_uf_destino.rb +1 -1
  47. data/test/factories/product/operation/nfe_autorizacao.rb +3 -3
  48. 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 :percentual_fcp
42
- alias_attribute :pFCPUFDest, :percentual_fcp
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 :percentual_fcp, numericality: {greater_than_or_equal_to: 0.0, less_than_or_equal_to: 2.0}, allow_blank: true
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