package br.com.ec.domain.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.Size;
import br.com.ec.core.util.StringUtil;
@
Entity
@Table
(name=
"sec_forma_pagamento", schema=
"sc_sec")
public class FormaPagamento
implements Serializable {
private static final long serialVersionUID = 1L
;
private static final long FORMAPAGAMENTO_DINHEIRO =
1;
private static final long FORMAPAGAMENTO_DEBITO =
2;
private static final long FORMAPAGAMENTO_PAGSEGURO =
6;
private static final long FORMAPAGAMENTO_CUPOM =
16;
private static final long FORMAPAGAMENTO_OUTROS =
17;
private static final long FORMAPAGAMENTO_1X =
3;
private static final long FORMAPAGAMENTO_2X =
4;
private static final long FORMAPAGAMENTO_3X =
5;
private static final long FORMAPAGAMENTO_4X =
7;
private static final long FORMAPAGAMENTO_5X =
8;
private static final long FORMAPAGAMENTO_6X =
9;
private static final long FORMAPAGAMENTO_7X =
10;
private static final long FORMAPAGAMENTO_8X =
11;
private static final long FORMAPAGAMENTO_9X =
12;
private static final long FORMAPAGAMENTO_10X =
13;
private static final long FORMAPAGAMENTO_11X =
14;
private static final long FORMAPAGAMENTO_12X =
15;
private static final long FORMAPAGAMENTO_13X =
19;
private static final long FORMAPAGAMENTO_14X =
20;
private static final long FORMAPAGAMENTO_15X =
21;
private static final long FORMAPAGAMENTO_PIX =
18;
private Long codigo
;
private String descricao
;
private Integer numeroOrdem
;
private Boolean ativo
;
public FormaPagamento
() {}
public FormaPagamento
(Long codigo
) {
this.
codigo = codigo
;
}
@Id
@Column
(name=
"cod_formapagament", nullable=
false)
public Long getCodigo
() {
return codigo
;
}
public void setCodigo
(Long codigo
) {
this.
codigo = codigo
;
}
@Column
(name=
"dsc_formapagament")
@Size
(max =
120, message =
"Limite de caracteres ultrapassado: Descrição")
public String getDescricao
() {
return descricao
;
}
public void setDescricao
(String descricao
) {
this.
descricao = StringUtil.
setarUpperCaseComTrim(descricao
);
}
@Column
(name=
"num_ordem")
public Integer getNumeroOrdem
() {
return numeroOrdem
;
}
public void setNumeroOrdem
(Integer numeroOrdem
) {
this.
numeroOrdem = numeroOrdem
;
}
@Column
(name=
"ind_ativo", nullable=
false)
public Boolean getAtivo
() {
return ativo
;
}
public void setAtivo
(Boolean ativo
) {
this.
ativo = ativo
;
}
@Transient
public boolean formaPagamentoEhDinheiro
() {
return getCodigo
().
equals(FORMAPAGAMENTO_DINHEIRO
);
}
@Transient
public boolean formaPagamentoEhCartao
() {
return !(formaPagamentoEhDinheiro
() || formaPagamentoEhCupom
() || formaPagamentoEhOutros
());
}
@Transient
public boolean formaPagamentoEhDebito
() {
return getCodigo
().
equals(FORMAPAGAMENTO_DEBITO
);
}
@Transient
public boolean formaPagamentoEhPagseguro
() {
return getCodigo
().
equals(FORMAPAGAMENTO_PAGSEGURO
);
}
@Transient
public boolean formaPagamentoEhPix
() {
return getCodigo
().
equals(FORMAPAGAMENTO_PIX
);
}
@Transient
public boolean formaPagamentoEhCredito
() {
return !(formaPagamentoEhDinheiro
() || formaPagamentoEhDebito
() || formaPagamentoEhPagseguro
() || formaPagamentoEhCupom
() || formaPagamentoEhOutros
() || formaPagamentoEhPix
());
}
@Transient
public boolean formaPagamentoEhCreditoDividido
() {
return formaPagamentoEhCredito
() && !formaPagamentoEh1x
();
}
@Transient
public boolean formaPagamentoEh1x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_1X
);
}
@Transient
public boolean formaPagamentoEh2x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_2X
);
}
@Transient
public boolean formaPagamentoEh3x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_3X
);
}
@Transient
public boolean formaPagamentoEh4x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_4X
);
}
@Transient
public boolean formaPagamentoEh5x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_5X
);
}
@Transient
public boolean formaPagamentoEh6x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_6X
);
}
@Transient
public boolean formaPagamentoEh7x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_7X
);
}
@Transient
public boolean formaPagamentoEh8x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_8X
);
}
@Transient
public boolean formaPagamentoEh9x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_9X
);
}
@Transient
public boolean formaPagamentoEh10x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_10X
);
}
@Transient
public boolean formaPagamentoEh11x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_11X
);
}
@Transient
public boolean formaPagamentoEh12x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_12X
);
}
@Transient
public boolean formaPagamentoEh13x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_13X
);
}
@Transient
public boolean formaPagamentoEh14x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_14X
);
}
@Transient
public boolean formaPagamentoEh15x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_15X
);
}
@Transient
public boolean formaPagamentoEhCupom
() {
return getCodigo
().
equals(FORMAPAGAMENTO_CUPOM
);
}
@Transient
public boolean formaPagamentoEhOutros
() {
return getCodigo
().
equals(FORMAPAGAMENTO_OUTROS
);
}
@Transient
public static Long recuperarCodigoDaFormaDePagamento
(String parcela
) {
if (parcela.
equals("1")) {
return FORMAPAGAMENTO_1X
;
} else if (parcela.
equals("2")) {
return FORMAPAGAMENTO_2X
;
} else if (parcela.
equals("3")) {
return FORMAPAGAMENTO_3X
;
} else if (parcela.
equals("4")) {
return FORMAPAGAMENTO_4X
;
} else if (parcela.
equals("5")) {
return FORMAPAGAMENTO_5X
;
} else if (parcela.
equals("6")) {
return FORMAPAGAMENTO_6X
;
} else if (parcela.
equals("7")) {
return FORMAPAGAMENTO_7X
;
} else if (parcela.
equals("8")) {
return FORMAPAGAMENTO_8X
;
} else if (parcela.
equals("9")) {
return FORMAPAGAMENTO_9X
;
} else if (parcela.
equals("10")) {
return FORMAPAGAMENTO_10X
;
} else if (parcela.
equals("11")) {
return FORMAPAGAMENTO_11X
;
} else if (parcela.
equals("12")) {
return FORMAPAGAMENTO_12X
;
} else if (parcela.
equals("13")) {
return FORMAPAGAMENTO_13X
;
} else if (parcela.
equals("14")) {
return FORMAPAGAMENTO_14X
;
} else if (parcela.
equals("15")) {
return FORMAPAGAMENTO_15X
;
}
return null;
}
@
Override
public int hashCode
() {
final int prime =
31;
int result =
1;
result = prime
* result +
((codigo ==
null) ? 0 : codigo.
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;
FormaPagamento other =
(FormaPagamento
) obj
;
if (codigo ==
null) {
if (other.
codigo !=
null)
return false;
} else if (!codigo.
equals(other.
codigo))
return false;
return true;
}
}