package br.com.centralit.citcorpore.ajaxForms;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import br.com.centralit.citajax.html.DocumentHTML;
import br.com.centralit.citajax.html.HTMLForm;
import br.com.centralit.citajax.html.HTMLSelect;
import br.com.centralit.citajax.html.HTMLTable;
import br.com.centralit.citcorpore.bean.ADUserDTO;
import br.com.centralit.citcorpore.bean.AcordoNivelServicoDTO;
import br.com.centralit.citcorpore.bean.AcordoServicoContratoDTO;
import br.com.centralit.citcorpore.bean.BaseConhecimentoDTO;
import br.com.centralit.citcorpore.bean.ClienteDTO;
import br.com.centralit.citcorpore.bean.ContratoDTO;
import br.com.centralit.citcorpore.bean.ContratosGruposDTO;
import br.com.centralit.citcorpore.bean.EmpregadoDTO;
import br.com.centralit.citcorpore.bean.FornecedorDTO;
import br.com.centralit.citcorpore.bean.GrupoDTO;
import br.com.centralit.citcorpore.bean.ImpactoDTO;
import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.ProblemaDTO;
import br.com.centralit.citcorpore.bean.RequisicaoMudancaDTO;
import br.com.centralit.citcorpore.bean.ServicoContratoDTO;
import br.com.centralit.citcorpore.bean.ServicoDTO;
import br.com.centralit.citcorpore.bean.SolicitacaoServicoDTO;
import br.com.centralit.citcorpore.bean.UnidadeDTO;
import br.com.centralit.citcorpore.bean.UnidadesAccServicosDTO;
import br.com.centralit.citcorpore.bean.UrgenciaDTO;
import br.com.centralit.citcorpore.bean.UsuarioDTO;
import br.com.centralit.citcorpore.integracao.AcordoNivelServicoDao;
import br.com.centralit.citcorpore.integracao.ad.LDAPUtils;
import br.com.centralit.citcorpore.negocio.AcordoNivelServicoService;
import br.com.centralit.citcorpore.negocio.AcordoServicoContratoService;
import br.com.centralit.citcorpore.negocio.BaseConhecimentoService;
import br.com.centralit.citcorpore.negocio.ClienteService;
import br.com.centralit.citcorpore.negocio.ContratoService;
import br.com.centralit.citcorpore.negocio.ContratosGruposService;
import br.com.centralit.citcorpore.negocio.EmpregadoService;
import br.com.centralit.citcorpore.negocio.FornecedorService;
import br.com.centralit.citcorpore.negocio.GrupoService;
import br.com.centralit.citcorpore.negocio.ItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.OrigemAtendimentoService;
import br.com.centralit.citcorpore.negocio.ProblemaService;
import br.com.centralit.citcorpore.negocio.RequisicaoMudancaService;
import br.com.centralit.citcorpore.negocio.ServicoContratoService;
import br.com.centralit.citcorpore.negocio.ServicoService;
import br.com.centralit.citcorpore.negocio.SolicitacaoServicoService;
import br.com.centralit.citcorpore.negocio.UnidadeService;
import br.com.centralit.citcorpore.negocio.UnidadesAccServicosService;
import br.com.centralit.citcorpore.negocio.UsuarioService;
import br.com.centralit.citcorpore.util.Enumerados;
import br.com.centralit.citcorpore.util.Enumerados.TipoDate;
import br.com.centralit.citcorpore.util.ParametroUtil;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.excecao.LogicException;
import br.com.citframework.excecao.ServiceException;
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", "unused" })
public class ReclassificarSolicitacao extends SolicitacaoServicoMultiContratos {
ContratoDTO contratoDtoAux = new ContratoDTO();
private Boolean acao = false;
public boolean validaParametrosUpload() {
String PRONTUARIO_GED_DIRETORIO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedDiretorio, "");
if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.trim().equals("")) {
return false;
}
File pastaGed = new File(PRONTUARIO_GED_DIRETORIO);
if (!pastaGed.exists()) {
return false;
}
String DISKFILEUPLOAD_REPOSITORYPATH = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.DISKFILEUPLOAD_REPOSITORYPATH, "");
if (DISKFILEUPLOAD_REPOSITORYPATH == null || DISKFILEUPLOAD_REPOSITORYPATH.trim().equals("")) {
return false;
}
File pastaUpload = new File(DISKFILEUPLOAD_REPOSITORYPATH);
if (!pastaUpload.exists()) {
return false;
}
return true;
}
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
request.setAttribute("parametrosUploadValidos", validaParametrosUpload());
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;
}
super.load(document, request, response);
String VisualizarPasso = request.getParameter("visualizarPasso");
VisualizarPasso = UtilStrings.nullToVazio(VisualizarPasso);
if (VisualizarPasso != null && VisualizarPasso.equalsIgnoreCase("C")) {
// Reclassificar a solicita��o
document.executeScript("visualizaCollapse3()");
} else {
document.executeScript("preparaCollapse1()");
}
GrupoService grupoService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
HTMLSelect urgencia = (HTMLSelect) document.getSelectById("urgencia");
urgencia.removeAllOptions();
urgencia.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
HTMLSelect impacto = (HTMLSelect) document.getSelectById("impacto");
impacto.removeAllOptions();
impacto.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
if (!getCalcularDinamicamente().trim().equalsIgnoreCase("S")) {
urgencia.addOption("B", UtilI18N.internacionaliza(request, "citcorpore.comum.baixa"));
urgencia.addOption("M", UtilI18N.internacionaliza(request, "citcorpore.comum.media"));
urgencia.addOption("A", UtilI18N.internacionaliza(request, "citcorpore.comum.alta"));
impacto.addOption("B", UtilI18N.internacionaliza(request, "citcorpore.comum.baixa"));
impacto.addOption("M", UtilI18N.internacionaliza(request, "citcorpore.comum.media"));
impacto.addOption("A", UtilI18N.internacionaliza(request, "citcorpore.comum.alta"));
} else {
Collection<UrgenciaDTO> urgenciaDTO = getPrioridadeSolicitacoesService().consultaUrgencia();
for (UrgenciaDTO urgenciaTemp : urgenciaDTO) {
urgencia.addOption(urgenciaTemp.getSiglaUrgencia().toString(), urgenciaTemp.getNivelUrgencia());
}
Collection<ImpactoDTO> impactoDTO = getPrioridadeSolicitacoesService().consultaImpacto();
for (ImpactoDTO impactoTemp : impactoDTO) {
impacto.addOption(impactoTemp.getSiglaImpacto().toString(), impactoTemp.getNivelImpacto());
}
}
Collection<GrupoDTO> lstGrupos = grupoService.getGruposByEmpregado(usuario.getIdEmpregado());
if (lstGrupos != null) {
for (GrupoDTO g : lstGrupos) {
if (g.getAbertura() != null && g.getAbertura().trim().equals("S"))
document.getElementById("enviaEmailCriacao").setDisabled(true);
if (g.getEncerramento() != null && g.getEncerramento().trim().equals("S"))
document.getElementById("enviaEmailFinalizacao").setDisabled(true);
if (g.getAndamento() != null && g.getAndamento().trim().equals("S"))
document.getElementById("enviaEmailAcoes").setDisabled(true);
}
}
ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null);
ClienteService clienteService = (ClienteService) ServiceLocator.getInstance().getService(ClienteService.class, null);
FornecedorService fornecedorService = (FornecedorService) ServiceLocator.getInstance().getService(FornecedorService.class, null);
ContratosGruposService contratosGruposService = (ContratosGruposService) ServiceLocator.getInstance().getService(ContratosGruposService.class, null);
Collection colContratos = contratoService.list();
String COLABORADORES_VINC_CONTRATOS = ParametroUtil.getValorParametroCitSmartHashMap(br.com.centralit.citcorpore.util.Enumerados.ParametroSistema.COLABORADORES_VINC_CONTRATOS, "N");
if (COLABORADORES_VINC_CONTRATOS == null) {
COLABORADORES_VINC_CONTRATOS = "N";
}
Collection colContratosColab = null;
if (COLABORADORES_VINC_CONTRATOS.equalsIgnoreCase("S")) {
colContratosColab = contratosGruposService.findByIdEmpregado(usuario.getIdEmpregado());
}
Collection<ContratoDTO> listaContratos = new ArrayList<ContratoDTO>();
if (colContratos != null) {
if (colContratos.size() > 0) {
((HTMLSelect) document.getSelectById("idContrato")).addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
} else {
acao = true;
}
for (Iterator it = colContratos.iterator(); it.hasNext();) {
ContratoDTO contratoDto = (ContratoDTO) it.next();
if (contratoDto.getDeleted() == null || !contratoDto.getDeleted().equalsIgnoreCase("y")) {
if (COLABORADORES_VINC_CONTRATOS.equalsIgnoreCase("S")) { // Se parametro de colaboradores por contrato ativo, entao filtra.
if (colContratosColab == null) {
continue;
}
if (!isContratoInList(contratoDto.getIdContrato(), colContratosColab)) {
continue;
}
}
String nomeCliente = "";
String nomeForn = "";
ClienteDTO clienteDto = new ClienteDTO();
clienteDto.setIdCliente(contratoDto.getIdCliente());
clienteDto = (ClienteDTO) clienteService.restore(clienteDto);
if (clienteDto != null) {
nomeCliente = clienteDto.getNomeRazaoSocial();
}
FornecedorDTO fornecedorDto = new FornecedorDTO();
fornecedorDto.setIdFornecedor(contratoDto.getIdFornecedor());
fornecedorDto = (FornecedorDTO) fornecedorService.restore(fornecedorDto);
if (fornecedorDto != null) {
nomeForn = fornecedorDto.getRazaoSocial();
}
contratoDtoAux.setIdContrato(contratoDto.getIdContrato());
if (contratoDto.getSituacao().equalsIgnoreCase("A")) {
String nomeContrato = "" + contratoDto.getNumero() + " de " + UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, contratoDto.getDataContrato(), WebUtil.getLanguage(request)) + " (" + nomeCliente + " - " + nomeForn + ")";
((HTMLSelect) document.getSelectById("idContrato")).addOption("" + contratoDto.getIdContrato(), nomeContrato);
contratoDto.setNome(nomeContrato);
listaContratos.add(contratoDto);
}
}
}
}
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
if (solicitacaoServicoDto != null && solicitacaoServicoDto.getUrgencia() != null && StringUtils.isNotBlank(solicitacaoServicoDto.getUrgencia())) {
document.getElementById("urgencia").setValue(solicitacaoServicoDto.getUrgencia().trim());
}
if (solicitacaoServicoDto != null && solicitacaoServicoDto.getImpacto() != null && StringUtils.isNotBlank(solicitacaoServicoDto.getImpacto())) {
document.getElementById("impacto").setValue(solicitacaoServicoDto.getImpacto().trim());
}
if (solicitacaoServicoDto != null && solicitacaoServicoDto.getIdContrato() != null) {
document.getElementById("idContrato").setValue("" + solicitacaoServicoDto.getIdContrato());
}
if (request.getParameter("idContrato") != null && !request.getParameter("idContrato").equalsIgnoreCase("")) {
Integer idContrato = 0;
idContrato = Integer.parseInt(request.getParameter("idContrato"));
if (idContrato != null) {
document.getElementById("idContrato").setValue("" + idContrato);
}
}
document.executeScript("desativarBotaoAvancar1();");
document.executeScript("desativarBotaoAvancar2();");
document.executeScript("desativarBotaoAvancar3();");
if(solicitacaoServicoDto != null){
solicitacaoServicoDto.getIdContrato();
}
String tarefaAssociada = "N";
if (solicitacaoServicoDto != null && solicitacaoServicoDto.getIdTarefa() != null)
tarefaAssociada = "S";
request.setAttribute("tarefaAssociada", tarefaAssociada);
if (solicitacaoServicoDto != null && solicitacaoServicoDto.getIdContrato() != null) {
verificaGrupoExecutor(document, request, response);
document.getSelectById("idGrupoAtual").setValue("" + solicitacaoServicoDto.getIdGrupoAtual());
}
if (acao) {
if (solicitacaoServicoDto.getIdSolicitacaoServico() == null || solicitacaoServicoDto.getIdSolicitacaoServico().intValue() == 0) {
this.verificaGrupoExecutor(document, request, response);
this.verificaImpactoUrgencia(document, request, response);
this.carregaServicosMulti(document, request, response);
this.carregaUnidade(document, request, response);
}
}
// document.executeScript("$('#loading_overlay').hide();");
if (solicitacaoServicoDto != null && solicitacaoServicoDto.getIdSolicitacaoServico() != null && solicitacaoServicoDto.getIdSolicitacaoServico().intValue() != 0) {
// document.getElementById("divSLAPrevisto").setVisible(false);
// document.getElementById("divTipoSolicitacaoServico").setClassName("col_50");
} else {
// document.getElementById("divSLAPrevisto").setVisible(true);
// document.getElementById("divTipoSolicitacaoServico").setClassName("col_30");
}
document.executeScript("parent.fecharJanelaAguarde();");
solicitacaoServicoDto = null;
}
private boolean isContratoInList(Integer idContrato, Collection colContratosColab) {
if (colContratosColab != null) {
for (Iterator it = colContratosColab.iterator(); it.hasNext();) {
ContratosGruposDTO contratosGruposDTO = (ContratosGruposDTO) it.next();
if (contratosGruposDTO.getIdContrato().intValue() == idContrato.intValue()) {
return true;
}
}
}
return false;
}
public void sincronizaAD(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
if (solicitacaoServicoDto.getFiltroADPesq() == null) {
solicitacaoServicoDto.setFiltroADPesq(document.getElementById("filtroADPesq").getValue());
}
ContratoDTO contratoDto = new ContratoDTO();
ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null);
contratoDto.setIdContrato(solicitacaoServicoDto.getIdContrato());
contratoDto = (ContratoDTO) contratoService.restore(contratoDto);
Collection<ADUserDTO> listUsuariosADDto = LDAPUtils.consultaEmpregado(solicitacaoServicoDto.getFiltroADPesq(), contratoDto.getIdGrupoSolicitante());
if (listUsuariosADDto != null && !listUsuariosADDto.isEmpty()) {
for (ADUserDTO usuarioADDto : listUsuariosADDto) {
document.getElementById("POPUP_SINCRONIZACAO_DETALHE").setInnerHTML("Sincroniza��o conclu�da com sucesso. Favor fazer a busca na lookup de colaborador.");
}
} else {
document.getElementById("POPUP_SINCRONIZACAO_DETALHE").setInnerHTML("Nenhum resultado encontrado.");
}
document.executeScript("fechar_aguarde();");
solicitacaoServicoDto = null;
contratoDto = null;
}
public void carregaServicosMulti(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
if (solicitacaoServicoDto.getIdContrato() == null || solicitacaoServicoDto.getIdContrato().intValue() == 0) {
solicitacaoServicoDto.setIdContrato(contratoDtoAux.getIdContrato());
}
document.getElementById("divScript").setInnerHTML(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.scriptservico"));
HTMLSelect idServico = (HTMLSelect) document.getSelectById("idServico");
idServico.removeAllOptions();
if (solicitacaoServicoDto.getIdTipoDemandaServico() == null)
return;
if (solicitacaoServicoDto.getIdContrato() == null) {
document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.contrato"));
return;
}
String controleAccUnidade = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.CONTROLE_ACC_UNIDADE_INC_SOLIC, "N");
if (!UtilStrings.isNotVazio(controleAccUnidade)) {
controleAccUnidade = "N";
}
EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
int idUnidade = -999;
if (controleAccUnidade.trim().equalsIgnoreCase("S")) {
EmpregadoDTO empregadoDto = new EmpregadoDTO();
empregadoDto.setIdEmpregado(solicitacaoServicoDto.getIdSolicitante());
if (solicitacaoServicoDto.getIdSolicitante() != null) {
empregadoDto = (EmpregadoDTO) empregadoService.restore(empregadoDto);
if (empregadoDto != null && empregadoDto.getIdUnidade() != null) {
idUnidade = empregadoDto.getIdUnidade().intValue();
}
}
}
ServicoService servicoService = (ServicoService) ServiceLocator.getInstance().getService(ServicoService.class, null);
UnidadesAccServicosService unidadeAccService = (UnidadesAccServicosService) ServiceLocator.getInstance().getService(UnidadesAccServicosService.class, null);
idServico.removeAllOptions();
Collection col = servicoService.findByIdTipoDemandaAndIdContrato(solicitacaoServicoDto.getIdTipoDemandaServico(), solicitacaoServicoDto.getIdContrato(),
solicitacaoServicoDto.getIdCategoriaServico());
int cont = 0;
Integer idServicoCasoApenas1 = null;
if (col != null) {
// this.verificaImpactoUrgencia(document, request, response);
/* if (col.size() > 1) */
// idServico.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
for (Iterator it = col.iterator(); it.hasNext();) {
ServicoDTO servicoDTO = (ServicoDTO) it.next();
if (servicoDTO.getDeleted() == null || servicoDTO.getDeleted().equalsIgnoreCase("N")) {
if (servicoDTO.getIdSituacaoServico().intValue() == 1) { // ATIVO
if (controleAccUnidade.trim().equalsIgnoreCase("S")) {
UnidadesAccServicosDTO unidadesAccServicosDTO = new UnidadesAccServicosDTO();
unidadesAccServicosDTO.setIdServico(servicoDTO.getIdServico());
unidadesAccServicosDTO.setIdUnidade(idUnidade);
unidadesAccServicosDTO = (UnidadesAccServicosDTO) unidadeAccService.restore(unidadesAccServicosDTO);
if (unidadesAccServicosDTO != null) {// Se existe acesso
// idServico.addOptionIfNotExists("" + servicoDTO.getIdServico(), servicoDTO.getNomeServico());
idServicoCasoApenas1 = servicoDTO.getIdServico();
cont++;
}
} else {
// idServico.addOptionIfNotExists("" + servicoDTO.getIdServico(), servicoDTO.getNomeServico());
idServicoCasoApenas1 = servicoDTO.getIdServico();
cont++;
}
}
}
}
// --- RETITRADO POR EMAURI EM 16/07 - TRATAMENTO DE DELETED --> idServico.addOptions(col, "idServico", "nomeServico", null);
}
if (cont == 1) { // Se for apenas um servico encontrado, ja executa o carrega contratos.
solicitacaoServicoDto.setIdServico(idServicoCasoApenas1);
carregaBaseConhecimentoAssoc(document, request, response);
}
// document.executeScript("geraAutoCompleteServico()");
solicitacaoServicoDto = null;
}
public void carregaUnidade(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
String validarComboUnidade = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.UNIDADE_VINC_CONTRATOS, "N");
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
if (solicitacaoServicoDto.getIdSolicitacaoServico() != null && solicitacaoServicoDto.getIdSolicitacaoServico().intValue() > 0) {
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null);
solicitacaoServicoDto = (SolicitacaoServicoDTO) solicitacaoServicoService.restore(solicitacaoServicoDto);
ServicoContratoDTO servicoContratoDTO = new ServicoContratoDTO();
servicoContratoDTO.setIdServicoContrato(solicitacaoServicoDto.getIdServicoContrato());
if (solicitacaoServicoDto.getIdServicoContrato() != null) {
servicoContratoDTO = (ServicoContratoDTO) servicoContratoService.restore(servicoContratoDTO);
} else {
servicoContratoDTO = null;
}
if (servicoContratoDTO != null) {
solicitacaoServicoDto.setIdServico(servicoContratoDTO.getIdServico());
solicitacaoServicoDto.setIdContrato(servicoContratoDTO.getIdContrato());
}
}
if (solicitacaoServicoDto.getIdContrato() == null || solicitacaoServicoDto.getIdContrato().intValue() == 0) {
solicitacaoServicoDto.setIdContrato(contratoDtoAux.getIdContrato());
}
UnidadeService unidadeService = (UnidadeService) ServiceLocator.getInstance().getService(UnidadeService.class, null);
HTMLSelect comboUnidadeMultContratos = (HTMLSelect) document.getSelectById("idUnidade");
inicializarCombo(comboUnidadeMultContratos, request);
if (validarComboUnidade.trim().equalsIgnoreCase("S")) {
Integer idContrato = solicitacaoServicoDto.getIdContrato();
ArrayList<UnidadeDTO> unidades = (ArrayList) unidadeService.listHierarquiaMultiContratos(idContrato);
if (unidades != null) {
for (UnidadeDTO unidade : unidades) {
if (unidade.getDataFim() == null) {
comboUnidadeMultContratos.addOption(unidade.getIdUnidade().toString(), unidade.getNomeNivel());
}
}
}
} else {
ArrayList<UnidadeDTO> unidades = (ArrayList) unidadeService.listHierarquia();
if (unidades != null) {
for (UnidadeDTO unidade : unidades) {
if (unidade.getDataFim() == null) {
comboUnidadeMultContratos.addOption(unidade.getIdUnidade().toString(), unidade.getNomeNivel());
}
}
}
}
solicitacaoServicoDto = null;
}
private void inicializarCombo(HTMLSelect componenteCombo, HttpServletRequest request) {
componenteCombo.removeAllOptions();
componenteCombo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
}
public void carregaServicos(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
carregaServicosMulti(document, request, response);
}
public void verificaImpactoUrgencia(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
if (solicitacaoServicoDto.getIdContrato() == null || solicitacaoServicoDto.getIdContrato().intValue() == 0) {
solicitacaoServicoDto.setIdContrato(contratoDtoAux.getIdContrato());
}
document.getSelectById("impacto").setDisabled(false);
document.getSelectById("urgencia").setDisabled(false);
if (solicitacaoServicoDto.getIdServico() == null || solicitacaoServicoDto.getIdContrato() == null)
return;
ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null);
ServicoContratoDTO servicoContratoDto = servicoContratoService.findByIdContratoAndIdServico(solicitacaoServicoDto.getIdContrato(), solicitacaoServicoDto.getIdServico());
if (servicoContratoDto != null) {
AcordoNivelServicoService acordoNivelServicoService = (AcordoNivelServicoService) ServiceLocator.getInstance().getService(AcordoNivelServicoService.class, null);
AcordoNivelServicoDTO acordoNivelServicoDto = acordoNivelServicoService.findAtivoByIdServicoContrato(servicoContratoDto.getIdServicoContrato(), "T");
if (acordoNivelServicoDto == null) {
// Se nao houver acordo especifico, ou seja, associado direto ao servicocontrato, entao busca um acordo geral que esteja vinculado ao servicocontrato.
AcordoServicoContratoService acordoServicoContratoService = (AcordoServicoContratoService) ServiceLocator.getInstance().getService(AcordoServicoContratoService.class, null);
AcordoServicoContratoDTO acordoServicoContratoDTO = acordoServicoContratoService.findAtivoByIdServicoContrato(servicoContratoDto.getIdServicoContrato(), "T");
if (acordoServicoContratoDTO == null) {
document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.tempoacordo"));
return;
}
// Apos achar a vinculacao do acordo com o servicocontrato, entao faz um restore do acordo de nivel de servico.
acordoNivelServicoDto = new AcordoNivelServicoDTO();
acordoNivelServicoDto.setIdAcordoNivelServico(acordoServicoContratoDTO.getIdAcordoNivelServico());
acordoNivelServicoDto = (AcordoNivelServicoDTO) new AcordoNivelServicoDao().restore(acordoNivelServicoDto);
if (acordoNivelServicoDto == null) {
// Se nao houver acordo especifico, ou seja, associado direto ao servicocontrato
document.alert(UtilI18N.internacionaliza(request, "solicitacaoservico.validacao.tempoacordo"));
return;
}
}
if (acordoNivelServicoDto.getImpacto() != null) {
document.getSelectById("impacto").setValue("" + acordoNivelServicoDto.getImpacto());
if (acordoNivelServicoDto.getPermiteMudarImpUrg() != null && acordoNivelServicoDto.getPermiteMudarImpUrg().equalsIgnoreCase("N")) {
document.getSelectById("impacto").setDisabled(true);
}
} else {
document.getSelectById("impacto").setValue("B");
}
if (acordoNivelServicoDto.getUrgencia() != null) {
document.getSelectById("urgencia").setValue("" + acordoNivelServicoDto.getUrgencia());
if (acordoNivelServicoDto.getPermiteMudarImpUrg() != null && acordoNivelServicoDto.getPermiteMudarImpUrg().equalsIgnoreCase("N")) {
document.getSelectById("urgencia").setDisabled(true);
}
} else {
document.getSelectById("urgencia").setValue("B");
}
} else {
document.getSelectById("impacto").setValue("B");
document.getSelectById("urgencia").setValue("B");
}
servicoContratoDto = null;
solicitacaoServicoDto = null;
}
@Override
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
super.restore(document, request, response);
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
if (solicitacaoServicoDto.getEditar() == null) {
solicitacaoServicoDto.setEditar("S");
}
if (solicitacaoServicoDto.getEditar().equalsIgnoreCase("N")) {
// document.getElementById("tdListServicos").setVisible(false);
// document.getElementById("tdLimparServicos").setVisible(false);
document.getTextBoxById("servicoBusca").setDisabled(true);
} else {
if (solicitacaoServicoDto.getReclassificar() == null || solicitacaoServicoDto.getReclassificar().equalsIgnoreCase("N")) {
// document.getElementById("tdListServicos").setVisible(false);
// document.getElementById("tdLimparServicos").setVisible(false);
document.getTextBoxById("servicoBusca").setDisabled(true);
}
}
solicitacaoServicoDto = null;
}
public void verificaGrupoExecutor(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
if (solicitacaoServicoDto.getIdContrato() == null || solicitacaoServicoDto.getIdContrato().intValue() == 0) {
solicitacaoServicoDto.setIdContrato(contratoDtoAux.getIdContrato());
}
String COLABORADORES_VINC_CONTRATOS = ParametroUtil.getValorParametroCitSmartHashMap(br.com.centralit.citcorpore.util.Enumerados.ParametroSistema.COLABORADORES_VINC_CONTRATOS, "N");
if (COLABORADORES_VINC_CONTRATOS == null) {
COLABORADORES_VINC_CONTRATOS = "N";
}
if (COLABORADORES_VINC_CONTRATOS.equalsIgnoreCase("S")) {
HTMLSelect idGrupoAtual = (HTMLSelect) document.getSelectById("idGrupoAtual");
idGrupoAtual.removeAllOptions();
idGrupoAtual.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione"));
GrupoService grupoSegurancaService = (GrupoService) ServiceLocator.getInstance().getService(GrupoService.class, null);
Collection colGrupos = grupoSegurancaService.listGruposServiceDeskByIdContrato(solicitacaoServicoDto.getIdContrato());
if (colGrupos != null)
idGrupoAtual.addOptions(colGrupos, "idGrupo", "nome", null);
}
verificaGrupoExecutorInterno(document, solicitacaoServicoDto);
solicitacaoServicoDto = null;
}
public void verificaGrupoExecutorInterno(DocumentHTML document, SolicitacaoServicoDTO solicitacaoServicoDto) throws Exception {
if (solicitacaoServicoDto.getIdServico() == null || solicitacaoServicoDto.getIdContrato() == null)
return;
ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null);
ServicoContratoDTO servicoContratoDto = servicoContratoService.findByIdContratoAndIdServico(solicitacaoServicoDto.getIdContrato(), solicitacaoServicoDto.getIdServico());
if (servicoContratoDto != null && servicoContratoDto.getIdGrupoExecutor() != null)
document.getElementById("idGrupoAtual").setValue("" + servicoContratoDto.getIdGrupoExecutor());
else
document.getElementById("idGrupoAtual").setValue("");
}
public void carregarModalDuplicarSolicitacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception {
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null);
solicitacaoServicoDto = (SolicitacaoServicoDTO) solicitacaoServicoService.restore(solicitacaoServicoDto);
ServicoContratoDTO servicoContratoDto = new ServicoContratoDTO();
servicoContratoDto.setIdServicoContrato(solicitacaoServicoDto.getIdServicoContrato());
servicoContratoDto = (ServicoContratoDTO) servicoContratoService.restore(servicoContratoDto);
solicitacaoServicoDto.setIdContrato(servicoContratoDto.getIdContrato());
this.carregaComboOrigem(document, request);
this.carregaUnidade(document, request, response);
super.preencherComboLocalidade(document, request, response);
HTMLForm formSolicitacaoServico = document.getForm("formInformacoesContato");
formSolicitacaoServico.setValues(solicitacaoServicoDto);
solicitacaoServicoDto = null;
servicoContratoDto = null;
}
public void duplicarSolicitacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception {
SolicitacaoServicoDTO novaSolicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
UsuarioDTO usuarioDto = new UsuarioDTO();
usuarioDto = WebUtil.getUsuario(request);
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
ServicoContratoService servicoContratoService = (ServicoContratoService) ServiceLocator.getInstance().getService(ServicoContratoService.class, null);
SolicitacaoServicoDTO solicitacaoServicoOrigem = new SolicitacaoServicoDTO();
ServicoContratoDTO servicoContratoDto = new ServicoContratoDTO();
solicitacaoServicoOrigem.setIdSolicitacaoServico(novaSolicitacaoServicoDto.getIdSolicitacaoServico());
solicitacaoServicoOrigem = (SolicitacaoServicoDTO) solicitacaoServicoService.restore(solicitacaoServicoOrigem);
servicoContratoDto.setIdServicoContrato(solicitacaoServicoOrigem.getIdServicoContrato());
servicoContratoDto = (ServicoContratoDTO) servicoContratoService.restore(servicoContratoDto);
novaSolicitacaoServicoDto.setIdSolicitacaoServico(null);
novaSolicitacaoServicoDto.setIdSolicitacaoPai(solicitacaoServicoOrigem.getIdSolicitacaoServico());
novaSolicitacaoServicoDto.setIdContatoSolicitacaoServico(null);
novaSolicitacaoServicoDto.setIdServico(servicoContratoDto.getIdServico());
novaSolicitacaoServicoDto.setUsuarioDto(usuarioDto);
novaSolicitacaoServicoDto.setDescricao(solicitacaoServicoOrigem.getDescricao());
novaSolicitacaoServicoDto.setSituacao(solicitacaoServicoOrigem.getSituacao());
novaSolicitacaoServicoDto.setRegistroexecucao("");
novaSolicitacaoServicoDto.setEnviaEmailCriacao("S");
novaSolicitacaoServicoDto = (SolicitacaoServicoDTO) solicitacaoServicoService.create(novaSolicitacaoServicoDto);
document.alert(UtilI18N.internacionaliza(request, "gerenciaservico.duplicadacomsucesso"));
document.executeScript("fecharPopup(\"#formInformacoesContato\")");
novaSolicitacaoServicoDto = null;
solicitacaoServicoOrigem = null;
servicoContratoDto = null;
}
public void restauraSolicitante(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, WebUtil.getUsuarioSistema(request));
UsuarioService usuarioService = (UsuarioService) ServiceLocator.getInstance().getService(UsuarioService.class, null);
EmpregadoDTO empregadoDto = new EmpregadoDTO();
empregadoDto.setIdEmpregado(solicitacaoServicoDto.getIdSolicitante());
empregadoDto = (EmpregadoDTO) empregadoService.restore(empregadoDto);
if (empregadoDto != null) {
solicitacaoServicoDto.setSolicitante(empregadoDto.getNome());
solicitacaoServicoDto.setNomecontato(empregadoDto.getNome());
solicitacaoServicoDto.setTelefonecontato(empregadoDto.getTelefone());
solicitacaoServicoDto.setEmailcontato(empregadoDto.getEmail());
solicitacaoServicoDto.setIdUnidade(empregadoDto.getIdUnidade());
this.preencherComboLocalidade(document, request, response);
}
UsuarioDTO usuarioDto = new UsuarioDTO();
if(empregadoDto != null){
usuarioDto = (UsuarioDTO) usuarioService.restoreByIdEmpregado(empregadoDto.getIdEmpregado());
}
if (usuarioDto != null) {
String login = usuarioDto.getLogin();
SolicitacaoServicoDTO solicitacaoServicoComItemConfiguracaoDoSolicitante = solicitacaoServicoService.retornaSolicitacaoServicoComItemConfiguracaoDoSolicitante(login);
if (solicitacaoServicoComItemConfiguracaoDoSolicitante != null) {
solicitacaoServicoDto.setIdItemConfiguracao(solicitacaoServicoComItemConfiguracaoDoSolicitante.getIdItemConfiguracao());
solicitacaoServicoDto.setItemConfiguracao(solicitacaoServicoComItemConfiguracaoDoSolicitante.getItemConfiguracao());
document.executeScript("exibeCampos()");
}
}
HTMLForm formSolicitacaoServico = document.getForm("formInformacoesContato");
formSolicitacaoServico.setValues(solicitacaoServicoDto);
document.executeScript("fecharPopup(\"#POPUP_SOLICITANTE\")");
solicitacaoServicoDto = null;
}
private void carregaComboOrigem(DocumentHTML document, HttpServletRequest request) throws ServiceException, Exception, LogicException {
OrigemAtendimentoService origemService = (OrigemAtendimentoService) ServiceLocator.getInstance().getService(OrigemAtendimentoService.class, null);
HTMLSelect origem = (HTMLSelect) document.getSelectById("idOrigem");
origem.removeAllOptions();
inicializarCombo(origem, request);
Collection listOrigem = origemService.list();
if (listOrigem != null) {
origem.addOptions(listOrigem, "idOrigem", "descricao", null);
}
}
public void preenchePorEmail(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception {
EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null);
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
EmpregadoDTO empregadoDTO = new EmpregadoDTO();
empregadoDTO = empregadoService.listEmpregadoContrato(solicitacaoServicoDto.getIdContrato(), solicitacaoServicoDto.getEmailcontato());
if (empregadoDTO != null) {
document.getElementById("idSolicitante").setValue(empregadoDTO.getIdEmpregado().toString());
document.getElementById("nomecontato").setValue(empregadoDTO.getNome());
document.getElementById("telefonecontato").setValue(empregadoDTO.getTelefone());
document.getElementById("idUnidade").setValue(empregadoDTO.getIdUnidade().toString());
document.getElementById("solicitante").setValue(empregadoDTO.getNome());
document.getElementById("idOrigem").setValue("3");
}
solicitacaoServicoDto = null;
empregadoDTO = null;
}
public void calculaSLA(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
SolicitacaoServicoDTO solicitacaoServicoDto = (SolicitacaoServicoDTO) document.getBean();
document.executeScript("startLoading()");
if (solicitacaoServicoDto.getIdContrato() == null || solicitacaoServicoDto.getIdContrato().intValue() == 0)
throw new Exception("Contrato n�o encontrado");
if (solicitacaoServicoDto.getIdServico() == null || solicitacaoServicoDto.getIdServico().intValue() == 0)
throw new Exception("Servi�o n�o encontrado");
if (solicitacaoServicoDto.getUrgencia() == null || solicitacaoServicoDto.getUrgencia().isEmpty())
throw new Exception("Urg�ncia n�o encontrada");
if (solicitacaoServicoDto.getImpacto() == null || solicitacaoServicoDto.getImpacto().isEmpty())
throw new Exception("Impacto n�o encontrado");
SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null);
String sla = solicitacaoServicoService.calculaSLA(solicitacaoServicoDto, request);
document.executeScript("document.getElementById('tdResultadoSLAPrevisto').innerHTML = '" + sla + "';");
document.executeScript("stopLoading()");
document.executeScript("document.getElementById('tdResultadoSLAPrevisto').style.display='block'");
document.executeScript("document.getElementById('tdResultadoSLAPrevisto1').style.display='none'");
} catch (Exception e) {
document.executeScript("stopLoading()");
document.executeScript("document.getElementById('tdResultadoSLAPrevisto').innerHTML = '';");
document.executeScript("document.getElementById('tdResultadoSLAPrevisto1').style.display='none'");
}
}
public void atualizaGridProblema(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
SolicitacaoServicoDTO bean = (SolicitacaoServicoDTO) document.getBean();
ProblemaService problemaService = (ProblemaService) ServiceLocator.getInstance().getService(ProblemaService.class, null);
ProblemaDTO problemaDTO = new ProblemaDTO();
problemaDTO.setIdProblema(bean.getIdProblema());
problemaDTO = (ProblemaDTO) problemaService.restore(problemaDTO);
if (problemaDTO == null) {
return;
}
HTMLTable tblProblema = document.getTableById("tblProblema");
if (problemaDTO.getSequenciaProblema() == null) {
tblProblema.addRow(problemaDTO, new String[] { "", "", "numberAndTitulo", "status" }, new String[] { "idProblema" }, "Problema j� cadastrado!!", new String[] { "exibeIconesProblema" },
"buscaProblema", null);
} else {
tblProblema.updateRow(problemaDTO, new String[] { "", "", "numberAndTitulo", "status" }, new String[] { "idProblema" }, "Problema j� cadastrado!!", new String[] { "exibeIconesProblema" },
"buscaProblema", null, problemaDTO.getSequenciaProblema());
}
document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblProblema', 'tblProblema');");
document.executeScript("fecharModalProblema();");
bean = null;
}
public void atualizaGridMudanca(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
SolicitacaoServicoDTO bean = (SolicitacaoServicoDTO) document.getBean();
RequisicaoMudancaService requisicaoMudancaService = (RequisicaoMudancaService) ServiceLocator.getInstance().getService(RequisicaoMudancaService.class, null);
RequisicaoMudancaDTO requisicaoMudancaDTO = new RequisicaoMudancaDTO();
requisicaoMudancaDTO.setIdRequisicaoMudanca(bean.getIdRequisicaoMudanca());
requisicaoMudancaDTO = (RequisicaoMudancaDTO) requisicaoMudancaService.restore(requisicaoMudancaDTO);
HTMLTable tblMudanca = document.getTableById("tblMudanca");
if (requisicaoMudancaDTO.getSequenciaMudanca() == null) {
tblMudanca.addRow(null, new String[] { "", "", "numberAndTitulo", "status" }, new String[] { "idRequisicaoMudanca" }, "Mudan�a j� cadastrado!!", new String[] { "exibeIconesMudanca" },
"abreMudanca", null);
} else {
tblMudanca.updateRow(requisicaoMudancaDTO, new String[] { "", "", "numberAndTitulo", "status" }, new String[] { "idRequisicaoMudanca" }, "Mudan�a j� cadastrado!!",
new String[] { "exibeIconesMudanca" }, "abreMudanca", null, requisicaoMudancaDTO.getSequenciaMudanca());
}
document.getElementById("teste").setValue(tblMudanca.toString());
document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblMudanca', 'tblMudanca');");
document.executeScript("fecharModalMudanca();");
bean = null;
}
public void atualizaGridBaseConhecimento(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
SolicitacaoServicoDTO solicitacaoServicoDTO = (SolicitacaoServicoDTO) document.getBean();
BaseConhecimentoService baseConhecimentoService = (BaseConhecimentoService) ServiceLocator.getInstance().getService(BaseConhecimentoService.class, null);
BaseConhecimentoDTO baseConhecimentoDTO = new BaseConhecimentoDTO();
if (solicitacaoServicoDTO.getIdItemBaseConhecimento() != null) {
baseConhecimentoDTO.setIdBaseConhecimento(solicitacaoServicoDTO.getIdItemBaseConhecimento());
baseConhecimentoDTO = (BaseConhecimentoDTO) baseConhecimentoService.restore(baseConhecimentoDTO);
HTMLTable tblBaseConhecimento = document.getTableById("tblBaseConhecimento");
if (baseConhecimentoDTO.getSequenciaBaseConhecimento() == null) {
tblBaseConhecimento.addRow(baseConhecimentoDTO, new String[] { "", "", "idBaseConhecimento", "titulo" }, new String[] { "idBaseConhecimento" },
UtilI18N.internacionaliza(request, "baseConhecimento.baseConhecimentoJaCadastrada"), new String[] { "exibeIconesBaseConhecimento" }, null, null);
} else {
tblBaseConhecimento.updateRow(baseConhecimentoDTO, new String[] { "", "", "idBaseConhecimento", "titulo" }, new String[] { "idBaseConhecimento" },
UtilI18N.internacionaliza(request, "baseConhecimento.baseConhecimentoJaCadastrada"), new String[] { "exibeIconesBaseConhecimento" }, null, null,
baseConhecimentoDTO.getSequenciaBaseConhecimento());
}
document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblBaseConhecimento', 'tblBaseConhecimento');");
document.executeScript("fecharBaseConhecimento();");
}
}
public void atualizaGridItemConfiguracao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
SolicitacaoServicoDTO solicitacaoServicoDTO = (SolicitacaoServicoDTO) document.getBean();
ItemConfiguracaoService baseConhecimentoService = (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class, null);
ItemConfiguracaoDTO itemConfiguracaoDTO = new ItemConfiguracaoDTO();
if (solicitacaoServicoDTO.getIdItemBaseConhecimento() != null) {
itemConfiguracaoDTO.setIdItemConfiguracao(solicitacaoServicoDTO.getIdItemBaseConhecimento());
itemConfiguracaoDTO = (ItemConfiguracaoDTO) baseConhecimentoService.restore(itemConfiguracaoDTO);
HTMLTable tblBaseConhecimento = document.getTableById("tblIC");
if (itemConfiguracaoDTO.getSequenciaIC() == null) {
tblBaseConhecimento.addRow(itemConfiguracaoDTO, new String[] { "", "", "idItemConfiguracao", "descricao" }, new String[] { "idItemConfiguracao" }, "Item Configura��o j� cadastrado!!",
new String[] { "exibeIconesMudanca" }, "abreItemConfiguracao", null);
} else {
tblBaseConhecimento.updateRow(itemConfiguracaoDTO, new String[] { "", "", "idBaseConhecimento", "titulo" }, new String[] { "idBaseConhecimento" },
UtilI18N.internacionaliza(request, "baseConhecimento.baseConhecimentoJaCadastrada"), new String[] { "exibeIconesBaseConhecimento" }, null, null,
itemConfiguracaoDTO.getSequenciaIC());
}
document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblIC', 'tblIC');");
document.executeScript("fecharModalItemConfiguracao();");
}
}
}