Rev 259 |
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.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.Size;
import org.hibernate.annotations.ForeignKey;
import br.com.ec.core.util.StringUtil;
import br.com.ec.core.util.VerificadorUtil;
@
Entity
@Table
(name=
"sec_lancamento", schema=
"sc_sec")
public class Lancamento
implements Serializable,
Cloneable {
private static final long serialVersionUID = 1L
;
private Long sequencial
;
private Venda venda
;
private Produto produto
;
private Double valorCompra
;
private Double valorVarejo
;
private Double valorVenda
;
private String observacao
;
private String observacaoNotaFiscal
;
private Date dataValidacaoVivo
;
private Date dataBaixaVivo
;
private Double valorRecebidoVivo
;
private Date dataRecebidoVivo
;
private Boolean ativo
;
// private Cupom cupom;
private Integer quantidadeLancamento =
1;
private String observacaoIMEI1
;
private String observacaoIMEI2
;
private String observacaoRestaurante =
"COMPLETO";
private String opcaoRestaurante =
"";
private List<String> opcoesRestaurante =
new ArrayList<String>();
@Id
@SequenceGenerator
(name =
"sq_lancamento")
@GeneratedValue
(strategy = GenerationType.
IDENTITY)
@Column
(name=
"seq_lancamento", nullable=
false)
public Long getSequencial
() {
return sequencial
;
}
public void setSequencial
(Long sequencial
) {
this.
sequencial = sequencial
;
}
@ManyToOne
@ForeignKey
(name =
"fk_lancamento_venda")
@JoinColumn
(name=
"seq_venda", referencedColumnName=
"seq_venda", insertable=
true, updatable=
false)
public Venda getVenda
() {
return venda
;
}
public void setVenda
(Venda venda
) {
this.
venda = venda
;
}
@ManyToOne
@ForeignKey
(name =
"fk_lancamento_produto")
@JoinColumn
(name=
"seq_produto", referencedColumnName=
"seq_produto", insertable=
true, updatable=
false)
public Produto getProduto
() {
return produto
;
}
public void setProduto
(Produto produto
) {
this.
produto = produto
;
}
@Column
(name=
"val_compra")
public Double getValorCompra
() {
return valorCompra
;
}
public void setValorCompra
(Double valorCompra
) {
this.
valorCompra = valorCompra
;
}
@Column
(name=
"val_varejo")
public Double getValorVarejo
() {
return valorVarejo
;
}
public void setValorVarejo
(Double valorVarejo
) {
this.
valorVarejo = valorVarejo
;
}
@Column
(name=
"val_venda")
public Double getValorVenda
() {
return valorVenda
;
}
public void setValorVenda
(Double valorVenda
) {
this.
valorVenda = valorVenda
;
}
@Column
(name=
"dsc_observacao")
@Size
(max =
1000, message =
"Limite de caracteres ultrapassado: Observação")
public String getObservacao
() {
return observacao
;
}
public void setObservacao
(String observacao
) {
this.
observacao = StringUtil.
setarUpperCaseComTrim(observacao
);
}
@Column
(name=
"dsc_observacao_notafiscal")
@Size
(max =
200, message =
"Limite de caracteres ultrapassado: Observação da Nota Fiscal")
public String getObservacaoNotaFiscal
() {
return observacaoNotaFiscal
;
}
public void setObservacaoNotaFiscal
(String observacaoNotaFiscal
) {
this.
observacaoNotaFiscal = StringUtil.
setarUpperCaseComTrim(observacaoNotaFiscal
);
}
@Column
(name=
"dat_validacao_vivo")
public Date getDataValidacaoVivo
() {
return dataValidacaoVivo
;
}
public void setDataValidacaoVivo
(Date dataValidacaoVivo
) {
this.
dataValidacaoVivo = dataValidacaoVivo
;
}
@Column
(name=
"dat_baixa_vivo")
public Date getDataBaixaVivo
() {
return dataBaixaVivo
;
}
public void setDataBaixaVivo
(Date dataBaixaVivo
) {
this.
dataBaixaVivo = dataBaixaVivo
;
}
@Column
(name=
"val_recebido_vivo")
public Double getValorRecebidoVivo
() {
return valorRecebidoVivo
;
}
public void setValorRecebidoVivo
(Double valorRecebidoVivo
) {
this.
valorRecebidoVivo = valorRecebidoVivo
;
}
@Column
(name=
"dat_recebido_vivo")
public Date getDataRecebidoVivo
() {
return dataRecebidoVivo
;
}
public void setDataRecebidoVivo
(Date dataRecebidoVivo
) {
this.
dataRecebidoVivo = dataRecebidoVivo
;
}
@Column
(name=
"ind_ativo", nullable=
false)
public Boolean getAtivo
() {
return ativo
;
}
public void setAtivo
(Boolean ativo
) {
this.
ativo = ativo
;
}
/*
@ManyToOne
@ForeignKey(name="fk_lancamento_cupom")
@JoinColumn(name = "seq_cupom", nullable=true)
public Cupom getCupom() {
return cupom;
}
public void setCupom(Cupom cupom) {
this.cupom = cupom;
}
*/
@Transient
public Integer getQuantidadeLancamento
() {
return quantidadeLancamento
;
}
public void setQuantidadeLancamento
(Integer quantidadeLancamento
) {
this.
quantidadeLancamento = quantidadeLancamento
;
}
@Transient
public String getObservacaoIMEI1
() {
return observacaoIMEI1
;
}
public void setObservacaoIMEI1
(String observacaoIMEI1
) {
this.
observacaoIMEI1 = observacaoIMEI1
;
}
@Transient
public String getObservacaoIMEI2
() {
return observacaoIMEI2
;
}
public void setObservacaoIMEI2
(String observacaoIMEI2
) {
this.
observacaoIMEI2 = observacaoIMEI2
;
}
@Transient
public String getObservacaoRestaurante
() {
return observacaoRestaurante
;
}
public void setObservacaoRestaurante
(String observacaoRestaurante
) {
this.
observacaoRestaurante = observacaoRestaurante
;
}
@Transient
public String getOpcaoRestaurante
() {
return opcaoRestaurante
;
}
public void setOpcaoRestaurante
(String opcaoRestaurante
) {
this.
opcaoRestaurante = opcaoRestaurante
;
}
@Transient
public List<String> getOpcoesRestaurante
() {
return opcoesRestaurante
;
}
public void setOpcoesRestaurante
(List<String> opcoesRestaurante
) {
this.
opcoesRestaurante = opcoesRestaurante
;
}
@
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;
Lancamento other =
(Lancamento
) obj
;
if (sequencial ==
null) {
if (other.
sequencial !=
null) {
return false;
} else {return false;}
} else if (!sequencial.
equals(other.
sequencial))
return false;
return true;
}
@
Override
public Lancamento clone
() throws CloneNotSupportedException {
return (Lancamento
) super.
clone();
}
/*
@Transient
public void preencher(Produto produtoSelecionado) {
this.setProduto(produtoSelecionado);
this.setValorCompra(produtoSelecionado.getValorCompra());
if (produtoSelecionado.getProdutoEmPromocao()) {
this.setValorVarejo(produtoSelecionado.getValorVarejoPromocional());
this.setValorVenda(produtoSelecionado.getValorVarejoPromocional());
} else {
this.setValorVarejo(produtoSelecionado.getValorVarejo());
this.setValorVenda(produtoSelecionado.getValorVarejo());
}
}
@Transient
public void preencherComPrecoPopular(Produto produtoSelecionado) {
this.setProduto(produtoSelecionado);
this.setValorCompra(produtoSelecionado.getValorCompra());
this.setValorVarejo(produtoSelecionado.getValorVarejoPopular());
this.setValorVenda(produtoSelecionado.getValorVarejoPopular());
}
@Transient
public void preencherComPrecoAtacado(Produto produtoSelecionado) {
this.setProduto(produtoSelecionado);
this.setValorCompra(produtoSelecionado.getValorCompra());
this.setValorVarejo(produtoSelecionado.getValorAtacado());
this.setValorVenda(produtoSelecionado.getValorAtacado());
}
@Transient
public String tipoDoProduto() {
return VerificadorUtil.naoEstaNulo(this.getProduto()) ? this.getProduto().getTipo() : "";
}
*/
@Transient
public Double valorDescontos
() {
if (VerificadorUtil.
estaNulo(getValorVarejo
())) {
return getValorVenda
();
}
return getValorVarejo
() - getValorVenda
();
}
@Transient
public String valorPercentualDescontos
() {
if (VerificadorUtil.
estaNulo(getValorVarejo
())) {
return "0%";
}
return StringUtil.
formatarPercentual((getValorVarejo
() - getValorVenda
()) / getValorVarejo
());
}
@Transient
public Boolean comDescontos
() {
if (VerificadorUtil.
naoEstaNulo(getValorVarejo
()) && VerificadorUtil.
naoEstaNulo(getValorVenda
())) {
return getValorVarejo
() > getValorVenda
();
}
return false;
}
/*
@Transient
public Boolean comDescontosAcimaDoPermitido() {
if (VerificadorUtil.naoEstaNulo(getValorVarejo()) && VerificadorUtil.naoEstaNulo(getValorVenda())) {
if (getProduto().getValorVarejo() < 100) {
Double valorDesconto = getValorVarejo() - getValorVenda();
return valorDesconto > ConstantesSEC.Venda.LIMITE_DESCONTO_ABAIXO_100;
} else {
Double percentualDesconto = 100 - (getValorVenda()*100/getValorVarejo());
return percentualDesconto > ConstantesSEC.Venda.LIMITE_PERCENTUAL_DESCONTO_ACIMA_100;
}
}
return false;
}
@Transient
public String getDescricaoNotaFiscal() {
StringBuilder descricaoCompleta = new StringBuilder();
descricaoCompleta.append(this.getProduto().getDescricaoNotaFiscal(this.getObservacaoNotaFiscal()));
return descricaoCompleta.toString().trim();
}
@Transient
public String getDescricaoComanda() {
StringBuilder descricaoCompleta = new StringBuilder();
descricaoCompleta.append(this.getProduto().getDescricaoNotaFiscal(this.getObservacao()));
return descricaoCompleta.toString().trim();
}
@Transient
public Long getSequencialDoCupom() {
return VerificadorUtil.naoEstaNulo(getCupom())? getCupom().getSequencial() : null;
}
*/
}