• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

wmixvideo / nfe / #6663

21 Aug 2025 01:17PM UTC coverage: 51.755% (-0.04%) from 51.794%
#6663

push

web-flow
Merge branch 'wmixvideo:master' into master

30 of 86 new or added lines in 11 files covered. (34.88%)

1 existing line in 1 file now uncovered.

14359 of 27744 relevant lines covered (51.76%)

0.52 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

85.71
/src/main/java/com/fincatto/documentofiscal/nfe400/classes/nota/NFNotaInfoItemProduto.java
1
package com.fincatto.documentofiscal.nfe400.classes.nota;
2

3
import com.fincatto.documentofiscal.DFBase;
4
import com.fincatto.documentofiscal.nfe400.classes.NFProdutoCompoeValorNota;
5
import com.fincatto.documentofiscal.nfe400.converters.NFStringNullToEmptyConverter;
6
import com.fincatto.documentofiscal.validadores.DFBigDecimalValidador;
7
import com.fincatto.documentofiscal.validadores.DFIntegerValidador;
8
import com.fincatto.documentofiscal.validadores.DFListValidador;
9
import com.fincatto.documentofiscal.validadores.DFStringValidador;
10
import org.simpleframework.xml.Element;
11
import org.simpleframework.xml.ElementList;
12
import org.simpleframework.xml.convert.Convert;
13

14
import java.math.BigDecimal;
15
import java.util.List;
16

17
public class NFNotaInfoItemProduto extends DFBase {
1✔
18
    private static final long serialVersionUID = -2271625077897052364L;
19

20
    @Element(name = "cProd")
21
    private String codigo;
22

23
    @Element(name = "cEAN", required = false)
24
    @Convert(NFStringNullToEmptyConverter.class)
25
    private String codigoDeBarrasGtin;
26

27
    @Element(name = "cBarra", required = false)
28
    private String codigoDeBarrasDiferenteGtin;
29

30
    @Element(name = "xProd")
31
    private String descricao;
32

33
    @Element(name = "NCM")
34
    private String ncm;
35

36
    @ElementList(entry = "NVE", inline = true, required = false)
37
    private List<String> nomeclaturaValorAduaneiroEstatistica;
38

39
    @Element(name = "CEST", required = false)
40
    private String codigoEspecificadorSituacaoTributaria;
41

42
    @Element(name = "indEscala", required = false)
43
    private NFIndicadorEscalaRelevante indicadorEscalaRelevante;
44

45
    @Element(name = "CNPJFab", required = false)
46
    private String cnpjFabricanteMercadoria;
47

48
    @Element(name = "cBenef", required = false)
49
    private String codigoBeneficioFiscalUF;
50

51
    @Element(name = "gCred", required = false)
52
    private NFNotaInfoItemProdutoGrupoCreditoPresumido grupoCreditoPresumido;
53

54
    @Element(name = "EXTIPI", required = false)
55
    private String extipi;
56

57
    @Element(name = "CFOP")
58
    private String cfop;
59

60
    @Element(name = "uCom")
61
    private String unidadeComercial;
62

63
    @Element(name = "qCom")
64
    private String quantidadeComercial;
65

66
    @Element(name = "vUnCom")
67
    private String valorUnitario;
68

69
    @Element(name = "vProd")
70
    private String valorTotalBruto;
71

72
    @Element(name = "cEANTrib", required = false)
73
    @Convert(NFStringNullToEmptyConverter.class)
74
    private String codigoDeBarrasGtinTributavel;
75

76
    @Element(name = "cBarraTrib", required = false)
77
    private String codigoDeBarrasDiferenteGtinTributavel;
78

79
    @Element(name = "uTrib")
80
    private String unidadeTributavel;
81

82
    @Element(name = "qTrib")
83
    private String quantidadeTributavel;
84

85
    @Element(name = "vUnTrib")
86
    private String valorUnitarioTributavel;
87

88
    @Element(name = "vFrete", required = false)
89
    private String valorFrete;
90

91
    @Element(name = "vSeg", required = false)
92
    private String valorSeguro;
93

94
    @Element(name = "vDesc", required = false)
95
    private String valorDesconto;
96

97
    @Element(name = "vOutro", required = false)
98
    private String valorOutrasDespesasAcessorias;
99

100
    @Element(name = "indTot")
101
    private NFProdutoCompoeValorNota compoeValorNota;
102

103
    @Element(name = "indBemMovelUsado", required = false)
104
    private String indicadorBemMovelUsado;
105

106
    @ElementList(entry = "DI", inline = true, required = false)
107
    private List<NFNotaInfoItemProdutoDeclaracaoImportacao> declaracoesImportacao;
108

109
    @ElementList(entry = "detExport", inline = true, required = false)
110
    private List<NFNotaInfoItemDetalheExportacao> detalhesExportacao;
111

112
    @Element(name = "xPed", required = false)
113
    private String numeroPedidoCliente;
114

115
    @Element(name = "nItemPed", required = false)
116
    private Integer numeroPedidoItemCliente;
117

118
    @Element(name = "nFCI", required = false)
119
    private String numeroControleFCI;
120

121
    @ElementList(entry = "rastro", inline = true, required = false)
122
    private List<NFNotaInfoItemProdutoRastreabilidade> rastros;
123

124
    @Element(name = "infProdNFF", required = false)
125
    private NFNotaInfoItemProdutoInfoDetalhadaProdutoNFF informacaoDetalhadaProdutoNFF;
126

127
    @Element(name = "infProdEmb", required = false)
128
    private NFNotaInfoItemProdutoInfoDetalhadaEmbalagemProdutoNFF informacaoDetalhadaEmbalagemProdutoNFF;
129
    
130
    @Element(name = "veicProd", required = false)
131
    private NFNotaInfoItemProdutoVeiculo veiculo;
132

133
    @Element(name = "med", required = false)
134
    private NFNotaInfoItemProdutoMedicamento medicamento;
135

136
    @ElementList(entry = "arma", inline = true, required = false)
137
    private List<NFNotaInfoItemProdutoArmamento> armamentos;
138

139
    @Element(name = "comb", required = false)
140
    private NFNotaInfoItemProdutoCombustivel combustivel;
141

142
    @Element(name = "nRECOPI", required = false)
143
    private String numeroRECOPI;
144

145
    public void setCodigo(final String codigo) {
146
        DFStringValidador.tamanho60(codigo, "Codigo Produto");
1✔
147
        this.codigo = codigo;
1✔
148
    }
1✔
149

150
    /**
151
     * @deprecated  substituido por {@link #setCodigoDeBarrasGtin()}
152
     */
153
    @Deprecated
154
    public void setCodigoDeBarras(final String codigoDeBarras) {
155
        this.setCodigoDeBarrasGtin(codigoDeBarras);
×
156
    }
×
157

158
    public void setCodigoDeBarrasGtin(final String codigoDeBarrasGtin) {
159
        DFStringValidador.codigoDeBarras(codigoDeBarrasGtin);
1✔
160
        this.codigoDeBarrasGtin = codigoDeBarrasGtin;
1✔
161
    }
1✔
162

163
    public void setCodigoDeBarrasDiferenteGtin(String codigoDeBarrasDiferenteGtin) {
164
        this.codigoDeBarrasDiferenteGtin = codigoDeBarrasDiferenteGtin;
1✔
165
    }
1✔
166

167
    public void setDescricao(final String descricao) {
168
        DFStringValidador.tamanho120(descricao, "Descricao Produto");
1✔
169
        this.descricao = descricao;
1✔
170
    }
1✔
171

172
    public void setNcm(final String ncm) {
173
        DFStringValidador.ncm(ncm);
1✔
174
        this.ncm = ncm;
1✔
175
    }
1✔
176

177
    public void setExtipi(final String extipi) {
178
        DFStringValidador.tamanho2ou3N(extipi, "EX TIPI Produto");
1✔
179
        this.extipi = extipi;
1✔
180
    }
1✔
181

182
    public void setCfop(final String cfop) {
183
        DFStringValidador.exatamente4N(cfop, "CFOP Produto");
1✔
184
        this.cfop = cfop;
1✔
185
    }
1✔
186

187
    public void setUnidadeComercial(final String unidadeComercial) {
188
        DFStringValidador.tamanho6(unidadeComercial, "Unidade Comercial Produto");
1✔
189
        this.unidadeComercial = unidadeComercial;
1✔
190
    }
1✔
191

192
    public void setQuantidadeComercial(final BigDecimal quantidadeComercial) {
193
        this.quantidadeComercial = DFBigDecimalValidador.tamanho15comAte4CasasDecimais(quantidadeComercial, "Qtde Comercial Produto");
1✔
194
    }
1✔
195

196
    public void setValorUnitario(final BigDecimal valorUnitario) {
197
        this.valorUnitario = DFBigDecimalValidador.tamanho21ComAte10CasasDecimais(valorUnitario, "Valor Unitario Produto");
1✔
198
    }
1✔
199

200
    public void setValorTotalBruto(final BigDecimal valorTotalBruto) {
201
        this.valorTotalBruto = DFBigDecimalValidador.tamanho15Com2CasasDecimais(valorTotalBruto, "Valor Total Bruto Produto");
1✔
202
    }
1✔
203

204
    /**
205
     * @deprecated  substituido por {@link #setCodigoDeBarrasGtinTributavel()}
206
     */
207
    @Deprecated
208
    public void setCodigoDeBarrasTributavel(final String codigoDeBarras) {
209
        this.setCodigoDeBarrasGtinTributavel(codigoDeBarras);
×
210
    }
×
211

212
    public void setCodigoDeBarrasGtinTributavel(final String codigoDeBarrasGtinTributavel) {
213
        DFStringValidador.codigoDeBarras(codigoDeBarrasGtinTributavel);
1✔
214
        this.codigoDeBarrasGtinTributavel = codigoDeBarrasGtinTributavel;
1✔
215
    }
1✔
216

217
    public void setCodigoDeBarrasDiferenteGtinTributavel(String codigoDeBarrasDiferenteGtinTributavel) {
218
        this.codigoDeBarrasDiferenteGtinTributavel = codigoDeBarrasDiferenteGtinTributavel;
1✔
219
    }
1✔
220

221
    public void setUnidadeTributavel(final String unidadeTributavel) {
222
        DFStringValidador.tamanho6(unidadeTributavel, "Unidade Tributavel Produto");
1✔
223
        this.unidadeTributavel = unidadeTributavel;
1✔
224
    }
1✔
225

226
    public void setQuantidadeTributavel(final BigDecimal quantidadeTributavel) {
227
        this.quantidadeTributavel = DFBigDecimalValidador.tamanho15comAte4CasasDecimais(quantidadeTributavel, "Qtde Tributavel Produto");
1✔
228
    }
1✔
229

230
    public void setValorUnitarioTributavel(final BigDecimal valorUnitarioTributavel) {
231
        this.valorUnitarioTributavel = DFBigDecimalValidador.tamanho21ComAte10CasasDecimais(valorUnitarioTributavel, "Valor Unitario Tributavel Produto");
1✔
232
    }
1✔
233

234
    public void setValorFrete(final BigDecimal valorFrete) {
235
        this.valorFrete = DFBigDecimalValidador.tamanho15Com2CasasDecimais(valorFrete, "Valor Frete Produto");
1✔
236
    }
1✔
237

238
    public void setValorSeguro(final BigDecimal valorSeguro) {
239
        this.valorSeguro = DFBigDecimalValidador.tamanho15Com2CasasDecimais(valorSeguro, "Valor Seguro Produto");
1✔
240
    }
1✔
241

242
    public void setValorDesconto(final BigDecimal valorDesconto) {
243
        this.valorDesconto = DFBigDecimalValidador.tamanho15Com2CasasDecimais(valorDesconto, "Valor Desconto Produto");
1✔
244
    }
1✔
245

246
    public void setValorOutrasDespesasAcessorias(final BigDecimal valorOutrasDespesasAcessorias) {
247
        this.valorOutrasDespesasAcessorias = DFBigDecimalValidador.tamanho15Com2CasasDecimais(valorOutrasDespesasAcessorias, "Valor Outras Despesas Acessorias Produto");
1✔
248
    }
1✔
249

250
    public void setCompoeValorNota(final NFProdutoCompoeValorNota compoeValorNota) {
251
        this.compoeValorNota = compoeValorNota;
1✔
252
    }
1✔
253
    
254
    public void setIndicadorBemMovelUsado(String indicadorBemMovelUsado) {
NEW
255
                this.indicadorBemMovelUsado = indicadorBemMovelUsado;
×
NEW
256
        }
×
257

258
        public void setDeclaracoesImportacao(final List<NFNotaInfoItemProdutoDeclaracaoImportacao> declaracoesImportacao) {
259
        this.declaracoesImportacao = declaracoesImportacao;
1✔
260
    }
1✔
261

262
    public void setNumeroPedidoCliente(final String numeroPedidoCliente) {
263
        DFStringValidador.tamanho15(numeroPedidoCliente, "Numero Pedido Cliente Produto");
1✔
264
        this.numeroPedidoCliente = numeroPedidoCliente;
1✔
265
    }
1✔
266

267
    public void setNumeroPedidoItemCliente(final Integer numeroPedidoItemCliente) {
268
        DFIntegerValidador.tamanho6(numeroPedidoItemCliente, "Numero Pedido Item Cliente Produto");
1✔
269
        this.numeroPedidoItemCliente = numeroPedidoItemCliente;
1✔
270
    }
1✔
271

272
    public void setNumeroControleFCI(final String numeroControleFCI) {
273
        DFStringValidador.fci(numeroControleFCI);
1✔
274
        this.numeroControleFCI = numeroControleFCI;
1✔
275
    }
1✔
276

277
    public void setVeiculo(final NFNotaInfoItemProdutoVeiculo veiculo) {
278
        if (this.medicamento != null || this.armamentos != null || this.combustivel != null || this.numeroRECOPI != null) {
1✔
279
            throw new IllegalStateException("veiculos, medicamentos, armamentos e combustivel sao mutuamente exclusivos");
1✔
280
        }
281
        this.veiculo = veiculo;
1✔
282
    }
1✔
283

284
    public void setMedicamento(final NFNotaInfoItemProdutoMedicamento medicamento) {
285
        if (this.veiculo != null || this.armamentos != null || this.combustivel != null || this.numeroRECOPI != null) {
1✔
286
            throw new IllegalStateException("veiculos, medicamentos, armamentos, RECOPI e combustivel sao mutuamente exclusivos");
1✔
287
        }
288
        this.medicamento = medicamento;
1✔
289
    }
1✔
290

291
    public void setArmamentos(final List<NFNotaInfoItemProdutoArmamento> armamentos) {
292
        if (this.medicamento != null || this.veiculo != null || this.combustivel != null || this.numeroRECOPI != null) {
1✔
293
            throw new IllegalStateException("veiculos, medicamentos, armamentos, RECOPI e combustivel sao mutuamente exclusivos");
1✔
294
        }
295
        DFListValidador.tamanho500(armamentos, "Armamentos Produto");
1✔
296
        this.armamentos = armamentos;
1✔
297
    }
1✔
298

299
    public void setCombustivel(final NFNotaInfoItemProdutoCombustivel combustivel) {
300
        if (this.medicamento != null || this.armamentos != null || this.veiculo != null || this.numeroRECOPI != null) {
1✔
301
            throw new IllegalStateException("veiculos, medicamentos, armamentos, RECOPI e combustivel sao mutuamente exclusivos");
1✔
302
        }
303
        this.combustivel = combustivel;
1✔
304
    }
1✔
305

306
    public void setNomeclaturaValorAduaneiroEstatistica(final List<String> nomeclaturaValorAduaneiroEstatistica) {
307
        for (final String nomeclatra : nomeclaturaValorAduaneiroEstatistica) {
1✔
308
            DFStringValidador.nve(nomeclatra);
1✔
309
        }
1✔
310
        this.nomeclaturaValorAduaneiroEstatistica = nomeclaturaValorAduaneiroEstatistica;
1✔
311
    }
1✔
312

313
    public void setCodigoEspecificadorSituacaoTributaria(final String codigoEspecificadorSituacaoTributaria) {
314
        DFStringValidador.exatamente7N(codigoEspecificadorSituacaoTributaria, "CEST Produto");
1✔
315
        this.codigoEspecificadorSituacaoTributaria = codigoEspecificadorSituacaoTributaria;
1✔
316
    }
1✔
317

318
    public void setDetalhesExportacao(final List<NFNotaInfoItemDetalheExportacao> detalhesExportacao) {
319
        DFListValidador.tamanho500(detalhesExportacao, "Detalhes Exportacao Produto");
1✔
320
        this.detalhesExportacao = detalhesExportacao;
1✔
321
    }
1✔
322

323
    public void setNumeroRECOPI(final String numeroRECOPI) {
324
        if (this.medicamento != null || this.armamentos != null || this.veiculo != null || this.combustivel != null) {
1✔
325
            throw new IllegalStateException("veiculos, medicamentos, armamentos, RECOPI e combustivel sao mutuamente exclusivos");
1✔
326
        }
327
        DFStringValidador.exatamente20N(numeroRECOPI, "Numero RECOPI Produto");
1✔
328
        this.numeroRECOPI = numeroRECOPI;
1✔
329
    }
1✔
330

331
    public void setRastros(final List<NFNotaInfoItemProdutoRastreabilidade> rastros) {
332
        DFListValidador.tamanho500(rastros, "Rastreios do produto");
1✔
333
        this.rastros = rastros;
1✔
334
    }
1✔
335

336
    public void setIndicadorEscalaRelevante(final NFIndicadorEscalaRelevante indicadorEscalaRelevante) {
337
        this.indicadorEscalaRelevante = indicadorEscalaRelevante;
×
338
    }
×
339

340
    public void setCnpjFabricanteMercadoria(final String cnpjFabricanteMercadoria) {
341
        this.cnpjFabricanteMercadoria = cnpjFabricanteMercadoria;
×
342
    }
×
343

344
    public void setCodigoBeneficioFiscalUF(final String codigoBeneficioFiscalUF) {
345
        this.codigoBeneficioFiscalUF = DFStringValidador.validador(codigoBeneficioFiscalUF, "Codigo Beneficio Fiscal da UF", 10, false, false);
×
346
    }
×
347

348
    public void setGrupoCreditoPresumido(
349
        final NFNotaInfoItemProdutoGrupoCreditoPresumido grupoCreditoPresumido) {
350
        this.grupoCreditoPresumido = grupoCreditoPresumido;
1✔
351
    }
1✔
352

353
    public String getCodigo() {
354
        return this.codigo;
1✔
355
    }
356

357
    public String getCodigoDeBarrasGtin() {
358
        return this.codigoDeBarrasGtin == null ? "SEM GTIN" : this.codigoDeBarrasGtin;
1✔
359
    }
360

361
    /**
362
     * @deprecated  substituido por {@link #getCodigoDeBarrasGtin()}
363
     */
364
    @Deprecated
365
    public String getCodigoDeBarras() {
366
        return this.getCodigoDeBarrasGtin();
×
367
    }
368

369
    public String getCodigoDeBarrasDiferenteGtin() {
370
        return codigoDeBarrasDiferenteGtin;
×
371
    }
372

373
    public String getDescricao() {
374
        return this.descricao;
1✔
375
    }
376

377
    public String getNcm() {
378
        return this.ncm;
1✔
379
    }
380

381
    public List<String> getNomeclaturaValorAduaneiroEstatistica() {
382
        return this.nomeclaturaValorAduaneiroEstatistica;
1✔
383
    }
384

385
    public String getCodigoEspecificadorSituacaoTributaria() {
386
        return this.codigoEspecificadorSituacaoTributaria;
1✔
387
    }
388

389
    public String getExtipi() {
390
        return this.extipi;
1✔
391
    }
392

393
    public String getCfop() {
394
        return this.cfop;
1✔
395
    }
396

397
    public String getUnidadeComercial() {
398
        return this.unidadeComercial;
1✔
399
    }
400

401
    public String getQuantidadeComercial() {
402
        return this.quantidadeComercial;
1✔
403
    }
404

405
    public String getValorUnitario() {
406
        return this.valorUnitario;
1✔
407
    }
408

409
    public String getValorTotalBruto() {
410
        return this.valorTotalBruto;
1✔
411
    }
412

413
    /**
414
     * @deprecated  substituido por {@link #getCodigoDeBarrasGtinTributavel()}
415
     */
416
    @Deprecated
417
    public String getCodigoDeBarrasTributavel() {
418
        return this.getCodigoDeBarrasGtinTributavel();
×
419
    }
420

421
    public String getCodigoDeBarrasGtinTributavel() {
422
        return this.codigoDeBarrasGtinTributavel == null ? "SEM GTIN" : this.codigoDeBarrasGtinTributavel;
1✔
423
    }
424

425
    public String getCodigoDeBarrasDiferenteGtinTributavel() {
426
        return codigoDeBarrasDiferenteGtinTributavel;
×
427
    }
428

429
    public String getUnidadeTributavel() {
430
        return this.unidadeTributavel;
1✔
431
    }
432

433
    public String getQuantidadeTributavel() {
434
        return this.quantidadeTributavel;
1✔
435
    }
436

437
    public String getValorUnitarioTributavel() {
438
        return this.valorUnitarioTributavel;
1✔
439
    }
440

441
    public String getValorFrete() {
442
        return this.valorFrete;
1✔
443
    }
444

445
    public String getValorSeguro() {
446
        return this.valorSeguro;
1✔
447
    }
448

449
    public String getValorDesconto() {
450
        return this.valorDesconto;
1✔
451
    }
452

453
    public String getValorOutrasDespesasAcessorias() {
454
        return this.valorOutrasDespesasAcessorias;
1✔
455
    }
456

457
    public NFProdutoCompoeValorNota getCompoeValorNota() {
458
        return this.compoeValorNota;
1✔
459
    }
460

461
    public String getIndicadorBemMovelUsado() {
NEW
462
                return indicadorBemMovelUsado;
×
463
        }
464

465
        public List<NFNotaInfoItemProdutoDeclaracaoImportacao> getDeclaracoesImportacao() {
466
        return this.declaracoesImportacao;
1✔
467
    }
468

469
    public List<NFNotaInfoItemDetalheExportacao> getDetalhesExportacao() {
470
        return this.detalhesExportacao;
1✔
471
    }
472

473
    public String getNumeroPedidoCliente() {
474
        return this.numeroPedidoCliente;
1✔
475
    }
476

477
    public Integer getNumeroPedidoItemCliente() {
478
        return this.numeroPedidoItemCliente;
1✔
479
    }
480

481
    public String getNumeroControleFCI() {
482
        return this.numeroControleFCI;
1✔
483
    }
484

485
    public NFNotaInfoItemProdutoVeiculo getVeiculo() {
486
        return this.veiculo;
1✔
487
    }
488

489
    public NFNotaInfoItemProdutoMedicamento getMedicamento() {
490
        return this.medicamento;
1✔
491
    }
492

493
    public List<NFNotaInfoItemProdutoArmamento> getArmamentos() {
494
        return this.armamentos;
1✔
495
    }
496

497
    public NFNotaInfoItemProdutoCombustivel getCombustivel() {
498
        return this.combustivel;
1✔
499
    }
500

501
    public String getNumeroRECOPI() {
502
        return this.numeroRECOPI;
1✔
503
    }
504

505
    public String getCnpjFabricanteMercadoria() {
506
        return this.cnpjFabricanteMercadoria;
×
507
    }
508

509
    public String getCodigoBeneficioFiscalUF() {
510
        return this.codigoBeneficioFiscalUF;
×
511
    }
512

513
    public NFIndicadorEscalaRelevante getIndicadorEscalaRelevante() {
514
        return this.indicadorEscalaRelevante;
×
515
    }
516

517
    public List<NFNotaInfoItemProdutoRastreabilidade> getRastros() {
518
        return this.rastros;
×
519
    }
520

521
    public NFNotaInfoItemProdutoGrupoCreditoPresumido getGrupoCreditoPresumido() {
522
        return grupoCreditoPresumido;
×
523
    }
524
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc