package br.com.ec.domain.dto;
import java.util.ArrayList;
import java.util.List;
import br.com.ec.core.util.StringUtil;
public class FormaPagamentoDTO
{
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_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_16X =
22;
private static final long FORMAPAGAMENTO_17X =
23;
private static final long FORMAPAGAMENTO_18X =
24;
private static final long FORMAPAGAMENTO_19X =
26;
private static final long FORMAPAGAMENTO_20X =
27;
private static final long FORMAPAGAMENTO_PIX =
18;
private static final long FORMAPAGAMENTO_TRANSFERENCIA =
25;
private static final long FORMAPAGAMENTO_CUPOM =
16;
private Long codigo
;
private String descricao
;
private Integer numeroOrdem
;
private Boolean ativo
;
public FormaPagamentoDTO
() {}
public FormaPagamentoDTO
(Long codigo
) {
this.
codigo = codigo
;
}
public FormaPagamentoDTO
(Long codigo,
String descricao
) {
this.
codigo = codigo
;
this.
descricao = descricao
;
}
public Long getCodigo
() {
return codigo
;
}
public void setCodigo
(Long codigo
) {
this.
codigo = codigo
;
}
public String getDescricao
() {
return descricao
;
}
public void setDescricao
(String descricao
) {
this.
descricao = StringUtil.
setarUpperCaseComTrim(descricao
);
}
public Integer getNumeroOrdem
() {
return numeroOrdem
;
}
public void setNumeroOrdem
(Integer numeroOrdem
) {
this.
numeroOrdem = numeroOrdem
;
}
public Boolean getAtivo
() {
return ativo
;
}
public void setAtivo
(Boolean ativo
) {
this.
ativo = ativo
;
}
public boolean formaPagamentoEhDinheiro
() {
return getCodigo
().
equals(FORMAPAGAMENTO_DINHEIRO
);
}
public boolean formaPagamentoEhCartao
() {
return !(formaPagamentoEhDinheiro
() || formaPagamentoEhCupom
() || formaPagamentoEhOutros
());
}
public boolean formaPagamentoEhDebito
() {
return getCodigo
().
equals(FORMAPAGAMENTO_DEBITO
);
}
public boolean formaPagamentoEhPagseguro
() {
return getCodigo
().
equals(FORMAPAGAMENTO_PAGSEGURO
);
}
public boolean formaPagamentoEhPix
() {
return getCodigo
().
equals(FORMAPAGAMENTO_PIX
);
}
public boolean formaPagamentoEhTransferencia
() {
return getCodigo
().
equals(FORMAPAGAMENTO_TRANSFERENCIA
);
}
public boolean formaPagamentoEhCredito
() {
return !(formaPagamentoEhDinheiro
() || formaPagamentoEhDebito
() || formaPagamentoEhPagseguro
() || formaPagamentoEhCupom
() || formaPagamentoEhOutros
() || formaPagamentoEhPix
());
}
public boolean formaPagamentoEhCreditoDividido
() {
return formaPagamentoEhCredito
() && !formaPagamentoEh1x
();
}
public boolean formaPagamentoEh1x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_1X
);
}
public boolean formaPagamentoEh2x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_2X
);
}
public boolean formaPagamentoEh3x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_3X
);
}
public boolean formaPagamentoEh4x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_4X
);
}
public boolean formaPagamentoEh5x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_5X
);
}
public boolean formaPagamentoEh6x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_6X
);
}
public boolean formaPagamentoEh7x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_7X
);
}
public boolean formaPagamentoEh8x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_8X
);
}
public boolean formaPagamentoEh9x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_9X
);
}
public boolean formaPagamentoEh10x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_10X
);
}
public boolean formaPagamentoEh11x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_11X
);
}
public boolean formaPagamentoEh12x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_12X
);
}
public boolean formaPagamentoEh13x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_13X
);
}
public boolean formaPagamentoEh14x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_14X
);
}
public boolean formaPagamentoEh15x
() {
return getCodigo
().
equals(FORMAPAGAMENTO_15X
);
}
public boolean formaPagamentoEhCupom
() {
return getCodigo
().
equals(FORMAPAGAMENTO_CUPOM
);
}
public boolean formaPagamentoEhOutros
() {
return getCodigo
().
equals(FORMAPAGAMENTO_OUTROS
);
}
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;
FormaPagamentoDTO other =
(FormaPagamentoDTO
) obj
;
if (codigo ==
null) {
if (other.
codigo !=
null)
return false;
} else if (!codigo.
equals(other.
codigo))
return false;
return true;
}
public static List<FormaPagamentoDTO
> todasFormasDePagamento
() {
List<FormaPagamentoDTO
> formasPreenchidas = formasDePagamentoSemCupom
();
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_CUPOM,
"CUPOM"));
return formasPreenchidas
;
}
public static List<FormaPagamentoDTO
> formasDePagamentoViaCartaoDebito
() {
List<FormaPagamentoDTO
> formasPreenchidas =
new ArrayList<FormaPagamentoDTO
>();
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_DEBITO,
"DÉBITO"));
return formasPreenchidas
;
}
public static List<FormaPagamentoDTO
> formasDePagamentoViaCartaoCredito
() {
List<FormaPagamentoDTO
> formasPreenchidas =
new ArrayList<FormaPagamentoDTO
>();
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_1X,
"1X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_2X,
"2X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_3X,
"3X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_4X,
"4X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_5X,
"5X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_6X,
"6X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_7X,
"7X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_8X,
"8X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_9X,
"9X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_10X,
"10X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_11X,
"11X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_12X,
"12X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_13X,
"13X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_14X,
"14X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_15X,
"15X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_16X,
"16X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_17X,
"17X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_18X,
"18X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_19X,
"19X"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_20X,
"20X"));
return formasPreenchidas
;
}
public static List<FormaPagamentoDTO
> formasDePagamentoOutros
() {
List<FormaPagamentoDTO
> formasPreenchidas =
new ArrayList<FormaPagamentoDTO
>();
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_OUTROS,
"OUTROS"));
return formasPreenchidas
;
}
public static List<FormaPagamentoDTO
> formasDePagamentoViaPix
() {
List<FormaPagamentoDTO
> formasPreenchidas =
new ArrayList<FormaPagamentoDTO
>();
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_PIX,
"PIX"));
return formasPreenchidas
;
}
public static List<FormaPagamentoDTO
> formasDePagamentoViaTransferencia
() {
List<FormaPagamentoDTO
> formasPreenchidas =
new ArrayList<FormaPagamentoDTO
>();
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_TRANSFERENCIA,
"TRANSFERÊNCIA"));
return formasPreenchidas
;
}
public static List<FormaPagamentoDTO
> formasDePagamentoSemCupom
() {
List<FormaPagamentoDTO
> formasPreenchidas =
new ArrayList<FormaPagamentoDTO
>();
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_DINHEIRO,
"DINHEIRO"));
formasPreenchidas.
addAll(formasDePagamentoViaCartaoDebito
());
formasPreenchidas.
addAll(formasDePagamentoViaCartaoCredito
());
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_PIX,
"PIX"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_TRANSFERENCIA,
"TRANSFERÊNCIA"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_PAGSEGURO,
"PAGSEGURO"));
formasPreenchidas.
add(new FormaPagamentoDTO
(FORMAPAGAMENTO_OUTROS,
"OUTROS"));
return formasPreenchidas
;
}
public static List<FormaPagamentoDTO
> formasDePagamentoViaCartao
() {
List<FormaPagamentoDTO
> formasPreenchidas =
new ArrayList<FormaPagamentoDTO
>();
formasPreenchidas.
addAll(formasDePagamentoViaCartaoDebito
());
formasPreenchidas.
addAll(formasDePagamentoViaCartaoCredito
());
return formasPreenchidas
;
}
public static List<Long> codigosFormasDePagamentoViaCartao
() {
List<Long> codigosFormas =
new ArrayList<Long>();
for (FormaPagamentoDTO forma : formasDePagamentoViaCartao
()) {
codigosFormas.
add(forma.
getCodigo());
}
return codigosFormas
;
}
}