Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.domain.dto;

import java.util.Calendar;
import java.util.List;

import org.primefaces.model.charts.bar.BarChartModel;
import org.primefaces.model.charts.pie.PieChartModel;

import br.com.ec.core.util.DataUtils;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.dto.grafico.GraficoBarraDTO;
import br.com.ec.domain.model.tipos.TipoFuncionarioEvento;

public class FuncionarioDTO {

        private Long sequencialFuncionario;
        private PessoaDTO pessoaDTO;
        private Integer codigoContabilidade;
       
        /*
        private Long sequencial;
        private Pessoa pessoa;
        private Date admissao;
        private Date demissao;
        private String pis;
        private String ctps;
        private String ctpsSerie;
        private String ctpsUf;
        private Double salario;
        private String tipoComissionamento;
        private String tamanhoFardamento;
        private Boolean primeiroEmprego;
        private Boolean optantePeloFGTS;
        private Boolean ativo;
        */

       
        private UsuarioDTO usuarioDTO;
        private List<PessoaPapelDTO> papeisDTO;
        private List<EnderecoDTO> enderecosDTO;
        private VendedorDTO vendedorDTO;
       
        private Boolean funcionarioAdmitido;
        private List<FuncionarioFeriasDTO> feriasDTO;
       
        private VigenciaDTO vigenciaEscalaDTO;
        private List<FuncionarioEscalaDTO> listaFuncionarioEscalaDTO;
        private List<FuncionarioEventoDTO> listaFuncionarioEventoDTO;
        private List<BancoHorasDTO> listaBancoHorasDTO;
        private List<BancoHorasDTO> listaBancoHorasDTOAnoVigente;
       
        public FuncionarioDTO() {}
       
        public static String CONSULTA_DTO_SIMPLES = "new br.com.ec.domain.dto.FuncionarioDTO(e.sequencial, e.pessoa.sequencial, e.pessoa.nome) ";
        public FuncionarioDTO(Long sequencialFuncionario, Long sequencialPessoa, String nome) {
                super();
                this.sequencialFuncionario = sequencialFuncionario;
                this.pessoaDTO = new PessoaDTO(sequencialPessoa, nome);
        }
       
        public static String CONSULTA_DTO_SIMPLES_COM_USUARIO = "new br.com.ec.domain.dto.FuncionarioDTO("
                        + "e.sequencial, e.pessoa.sequencial, e.pessoa.nome"
                        + ", (SELECT u.sequencial FROM Usuario u WHERE u.pessoa.sequencial = e.pessoa.sequencial)"
                        + ") ";
        public FuncionarioDTO(Long sequencialFuncionario, Long sequencialPessoa, String nome, Long sequencialUsuario) {
                super();
                this.sequencialFuncionario = sequencialFuncionario;
                this.pessoaDTO = new PessoaDTO(sequencialPessoa, nome);
                this.usuarioDTO = new UsuarioDTO(sequencialUsuario);
        }
       
        public FuncionarioDTO(Long sequencialFuncionario, Long sequencialPessoa, String nome, String cpf, String emailFuncionario, Integer codigoContabilidade) {
                super();
                this.sequencialFuncionario = sequencialFuncionario;
                this.pessoaDTO = new PessoaDTO(sequencialPessoa, nome, cpf, emailFuncionario);
                this.codigoContabilidade = codigoContabilidade;
        }
       
        private Long sequencialUsuario;
       
        private List<AvaliacaoFuncionarioDTO> avaliacoesDTO;
        private List<ExameFuncionarioDTO> examesDTO;
        private List<AtestadoFuncionarioDTO> atestadosDTO;
        private List<PontoDTO> pontosDTO;
       
        private FuncionarioCustosDTO custosDTO;
       
        private GraficoBarraDTO graficoCustos;
       
        private PieChartModel graficoTiposProdutos;
        private PieChartModel graficoFormasPagamento;
        private BarChartModel graficoComparativoCustosLucro;
       
        public Long getSequencialFuncionario() {
                return sequencialFuncionario;
        }
        public void setSequencialFuncionario(Long sequencialFuncionario) {
                this.sequencialFuncionario = sequencialFuncionario;
        }
       
        public PessoaDTO getPessoaDTO() {
                return pessoaDTO;
        }
        public void setPessoaDTO(PessoaDTO pessoaDTO) {
                this.pessoaDTO = pessoaDTO;
        }
       
        public Integer getCodigoContabilidade() {
                return codigoContabilidade;
        }
        public void setCodigoContabilidade(Integer codigoContabilidade) {
                this.codigoContabilidade = codigoContabilidade;
        }
       
        public UsuarioDTO getUsuarioDTO() {
                return usuarioDTO;
        }
        public void setUsuarioDTO(UsuarioDTO usuarioDTO) {
                this.usuarioDTO = usuarioDTO;
        }
       
        public List<PessoaPapelDTO> getPapeisDTO() {
                return papeisDTO;
        }
        public void setPapeisDTO(List<PessoaPapelDTO> papeisDTO) {
                this.papeisDTO = papeisDTO;
        }
       
        public List<EnderecoDTO> getEnderecosDTO() {
                return enderecosDTO;
        }
        public void setEnderecosDTO(List<EnderecoDTO> enderecosDTO) {
                this.enderecosDTO = enderecosDTO;
        }
       
        public VendedorDTO getVendedorDTO() {
                return vendedorDTO;
        }
        public void setVendedorDTO(VendedorDTO vendedorDTO) {
                this.vendedorDTO = vendedorDTO;
        }
       
        /***************************************************/
       
        public Boolean getFuncionarioAdmitido() {
                return funcionarioAdmitido;
        }
        public void setFuncionarioAdmitido(Boolean funcionarioAdmitido) {
                this.funcionarioAdmitido = funcionarioAdmitido;
        }
       
        public List<FuncionarioFeriasDTO> getFeriasDTO() {
                return feriasDTO;
        }
        public void setFeriasDTO(List<FuncionarioFeriasDTO> feriasDTO) {
                this.feriasDTO = feriasDTO;
        }
       
        public VigenciaDTO getVigenciaEscalaDTO() {
                return vigenciaEscalaDTO;
        }
        public void setVigenciaEscalaDTO(VigenciaDTO vigenciaEscalaDTO) {
                this.vigenciaEscalaDTO = vigenciaEscalaDTO;
        }
       
        public List<FuncionarioEscalaDTO> getListaFuncionarioEscalaDTO() {
                return listaFuncionarioEscalaDTO;
        }
        public void setListaFuncionarioEscalaDTO(List<FuncionarioEscalaDTO> listaFuncionarioEscalaDTO) {
                this.listaFuncionarioEscalaDTO = listaFuncionarioEscalaDTO;
        }
       
        public List<FuncionarioEventoDTO> getListaFuncionarioEventoDTO() {
                return listaFuncionarioEventoDTO;
        }
        public void setListaFuncionarioEventoDTO(List<FuncionarioEventoDTO> listaFuncionarioEventoDTO) {
                this.listaFuncionarioEventoDTO = listaFuncionarioEventoDTO;
        }
       
        public List<BancoHorasDTO> getListaBancoHorasDTO() {
                return listaBancoHorasDTO;
        }
        public void setListaBancoHorasDTO(List<BancoHorasDTO> listaBancoHorasDTO) {
                this.listaBancoHorasDTO = listaBancoHorasDTO;
        }
       
        public List<BancoHorasDTO> getListaBancoHorasDTOAnoVigente() {
                return listaBancoHorasDTOAnoVigente;
        }
        public void setListaBancoHorasDTOAnoVigente(List<BancoHorasDTO> listaBancoHorasDTOAnoVigente) {
                this.listaBancoHorasDTOAnoVigente = listaBancoHorasDTOAnoVigente;
        }
       
        public Long getSequencialUsuario() {
                return sequencialUsuario;
        }
        public void setSequencialUsuario(Long sequencialUsuario) {
                this.sequencialUsuario = sequencialUsuario;
        }
       
        public List<AvaliacaoFuncionarioDTO> getAvaliacoesDTO() {
                return avaliacoesDTO;
        }
        public void setAvaliacoesDTO(List<AvaliacaoFuncionarioDTO> avaliacoesDTO) {
                this.avaliacoesDTO = avaliacoesDTO;
        }
       
        public List<ExameFuncionarioDTO> getExamesDTO() {
                return examesDTO;
        }
        public void setExamesDTO(List<ExameFuncionarioDTO> examesDTO) {
                this.examesDTO = examesDTO;
        }
       
        public List<AtestadoFuncionarioDTO> getAtestadosDTO() {
                return atestadosDTO;
        }
        public void setAtestadosDTO(List<AtestadoFuncionarioDTO> atestadosDTO) {
                this.atestadosDTO = atestadosDTO;
        }
       
        public List<PontoDTO> getPontosDTO() {
                return pontosDTO;
        }
        public void setPontosDTO(List<PontoDTO> pontosDTO) {
                this.pontosDTO = pontosDTO;
        }
       
        public FuncionarioCustosDTO getCustosDTO() {
                return custosDTO;
        }
        public void setCustosDTO(FuncionarioCustosDTO custosDTO) {
                this.custosDTO = custosDTO;
        }
       
        public GraficoBarraDTO getGraficoCustos() {
                return graficoCustos;
        }
        public void setGraficoCustos(GraficoBarraDTO graficoCustos) {
                this.graficoCustos = graficoCustos;
        }
       
        public PieChartModel getGraficoTiposProdutos() {
                return graficoTiposProdutos;
        }
        public void setGraficoTiposProdutos(PieChartModel graficoTiposProdutos) {
                this.graficoTiposProdutos = graficoTiposProdutos;
        }
       
        public PieChartModel getGraficoFormasPagamento() {
                return graficoFormasPagamento;
        }
        public void setGraficoFormasPagamento(PieChartModel graficoFormasPagamento) {
                this.graficoFormasPagamento = graficoFormasPagamento;
        }
       
        public BarChartModel getGraficoComparativoCustosLucro() {
                return graficoComparativoCustosLucro;
        }
        public void setGraficoComparativoCustosLucro(BarChartModel graficoComparativoCustosLucro) {
                this.graficoComparativoCustosLucro = graficoComparativoCustosLucro;
        }
       
        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + ((sequencialFuncionario == null) ? 0 : sequencialFuncionario.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;
                FuncionarioDTO other = (FuncionarioDTO) obj;
                if (sequencialFuncionario == null) {
                        if (other.sequencialFuncionario != null)
                                return false;
                } else if (!sequencialFuncionario.equals(other.sequencialFuncionario))
                        return false;
                return true;
        }
       
        public Integer getQuantidadeDiasTrabalhados() {
                Integer quantidadeDiasTrabalhados = 0;
                if (VerificadorUtil.naoEstaNulo(getListaFuncionarioEscalaDTO())) {
                        for (FuncionarioEscalaDTO escalaDTO : getListaFuncionarioEscalaDTO()) {
                                if (escalaDTO.getPeriodo() != null) {
                                        quantidadeDiasTrabalhados++;
                                }
                        }
                }
                return quantidadeDiasTrabalhados;
        }
       
        public Integer getQuantidadeDiasNaoTrabalhados() {
                return DataUtils.obterCalendario(getVigenciaEscalaDTO().getDataFim()).get(Calendar.DAY_OF_MONTH) - getQuantidadeDiasTrabalhados();
        }
       
        public Integer getQuantidadeFaltas() {
                Integer quantidadeFaltas = 0;
                if (VerificadorUtil.naoEstaNulo(getListaFuncionarioEscalaDTO())) {
                        for (FuncionarioEscalaDTO escalaDTO : getListaFuncionarioEscalaDTO()) {
                                for (FuncionarioEventoDTO evento : escalaDTO.getEventosDTO()) {
                                        if (evento.getTipo().equals(TipoFuncionarioEvento.FALTA.getValor())) {
                                                quantidadeFaltas++;
                                        }
                                }
                        }
                }
                return quantidadeFaltas;
        }
       
        public Double saldoBancoHoras() {
                Double saldo = new Double(0.0);
                for (BancoHorasDTO bancoHorasDTO : getListaBancoHorasDTO()) {
                        saldo = saldo + bancoHorasDTO.getValor();
                }
                return saldo;
        }

        public Long getSequencialPessoaDoFuncionario() {
                return VerificadorUtil.naoEstaNulo(getPessoaDTO())? getPessoaDTO().getSequencial() : null;
        }
       
        public String getCpfCnpjDaPessoa() {
                return VerificadorUtil.naoEstaNulo(getPessoaDTO())? getPessoaDTO().getCpfCnpj() : null;
        }
       
        public String getNomeDaPessoa() {
                return VerificadorUtil.naoEstaNulo(getPessoaDTO())? getPessoaDTO().getNome() : null;
        }

        public String getEmailDaPessoa() {
                return VerificadorUtil.naoEstaNulo(getPessoaDTO())? getPessoaDTO().getEmail() : null;
        }

}