Rev 106 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
package br.com.ec.domain.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.hibernate.annotations.ForeignKey;
import org.hibernate.validator.constraints.NotEmpty;
import br.com.ec.core.interfaces.Alterar;
import br.com.ec.core.interfaces.Cadastrar;
import br.com.ec.core.util.VerificadorUtil;
@
Entity
@Table
(name=
"sec_linha_vivo", schema=
"sc_sec")
public class LinhaVivo
implements Serializable {
private static final long serialVersionUID = 1L
;
private Long sequencial
;
private String numero
;
private Cliente cliente
;
private ProdutoVivo planoAtual
;
private Date dataAtualizacao
;
private Set<VendaVivo
> listaVendasVivo
;
public LinhaVivo
() {
listaVendasVivo =
new HashSet<VendaVivo
>();
}
@Id
@SequenceGenerator
(name =
"sq_linhavivo")
@GeneratedValue
(strategy = GenerationType.
IDENTITY)
@Column
(name=
"seq_linha_vivo", nullable=
false)
public Long getSequencial
() {
return sequencial
;
}
public void setSequencial
(Long sequencial
) {
this.
sequencial = sequencial
;
}
@Column
(name=
"dsc_numero")
@Size
(max =
12, message =
"Limite de caracteres ultrapassado: Número")
@NotNull
(message =
"Informe o número", groups =
{Cadastrar.
class, Alterar.
class})
@
NotEmpty(message =
"Informe o número", groups =
{Cadastrar.
class, Alterar.
class})
public String getNumero
() {
return numero
;
}
public void setNumero
(String numero
) {
this.
numero = numero
;
}
@ManyToOne
@ForeignKey
(name=
"fk_linhavivo_cliente")
@JoinColumn
(name =
"seq_cliente")
@NotNull
(message =
"Informe o cliente da linha", groups =
{Cadastrar.
class/*, Alterar.class*/})
public Cliente getCliente
() {
return cliente
;
}
public void setCliente
(Cliente cliente
) {
this.
cliente = cliente
;
}
@ManyToOne
@ForeignKey
(name=
"fk_linhavivo_produtovivo")
@JoinColumn
(name =
"seq_produto_vivo", nullable =
true)
public ProdutoVivo getPlanoAtual
() {
return planoAtual
;
}
public void setPlanoAtual
(ProdutoVivo planoAtual
) {
this.
planoAtual = planoAtual
;
}
@Column
(name=
"dth_atualizacao")
@NotNull
(message =
"Informe a data da atualização", groups =
{Cadastrar.
class, Alterar.
class})
public Date getDataAtualizacao
() {
return dataAtualizacao
;
}
public void setDataAtualizacao
(Date dataAtualizacao
) {
this.
dataAtualizacao = dataAtualizacao
;
}
@OneToMany
(mappedBy=
"linhaVivo", fetch=FetchType.
LAZY, orphanRemoval=
false)
public Set<VendaVivo
> getListaVendasVivo
() {
return listaVendasVivo
;
}
public void setListaVendasVivo
(Set<VendaVivo
> listaVendasVivo
) {
this.
listaVendasVivo = listaVendasVivo
;
}
@
Override
public int hashCode
() {
final int prime =
31;
int result =
1;
result = prime
* result +
((sequencial ==
null) ? 0 : sequencial.
hashCode());
return result
;
}
@
Override
public boolean equals
(Object obj
) {
if (this == obj
)
return true;
if (obj ==
null)
return false;
if (getClass
() != obj.
getClass())
return false;
LinhaVivo other =
(LinhaVivo
) obj
;
if (sequencial ==
null) {
if (other.
sequencial !=
null)
return false;
} else if (!sequencial.
equals(other.
sequencial))
return false;
return true;
}
@Transient
public List<VendaVivo
> getVendasVivoOrdenadas
() {
List<VendaVivo
> vendasVivoOrdenadas =
null;
if (VerificadorUtil.
naoEstaNuloOuVazio(getListaVendasVivo
())) {
vendasVivoOrdenadas =
new ArrayList<VendaVivo
>(getListaVendasVivo
());
Collections.
sort(vendasVivoOrdenadas,
new Comparator<VendaVivo
>() {
public int compare
(VendaVivo p1, VendaVivo p2
) {
return p2.
getDataVenda().
compareTo(p1.
getDataVenda());
};
});
}
return vendasVivoOrdenadas
;
}
@Transient
public String getNomeDoCliente
() {
return VerificadorUtil.
naoEstaNulo(getCliente
())? getCliente
().
getNome() :
"";
}
@Transient
public String getCpfDoCliente
() {
return VerificadorUtil.
naoEstaNulo(getCliente
())? getCliente
().
getCpfCnpj() :
"";
}
@Transient
public String getCpfCnpjFormatadoDoCliente
() {
return VerificadorUtil.
naoEstaNulo(getCliente
())? getCliente
().
getCpfCnpjFormatado() :
"";
}
}