public static void finalizarExclusion(Long idSolicitud, String finalizarExclusionBoton) { checkAuthenticity(); if (!permisoFinalizarExclusion("editar")) { Messages.error("No tiene permisos suficientes para realizar la acción"); } SolicitudGenerica sol = getSolicitudGenerica(idSolicitud); if (!Messages.hasErrors()) { if (sol.exclusion.codigos.size() == 0) { Messages.error("Debe asignar al menos un códio de exclusión a la Solicitud para excluirla"); } } if (!Messages.hasErrors()) { ExclusionController.finalizarExclusionValidateRules(); } if (!Messages.hasErrors()) { Messages.ok("La Solicitud ha pasado al estado Excluido"); sol.estado = EstadosSolicitudEnum.excluido.name(); sol.save(); log.info( "Acción Editar de página: " + "gen/Exclusion/Exclusion.html" + " , intentada con éxito"); } else log.info( "Acción Editar de página: " + "gen/Exclusion/Exclusion.html" + " , intentada sin éxito (Problemas de Validación)"); ExclusionController.finalizarExclusionRender(idSolicitud); }
@Util public static void guardarPCEValidateCopy( String accion, CEconomicosManuales dbCEconomicosManuales, CEconomicosManuales cEconomicosManuales) { CustomValidation.clearValidadas(); if (secure.checkGrafico( "modificacionTrasPresentacionDeSolicitud", "editable", accion, (Map<String, Long>) tags.TagMapStack.top("idParams"), null)) { CustomValidation.valid("cEconomicosManuales", cEconomicosManuales); // Código de Copia // (1) Caso de modificacion (Existe y lo cambio) (2) Caso de Creacion (Lo creo desde 0) String idSolicitud = params.get("idSolicitud"); SolicitudGenerica dbSolicitud = SolicitudGenerica.findById(Long.parseLong(idSolicitud)); PeticionModificacion peticionModificacion = new PeticionModificacion(); peticionModificacion.campoPagina = "Solicitud.ceconomicos.otros"; Map<String, String> allSimpleTabla = params.allSimple(); for (Map.Entry<String, String> entry : allSimpleTabla.entrySet()) { if (entry.getKey().startsWith("id")) { try { peticionModificacion.idSimples.put(entry.getKey(), Long.parseLong(entry.getValue())); } catch (Exception e) { // El parámetro no era un long } } } peticionModificacion.idSimples.put("idCEconomicosManuales", dbCEconomicosManuales.id); List<String> valoresAntiguos = new ArrayList<String>(); List<String> valoresNuevos = new ArrayList<String>(); Boolean hayModificaciones = false; // Validando el tipo.nombre CustomValidation.valid("cEconomicosManuales.tipo", cEconomicosManuales.tipo); CustomValidation.required("cEconomicosManuales.tipo.nombre", cEconomicosManuales.tipo.nombre); // Código de Copia del tipo.nombre if (((dbCEconomicosManuales.tipo.nombre != null) && (cEconomicosManuales.tipo.nombre.toString() != null) && (!dbCEconomicosManuales .tipo .nombre .toString() .equals(cEconomicosManuales.tipo.nombre.toString()))) || ((cEconomicosManuales.tipo.nombre == null) && (!cEconomicosManuales.tipo.nombre.equals(dbCEconomicosManuales.tipo.nombre)))) { valoresAntiguos = new ArrayList<String>(); if (dbCEconomicosManuales.tipo.nombre != null) valoresAntiguos.add(dbCEconomicosManuales.tipo.nombre.toString()); valoresNuevos = new ArrayList<String>(); valoresNuevos.add(cEconomicosManuales.tipo.nombre.toString()); peticionModificacion.setValorModificado( "Solicitud.ceconomicos.otros.tipo.nombre", valoresAntiguos, valoresNuevos); hayModificaciones = true; } dbCEconomicosManuales.tipo.nombre = cEconomicosManuales.tipo.nombre; // Código de Copia del tipo.descripcion if (((dbCEconomicosManuales.tipo.descripcion != null) && (cEconomicosManuales.tipo.descripcion.toString() != null) && (!dbCEconomicosManuales .tipo .descripcion .toString() .equals(cEconomicosManuales.tipo.descripcion.toString()))) || ((cEconomicosManuales.tipo.descripcion == null) && (!cEconomicosManuales.tipo.descripcion.equals( dbCEconomicosManuales.tipo.descripcion)))) { valoresAntiguos = new ArrayList<String>(); if (dbCEconomicosManuales.tipo.descripcion != null) valoresAntiguos.add(dbCEconomicosManuales.tipo.descripcion.toString()); valoresNuevos = new ArrayList<String>(); valoresNuevos.add(cEconomicosManuales.tipo.descripcion.toString()); peticionModificacion.setValorModificado( "Solicitud.ceconomicos.otros.tipo.descripcion", valoresAntiguos, valoresNuevos); hayModificaciones = true; } dbCEconomicosManuales.tipo.descripcion = cEconomicosManuales.tipo.descripcion; // Código de Copia del comentarioAdministracion if (((dbCEconomicosManuales.comentariosAdministracion != null) && (cEconomicosManuales.comentariosAdministracion.toString() != null) && (!dbCEconomicosManuales .comentariosAdministracion .toString() .equals(cEconomicosManuales.comentariosAdministracion.toString()))) || ((cEconomicosManuales.comentariosAdministracion == null) && (!cEconomicosManuales.comentariosAdministracion.equals( dbCEconomicosManuales.comentariosAdministracion)))) { valoresAntiguos = new ArrayList<String>(); if (dbCEconomicosManuales.comentariosAdministracion != null) valoresAntiguos.add(dbCEconomicosManuales.comentariosAdministracion.toString()); valoresNuevos = new ArrayList<String>(); valoresNuevos.add(cEconomicosManuales.comentariosAdministracion.toString()); peticionModificacion.setValorModificado( "Solicitud.ceconomicos.otros.comentariosAdministracion", valoresAntiguos, valoresNuevos); hayModificaciones = true; } dbCEconomicosManuales.comentariosAdministracion = cEconomicosManuales.comentariosAdministracion; // Código de Copia del comentarioSolicitante if (((dbCEconomicosManuales.comentariosSolicitante != null) && (cEconomicosManuales.comentariosSolicitante.toString() != null) && (!dbCEconomicosManuales .comentariosSolicitante .toString() .equals(cEconomicosManuales.comentariosSolicitante.toString()))) || ((cEconomicosManuales.comentariosSolicitante == null) && (!cEconomicosManuales.comentariosSolicitante.equals( dbCEconomicosManuales.comentariosSolicitante)))) { valoresAntiguos = new ArrayList<String>(); if (dbCEconomicosManuales.comentariosSolicitante != null) valoresAntiguos.add(dbCEconomicosManuales.comentariosSolicitante.toString()); valoresNuevos = new ArrayList<String>(); valoresNuevos.add(cEconomicosManuales.comentariosSolicitante.toString()); peticionModificacion.setValorModificado( "Solicitud.ceconomicos.otros.comentariosSolicitante", valoresAntiguos, valoresNuevos); hayModificaciones = true; } dbCEconomicosManuales.comentariosSolicitante = cEconomicosManuales.comentariosSolicitante; // Guardo en el json los valores simples: // Json por todos los valores if (hayModificaciones) { // peticionModificacion.setValorModificado("Solicitud.ceconomicos.otros", valoresAntiguos, // valoresNuevos); peticionModificacion.idSimples.put("idCEconomicosManuales", dbCEconomicosManuales.id); Gson gson = new Gson(); String jsonPM = gson.toJson(peticionModificacion); JsonPeticionModificacion jsonPeticionModificacion = new JsonPeticionModificacion(); jsonPeticionModificacion.jsonPeticion = jsonPM; dbSolicitud .registroModificacion .get(dbSolicitud.registroModificacion.size() - 1) .jsonPeticionesModificacion .add(jsonPeticionModificacion); dbSolicitud.save(); } // Copia de los valores: O2M Un json por cada valor // Logica de copia a BBDD List<String> valoresAntiguosTabla = new ArrayList<String>(); List<String> valoresNuevosTabla = new ArrayList<String>(); if ((dbCEconomicosManuales.valores == null) || (dbCEconomicosManuales.valores.size() == 0)) { // Dead code? // peticionModificacion.idSimples.put("idCEconomicosManuales",dbCEconomicosManuales.id); // //Viernes añadido // Guardo todos los nuevos valores for (int i = 0; i < cEconomicosManuales.valores.size(); i++) { // Modificando valoresNuevosTabla = new ArrayList<String>(); valoresNuevosTabla.add(cEconomicosManuales.valores.get(i).valorSolicitado.toString()); // Json por todos los valores PeticionModificacion peticionModificacionTabla = new PeticionModificacion(); peticionModificacionTabla.campoPagina = "Solicitud.ceconomicos.otros.valores.valorSolicitado"; peticionModificacionTabla.idSimples = peticionModificacion.idSimples; peticionModificacionTabla.idSimples.put( "idValoresCEconomicoManuales", cEconomicosManuales.valores.get(i).id); peticionModificacionTabla.setValorCreado( "Solicitud.ceconomicos.otros.valores.valorSolicitado", new ArrayList<String>(), valoresNuevosTabla); // PRUEBA Gson gsonTabla = new Gson(); String jsonPMTabla = gsonTabla.toJson(peticionModificacionTabla); JsonPeticionModificacion jsonPeticionModificaciontabla = new JsonPeticionModificacion(); jsonPeticionModificaciontabla.jsonPeticion = jsonPMTabla; dbSolicitud .registroModificacion .get(dbSolicitud.registroModificacion.size() - 1) .jsonPeticionesModificacion .add(jsonPeticionModificaciontabla); dbSolicitud.save(); } dbCEconomicosManuales.valores = cEconomicosManuales.valores; } else { for (int i = 0; i < cEconomicosManuales.valores.size(); i++) { // Modificando valoresAntiguosTabla = new ArrayList<String>(); valoresNuevosTabla = new ArrayList<String>(); hayModificaciones = false; PeticionModificacion peticionModificacionTabla = new PeticionModificacion(); peticionModificacionTabla.campoPagina = "Solicitud.ceconomicos.otros.valores.valorSolicitado"; peticionModificacionTabla.idSimples = peticionModificacion.idSimples; if ((cEconomicosManuales.valores.get(i).valorSolicitado != null) && (cEconomicosManuales.valores.get(i).valorSolicitado.toString() != dbCEconomicosManuales.valores.get(i).valorSolicitado.toString())) { valoresAntiguosTabla.add( dbCEconomicosManuales.valores.get(i).valorSolicitado.toString()); dbCEconomicosManuales.valores.get(i).valorSolicitado = cEconomicosManuales.valores.get(i).valorSolicitado; // Logica valoresNuevosTabla.add(cEconomicosManuales.valores.get(i).valorSolicitado.toString()); peticionModificacionTabla.idSimples.put( "idValoresCEconomico", dbCEconomicosManuales.valores.get(i).id); // AQUI idValoresCEconomo // Json peticionModificacionTabla.setValorModificado( "Solicitud.ceconomicos.otros.valores.valorSolicitado", valoresAntiguosTabla, valoresNuevosTabla); // PRUEBA Gson gsonTabla = new Gson(); String jsonPMTabla = gsonTabla.toJson(peticionModificacionTabla); JsonPeticionModificacion jsonPeticionModificaciontabla = new JsonPeticionModificacion(); jsonPeticionModificaciontabla.jsonPeticion = jsonPMTabla; dbSolicitud .registroModificacion .get(dbSolicitud.registroModificacion.size() - 1) .jsonPeticionesModificacion .add(jsonPeticionModificaciontabla); dbSolicitud.save(); } } } // dbCEconomicosManuales.valores=cEconomicosManuales.valores; } }
@Util // Este @Util es necesario porque en determinadas circunstancias crear(..) llama a editar(..). public static void frmRegistrar( Long idSolicitud, Long idRegistroModificacion, Long idRegistro, String botonRegistrar) { checkAuthenticity(); if (!permisoFrmRegistrar("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); 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 { PresentacionModificacionFapController.invoke("beforeRegistro", idSolicitud); } catch (Throwable e1) { log.error("Hubo un problema al invocar los métodos beforeRegistro: " + e1.getMessage()); Messages.error("Error al validar elementos previos al Registro"); } } if (!Messages.hasErrors()) { try { TramiteBase tramite = PresentacionModificacionFapController.invoke("getTramiteObject", idSolicitud); try { dbRegistro.fasesRegistro.borrador = true; dbRegistro.fasesRegistro.firmada = true; tramite.registrar(); if (dbRegistro.fasesRegistro.clasificarAed) { tramite.cambiarEstadoSolicitud(); registroModificacion.fechaRegistro = dbRegistro.informacionRegistro.fechaRegistro; registroModificacion.save(); } else { play.Logger.error( "No se registro la solicitud de modificación correctamente por lo que no se cambiara el estado de la misma."); Messages.error("Error al intentar sólo registrar."); } if (!Messages.hasErrors()) { try { PresentacionModificacionFapController.invoke("afterRegistro", idSolicitud); } catch (Throwable e1) { log.error( "Hubo un problema al invocar los métodos afterRegistro: " + e1.getMessage()); Messages.error("Error al validar elementos posteriores al registro"); } } } catch (RegistroServiceException e) { log.error( "Error al intentar registrar en la presentacion en frmRegistrar: " + e.getMessage()); Messages.error("Error al intentar sólo registrar"); } } catch (Throwable e1) { log.error( "Error al invocar al TramiteBase en frmRegistrar de SolicitudPresentarModificacionFAPController: " + e1.getMessage()); Messages.error("Error al intentar sólo registrar"); } } if (!Messages.hasErrors()) { SolicitudPresentarModificacionFAPController.frmRegistrarValidateRules(); } if (!Messages.hasErrors()) { dbSolicitud.save(); Messages.ok("Solicitud Registrada correctamente"); log.info( "Acción Editar de página: " + "gen/SolicitudPresentarModificacionFAP/SolicitudPresentarModificacionFAP.html" + " , intentada con éxito"); redirect("PresentarFAPController.index", "editar", idSolicitud, dbSolicitud.registro.id); } else log.info( "Acción Editar de página: " + "gen/SolicitudPresentarModificacionFAP/SolicitudPresentarModificacionFAP.html" + " , intentada sin éxito (Problemas de Validación)"); SolicitudPresentarModificacionFAPController.frmRegistrarRender( idSolicitud, idRegistroModificacion, idRegistro); }
public static void CreandoEnModificacionSolicitudes( String accion, CEconomicosManuales dbCEconomicosManuales, CEconomicosManuales cEconomicosManuales) { String idSolicitud = params.get("idSolicitud"); SolicitudGenerica dbSolicitud = SolicitudGenerica.findById(Long.parseLong(idSolicitud)); PeticionModificacion peticionModificacion = new PeticionModificacion(); peticionModificacion.campoPagina = "Solicitud.ceconomicos.otros"; // OJO Map<String, String> allSimpleTabla = params.allSimple(); for (Map.Entry<String, String> entry : allSimpleTabla.entrySet()) { if (entry.getKey().startsWith("id")) { try { peticionModificacion.idSimples.put(entry.getKey(), Long.parseLong(entry.getValue())); } catch (Exception e) { // El parámetro no era un long } } } List<String> valoresNuevos = new ArrayList<String>(); if (cEconomicosManuales.tipo.nombre != null) { valoresNuevos = new ArrayList<String>(); valoresNuevos.add(cEconomicosManuales.tipo.nombre.toString()); peticionModificacion.setValorCreado( "Solicitud.ceconomicos.otros.tipo.nombre", new ArrayList<String>(), valoresNuevos); dbCEconomicosManuales.tipo.nombre = cEconomicosManuales.tipo.nombre; } if (cEconomicosManuales.tipo.descripcion != null) { valoresNuevos = new ArrayList<String>(); valoresNuevos.add(cEconomicosManuales.tipo.descripcion.toString()); peticionModificacion.setValorCreado( "Solicitud.ceconomicos.otros.tipo.descripcion", new ArrayList<String>(), valoresNuevos); dbCEconomicosManuales.tipo.descripcion = cEconomicosManuales.tipo.descripcion; } if (cEconomicosManuales.comentariosAdministracion != null) { valoresNuevos = new ArrayList<String>(); valoresNuevos.add(cEconomicosManuales.tipo.comentariosAdministracion.toString()); peticionModificacion.setValorCreado( "Solicitud.ceconomicos.otros.comentariosAdministracion", new ArrayList<String>(), valoresNuevos); dbCEconomicosManuales.comentariosAdministracion = cEconomicosManuales.comentariosAdministracion; } if (cEconomicosManuales.comentariosSolicitante != null) { valoresNuevos = new ArrayList<String>(); valoresNuevos.add(cEconomicosManuales.tipo.comentariosSolicitante.toString()); peticionModificacion.setValorCreado( "Solicitud.ceconomicos.otros.comentariosSolicitante", new ArrayList<String>(), valoresNuevos); dbCEconomicosManuales.comentariosSolicitante = cEconomicosManuales.comentariosSolicitante; } peticionModificacion.idSimples.put("idCEconomicosManuales", dbCEconomicosManuales.id); Gson gson = new Gson(); String jsonPM = gson.toJson(peticionModificacion); JsonPeticionModificacion jsonPeticionModificacion = new JsonPeticionModificacion(); jsonPeticionModificacion.jsonPeticion = jsonPM; dbSolicitud .registroModificacion .get(dbSolicitud.registroModificacion.size() - 1) .jsonPeticionesModificacion .add(jsonPeticionModificacion); dbSolicitud.save(); }