public static void updateEstadosSolicitudUsuario() { java.util.List<TableKeyValue> rows = TableKeyValue.find("select tableKeyValue from TableKeyValue tableKeyValue").fetch(); Secure secure = InjectorConfig.getInjector().getInstance(Secure.class); Map<String, Long> ids = new HashMap<String, Long>(); List<TableKeyValue> rowsFiltered = new ArrayList<TableKeyValue>(); for (TableKeyValue tableKeyValue : rows) { Map<String, Object> vars = new HashMap<String, Object>(); vars.put("tableKeyValue", tableKeyValue); if (secure.check("tableKeyOnlyEstadosSolicitud", "read", ids, vars)) { rowsFiltered.add(tableKeyValue); } } // Ahora en "rowsFiltered" tenemos los estados de la solicitud original // Si no existe alguno de los estados originales en la lista de los usuarios, lo creamos for (TableKeyValue tableKeyValue : rowsFiltered) { if (!TableKeyValue.contains(USER_TABLE_NAME, tableKeyValue.key)) { play.Logger.info( "Creamos el estado \"" + tableKeyValue.key + "\" para la visibilidad del estado del usuario"); TableKeyValue.setValue(USER_TABLE_NAME, tableKeyValue.key, tableKeyValue.key); } } }
public static List<ComboItem> comboEstadoInterno() { List<ComboItem> result = new ArrayList<ComboItem>(); java.util.List<TableKeyValue> rows = TableKeyValue.find( "select tableKeyValue from TableKeyValue tableKeyValue where tableKeyValue.table = ?", "estadosSolicitud") .fetch(); for (TableKeyValue tableKeyValue : rows) { result.add(new ComboItem(tableKeyValue.key, tableKeyValue.value)); } return result; }
public static void editar(Long idTableKeyValue, TableKeyValue tableKeyValue) { checkAuthenticity(); if (!permiso("update")) { Messages.error("No tiene permisos suficientes para realizar la acción"); } TableKeyValue dbTableKeyValue = null; if (!Messages.hasErrors()) { dbTableKeyValue = getTableKeyValue(idTableKeyValue); } if (!Messages.hasErrors()) { play.Logger.info("Almaceno nuevo: " + dbTableKeyValue.toString()); TableKeyValue.setValue(dbTableKeyValue.table, dbTableKeyValue.key, tableKeyValue.value); } if (!Messages.hasErrors()) { renderJSON(utils.RestResponse.ok("Registro actualizado correctamente")); } else { Messages.keep(); abrir("editar", idTableKeyValue); } }
@Util // Este @Util es necesario porque en determinadas circunstancias crear(..) llama a editar(..). public static void formHabilitarFH( Long idSolicitud, Long idRegistroModificacion, Long idRegistro, String btnHabilitarFH) { checkAuthenticity(); if (!permisoFormHabilitarFH("editar")) { Messages.error("No tiene permisos suficientes para realizar la acción"); } SolicitudGenerica dbSolicitud = SolicitudPresentarModificacionFAPController.getSolicitudGenerica(idSolicitud); idRegistroModificacion = dbSolicitud.registroModificacion.get(dbSolicitud.registroModificacion.size() - 1).id; RegistroModificacion registroModificacion = RegistroModificacion.findById(idRegistroModificacion); idRegistro = registroModificacion.registro.id; Registro dbRegistro = SolicitudPresentarModificacionFAPController.getRegistro(idRegistroModificacion, idRegistro); if (!Messages.hasErrors()) { try { PresentacionModificacionFapController.invoke( "comprobarFechaLimitePresentacion", idSolicitud); } catch (Throwable e1) { log.error( "Hubo un problema al invocar los métodos comprobarFechaLimitePresentacion: " + e1.getMessage()); Messages.error("Error al validar las comprobaciones de la Fecha Límite de Presentación"); } } if (!Messages.hasErrors()) { try { TramiteBase tramite = PresentacionModificacionFapController.invoke("getTramiteObject", idSolicitud); boolean encontrado = false; for (Documento doc : tramite.getDocumentos()) { if (doc.tipo.equals( FapProperties.get("fap.firmaYRegistro.funcionarioHabilitado.tipoDocumento"))) { encontrado = true; break; } } if (!encontrado) { log.error( "El documento que autoriza la firma de un funcionario habilitado no ha sido subido o su tipo no es correcto. Uri del tipo correcto: " + FapProperties.get("fap.firmaYRegistro.funcionarioHabilitado.tipoDocumento")); Messages.error( "El documento que autoriza la firma de un funcionario habilitado no ha sido subido o su tipo no es correcto."); Messages.error( "Asegurese de haber subido el documento pertinente con tipo: " + TableKeyValue.getValue( "tiposDocumentos", FapProperties.get("fap.firmaYRegistro.funcionarioHabilitado.tipoDocumento"))); } } catch (Throwable e) { log.error( "Hubo un problema al intentar verificar la presencia del documento de autorizacion funcionario habilitado: " + e.getMessage()); Messages.error("No se pudo habilitar la firma de un Funcionario"); } } if (!Messages.hasErrors()) { SolicitudPresentarModificacionFAPController.formHabilitarFHValidateRules(); } if (!Messages.hasErrors()) { dbRegistro.habilitaFuncionario = true; dbRegistro.save(); Messages.ok("Se ha habilitado a un funcionario correctamente."); log.info( "Acción Editar de página: " + "gen/SolicitudPresentarModificacionFAP/SolicitudPresentarModificacionFAP.html" + " , intentada con éxito"); } else log.info( "Acción Editar de página: " + "gen/SolicitudPresentarModificacionFAP/SolicitudPresentarModificacionFAP.html" + " , intentada sin éxito (Problemas de Validación)"); SolicitudPresentarModificacionFAPController.formHabilitarFHRender( idSolicitud, idRegistroModificacion, idRegistro); }
public String getEstadoUsuario() { if (!TableKeyValue.contains("estadosSolicitudUsuario", estado)) utils.DataBaseUtils.updateEstadosSolicitudUsuario(); return TableKeyValue.getValue("estadosSolicitudUsuario", estado); }