Subversion Repositories Integrator Subversion

Rev

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

package br.com.ec.controller;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

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

import org.apache.commons.httpclient.util.DateUtil;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.context.annotation.Scope;

import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.DataUtils;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.dto.ComercialPosVendaDTO;
import br.com.ec.domain.model.NpsPosVenda;
import br.com.ec.domain.model.PosVenda;
import br.com.ec.domain.model.tipos.TipoNpsPosVenda;
import br.com.ec.domain.model.tipos.TipoPeriodoConsulta;
import br.com.ec.domain.service.NpsPosVendaService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
import br.com.ec.web.generic.AbstractBean;

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

        private static final long serialVersionUID = 1L;
       
        private NpsPosVendaService npsPosVendaService;
       
        private NpsPosVenda npsPosVendaSelecionado;
       
        public static class NpsItem {
        private final Integer nota;
        private final String icone;
        private final String estrelas;

        public NpsItem(Integer nota, String icone, String estrelas) {
            this.nota = nota;
            this.icone = icone;
            this.estrelas = estrelas;
        }

        public Integer getNota() { return nota; }
        public String getIcone() { return icone; }
        public String getEstrelas() { return estrelas; }
    }
       
        @Inject
        public NpsPosVendaBean(NpsPosVendaService npsPosVendaService) {
                this.npsPosVendaService = npsPosVendaService;
        }

        @Override
        public GenericService<ComercialPosVendaDTO> getService() {
                return null;
        }

        @Override
        public ComercialPosVendaDTO getId() {
                return null;
        }
       
        @Override
        public void preCarregamento() {
                limparEntidade();
        }
       
        @Override
        public void limparEntidade() {
        }
       
        public List<NpsItem> getRostosNps() {
        List<NpsItem> lista = new ArrayList<>();
        for (int i = 1; i <= 5; i++) {
            String icone = "rosto-" + i + ".png"; // Ex: emoji0.png até emoji10.png
            String estrelas = new String(new char[5]).replace("\0", "⭐");//"⭐".repeat(Math.max(0, i / 2));     // Converte nota para estrelas visuais
            lista.add(new NpsItem(new Integer(i), icone, estrelas));
        }
        return lista;
    }
       
        /**************************************************/
       
        public TipoPeriodoConsulta[] getTiposPeriodoConsulta() {
                return TipoPeriodoConsulta.values();
        }
       
        /**************************************************/
       
        public NpsPosVenda getNpsPosVendaSelecionado() {
                if (VerificadorUtil.estaNulo(npsPosVendaSelecionado)) {
                        if (VerificadorUtil.naoEstaNulo(getParametro("sq"))) {
                                npsPosVendaSelecionado = new NpsPosVenda();
                                npsPosVendaSelecionado.setPosVenda(new PosVenda(new Long(getParametro("sq").toString())));
                                npsPosVendaSelecionado.setObservacao("");
                                npsPosVendaSelecionado.setTipoNps(TipoNpsPosVenda.ATENDIMENTO_A.getValor());
                        }
                }
                return npsPosVendaSelecionado;
        }
        public void setNpsPosVendaSelecionado(NpsPosVenda npsPosVendaSelecionado) {
                this.npsPosVendaSelecionado = npsPosVendaSelecionado;
        }
       
        public void selecionarNota() {
                if (VerificadorUtil.naoEstaNulo(getNpsPosVendaSelecionado())) {
                        System.out.println(getNpsPosVendaSelecionado().getNota());
                } else {
                        System.out.println("SEM NOTA!");
                }
        }
       
        public void efetivarNps() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                npsPosVendaService.efetivarNpsAtendimento(getNpsPosVendaSelecionado());
                        }
                });
        }
       
}