@Util public static void prepararParaFirmarFuncionarioHabilitadoFormPreparar(Long idSolicitud) { play.Logger.info("Preparamos para firmar por el funcionario Habilitado (no hace nada aún)"); prepararParaFirmarFormPreparar(idSolicitud); Solicitud dbSolicitud = PaginaFirmaController.getSolicitud(idSolicitud); if (!Messages.hasErrors()) { // Borra firmantes anteriores List<Firmante> firmantesBack = new ArrayList<Firmante>(dbSolicitud.registro.firmantes); dbSolicitud.registro.firmantes.clear(); dbSolicitud.registro.save(); FirmaUtils.borrarFirmantes(firmantesBack); // Calcula quién puede firmar la solicitud (los funcionarios habilitados) dbSolicitud.registro.firmantes = FuncionariosHabilitados.getFirmantes(); dbSolicitud.registro.save(); play.Logger.info("FIRMANTES"); for (Firmante f : dbSolicitud.registro.firmantes) { play.Logger.info(f.toString()); } dbSolicitud.solicitante.autorizaFuncionario = true; dbSolicitud.registro.fasesRegistro.setFase(FaseRegistroEnum.preparadaFuncionario); dbSolicitud.save(); // Debemos comprobar que el documento con el tipo de URI haya sido añadido a la documentación Messages.ok("Preparado para firmar por el funcionario correctamente"); } }
@Util public static void firmarRepresentanteFormFirmaRepresentante( Long idSolicitud, Long idRegistroModificacion, Long idRegistro, String firma) { SolicitudGenerica solicitud = SolicitudPresentarModificacionFAPController.getSolicitudGenerica(idSolicitud); idRegistroModificacion = solicitud.registroModificacion.get(solicitud.registroModificacion.size() - 1).id; RegistroModificacion registroModificacion = RegistroModificacion.findById(idRegistroModificacion); idRegistro = registroModificacion.registro.id; Registro registro = SolicitudPresentarModificacionFAPController.getRegistro(idRegistroModificacion, idRegistro); play.Logger.info("Metodo: firmarRepresentanteFormFirmaRepresentante"); Map<String, Long> ids = (Map<String, Long>) tags.TagMapStack.top("idParams"); Map<String, Object> vars = new HashMap<String, Object>(); if (secure.checkAcceso("editarFirma", "editar", ids, vars)) { if (registro.firmantes.todos == null || registro.firmantes.todos.size() == 0) { registro.firmantes.todos = solicitud.solicitante.calcularFirmantes(); registro.firmantes.save(); } FirmaUtils.firmar(registro.oficial, registro.firmantes.todos, firma, null); } else { // ERROR Messages.error("No tiene permisos suficientes para realizar la acción++"); } if (!Messages.hasErrors()) { registro.fasesRegistro.firmada = true; registroModificacion.save(); registro.save(); } }
@Util public static void firmarRegistrarFHFormFirmaFH( Long idSolicitud, Long idRegistroModificacion, Long idRegistro, String firma) { SolicitudGenerica solicitud = SolicitudPresentarModificacionFAPController.getSolicitudGenerica(idSolicitud); idRegistroModificacion = solicitud.registroModificacion.get(solicitud.registroModificacion.size() - 1).id; RegistroModificacion registroModificacion = RegistroModificacion.findById(idRegistroModificacion); idRegistro = registroModificacion.registro.id; Registro registro = SolicitudPresentarModificacionFAPController.getRegistro(idRegistroModificacion, idRegistro); play.Logger.info("Metodo: firmarRegistrarFHFormFirmaFH"); Agente agente = AgenteController.getAgente(); if (agente.getFuncionario()) { List<Firmante> firmantes = new ArrayList<Firmante>(); firmantes.add(new Firmante(agente)); FirmaUtils.firmar(registro.oficial, firmantes, firma, null); } else { // ERROR Messages.error("No tiene permisos suficientes para realizar la acción"); } if (!Messages.hasErrors()) { registro.fasesRegistro.firmada = true; registro.save(); } }
@Util public static void prepararParaFirmarFormPreparar(Long idSolicitud) { // Sobreescribir este método para asignar una acción Solicitud dbSolicitud = PaginaFirmaController.getSolicitud(idSolicitud); play.Logger.info("Preparamos para firmar"); FirmaService firmaService = InjectorConfig.getInjector().getInstance(FirmaService.class); FirmaUtils.generarOficial(dbSolicitud); if (!Messages.hasErrors()) { dbSolicitud.registro.fasesRegistro.borrador = true; dbSolicitud.solicitante.autorizaFuncionario = false; dbSolicitud.registro.fasesRegistro.setFase(FaseRegistroEnum.preparada); dbSolicitud.save(); // Borra firmantes anteriores List<Firmante> firmantesBack = new ArrayList<Firmante>(dbSolicitud.registro.firmantes); dbSolicitud.registro.firmantes.clear(); dbSolicitud.registro.save(); FirmaUtils.borrarFirmantes(firmantesBack); // Calcula quién puede firmar la solicitud dbSolicitud.registro.firmantes = dbSolicitud.solicitante.calcularFirmantes(); // dbSolicitud.solicitante.autorizaFuncionario = true; dbSolicitud.registro.save(); play.Logger.info("FIRMANTES"); for (Firmante f : dbSolicitud.registro.firmantes) { play.Logger.info(f.toString()); } } if (!Messages.hasErrors()) Messages.ok("Solicitud preparada para firmar"); }