Subversion Repositories Integrator Subversion

Rev

Rev 631 | 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.Date;
import java.util.List;

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

import org.springframework.context.annotation.Scope;

import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.DataUtils;
import br.com.ec.domain.dto.ClienteDTO;
import br.com.ec.domain.dto.ComercialPosVendaDTO;
import br.com.ec.domain.dto.PosVendaDTO;
import br.com.ec.domain.dto.VendaDTO;
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.model.tipos.TipoPosVendaAtivacao;
import br.com.ec.domain.service.LancamentoService;
import br.com.ec.domain.service.NpsPosVendaService;
import br.com.ec.domain.service.PosVendaService;
import br.com.ec.domain.service.TransferenciaService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
import br.com.ec.web.generic.AbstractBean;
import br.com.ec.web.message.LancadorMensagem;

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

        private static final long serialVersionUID = 1L;
       
        private PosVendaService posVendaService;
        private NpsPosVendaService npsPosVendaService;
        private LancamentoService lancamentoService;
       
        private PosVendaDTO posVendaSelecionado;
        private String tipoPosVendaSelecionado;
       
        public static class NpsItem {
        private final int nota;
        private final String icone;
        private final String estrelas;

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

        public int getNota() { return nota; }
        public String getIcone() { return icone; }
        public String getEstrelas() { return estrelas; }
    }
       
        @Inject
        public PosVendaBean(PosVendaService posVendaService, NpsPosVendaService npsPosVendaService, LancamentoService lancamentoService) {
                this.posVendaService = posVendaService;
                this.lancamentoService = lancamentoService;
                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() {
                consultarPosVenda();
        }
       
        public PosVendaDTO getPosVendaSelecionado() {
                return posVendaSelecionado;
        }
        public void setPosVendaSelecionado(PosVendaDTO posVendaSelecionado) {
                this.posVendaSelecionado = posVendaSelecionado;
        }
       
        public String getTipoPosVendaSelecionado() {
                return tipoPosVendaSelecionado;
        }
        public void setTipoPosVendaSelecionado(String tipoPosVendaSelecionado) {
                this.tipoPosVendaSelecionado = tipoPosVendaSelecionado;
        }
       
        /**************************************************/
       
        public TipoPeriodoConsulta[] getTiposPeriodoConsulta() {
                return TipoPeriodoConsulta.values();
        }
       
        /**************************************************/
       
        public void consultarPosVenda() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                setEntidade(posVendaService.consultarPosVendaEmAndamento());
                        }
                });
        }
       
        public void detalharPosVendaAgradecimento(PosVendaDTO posVenda) {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                posVenda.getVendaDTO().setListaLancamentos(lancamentoService.consultarLancamentosDaVenda(posVenda.getVendaDTO().getSequencial()));
                                posVenda.setNpsPosVendaAgradecimento(npsPosVendaService.consultarPorPosVendaEeTipo(posVenda.getSequencial(), TipoNpsPosVenda.ATENDIMENTO_A.getValor()));
                                setPosVendaSelecionado(posVenda);
                                setTipoPosVendaSelecionado(TipoPosVendaAtivacao.AGRADECIMENTO_A1.getValor());
                                preDetalhar(getEntidade());
                        }
                });
        }
       
        public void iniciarAtendimento() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                posVendaService.iniciarAtendimento(getPosVendaSelecionado());
                                consultarPosVenda();
                                preConsultar();
                                LancadorMensagem.lancarSucesso("PÓS-VENDA SALVO COM SUCESSO");
                        }
                });
        }
       
        public void finalizarAtendimento() {
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
                        public void execute() {
                                posVendaService.finalizarAtendimento(getPosVendaSelecionado());
                                consultarPosVenda();
                                preConsultar();
                                LancadorMensagem.lancarSucesso("PÓS-VENDA FINALIZADO COM SUCESSO");
                        }
                });
        }
       
}