Subversion Repositories Integrator Subversion

Rev

Rev 274 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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_16X = 22;
        private static final long FORMAPAGAMENTO_17X = 23;
        private static final long FORMAPAGAMENTO_18X = 24;
        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 formaPagamentoEhCreditoAcima12x() {
                return formaPagamentoEh13x() || formaPagamentoEh14x() || formaPagamentoEh15x() || formaPagamentoEh16x() || formaPagamentoEh17x() || formaPagamentoEh18x();
        }

        @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 formaPagamentoEh16x() {
                return getCodigo().equals(FORMAPAGAMENTO_16X);
        }
       
        @Transient
        public boolean formaPagamentoEh17x() {
                return getCodigo().equals(FORMAPAGAMENTO_17X);
        }
       
        @Transient
        public boolean formaPagamentoEh18x() {
                return getCodigo().equals(FORMAPAGAMENTO_18X);
        }
       
        @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;
        }
       
}