package br.com.centralit.citcorpore.ajaxForms;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.centralit.bpm.dto.FluxoDTO;
import br.com.centralit.bpm.servico.FluxoService;
import br.com.centralit.citajax.html.AjaxFormAction;
import br.com.centralit.citajax.html.DocumentHTML;
import br.com.centralit.citajax.html.HTMLSelect;
import br.com.centralit.citcorpore.bean.AlcadaProcessoNegocioDTO;
import br.com.centralit.citcorpore.bean.CentroResultadoDTO;
import br.com.centralit.citcorpore.bean.SimulacaoAlcadaDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.CentroResultadoService;
import br.com.centralit.citcorpore.negocio.alcada.AlcadaProcessoNegocio;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.UtilI18N;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class SimulacaoAlcada extends AjaxFormAction {
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
UsuarioDTO usuario = WebUtil.getUsuario(request);
if (usuario == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada"));
document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'");
return;
}
CentroResultadoService centroResultadoService = (CentroResultadoService) ServiceLocator.getInstance().getService(CentroResultadoService.class, WebUtil.getUsuarioSistema(request));
HTMLSelect idCentroResultado = (HTMLSelect) document.getSelectById("idCentroResultado");
idCentroResultado.removeAllOptions();
idCentroResultado.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
Collection colCCusto = centroResultadoService.listAtivos();
if(colCCusto != null && !colCCusto.isEmpty())
idCentroResultado.addOptions(colCCusto, "idCentroResultado", "nomeHierarquizado", null);
FluxoService fluxoService = (FluxoService) ServiceLocator.getInstance().getService(FluxoService.class, WebUtil.getUsuarioSistema(request));
HTMLSelect idTipoFluxo = (HTMLSelect) document.getSelectById("idTipoFluxo");
idTipoFluxo.removeAllOptions();
idTipoFluxo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
Collection colTiposFluxo = fluxoService.list();
if(colTiposFluxo != null && !colTiposFluxo.isEmpty())
idTipoFluxo.addOptions(colTiposFluxo, "idTipoFluxo", "descricao", null);
HTMLSelect finalidade = (HTMLSelect) document.getSelectById("finalidade");
finalidade.removeAllOptions();
finalidade.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
finalidade.addOption("I", UtilI18N.internacionaliza(request, "requisicaoProduto.finalidade.usoInterno"));
finalidade.addOption("C", UtilI18N.internacionaliza(request, "requisicaoProduto.finalidade.atendimentoCliente"));
}
@Override
public Class getBeanClass() {
return SimulacaoAlcadaDTO.class;
}
public void pesquisa(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
String str =
"<table id='tblResponsaveis' class=\"table\" width=\"100%\">";
str += " <tr>";
str += " <th >"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.empregado") + "</th>";
str += " <th width=\"10%\">"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.autoridade") + "</th>";
str += " <th width=\"5%\">Delega��o</th>";
str += " <th width=\"5%\">Rejeitado</th>";
str += " <th width=\"40%\">Motivo da rejei��o</th>";
str += " </tr>";
try{
UsuarioDTO usuario = WebUtil.getUsuario(request);
if (usuario == null) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada"));
document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'");
return;
}
SimulacaoAlcadaDTO simulacaoAlcadaDto = (SimulacaoAlcadaDTO) document.getBean();
if (simulacaoAlcadaDto.getIdCentroResultado() == null || simulacaoAlcadaDto.getIdTipoFluxo() == null || simulacaoAlcadaDto.getDataHoraSolicitacao() == null
|| simulacaoAlcadaDto.getIdSolicitante() == null || simulacaoAlcadaDto.getFinalidade() == null)
return;
if (simulacaoAlcadaDto.getValor() == null)
simulacaoAlcadaDto.setValor(0.0);
if (simulacaoAlcadaDto.getValorOutrasAlcadas() == null)
simulacaoAlcadaDto.setValorOutrasAlcadas(0.0);
if (simulacaoAlcadaDto.getValorMensal() == null)
simulacaoAlcadaDto.setValorMensal(0.0);
CentroResultadoService centroResultadoService = (CentroResultadoService) ServiceLocator.getInstance().getService(CentroResultadoService.class, WebUtil.getUsuarioSistema(request));
CentroResultadoDTO centroResultadoDto = new CentroResultadoDTO();
centroResultadoDto.setIdCentroResultado(simulacaoAlcadaDto.getIdCentroResultado());
centroResultadoDto = (CentroResultadoDTO) centroResultadoService.restore(centroResultadoDto);
FluxoService fluxoService = (FluxoService) ServiceLocator.getInstance().getService(FluxoService.class, WebUtil.getUsuarioSistema(request));
FluxoDTO fluxoDto = fluxoService.findByTipoFluxo(simulacaoAlcadaDto.getIdTipoFluxo());
Collection<AlcadaProcessoNegocioDTO> colAlcadas = AlcadaProcessoNegocio.getInstance().getSimulacaoAlcada(simulacaoAlcadaDto, centroResultadoDto, fluxoDto);
if (colAlcadas != null) {
for (AlcadaProcessoNegocioDTO alcadaProcessoNegocioDto : colAlcadas) {
str += "<tr>";
str += " <td>";
str += alcadaProcessoNegocioDto.getEmpregadoDto().getNome();
str += " </td>";
str += " <td>";
str += alcadaProcessoNegocioDto.getProcessosNegocio().get(0).getNivelAutoridadeDto().getNomeNivelAutoridade();
str += " </td>";
str += " <td>";
if (!alcadaProcessoNegocioDto.isDelegacao()) {
str += "N�o";
}else{
str += "<font color='red'>Sim</font>";
}
str += " </td>";
str += " <td>";
if (!alcadaProcessoNegocioDto.isAlcadaRejeitada()) {
str += "N�o";
}else{
str += "<font color='red'>Sim</font>";
}
str += " </td>";
String motivo = " ";
if (alcadaProcessoNegocioDto.getMotivoRejeicao() != null) {
motivo = alcadaProcessoNegocioDto.getMotivoRejeicao().getDescricao();
if (alcadaProcessoNegocioDto.getComplementoRejeicao() != null)
motivo += " - "+alcadaProcessoNegocioDto.getComplementoRejeicao();
}
str += " <td><font color='red'>"+motivo+"</font></td>";
}
}
}finally{
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
document.getElementById("divResponsaveis").setInnerHTML(str);
document.getElementById("divDelegacoes").setInnerHTML("");
}
}
}