package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; import java.util.Collection; import java.util.List; 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.HTMLForm; import br.com.centralit.citajax.html.HTMLSelect; import br.com.centralit.citajax.html.HTMLTable; import br.com.centralit.citcorpore.bean.AtividadePeriodicaDTO; import br.com.centralit.citcorpore.bean.AtividadesOSDTO; import br.com.centralit.citcorpore.bean.OSDTO; import br.com.centralit.citcorpore.bean.ProgramacaoAtividadeDTO; import br.com.centralit.citcorpore.bean.RequisicaoMudancaDTO; import br.com.centralit.citcorpore.negocio.AtividadePeriodicaService; import br.com.centralit.citcorpore.negocio.AtividadesOSService; import br.com.centralit.citcorpore.negocio.ContratoService; import br.com.centralit.citcorpore.negocio.GrupoAtvPeriodicaService; import br.com.centralit.citcorpore.negocio.OSService; import br.com.centralit.citcorpore.negocio.ProgramacaoAtividadeService; import br.com.centralit.citcorpore.negocio.RequisicaoMudancaService; import br.com.centralit.citcorpore.util.Enumerados.TipoAgendamento; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Reflexao; import br.com.citframework.util.UtilI18N; public class AtividadePeriodica extends AjaxFormAction { @SuppressWarnings("rawtypes") @Override public Class getBeanClass() { return AtividadePeriodicaDTO.class; } @SuppressWarnings("rawtypes") @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { HTMLSelect idContrato = (HTMLSelect) document.getSelectById("idContrato"); ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null); Collection colContratos = contratoService.list(); idContrato.removeAllOptions(); idContrato.addOption("", "--"); idContrato.addOptions(colContratos, "idContrato", "numero", null); HTMLSelect idGrupoAtvPeriodica = (HTMLSelect) document.getSelectById("idGrupoAtvPeriodica"); GrupoAtvPeriodicaService grupoAtvPeriodicaService = (GrupoAtvPeriodicaService) ServiceLocator.getInstance().getService(GrupoAtvPeriodicaService.class, null); Collection colGrupos = grupoAtvPeriodicaService.listGrupoAtividadePeriodicaAtiva(); idGrupoAtvPeriodica.removeAllOptions(); idGrupoAtvPeriodica.addOption("", "--"); idGrupoAtvPeriodica.addOptions(colGrupos, "idGrupoAtvPeriodica", "nomeGrupoAtvPeriodica", null); } @SuppressWarnings("rawtypes") public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception{ AtividadePeriodicaDTO atividadePeriodicaDTO = (AtividadePeriodicaDTO) document.getBean(); AtividadePeriodicaService atividadePeriodicaService = (AtividadePeriodicaService) ServiceLocator.getInstance().getService(AtividadePeriodicaService.class, null); Collection colItens = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(ProgramacaoAtividadeDTO.class, "colItens_Serialize", request); Collection colItensOs = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(OSDTO.class, "colItensOS_Serialize", request); boolean existeDuplicacao = atividadePeriodicaService.existeDuplicacao(atividadePeriodicaDTO.getTituloAtividade(), atividadePeriodicaDTO.getIdAtividadePeriodica()); if ( existeDuplicacao ) { document.alert(UtilI18N.internacionaliza(request, "MSE01")); } else { atividadePeriodicaDTO.setColItensOS(colItensOs); atividadePeriodicaDTO.setColItens(colItens); if (atividadePeriodicaDTO.getIdAtividadePeriodica()==null || atividadePeriodicaDTO.getIdAtividadePeriodica().intValue()==0){ atividadePeriodicaService.create(atividadePeriodicaDTO); }else{ atividadePeriodicaService.update(atividadePeriodicaDTO); } document.alert(UtilI18N.internacionaliza(request, "periodica.registro_gravado_sucesso")); HTMLForm form = document.getForm("form"); form.clear(); HTMLTable tblAgendamentos = document.getTableById("tblAgendamentos"); HTMLTable tblItensOS = document.getTableById("tblOS"); tblItensOS.deleteAllRows(); tblAgendamentos.deleteAllRows(); } } @SuppressWarnings("rawtypes") public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception{ AtividadePeriodicaDTO atividadePeriodicaDTO = (AtividadePeriodicaDTO) document.getBean(); AtividadePeriodicaService atividadePeriodicaService = (AtividadePeriodicaService) ServiceLocator.getInstance().getService(AtividadePeriodicaService.class, null); RequisicaoMudancaService requisicaoMudancaService = (RequisicaoMudancaService) ServiceLocator.getInstance().getService(RequisicaoMudancaService.class, null); ProgramacaoAtividadeService programacaoAtividadeService = (ProgramacaoAtividadeService) ServiceLocator.getInstance().getService(ProgramacaoAtividadeService.class, null); OSService osService = (OSService) ServiceLocator.getInstance().getService(OSService.class, null); atividadePeriodicaDTO = (AtividadePeriodicaDTO)atividadePeriodicaService.restore(atividadePeriodicaDTO); if (atividadePeriodicaDTO != null && atividadePeriodicaDTO.getIdRequisicaoMudanca() != null){ RequisicaoMudancaDTO requisicaoMudancaDTO = new RequisicaoMudancaDTO(); requisicaoMudancaDTO.setIdRequisicaoMudanca(atividadePeriodicaDTO.getIdRequisicaoMudanca()); requisicaoMudancaDTO = (RequisicaoMudancaDTO) requisicaoMudancaService.restore(requisicaoMudancaDTO); if (requisicaoMudancaDTO != null){ atividadePeriodicaDTO.setIdentMudanca(atividadePeriodicaDTO.getIdRequisicaoMudanca() + " - " + requisicaoMudancaDTO.getTitulo()); } } HTMLForm form = document.getForm("form"); form.clear(); if(atividadePeriodicaDTO != null){ form.setValues(atividadePeriodicaDTO); } document.getElementById("tdBotaoGravar").setVisible(true); document.getElementById("tdBotaoNovoAgendamento").setVisible(true); document.getElementById("tdBotaoNovaOs").setVisible(true); HTMLTable tblAgendamentos = document.getTableById("tblAgendamentos"); tblAgendamentos.deleteAllRows(); if (atividadePeriodicaDTO != null){ Collection col = programacaoAtividadeService.findByIdAtividadePeriodica(atividadePeriodicaDTO.getIdAtividadePeriodica()); if (col != null){ tblAgendamentos.addRowsByCollection(col, new String[] {"", "", "tipoAgendamentoDescr","nomeAtividadeOs" ,"dataInicio","detalhamento","duracaoEstimadaDescr","repeticaoDescr"}, new String[] {"idProgramacaoAtividade"}, "", new String[] {"exibeIconesAgendamento"}, null, null); document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblAgendamentos', 'tdPontilhada');"); } if (atividadePeriodicaDTO.getIdSolicitacaoServico() != null){ document.alert("Aten��o: esta atividade foi gerada pelo m�dulo de solicita��es/incidentes. N�o � permitido altera��o no agendamento!"); document.getElementById("tdBotaoGravar").setVisible(false); document.getElementById("tdBotaoNovoAgendamento").setVisible(false); } } HTMLTable tblOS = document.getTableById("tblOS"); tblOS.deleteAllRows(); if (atividadePeriodicaDTO != null){ Collection col = osService.listOSByIdAtividadePeriodica(atividadePeriodicaDTO.getIdAtividadePeriodica()); if (col != null){ tblOS.addRowsByCollection(col, new String[] {"","", "numero","nomeAreaRequisitante","demanda"}, new String[] {"idOS"}, "O.S j� cadastrada!", new String[] {"exibeIconesOS"}, null, null); document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblOS', 'tblOS');"); } } form.setValues(atividadePeriodicaDTO); document.executeScript("setaValorContrato(document.getElementById('idContrato'));"); } public void atualizaAgendamento(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception{ AtividadePeriodicaDTO atividadePeriodicaDto = (AtividadePeriodicaDTO) document.getBean(); ProgramacaoAtividadeDTO programacaoAtividadeDto = new ProgramacaoAtividadeDTO(); Reflexao.copyPropertyValues(atividadePeriodicaDto, programacaoAtividadeDto); programacaoAtividadeDto.setTipoAgendamentoDescr(TipoAgendamento.valueOf(programacaoAtividadeDto.getTipoAgendamento()).getDescricao()); HTMLTable tblAgendamentos = document.getTableById("tblAgendamentos"); tblAgendamentos.deleteAllRows(); if (programacaoAtividadeDto.getSequencia() == null){ tblAgendamentos.addRow(programacaoAtividadeDto, new String[] {"", "", "tipoAgendamentoDescr","dataInicio","horaInicio","duracaoEstimada"}, new String[] {"idProgramacaoAtividade"}, "", new String[] {"exibeIconesAgendamento"}, null, null); }else{ tblAgendamentos.updateRow(programacaoAtividadeDto, new String[] {"", "", "tipoAgendamentoDescr","dataInicio","horaInicioFmt","duracaoEstimada"}, new String[] {"idProgramacaoAtividade"}, "", new String[] {"exibeIconesAgendamento"}, null, null, programacaoAtividadeDto.getSequencia()); } document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblAgendamentos', 'tdPontilhada');"); } public void carregaComboAtividadeOs(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception{ List<OSDTO> colItensOs = (List<OSDTO>) br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(OSDTO.class, "colItensOS_Serialize", request); List<AtividadesOSDTO> listAtvidadeFinal = new ArrayList<AtividadesOSDTO>(); AtividadesOSService atividadesOSService = (AtividadesOSService) ServiceLocator.getInstance().getService(AtividadesOSService.class, null); if(colItensOs != null){ for (OSDTO osdto : colItensOs) { List<AtividadesOSDTO> listAtvidade = (List<AtividadesOSDTO>) atividadesOSService.findByIdOS(osdto.getIdOS()); if(listAtvidade != null) for (AtividadesOSDTO atividadesOSDTO : listAtvidade) { atividadesOSDTO.setDescricaoAtividade(osdto.getNumero()+" - " + atividadesOSDTO.getDescricaoAtividade()); listAtvidadeFinal.add(atividadesOSDTO); } } document.executeScript("abilitaDivAtividade()"); }else{ document.executeScript("desabilitaDivAtividade()"); } HTMLSelect comboAtividade = (HTMLSelect) document.getSelectById("idAtividadesOs"); comboAtividade.removeAllOptions(); comboAtividade.addOption("", "--- Selecione ---"); comboAtividade.addOptions(listAtvidadeFinal, "idAtividadesOs", "descricaoAtividade", null); } }