package br.com.ec.domain.dto;
import javax.persistence.Transient;
import br.com.ec.controller.util.UtilBean;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.Produto;
import br.com.ec.domain.model.Usuario;
import br.com.ec.domain.model.tipos.TipoProduto;
import br.com.ec.domain.util.CodigoBarraEAN;
public class TransferenciaProdutoDTO
{
private Long sequencialTransferencia
;
private Long sequencialProduto
;
private Integer quantidade
;
private Integer estoqueAtual =
0;
private String codigoProduto
;
private String descricaoCompletaProduto
;
private String generoProduto
;
private String tipoProduto
;
private Boolean recebido
;
private String observacao
;
private String nomeUsuarioEntrada
;
private String nomeUsuarioSaida
;
private Usuario usuarioEntrada
;
private Boolean indicadorAlterarEstoque
;
public Long getSequencialTransferencia
() {
return sequencialTransferencia
;
}
public void setSequencialTransferencia
(Long sequencialTransferencia
) {
this.
sequencialTransferencia = sequencialTransferencia
;
}
public Long getSequencialProduto
() {
return sequencialProduto
;
}
public void setSequencialProduto
(Long sequencialProduto
) {
this.
sequencialProduto = sequencialProduto
;
}
public Integer getQuantidade
() {
return quantidade
;
}
public void setQuantidade
(Integer quantidade
) {
this.
quantidade = quantidade
;
}
public Integer getEstoqueAtual
() {
return estoqueAtual
;
}
public void setEstoqueAtual
(Integer estoqueAtual
) {
this.
estoqueAtual = estoqueAtual
;
}
public String getCodigoProduto
() {
return codigoProduto
;
}
public void setCodigoProduto
(String codigoProduto
) {
this.
codigoProduto = codigoProduto
;
}
public String getDescricaoCompletaProduto
() {
return descricaoCompletaProduto
;
}
public void setDescricaoCompletaProduto
(String descricaoCompletaProduto
) {
this.
descricaoCompletaProduto = descricaoCompletaProduto
;
}
public String getGeneroProduto
() {
return generoProduto
;
}
public void setGeneroProduto
(String generoProduto
) {
this.
generoProduto = generoProduto
;
}
public String getTipoProduto
() {
return tipoProduto
;
}
public void setTipoProduto
(String tipoProduto
) {
this.
tipoProduto = tipoProduto
;
}
public Boolean ehTipoProduto
(String tipoProduto
) {
return TipoProduto.
parse(tipoProduto
).
getValor().
equals(getTipoProduto
());
}
public Boolean getRecebido
() {
return recebido
;
}
public void setRecebido
(Boolean recebido
) {
this.
recebido = recebido
;
}
public String getObservacao
() {
return observacao
;
}
public void setObservacao
(String observacao
) {
this.
observacao = observacao
;
}
public Boolean contemAlertas
() {
return VerificadorUtil.
naoEstaNuloOuVazio(getObservacao
());
}
public String getNomeUsuarioEntrada
() {
return nomeUsuarioEntrada
;
}
public void setNomeUsuarioEntrada
(String nomeUsuarioEntrada
) {
this.
nomeUsuarioEntrada = nomeUsuarioEntrada
;
}
public String getNomeUsuarioSaida
() {
return nomeUsuarioSaida
;
}
public void setNomeUsuarioSaida
(String nomeUsuarioSaida
) {
this.
nomeUsuarioSaida = nomeUsuarioSaida
;
}
public Usuario getUsuarioEntrada
() {
return usuarioEntrada
;
}
public void setUsuarioEntrada
(Usuario usuarioEntrada
) {
this.
usuarioEntrada = usuarioEntrada
;
}
public Boolean getIndicadorAlterarEstoque
() {
return indicadorAlterarEstoque
;
}
public void setIndicadorAlterarEstoque
(Boolean indicadorAlterarEstoque
) {
this.
indicadorAlterarEstoque = indicadorAlterarEstoque
;
}
@Transient
public String getCodigoProdutoPadrao
() {
try {
return VerificadorUtil.
naoEstaNulo(codigoProduto
) ? String.
format("%06d",
new Long(codigoProduto.
trim())) :
"";
} catch (Exception e
) {
return "";
}
}
@Transient
public Boolean verificarSeCodigoEhIgual
(String codigoProduto
) {
if (CodigoBarraEAN.
validarCodigoBarras(codigoProduto
)) {
return this.
getCodigoProdutoPadrao().
equals(CodigoBarraEAN.
retornarCodigoDoCodigoBarras(codigoProduto
));
} else {
return this.
getCodigoProdutoPadrao().
equals(UtilBean.
padraoCodigoProduto(codigoProduto
));
}
}
@
Override
public int hashCode
() {
final int prime =
31;
int result =
1;
result = prime
* result +
((sequencialProduto ==
null) ? 0 : sequencialProduto.
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;
TransferenciaProdutoDTO other =
(TransferenciaProdutoDTO
) obj
;
if (sequencialProduto ==
null) {
if (other.
sequencialProduto !=
null)
return false;
} else if (!sequencialProduto.
equals(other.
sequencialProduto))
return false;
return true;
}
public Produto retornarProdutoParaFoto
() {
Produto produto =
new Produto
();
produto.
setSequencial(getSequencialProduto
());
produto.
setCodigo(getCodigoProduto
());
produto.
setDescricao(getDescricaoCompletaProduto
());
produto.
setGenero(getGeneroProduto
());
produto.
setTipo(getTipoProduto
());
return produto
;
}
}