Subversion Repositories Integrator Subversion

Rev

Rev 353 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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_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"));
                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;
        }
       
}