package br.com.centralit.citcorpore.ajaxForms;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.DelegacaoCentroResultadoDTO;
import br.com.centralit.citcorpore.bean.DelegacaoCentroResultadoFluxoDTO;
import br.com.centralit.citcorpore.bean.DelegacaoCentroResultadoProcessoDTO;
import br.com.centralit.citcorpore.bean.EmpregadoDTO;
import br.com.centralit.citcorpore.bean.ExecucaoSolicitacaoDTO;
import br.com.centralit.citcorpore.bean.ProcessoNegocioDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.negocio.CentroResultadoService;
import br.com.centralit.citcorpore.negocio.DelegacaoCentroResultadoFluxoService;
import br.com.centralit.citcorpore.negocio.DelegacaoCentroResultadoProcessoService;
import br.com.centralit.citcorpore.negocio.DelegacaoCentroResultadoService;
import br.com.centralit.citcorpore.negocio.EmpregadoService;
import br.com.centralit.citcorpore.negocio.ExecucaoSolicitacaoService;
import br.com.centralit.citcorpore.negocio.ProcessoNegocioService;
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.UtilDatas;
import br.com.citframework.util.UtilI18N;
import br.com.citframework.util.UtilStrings;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class DelegacaoCentroResultado 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);
}
@Override
public Class getBeanClass() {
return DelegacaoCentroResultadoDTO.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=\"30%\">"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.processo") + "</th>";
str += " <th width=\"20%\">"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.autoridade") + "</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;
}
DelegacaoCentroResultadoDTO delegacaoCentroResultadoDto = (DelegacaoCentroResultadoDTO) document.getBean();
if (delegacaoCentroResultadoDto.getIdCentroResultado() == null)
return;
CentroResultadoDTO centroResultadoDto = new CentroResultadoDTO();
centroResultadoDto.setIdCentroResultado(delegacaoCentroResultadoDto.getIdCentroResultado());
Collection<AlcadaProcessoNegocioDTO> colAlcadas = AlcadaProcessoNegocio.getInstance().getAlcadasCentroResultado(centroResultadoDto, null);
if (colAlcadas != null) {
for (AlcadaProcessoNegocioDTO alcadaProcessoNegocioDto : colAlcadas) {
if (delegacaoCentroResultadoDto.getIdResponsavel() != null && alcadaProcessoNegocioDto.getEmpregadoDto().getIdEmpregado().intValue() != delegacaoCentroResultadoDto.getIdResponsavel().intValue())
continue;
String serialize_processos = br.com.citframework.util.WebUtil.serializeObjects(alcadaProcessoNegocioDto.getProcessosNegocio());
str += "<tr id='tr"+alcadaProcessoNegocioDto.getEmpregadoDto().getIdEmpregado()+"' onclick='exibirDelegacoes(this,"+alcadaProcessoNegocioDto.getEmpregadoDto().getIdEmpregado()+",\""+serialize_processos+"\")' >";
str += " <td rowspan='"+alcadaProcessoNegocioDto.getProcessosNegocio().size()+"'>";
str += alcadaProcessoNegocioDto.getEmpregadoDto().getNome();
str += " </td>";
int i = 0;
for (ProcessoNegocioDTO processoNegocioDto : alcadaProcessoNegocioDto.getProcessosNegocio()) {
if (i > 0)
str += "<tr id='tr"+alcadaProcessoNegocioDto.getEmpregadoDto().getIdEmpregado()+"' onclick='exibirDelegacoes(this,"+alcadaProcessoNegocioDto.getEmpregadoDto().getIdEmpregado()+",\""+serialize_processos+"\")' >";
i++;
str += " <td>";
str += processoNegocioDto.getNomeProcessoNegocio();
str += " </td>";
str += " <td>";
str += processoNegocioDto.getNivelAutoridadeDto().getNomeNivelAutoridade();
str += " </td>";
str += "</tr>";
}
}
}
}finally{
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
document.getElementById("divResponsaveis").setInnerHTML(str);
document.getElementById("divDelegacoes").setInnerHTML("");
}
}
public void exibeDelegacoes(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
String str =
"<table id='tblDelegacoes' class=\"table\" width=\"100%\">";
str += " <tr>";
str += " <th >"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.empregado") + "</th>";
str += " <th width=\"15%\">"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.processo") + "</th>";
str += " <th width=\"5%\">"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.inicio") + "</th>";
str += " <th width=\"5%\">"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.termino") + "</th>";
str += " <th width=\"30%\">"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.abrangencia") + "</th>";
str += " <th width=\"10%\">"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.situacao") + "</th>";
str += " <th width=\"5%\"> </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;
}
DelegacaoCentroResultadoDTO delegacaoCentroResultadoDto = (DelegacaoCentroResultadoDTO) document.getBean();
if (delegacaoCentroResultadoDto.getIdCentroResultado() == null || delegacaoCentroResultadoDto.getIdResponsavel() == null)
return;
DelegacaoCentroResultadoService delegacaoCentroResultadoService = (DelegacaoCentroResultadoService) ServiceLocator.getInstance().getService(DelegacaoCentroResultadoService.class, WebUtil.getUsuarioSistema(request));
Collection<DelegacaoCentroResultadoDTO> colDelegacoes = delegacaoCentroResultadoService.findByIdResponsavelAndIdCentroResultado(delegacaoCentroResultadoDto.getIdResponsavel(), delegacaoCentroResultadoDto.getIdCentroResultado());
if (colDelegacoes != null) {
EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, WebUtil.getUsuarioSistema(request));
ProcessoNegocioService processoNegocioService = (ProcessoNegocioService) ServiceLocator.getInstance().getService(ProcessoNegocioService.class, WebUtil.getUsuarioSistema(request));
DelegacaoCentroResultadoProcessoService delegacaoCentroResultadoProcessoService = (DelegacaoCentroResultadoProcessoService) ServiceLocator.getInstance().getService(DelegacaoCentroResultadoProcessoService.class, WebUtil.getUsuarioSistema(request));
DelegacaoCentroResultadoFluxoService delegacaoCentroResultadoFluxoService = (DelegacaoCentroResultadoFluxoService) ServiceLocator.getInstance().getService(DelegacaoCentroResultadoFluxoService.class, WebUtil.getUsuarioSistema(request));
ExecucaoSolicitacaoService execucaoSolicitacaoService = (ExecucaoSolicitacaoService) ServiceLocator.getInstance().getService(ExecucaoSolicitacaoService.class, WebUtil.getUsuarioSistema(request));
for (DelegacaoCentroResultadoDTO delegacaoDto : colDelegacoes) {
EmpregadoDTO empregadoDto = new EmpregadoDTO();
empregadoDto.setIdEmpregado(delegacaoDto.getIdEmpregado());
empregadoDto = (EmpregadoDTO) empregadoService.restore(empregadoDto);
Collection<DelegacaoCentroResultadoProcessoDTO> colProcessos = delegacaoCentroResultadoProcessoService.findByIdDelegacaoCentroResultado(delegacaoDto.getIdDelegacaoCentroResultado());
str += "<tr>";
str += " <td>";
str += empregadoDto.getNome();
str += " </td>";
str += " <td>";
String processos = " ";
if (colProcessos != null && colProcessos.size() > 0) {
processos = "";
for (DelegacaoCentroResultadoProcessoDTO delegacaoCentroResultadoProcessoDto : colProcessos) {
ProcessoNegocioDTO processoDto = new ProcessoNegocioDTO();
processoDto.setIdProcessoNegocio(delegacaoCentroResultadoProcessoDto.getIdProcessoNegocio());
processoDto = (ProcessoNegocioDTO) processoNegocioService.restore(processoDto);
processos += processoDto.getNomeProcessoNegocio()+"<br>";
}
}
str += processos+"</td>";
str += " <td>"+UtilDatas.dateToSTR(delegacaoDto.getDataInicio())+"</td>";
str += " <td>"+UtilDatas.dateToSTR(delegacaoDto.getDataFim())+"</td>";
if (delegacaoDto.getAbrangencia().equalsIgnoreCase(DelegacaoCentroResultadoDTO.NOVAS_EXISTENTES)) {
str += " <td>"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.abrangencia.novasEEmAndamento")+"</td>";
}else if (delegacaoDto.getAbrangencia().equalsIgnoreCase(DelegacaoCentroResultadoDTO.NOVAS)) {
str += " <td>"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.abrangencia.novas")+"</td>";
}else if (delegacaoDto.getAbrangencia().equalsIgnoreCase(DelegacaoCentroResultadoDTO.ESPECIFICAS)) {
Collection<DelegacaoCentroResultadoFluxoDTO> colInstancias = delegacaoCentroResultadoFluxoService.findByIdDelegacaoCentroResultado(delegacaoDto.getIdDelegacaoCentroResultado());
if (colInstancias != null) {
String ids = "";
int i = 0;
for (DelegacaoCentroResultadoFluxoDTO delegacaoCentroResultadoFluxoDto : colInstancias) {
ExecucaoSolicitacaoDTO execucaoSolicitacaoDto = execucaoSolicitacaoService.findByIdInstanciaFluxo(delegacaoCentroResultadoFluxoDto.getIdInstanciaFluxo());
if (execucaoSolicitacaoDto != null) {
if (i > 0)
ids += ", ";
ids += execucaoSolicitacaoDto.getIdSolicitacaoServico();
i++;
}
}
if (!ids.equals(""))
str += " <td>"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.abrangencia.especificas")+": "+ids+"</td>";
else
str += " <td> </td>";
}
}else{
str += " <td> </td>";
}
if (UtilStrings.nullToVazio(delegacaoDto.getRevogada()).equalsIgnoreCase("S")) {
str += " <td>"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.situacao.revogada")+"</td>";
str += " <td> </td>";
}else if (delegacaoDto.getDataFim().compareTo(UtilDatas.getDataAtual()) < 0) {
str += " <td>"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.situacao.expirada")+"</td>";
str += " <td> </td>";
}else{
str += " <td>"+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.situacao.emVigor")+"</td>";
str += " <td><button type='button' class='light img_icon has_text' onclick='revogar("+delegacaoDto.getIdDelegacaoCentroResultado()+")'>"
+UtilI18N.internacionaliza(request, "delegacaoCentroResultado.revogar")+"</button></td>";
}
}
}
}finally{
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
document.getElementById("divDelegacoes").setInnerHTML(str);
}
}
public void gravaDelegacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
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;
}
DelegacaoCentroResultadoDTO delegacaoCentroResultadoDto = (DelegacaoCentroResultadoDTO) document.getBean();
if (delegacaoCentroResultadoDto.getIdCentroResultado() == null || delegacaoCentroResultadoDto.getIdResponsavel() == null)
return;
if (delegacaoCentroResultadoDto.getIdEmpregado() == null) {
document.alert(UtilI18N.internacionaliza(request, "delegacaoCentroResultado.empregado")+" "+UtilI18N.internacionaliza(request, "citcorpore.comum.naoInformado"));
return;
}
if (delegacaoCentroResultadoDto.getIdProcessoNegocio() == null || delegacaoCentroResultadoDto.getIdProcessoNegocio().length == 0) {
document.alert(UtilI18N.internacionaliza(request, "delegacaoCentroResultado.processo")+" "+UtilI18N.internacionaliza(request, "citcorpore.comum.naoInformado"));
return;
}
if (delegacaoCentroResultadoDto.getAbrangencia() == null) {
document.alert(UtilI18N.internacionaliza(request, "delegacaoCentroResultado.abrangencia")+" "+UtilI18N.internacionaliza(request, "citcorpore.comum.naoInformado"));
return;
}
if (delegacaoCentroResultadoDto.getDataInicio() == null || delegacaoCentroResultadoDto.getDataInicio().compareTo(UtilDatas.getDataAtual()) < 0) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.datainvalida"));
return;
}
if (delegacaoCentroResultadoDto.getDataFim() == null || delegacaoCentroResultadoDto.getDataFim().compareTo(delegacaoCentroResultadoDto.getDataInicio()) < 0) {
document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.dataFinalInvalida"));
return;
}
delegacaoCentroResultadoDto.setDataHoraRegistro(UtilDatas.getDataHoraAtual());
delegacaoCentroResultadoDto.setIdResponsavelRegistro(usuario.getIdEmpregado());
DelegacaoCentroResultadoService delegacaoCentroResultadoService = (DelegacaoCentroResultadoService) ServiceLocator.getInstance().getService(DelegacaoCentroResultadoService.class, WebUtil.getUsuarioSistema(request));
delegacaoCentroResultadoService.create(delegacaoCentroResultadoDto);
document.executeScript("$(\"#POPUP_DELEGACAO\").dialog(\"close\")");
exibeDelegacoes(document,request,response);
}finally{
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
}
}
public void revogaDelegacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
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;
}
DelegacaoCentroResultadoDTO delegacaoCentroResultadoDto = (DelegacaoCentroResultadoDTO) document.getBean();
if (delegacaoCentroResultadoDto.getIdDelegacaoCentroResultado() == null)
return;
delegacaoCentroResultadoDto.setIdResponsavelRevogacao(usuario.getIdEmpregado());
DelegacaoCentroResultadoService delegacaoCentroResultadoService = (DelegacaoCentroResultadoService) ServiceLocator.getInstance().getService(DelegacaoCentroResultadoService.class, WebUtil.getUsuarioSistema(request));
delegacaoCentroResultadoService.revoga(delegacaoCentroResultadoDto);
exibeDelegacoes(document,request,response);
}finally{
document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide();
}
}
}