Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.controller.managedbean;

import java.io.Serializable;

import javax.inject.Inject;
import javax.inject.Named;

import org.primefaces.model.StreamedContent;
import org.springframework.context.annotation.Scope;

import br.com.ec.controller.managedbean.consultademanda.ClienteConsultaPorDemanda;
import br.com.ec.core.generic.GenericService;
import br.com.ec.domain.dto.ParametrosConsultaClienteDTO;
import br.com.ec.domain.model.Cliente;
import br.com.ec.domain.model.tipos.TipoRelatorioCliente;
import br.com.ec.domain.service.cliente.ClienteService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandRelatorioStreamedContent;
import br.com.ec.web.generic.AbstractBean;

@Named
@Scope("view")
public class ClienteConsultaBean extends AbstractBean<Cliente> implements Serializable {

        private static final long serialVersionUID = 1L;
       
        private ClienteConsultaPorDemanda lazy;
        private ClienteService clienteService;
       
        @Inject
        public ClienteConsultaBean(ClienteConsultaPorDemanda lazy, ClienteService clienteService) {
                this.lazy = lazy;
                this.clienteService = clienteService;
        }
       
        @Override
        public void preCarregamento() {
                entidade = new Cliente();
                entidade.setAtivo(true);
                parametrosConsulta = new ParametrosConsultaClienteDTO();
                parametrosConsulta.setEntidade(entidade);
                prepararConsultaDemanda();
        }
       
        @Override
        public void limparEntidade() {
                setEntidade(new Cliente());
        }

        @Override
        public GenericService<Cliente> getService() {
                return null;
        }
       
        @Override
        public Cliente getEntidade() {
                return entidade;
        }

        @Override
        public Cliente getId() {
                return getEntidade();
        }
       
        public ClienteConsultaPorDemanda getLazy() {
                return lazy;
        }
        public void setLazy(ClienteConsultaPorDemanda lazy) {
                this.lazy = lazy;
        }
        public void prepararConsultaDemanda() {
                lazy.setarParametrosConsulta(getParametrosConsulta());
        }
       
        public TipoRelatorioCliente[] getTiposRelatorio() {
                return TipoRelatorioCliente.values();
        }
       
        public StreamedContent downloadPlanilha() {
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
                        @Override
                        public StreamedContent execute() {
                                return clienteService.gerarArquivoExcel(getParametrosConsulta());
                        }
                });
        }
       
}