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
());
}
});
}
}