-
Notifications
You must be signed in to change notification settings - Fork 0
/
produto.java
107 lines (86 loc) · 2.45 KB
/
produto.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package model;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
public class Produto {
private int id;
private String descricao;
private float preco;
private int quantidade;
private LocalDateTime dataFabricacao;
private LocalDate dataValidade;
public Produto() {
id = -1;
descricao = "";
preco = 0.00F;
quantidade = 0;
dataFabricacao = LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS);
dataValidade = LocalDate.now().plusMonths(6); // o default é uma validade de 6 meses.
}
public Produto(int id, String descricao, float preco, int quantidade, LocalDateTime fabricacao, LocalDate v) {
setId(id);
setDescricao(descricao);
setPreco(preco);
setQuantidade(quantidade);
setDataFabricacao(fabricacao);
setDataValidade(v);
}
public int getID() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public float getPreco() {
return preco;
}
public void setPreco(float preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
public LocalDate getDataValidade() {
return dataValidade;
}
public LocalDateTime getDataFabricacao() {
return dataFabricacao;
}
public void setDataFabricacao(LocalDateTime dataFabricacao) {
// Pega a Data Atual
LocalDateTime agora = LocalDateTime.now();
// Garante que a data de fabricação não pode ser futura
if (agora.compareTo(dataFabricacao) >= 0)
this.dataFabricacao = dataFabricacao;
}
public void setDataValidade(LocalDate dataValidade) {
// a data de fabricação deve ser anterior é data de validade.
if (getDataFabricacao().isBefore(dataValidade.atStartOfDay()))
this.dataValidade = dataValidade;
}
public boolean emValidade() {
return LocalDateTime.now().isBefore(this.getDataValidade().atTime(23, 59));
}
/**
* Método sobreposto da classe Object. É executado quando um objeto precisa
* ser exibido na forma de String.
*/
@Override
public String toString() {
return "Produto: " + descricao + " Preço: R$" + preco + " Quantidade.: " + quantidade + " Fabricação: "
+ dataFabricacao + " Data de Validade: " + dataValidade;
}
@Override
public boolean equals(Object obj) {
return (this.getID() == ((Produto) obj).getID());
}
}