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