package br.com.centralit.citcorpore.ajaxForms;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
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.HTMLElement;
import br.com.centralit.citajax.html.HTMLForm;
import br.com.centralit.citcorpore.bean.BaseItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.EventoGrupoDTO;
import br.com.centralit.citcorpore.bean.EventoItemConfigDTO;
import br.com.centralit.citcorpore.bean.EventoItemConfigRelDTO;
import br.com.centralit.citcorpore.bean.GrupoItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.ItemConfigEventoDTO;
import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO;
import br.com.centralit.citcorpore.negocio.BaseItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.EventoItemConfigService;
import br.com.centralit.citcorpore.negocio.GrupoItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.ItemConfigEventoService;
import br.com.centralit.citcorpore.negocio.ItemConfiguracaoService;
import br.com.centralit.citcorpore.util.Enumerados.TipoDate;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.dto.Usuario;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.Constantes;
import br.com.citframework.util.UtilDatas;
import br.com.citframework.util.UtilI18N;
public class EventoItemConfig extends AjaxFormAction {
public Class<?> getBeanClass() {
return EventoItemConfigDTO.class;
}
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
}
public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
Usuario usuario = (Usuario) request.getSession().getAttribute(Constantes.getValue("USUARIO_SESSAO"));
if (usuario == null) {
document.alert("O usu�rio n�o est� logado! Favor logar no sistema!");
return;
}
Map<?, ?> map = document.getForm("form").getDocument().getValuesForm();
ItemConfigEventoDTO itemConfigEventoDto;
List<ItemConfigEventoDTO> lstItensConfig = new ArrayList<ItemConfigEventoDTO>();
// Adiciona na lista os ids dos grupos selecionados
List<EventoGrupoDTO> lstEventoGrupos = new ArrayList<EventoGrupoDTO>();
EventoGrupoDTO eventoGrupoDTO;
Object mapIdGrupo = map.get("IDGRUPO");
if (mapIdGrupo != null) {
if (mapIdGrupo.getClass().getName().equalsIgnoreCase("[Ljava.lang.String;")) {
String[] arrayIdGrupo = (String[]) mapIdGrupo;
for (String idGrupo : arrayIdGrupo) {
eventoGrupoDTO = new EventoGrupoDTO();
eventoGrupoDTO.setIdGrupo(Integer.valueOf(idGrupo));
lstEventoGrupos.add(eventoGrupoDTO);
}
} else {
String idGrupo = (String) mapIdGrupo;
if (!idGrupo.equals("")) {
eventoGrupoDTO = new EventoGrupoDTO();
eventoGrupoDTO.setIdGrupo(Integer.valueOf(idGrupo));
lstEventoGrupos.add(eventoGrupoDTO);
}
}
}
// Adiciona na lista ids dos itens de configura��o
List<EventoItemConfigRelDTO> lstItensConfiguracao = new ArrayList<EventoItemConfigRelDTO>();
EventoItemConfigRelDTO eventoItemConfigRelDTO;
Object mapIdItemConfiguracao = map.get("IDITEMCONFIGURACAO");
if (mapIdItemConfiguracao != null) {
if (mapIdItemConfiguracao.getClass().getName().equalsIgnoreCase("[Ljava.lang.String;")) {
String[] arrayIdItemConf = (String[]) mapIdItemConfiguracao;
for (String idItemConf : arrayIdItemConf) {
eventoItemConfigRelDTO = new EventoItemConfigRelDTO();
eventoItemConfigRelDTO.setIdItemConfiguracao(Integer.valueOf(idItemConf));
lstItensConfiguracao.add(eventoItemConfigRelDTO);
}
} else {
String idItemConf = (String) mapIdItemConfiguracao;
if (!idItemConf.equals("")) {
eventoItemConfigRelDTO = new EventoItemConfigRelDTO();
eventoItemConfigRelDTO.setIdItemConfiguracao(Integer.valueOf(idItemConf));
lstItensConfiguracao.add(eventoItemConfigRelDTO);
}
}
}
// Adiciona na lista de itens de configura��o
Object mapIdItemConfig = map.get("IDITEMCONFIG");
Object mapTipoExec = map.get("TIPOEXECUCAO");
Object mapGerarQuando = map.get("DISPARAEVENTO");
Object mapData = map.get("DATAEVENTO");
Object mapHora = map.get("HORAEVENTO");
Object mapComando = map.get("COMANDO");
Object mapComandoLinux = map.get("COMANDOLINUX");
if (mapIdItemConfig != null) {
if (mapIdItemConfig.getClass().getName().equalsIgnoreCase("[Ljava.lang.String;")) {
String[] arrayIdItemConfig = (String[]) mapIdItemConfig;
String[] arrayTipoExec = (String[]) mapTipoExec;
String[] arrayGerarQuando = (String[]) mapGerarQuando;
String[] arrayData = (String[]) mapData;
String[] arrayHora = (String[]) mapHora;
String[] arrayComando = (String[]) mapComando;
String[] arrayComandoLinux = (String[]) mapComandoLinux;
for (int i = 0; i < arrayIdItemConfig.length; i++) {
itemConfigEventoDto = new ItemConfigEventoDTO();
itemConfigEventoDto.setIdBaseItemConfiguracao(Integer.valueOf(arrayIdItemConfig[i]));
itemConfigEventoDto.setTipoExecucao(arrayTipoExec[i]);
itemConfigEventoDto.setGerarQuando(arrayGerarQuando[i]);
if (arrayGerarQuando[i].equalsIgnoreCase("F")) {
itemConfigEventoDto.setData(UtilDatas.strToSQLDate(arrayData[i]));
itemConfigEventoDto.setHora(arrayHora[i].replace(":", ""));
} else {
itemConfigEventoDto.setData(UtilDatas.getDataAtual());
itemConfigEventoDto.setHora(UtilDatas.formatHoraFormatadaStr(UtilDatas.getHoraAtual()).replaceAll(":", ""));
}
itemConfigEventoDto.setLinhaComando(arrayComando[i]);
itemConfigEventoDto.setLinhaComandoLinux(arrayComandoLinux[i]);
lstItensConfig.add(itemConfigEventoDto);
}
} else {
String idItemConfig = (String) mapIdItemConfig;
String tipoExec = (String) mapTipoExec;
String gerarQuando = (String) mapGerarQuando;
String data = (String) mapData;
String hora = (String) mapHora;
String comando = (String) mapComando;
String comandoLinux = (String) mapComandoLinux;
if (!idItemConfig.equals("")) {
itemConfigEventoDto = new ItemConfigEventoDTO();
itemConfigEventoDto.setIdBaseItemConfiguracao(Integer.valueOf(idItemConfig));
itemConfigEventoDto.setTipoExecucao(tipoExec);
itemConfigEventoDto.setGerarQuando(gerarQuando);
if (gerarQuando.equalsIgnoreCase("F")) {
itemConfigEventoDto.setData(UtilDatas.strToSQLDate(data));
itemConfigEventoDto.setHora(hora.replace(":", ""));
} else {
itemConfigEventoDto.setData(UtilDatas.getDataAtual());
itemConfigEventoDto.setHora(UtilDatas.formatHoraFormatadaStr(UtilDatas.getHoraAtual()).replaceAll(":", ""));
}
itemConfigEventoDto.setLinhaComando(comando);
itemConfigEventoDto.setLinhaComandoLinux(comandoLinux);
lstItensConfig.add(itemConfigEventoDto);
}
}
}
EventoItemConfigDTO eventoDto = (EventoItemConfigDTO) document.getBean();
eventoDto.setIdEmpresa(usuario.getIdEmpresa());
eventoDto.setLstItemConfigEvento(lstItensConfig);
eventoDto.setLstGrupo(lstEventoGrupos);
eventoDto.setLstItemConfiguracao(lstItensConfiguracao);
EventoItemConfigService eventoService = (EventoItemConfigService) ServiceLocator.getInstance().getService(EventoItemConfigService.class, null);
if (eventoDto.getIdEvento() == null || eventoDto.getIdEvento().intValue() == 0) {
eventoDto.setDataInicio(UtilDatas.getDataAtual());
eventoService.create(eventoDto);
} else {
eventoService.update(eventoDto);
}
HTMLForm form = document.getForm("form");
form.clear();
document.executeScript("limpaFormulario()");
document.executeScript("limpar_LOOKUP_EVENTOS()");
document.alert("Registro gravado com sucesso!");
}
public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
EventoItemConfigDTO eventoDto = (EventoItemConfigDTO) document.getBean();
EventoItemConfigService eventoService = (EventoItemConfigService) ServiceLocator.getInstance().getService(EventoItemConfigService.class, null);
ItemConfigEventoService itemConfigEventoService = (ItemConfigEventoService) ServiceLocator.getInstance().getService(ItemConfigEventoService.class, null);
GrupoItemConfiguracaoService grupoItemConfiguracaoService = (GrupoItemConfiguracaoService) ServiceLocator.getInstance().getService(GrupoItemConfiguracaoService.class, null);
ItemConfiguracaoService itemConfiguracaoService = (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class, null);
eventoDto = (EventoItemConfigDTO) eventoService.restore(eventoDto);
HTMLForm form = document.getForm("form");
form.clear();
document.executeScript("limpaFormulario()");
HTMLElement btnExcluirElement = (HTMLElement) document.getElementById("btnExcluir");
if (eventoDto != null && eventoDto.getIdEvento() > 0) {
btnExcluirElement.setVisible(true);
form.setValues(eventoDto);
}
Collection<GrupoItemConfiguracaoDTO> colEventoGrupo = new ArrayList<GrupoItemConfiguracaoDTO>();
if (eventoDto != null) {
colEventoGrupo = grupoItemConfiguracaoService.listByEvento(eventoDto.getIdEvento());
}
if (colEventoGrupo != null && !colEventoGrupo.isEmpty()) {
for (GrupoItemConfiguracaoDTO grupoItemConfiguracaoDTO : colEventoGrupo) {
document.executeScript("addLinhaTabelaGrupoItemConfig(" + grupoItemConfiguracaoDTO.getIdGrupoItemConfiguracao() + ", '" + grupoItemConfiguracaoDTO.getNomeGrupoItemConfiguracao()
+ "', " + false + ");");
}
}
Collection<ItemConfiguracaoDTO> colItemConf = new ArrayList<ItemConfiguracaoDTO>();
if (eventoDto != null) {
colItemConf = itemConfiguracaoService.listByEvento(eventoDto.getIdEvento());
}
if (colItemConf != null && !colItemConf.isEmpty()) {
for (ItemConfiguracaoDTO itemConfigEventoDTO : colItemConf) {
document.executeScript("addLinhaTabelaItemConfig(" + itemConfigEventoDTO.getIdItemConfiguracao() + ", '" + itemConfigEventoDTO.getIdentificacao() + "', " + false + ");");
}
}
Collection<ItemConfigEventoDTO> colItemConfigEvento = new ArrayList<ItemConfigEventoDTO>();
if (eventoDto != null) {
colItemConfigEvento = itemConfigEventoService.listByIdEvento(eventoDto.getIdEvento());
}
if (colItemConfigEvento != null) {
for (ItemConfigEventoDTO itemConfigEventoDto : colItemConfigEvento) {
document.executeScript("addItemConfigRestore(" + itemConfigEventoDto.getIdBaseItemConfiguracao() + ", '" + itemConfigEventoDto.getNomeBaseItemConfiguracao() + "', '"
+ itemConfigEventoDto.getTipoExecucao() + "', '" + itemConfigEventoDto.getGerarQuando() + "', '" + UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, itemConfigEventoDto.getData(), WebUtil.getLanguage(request)) + "', '"
+ UtilDatas.formatHoraStr(itemConfigEventoDto.getHora()) + "', '" + itemConfigEventoDto.getLinhaComando() + "', '"
+ (itemConfigEventoDto.getLinhaComandoLinux() == null ? "" : itemConfigEventoDto.getLinhaComandoLinux()) + "')");
}
}
}
public void restoreIdentificacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
EventoItemConfigDTO eventoItemConfigDto = (EventoItemConfigDTO) document.getBean();
BaseItemConfiguracaoDTO baseItemConfiguracaoDto = new BaseItemConfiguracaoDTO();
BaseItemConfiguracaoService baseItemConfiguracaoService = (BaseItemConfiguracaoService) ServiceLocator.getInstance().getService(BaseItemConfiguracaoService.class, null);
baseItemConfiguracaoDto.setId(eventoItemConfigDto.getIdItemCfg());
baseItemConfiguracaoDto = (BaseItemConfiguracaoDTO) baseItemConfiguracaoService.restore(baseItemConfiguracaoDto);
eventoItemConfigDto.setNomeItemCfg(baseItemConfiguracaoDto.getNome());
eventoItemConfigDto.setLinhaComando(baseItemConfiguracaoDto.getComando());
HTMLForm form = document.getForm("form");
form.setValues(eventoItemConfigDto);
document.executeScript("fecharPopup()");
}
public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
Usuario usuario = (Usuario) request.getSession().getAttribute(Constantes.getValue("USUARIO_SESSAO"));
if (usuario == null) {
document.alert("O usu�rio n�o est� logado! Favor logar no sistema!");
return;
}
EventoItemConfigDTO eventoDto = (EventoItemConfigDTO) document.getBean();
eventoDto.setIdEmpresa(usuario.getIdEmpresa());
EventoItemConfigService eventoService = (EventoItemConfigService) ServiceLocator.getInstance().getService(EventoItemConfigService.class, null);
if (eventoDto.getIdEvento().intValue() > 0) {
eventoDto.setDataFim(UtilDatas.getDataAtual());
eventoService.update(eventoDto);
}
document.getElementById("btnExcluir").setVisible(false);
HTMLForm form = document.getForm("form");
form.clear();
document.executeScript("limpaFormulario()");
document.executeScript("limpar_LOOKUP_EVENTOS()");
document.alert(UtilI18N.internacionaliza(request, "MSG07"));
}
}