package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; 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.HTMLForm; import br.com.centralit.citajax.html.HTMLSelect; import br.com.centralit.citajax.html.HTMLTable; import br.com.centralit.citcorpore.bean.AssinaturaDTO; import br.com.centralit.citcorpore.bean.EmpregadoDTO; import br.com.centralit.citcorpore.bean.GrupoAssinaturaDTO; import br.com.centralit.citcorpore.bean.ItemGrupoAssinaturaDTO; import br.com.centralit.citcorpore.negocio.AssinaturaService; import br.com.centralit.citcorpore.negocio.EmpregadoService; import br.com.centralit.citcorpore.negocio.GrupoAssinaturaService; import br.com.centralit.citcorpore.negocio.ItemGrupoAssinaturaService; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilI18N; /** * @author euler.ramos * */ public class GrupoAssinatura extends AjaxFormAction { @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { this.alimentaComboAssinatura(document, request, response); } @Override public Class getBeanClass() { return GrupoAssinaturaDTO.class; } public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { Collection<ItemGrupoAssinaturaDTO> tblAssinaturas_serialize = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(ItemGrupoAssinaturaDTO.class, "tblAssinaturas_serialize", request); if ((tblAssinaturas_serialize != null) && (tblAssinaturas_serialize.size() > 0)) { GrupoAssinaturaDTO grupoAssinaturaDTO = (GrupoAssinaturaDTO) document.getBean(); GrupoAssinaturaService grupoAssinaturaService = (GrupoAssinaturaService) ServiceLocator.getInstance().getService(GrupoAssinaturaService.class, null); if (!grupoAssinaturaService.violaIndiceUnico(grupoAssinaturaDTO)) { if (grupoAssinaturaDTO.getIdGrupoAssinatura() != null) { grupoAssinaturaService.update(grupoAssinaturaDTO, (ArrayList<ItemGrupoAssinaturaDTO>) tblAssinaturas_serialize); document.alert(UtilI18N.internacionaliza(request, "grupoAssinatura.grupoAssinaturaAtualizado")); } else { grupoAssinaturaDTO.setDataInicio(UtilDatas.getDataAtual()); grupoAssinaturaService.create(grupoAssinaturaDTO, (ArrayList<ItemGrupoAssinaturaDTO>) tblAssinaturas_serialize); document.alert(UtilI18N.internacionaliza(request, "grupoAssinatura.grupoAssinaturaCadastrado")); } document.executeScript("limpar();"); } else { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.registroJaAdicionado")); } } else { document.alert(UtilI18N.internacionaliza(request, "grupoAssinatura.alerta.lanceAoMenosUmaAssinatura")); } } @SuppressWarnings("unchecked") public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { GrupoAssinaturaDTO grupoAssinaturaDTO = (GrupoAssinaturaDTO) document.getBean(); GrupoAssinaturaService grupoAssinaturaService = (GrupoAssinaturaService) ServiceLocator.getInstance().getService(GrupoAssinaturaService.class, null); grupoAssinaturaDTO = (GrupoAssinaturaDTO) grupoAssinaturaService.restore(grupoAssinaturaDTO); document.executeScript("limpar();"); HTMLForm form = document.getForm("form"); form.setValues(grupoAssinaturaDTO); this.alimentaTblAssinaturas(document, request, response, grupoAssinaturaDTO); } public void excluir(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { GrupoAssinaturaDTO grupoAssinaturaDTO = (GrupoAssinaturaDTO) document.getBean(); GrupoAssinaturaService grupoAssinaturaService = (GrupoAssinaturaService) ServiceLocator.getInstance().getService(GrupoAssinaturaService.class, null); if (grupoAssinaturaService.naoEstaSendoUtilizado(grupoAssinaturaDTO.getIdGrupoAssinatura())) { if (grupoAssinaturaDTO.getIdGrupoAssinatura() != null) { grupoAssinaturaDTO.setDataFim(UtilDatas.getDataAtual()); grupoAssinaturaService.update(grupoAssinaturaDTO, new ArrayList<ItemGrupoAssinaturaDTO>()); document.alert(UtilI18N.internacionaliza(request, "grupoAssinatura.grupoAssinaturaExcluida")); } document.executeScript("limpar();"); } else { document.alert(UtilI18N.internacionaliza(request, "grupoAssinatura.alerta.exclusaoNaoPermitida")); } } @SuppressWarnings("unchecked") private void alimentaComboAssinatura(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { HTMLSelect comboAssinatura = document.getSelectById("idAssinatura"); comboAssinatura.removeAllOptions(); comboAssinatura.addOption("0", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); AssinaturaService assinaturaService = (AssinaturaService) ServiceLocator.getInstance().getService(AssinaturaService.class, null); Collection<AssinaturaDTO> colAssinatura = assinaturaService.list(); StringBuilder nomeAssinatura; if (colAssinatura != null) { for (AssinaturaDTO assinaturaDTO : colAssinatura) { nomeAssinatura = new StringBuilder(); if (assinaturaDTO.getIdEmpregado() != null) { EmpregadoService empregadoService = (EmpregadoService) ServiceLocator.getInstance().getService(EmpregadoService.class, null); EmpregadoDTO empregadoDTO = new EmpregadoDTO(); empregadoDTO.setIdEmpregado(assinaturaDTO.getIdEmpregado()); empregadoDTO = (EmpregadoDTO) empregadoService.restore(empregadoDTO); assinaturaDTO.setNomeResponsavel(empregadoDTO.getNome()); } else { assinaturaDTO.setNomeResponsavel("---------- "); } if (assinaturaDTO.getPapel() == null) { assinaturaDTO.setPapel("---------- "); } if (assinaturaDTO.getFase() == null) { assinaturaDTO.setFase("---------- "); } nomeAssinatura.append(assinaturaDTO.getNomeResponsavel()); nomeAssinatura.append(" / "); nomeAssinatura.append(assinaturaDTO.getPapel()); nomeAssinatura.append(" / "); nomeAssinatura.append(assinaturaDTO.getFase()); comboAssinatura.addOption(assinaturaDTO.getIdAssinatura().toString(), nomeAssinatura.toString()); } } } @SuppressWarnings("unchecked") public void alimentaTblAssinaturas(DocumentHTML document, HttpServletRequest request, HttpServletResponse response, GrupoAssinaturaDTO grupoAssinaturaDTO) throws Exception { HTMLTable tblAssinaturas = document.getTableById("tblAssinaturas"); tblAssinaturas.deleteAllRows(); ItemGrupoAssinaturaService itemGrupoAssinaturaService = (ItemGrupoAssinaturaService) ServiceLocator.getInstance().getService(ItemGrupoAssinaturaService.class, null); Collection<ItemGrupoAssinaturaDTO> colItemGrupoAssinaturaDTOs = itemGrupoAssinaturaService.findByIdGrupoAssinatura(grupoAssinaturaDTO.getIdGrupoAssinatura()); if ((tblAssinaturas != null) && ((colItemGrupoAssinaturaDTOs != null) && (colItemGrupoAssinaturaDTOs.size() > 0))) { tblAssinaturas.addRowsByCollection(colItemGrupoAssinaturaDTOs, new String[] { "", "nomeResponsavel", "papel", "fase", "ordem" }, new String[] { "idAssinatura", "ordem" }, UtilI18N.internacionaliza(request, "grupoAssinatura.alerta.assinaturaJaAdicionada"), new String[] { "exibeIconesItemAssinatura" }, null, null); } document.executeScript("HTMLUtils.applyStyleClassInAllCells('tblAssinaturas', 'tblAssinaturas');"); } }