Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.domain.dto;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.Transient;

import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.FormaPagamento;

public class CartaoResumoDTO {

        private Date dataResumo;
        private List<CartaoBandeiraDTO> cartoesPorBandeira;
        private Boolean indicadorConciliado;
       
        private Double valorTotalBrutoCartoes;
        private Double valorTotalBrutoCartoesDebito;
        private Double valorTotalBrutoCartoesCredito1x;
        private Double valorTotalBrutoCartoesCreditoParcelado;
       
        private Double valorTotalBrutoImportadoCartoes;
        private Double valorTotalBrutoImportadoCartoesDebito;
        private Double valorTotalBrutoImportadoCartoesCredito1x;
        private Double valorTotalBrutoImportadoCartoesCreditoParcelado;
       
        private Double valorTotalLiquidoCartoesGerados;
        private Double valorTotalLiquidoCartoesGeradosDebito;
        private Double valorTotalLiquidoCartoesGeradosCredito1x;
        private Double valorTotalLiquidoCartoesGeradosCreditoParcelado;
       
        public CartaoResumoDTO() {
                setCartoesPorBandeira(new ArrayList<CartaoBandeiraDTO>());
                setIndicadorConciliado(false);
                setValorTotalBrutoCartoes(new Double(0.0));
                setValorTotalBrutoCartoesDebito(new Double(0.0));
                setValorTotalBrutoCartoesCredito1x(new Double(0.0));
                setValorTotalBrutoCartoesCreditoParcelado(new Double(0.0));
                setValorTotalBrutoImportadoCartoes(new Double(0.0));
                setValorTotalBrutoImportadoCartoesDebito(new Double(0.0));
                setValorTotalBrutoImportadoCartoesCredito1x(new Double(0.0));
                setValorTotalBrutoImportadoCartoesCreditoParcelado(new Double(0.0));
                setValorTotalLiquidoCartoesGerados(new Double(0.0));
                setValorTotalLiquidoCartoesGeradosDebito(new Double(0.0));
                setValorTotalLiquidoCartoesGeradosCredito1x(new Double(0.0));
                setValorTotalLiquidoCartoesGeradosCreditoParcelado(new Double(0.0));
               
        }
       
        public Date getDataResumo() {
                return dataResumo;
        }
        public void setDataResumo(Date dataResumo) {
                this.dataResumo = dataResumo;
        }
       
        public void setCartoesPorBandeira(List<CartaoBandeiraDTO> cartoesPorBandeira) {
                this.cartoesPorBandeira = cartoesPorBandeira;
        }
        public List<CartaoBandeiraDTO> getCartoesPorBandeira() {
                return cartoesPorBandeira;
        }
       
        public Boolean getIndicadorConciliado() {
                return indicadorConciliado;
        }
        public void setIndicadorConciliado(Boolean indicadorConciliado) {
                this.indicadorConciliado = indicadorConciliado;
        }
       
        public Double getValorTotalBrutoCartoes() {
                return valorTotalBrutoCartoes;
        }
        public void setValorTotalBrutoCartoes(Double valorTotalBrutoCartoes) {
                this.valorTotalBrutoCartoes = valorTotalBrutoCartoes;
        }
       
        public Double getValorTotalBrutoCartoesDebito() {
                return valorTotalBrutoCartoesDebito;
        }
        public void setValorTotalBrutoCartoesDebito(Double valorTotalBrutoCartoesDebito) {
                this.valorTotalBrutoCartoesDebito = valorTotalBrutoCartoesDebito;
        }
       
        public Double getValorTotalBrutoCartoesCredito() {
                return getValorTotalBrutoCartoesCredito1x() + getValorTotalBrutoCartoesCreditoParcelado();
        }
       
        public Double getValorTotalBrutoImportadoCartoesCredito() {
                return getValorTotalBrutoImportadoCartoesCredito1x() + getValorTotalBrutoImportadoCartoesCreditoParcelado();
        }
       
        public String getCorValoresConciliadosCartoesCredito() {
                return getValorTotalBrutoCartoesCredito().equals(getValorTotalBrutoImportadoCartoesCredito())? "green" : "red";
        }
       
        public Double getValorTotalBrutoCartoesCredito1x() {
                return valorTotalBrutoCartoesCredito1x;
        }
        public void setValorTotalBrutoCartoesCredito1x(Double valorTotalBrutoCartoesCredito1x) {
                this.valorTotalBrutoCartoesCredito1x = valorTotalBrutoCartoesCredito1x;
        }
       
        public Double getValorTotalBrutoCartoesCreditoParcelado() {
                return valorTotalBrutoCartoesCreditoParcelado;
        }
        public void setValorTotalBrutoCartoesCreditoParcelado(Double valorTotalBrutoCartoesCreditoParcelado) {
                this.valorTotalBrutoCartoesCreditoParcelado = valorTotalBrutoCartoesCreditoParcelado;
        }
       
        public Double getValorTotalBrutoImportadoCartoes() {
                return valorTotalBrutoImportadoCartoes;
        }
        public void setValorTotalBrutoImportadoCartoes(Double valorTotalBrutoImportadoCartoes) {
                this.valorTotalBrutoImportadoCartoes = valorTotalBrutoImportadoCartoes;
        }
       
        public Double getValorTotalBrutoImportadoCartoesDebito() {
                return valorTotalBrutoImportadoCartoesDebito;
        }
        public void setValorTotalBrutoImportadoCartoesDebito(Double valorTotalBrutoImportadoCartoesDebito) {
                this.valorTotalBrutoImportadoCartoesDebito = valorTotalBrutoImportadoCartoesDebito;
        }
       
        public String getCorValoresConciliadosCartoesDebito() {
                return getValorTotalBrutoCartoesDebito().equals(getValorTotalBrutoImportadoCartoesDebito())? "green" : "red";
        }
       
        public Double getValorTotalBrutoImportadoCartoesCredito1x() {
                return valorTotalBrutoImportadoCartoesCredito1x;
        }
        public void setValorTotalBrutoImportadoCartoesCredito1x(Double valorTotalBrutoImportadoCartoesCredito1x) {
                this.valorTotalBrutoImportadoCartoesCredito1x = valorTotalBrutoImportadoCartoesCredito1x;
        }
       
        public String getCorValoresConciliadosCartoesCredito1x() {
                return getValorTotalBrutoCartoesCredito1x().equals(getValorTotalBrutoImportadoCartoesCredito1x())? "green" : "red";
        }
       
        public Double getValorTotalBrutoImportadoCartoesCreditoParcelado() {
                return valorTotalBrutoImportadoCartoesCreditoParcelado;
        }
        public void setValorTotalBrutoImportadoCartoesCreditoParcelado(Double valorTotalBrutoImportadoCartoesCreditoParcelado) {
                this.valorTotalBrutoImportadoCartoesCreditoParcelado = valorTotalBrutoImportadoCartoesCreditoParcelado;
        }
       
        public String getCorValoresConciliadosCartoesCreditoParcelado() {
                return getValorTotalBrutoCartoesCreditoParcelado().equals(getValorTotalBrutoImportadoCartoesCreditoParcelado())? "green" : "red";
        }
       
        public Double getValorTotalLiquidoCartoesGerados() {
                return valorTotalLiquidoCartoesGerados;
        }
        public void setValorTotalLiquidoCartoesGerados(Double valorTotalLiquidoCartoesGerados) {
                this.valorTotalLiquidoCartoesGerados = valorTotalLiquidoCartoesGerados;
        }
       
        public Double getValorTotalLiquidoCartoesGeradosDebito() {
                return valorTotalLiquidoCartoesGeradosDebito;
        }
        public void setValorTotalLiquidoCartoesGeradosDebito(Double valorTotalLiquidoCartoesGeradosDebito) {
                this.valorTotalLiquidoCartoesGeradosDebito = valorTotalLiquidoCartoesGeradosDebito;
        }
       
        public Double getValorTotalLiquidoCartoesGeradosCredito() {
                return getValorTotalLiquidoCartoesGeradosCredito1x() + getValorTotalLiquidoCartoesGeradosCreditoParcelado();
        }
       
        public Double getValorTotalLiquidoCartoesGeradosCredito1x() {
                return valorTotalLiquidoCartoesGeradosCredito1x;
        }
        public void setValorTotalLiquidoCartoesGeradosCredito1x(Double valorTotalLiquidoCartoesGeradosCredito1x) {
                this.valorTotalLiquidoCartoesGeradosCredito1x = valorTotalLiquidoCartoesGeradosCredito1x;
        }
       
        public Double getValorTotalLiquidoCartoesGeradosCreditoParcelado() {
                return valorTotalLiquidoCartoesGeradosCreditoParcelado;
        }
        public void setValorTotalLiquidoCartoesGeradosCreditoParcelado(Double valorTotalLiquidoCartoesGeradosCreditoParcelado) {
                this.valorTotalLiquidoCartoesGeradosCreditoParcelado = valorTotalLiquidoCartoesGeradosCreditoParcelado;
        }
       
        @Transient
        public String getCorValoresConciliados() {
                return getIndicadorConciliado()? "green" : "red";
        }
       
        /*************************************************************************/
       
        public void adicionarPagamento(CartaoBandeiraDTO cartaoBandeira) {
                int index = getCartoesPorBandeira().indexOf(cartaoBandeira);
                if (index >= 0) {
                        CartaoBandeiraDTO cartaoAdicionado = getCartoesPorBandeira().get(index);
                        cartaoAdicionado.setBruto(cartaoAdicionado.getBruto() + cartaoBandeira.getBruto());
                        cartaoAdicionado.setQuantidade(cartaoAdicionado.getQuantidade() + 1);
                        cartaoAdicionado.setFormaPagamento(cartaoBandeira.getFormaPagamento());
                } else {
                        cartaoBandeira.setQuantidade(1);
                        getCartoesPorBandeira().add(cartaoBandeira);
                }
                somarValoresBruto(cartaoBandeira.getBruto(), cartaoBandeira.getFormaPagamento());
        }
       
        public void adicionarPagamentoImportado(CartaoBandeiraDTO cartaoBandeira) {
                int index = getCartoesPorBandeira().indexOf(cartaoBandeira);
                if (index >= 0) {
                        CartaoBandeiraDTO cartaoAdicionado = getCartoesPorBandeira().get(index);
                        cartaoAdicionado.setBrutoImportado(cartaoAdicionado.getBrutoImportado() + cartaoBandeira.getBrutoImportado());
                        cartaoAdicionado.setQuantidadeImportado(cartaoAdicionado.getQuantidadeImportado() + 1);
                        cartaoAdicionado.setFormaPagamento(cartaoBandeira.getFormaPagamento());
                } else {
                        cartaoBandeira.setQuantidadeImportado(1);
                        getCartoesPorBandeira().add(cartaoBandeira);
                }
                somarValoresBrutoImportado(cartaoBandeira.getBrutoImportado(), cartaoBandeira.getFormaPagamento());
        }
       
        public List<CartaoBandeiraDTO> getCartoesPorBandeiraDebito() {
                List<CartaoBandeiraDTO> cartoesDebito = new ArrayList<CartaoBandeiraDTO>();
                for (CartaoBandeiraDTO cartaoBandeira : getCartoesPorBandeira()) {
                        if (cartaoBandeira.getFormaPagamento().formaPagamentoEhDebito()) {
                                cartoesDebito.add(cartaoBandeira);
                        }
                }
                return cartoesDebito;
        }
       
        public List<CartaoBandeiraDTO> getCartoesPorBandeiraCredito() throws CloneNotSupportedException {
                List<CartaoBandeiraDTO> cartoesCredito = new ArrayList<CartaoBandeiraDTO>();
                for (CartaoBandeiraDTO cartaoBandeira : getCartoesPorBandeira()) {
                        if (cartaoBandeira.getFormaPagamento().formaPagamentoEhCredito()) {
                                CartaoBandeiraDTO cartao = cartaoBandeira.clone();
                                cartao.setFormaPagamento(null);
                                int index = cartoesCredito.indexOf(cartao);
                                if (index >= 0) {
                                        CartaoBandeiraDTO cartaoAdicionado = cartoesCredito.get(index);
                                        cartaoAdicionado.setBrutoImportado(cartaoAdicionado.getBrutoImportado() + cartao.getBrutoImportado());
                                        cartaoAdicionado.setBruto(cartaoAdicionado.getBruto() + cartao.getBruto());
                                        cartaoAdicionado.setQuantidadeImportado(cartaoAdicionado.getQuantidadeImportado() + cartao.getQuantidadeImportado());
                                        cartaoAdicionado.setQuantidade(cartaoAdicionado.getQuantidade() + cartao.getQuantidade());
                                        cartaoAdicionado.setFormaPagamento(cartao.getFormaPagamento());
                                } else {
                                        cartoesCredito.add(cartao);
                                }
                        }
                }
                return cartoesCredito;
        }
       
        public List<CartaoBandeiraDTO> getCartoesPorBandeiraCredito1x() {
                List<CartaoBandeiraDTO> cartoesCredito = new ArrayList<CartaoBandeiraDTO>();
                for (CartaoBandeiraDTO cartaoBandeira : getCartoesPorBandeira()) {
                        if (cartaoBandeira.getFormaPagamento().formaPagamentoEhCredito() && cartaoBandeira.getFormaPagamento().formaPagamentoEh1x()) {
                                cartoesCredito.add(cartaoBandeira);
                        }
                }
                return cartoesCredito;
        }
       
        public List<CartaoBandeiraDTO> getCartoesPorBandeiraCreditoParcelado() {
                List<CartaoBandeiraDTO> cartoesCredito = new ArrayList<CartaoBandeiraDTO>();
                for (CartaoBandeiraDTO cartaoBandeira : getCartoesPorBandeira()) {
                        if (cartaoBandeira.getFormaPagamento().formaPagamentoEhCredito() && !cartaoBandeira.getFormaPagamento().formaPagamentoEh1x()) {
                                cartoesCredito.add(cartaoBandeira);
                        }
                }
                return cartoesCredito;
        }
       
        public List<CartaoBandeiraDTO> getCartoesPorBandeiraCreditoParceladoAgrupado() {
                List<CartaoBandeiraDTO> cartoesCredito = new ArrayList<CartaoBandeiraDTO>();
                for (CartaoBandeiraDTO cartaoBandeira : getCartoesPorBandeiraCreditoParcelado()) {
                        CartaoBandeiraDTO cartao = cartaoBandeira.clone();
                        cartao.setFormaPagamento(null);
                        int index = cartoesCredito.indexOf(cartao);
                        if (index >= 0) {
                                CartaoBandeiraDTO cartaoAdicionado = cartoesCredito.get(index);
                                cartaoAdicionado.setBrutoImportado(cartaoAdicionado.getBrutoImportado() + cartao.getBrutoImportado());
                                cartaoAdicionado.setBruto(cartaoAdicionado.getBruto() + cartao.getBruto());
                                cartaoAdicionado.setQuantidadeImportado(cartaoAdicionado.getQuantidadeImportado() + cartao.getQuantidadeImportado());
                                cartaoAdicionado.setQuantidade(cartaoAdicionado.getQuantidade() + cartao.getQuantidade());
                        } else {
                                cartoesCredito.add(cartao);
                        }
                }
                return cartoesCredito;
        }
       
        public void somarValoresBruto(Double valor, FormaPagamento formaDePagamento) {
                valorTotalBrutoCartoes = valorTotalBrutoCartoes + valor;
                if (formaDePagamento.formaPagamentoEhDebito()) {
                        valorTotalBrutoCartoesDebito = valorTotalBrutoCartoesDebito + valor;
                }
                if (formaDePagamento.formaPagamentoEhCredito()) {
                        if (formaDePagamento.formaPagamentoEh1x()) {
                                valorTotalBrutoCartoesCredito1x = valorTotalBrutoCartoesCredito1x + valor;
                        } else {
                                valorTotalBrutoCartoesCreditoParcelado = valorTotalBrutoCartoesCreditoParcelado + valor;
                        }
                }
        }
       
        public void somarValoresBrutoImportado(Double valor, FormaPagamento formaDePagamento) {
                valorTotalBrutoImportadoCartoes = valorTotalBrutoImportadoCartoes + valor;
                if (formaDePagamento.formaPagamentoEhDebito()) {
                        valorTotalBrutoImportadoCartoesDebito = valorTotalBrutoImportadoCartoesDebito + valor;
                }
                if (formaDePagamento.formaPagamentoEhCredito()) {
                        if (formaDePagamento.formaPagamentoEh1x()) {
                                valorTotalBrutoImportadoCartoesCredito1x = valorTotalBrutoImportadoCartoesCredito1x + valor;
                        } else {
                                valorTotalBrutoImportadoCartoesCreditoParcelado = valorTotalBrutoImportadoCartoesCreditoParcelado + valor;
                        }
                }
        }
       
        public void somarValoresLiquido(List<CartaoDTO> cartoesGerados) {
                for (CartaoDTO cartaoGerado : cartoesGerados) {
                        valorTotalLiquidoCartoesGerados = valorTotalLiquidoCartoesGerados + cartaoGerado.getParcela().getValor();
                        if (VerificadorUtil.naoEstaNulo(cartaoGerado.getFormaDePagamento())) {
                                if (cartaoGerado.getFormaDePagamento().formaPagamentoEhDebito()) {
                                        valorTotalLiquidoCartoesGeradosDebito = valorTotalLiquidoCartoesGeradosDebito + cartaoGerado.getParcela().getValor();
                                }
                                if (cartaoGerado.getFormaDePagamento().formaPagamentoEhCredito()) {
                                        if (cartaoGerado.getFormaDePagamento().formaPagamentoEh1x()) {
                                                valorTotalLiquidoCartoesGeradosCredito1x = valorTotalLiquidoCartoesGeradosCredito1x + cartaoGerado.getParcela().getValor();
                                        } else {
                                                valorTotalLiquidoCartoesGeradosCreditoParcelado = valorTotalLiquidoCartoesGeradosCreditoParcelado + cartaoGerado.getParcela().getValor();
                                        }
                                }
                        }
                }
        }

        public void somarValores() {
                setIndicadorConciliado(true);
                for (CartaoBandeiraDTO bandeira : getCartoesPorBandeira()) {
                        if (!bandeira.getBruto().equals(bandeira.getBrutoImportado())) {
                                setIndicadorConciliado(false);
                        }
                        somarValoresBruto(bandeira.getBruto(), bandeira.getFormaPagamento());
                        somarValoresBrutoImportado(bandeira.getBrutoImportado(), bandeira.getFormaPagamento());
                }
        }
       
}